Подключение нового объекта конфигурации к подсистеме по работе с файлами

Здравствуйте.

В данной заметке я хочу рассказать как организовать работу с прикрепленными файлами для нового объекта в конфигурациях 1С, которые содержат библиотеку стандартных подсистем (БСП).

Задача. Создать новый документ и для этого документа добавить возможность прикреплять файлы.

Решение данной задачи будем осуществлять на конфигурации «1С: Управление торговлей 11.2», но все действия можно применять и к другим конфигурациям, содержащим БСП (ЗУП 3, БУ 3, ERP 2 и т.д.).

1. Чтобы добавить новый документ необходимо включить возможность редактирования нашей конфигурации.

Снять с поддержки конфигурацию

Редактирование с сохранением поддержки

2. Добавим новый документ с произвольной структурой

Новый документ

3. Добавим копированием новый справочник «БСП_НовыйДокументПрисоединенныеФайлы» и в реквизите «ВладелецФайла» изменим тип на «ДокументСсылка.БСП_НовыйДокумент». Для копирования был выбран справочник «ЗаказКлиентаПрисоединенныеФайлы».

Новый справочник присоединенных файлов

Также не забываем изменить описание и представление объекта.

4. Добавляем в определяемые типы «ВладелецПрисоединенныхФайлов», «ПрисоединенныйФайл», «ПрисоединенныйФайлОбъект» новые объекты.

ПрисоединенныйФайлОбъект

ПрисоединенныйФайлОбъект НовыйТип

ПрисоединенныйФайл

ПрисоединенныйФайл НовыйТип

ВладелецПрисоединенныхФайлов

ВладелецПрисоединенныхФайлов НовыйТип

5. Если необходимо добавить возможность копирования присоединенных файлов при копировании документа, то необходимо в параметры формы документа добавить параметр «ЗначениеКопирования» и сделать его ключевым.

Копирование присоединенных файлов

В модуль формы добавить процедуру «ПриЗаписиНаСервере».

 
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	ПрисоединенныеФайлы.ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи, Параметры);
КонецПроцедуры

6. Для отображения в форме списка наличия прикрепленных файлов необходимо доработать форму списка.

Изменим текст запроса списка

 
ВЫБРАТЬ
	ДокументБСП_НовыйДокумент.Ссылка,
	ДокументБСП_НовыйДокумент.ПометкаУдаления,
	ДокументБСП_НовыйДокумент.Номер,
	ДокументБСП_НовыйДокумент.Дата,
	ДокументБСП_НовыйДокумент.Проведен,
	ДокументБСП_НовыйДокумент.Реквизит1,
	ДокументБСП_НовыйДокумент.Реквизит2,
	ДокументБСП_НовыйДокумент.МоментВремени,
	ВЫБОР
		КОГДА НаличиеПрисоединенныхФайлов.ЕстьФайлы ЕСТЬ NULL 
			ТОГДА 1
		КОГДА НаличиеПрисоединенныхФайлов.ЕстьФайлы
			ТОГДА 0
		ИНАЧЕ 1
	КОНЕЦ КАК ЕстьФайлы
ИЗ
	Документ.БСП_НовыйДокумент КАК ДокументБСП_НовыйДокумент
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаличиеПрисоединенныхФайлов КАК НаличиеПрисоединенныхФайлов
		ПО ДокументБСП_НовыйДокумент.Ссылка = НаличиеПрисоединенныхФайлов.ОбъектСФайлами

В форму списка добавим колонку «ЕстьФайлы» и изменим настройки отображения.

Наличие прикрепленных файлов

7. Тестирование.

Запускаем режим «1С:Предприятие» и с помощью обработки из набора внешних обработок библиотеки стандартных подсистем «ИнструментыРазработчикаОбновлениеВспомогательныхДанных.epf» обновляем наши новые данные.

Обновление вспомогательных данных

Список документов
Список документов с прикрепленными файлами

Форма документа
Кнопка "Файлы"

Прикрепленный файл
Прикрепленный файл документа

Популярность: 38%

Добавить комментарий для Ольга Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

  1. но без указания типа реквизита владелецФайла в справочнике ЭДПрисоединенныеФайлы не завелось (УТ 11.2.3.177 )

  2. Спасибо!
    Одна из немногих статей размещенных в инете (а ищу я настойчиво), по материалам которой можно быстро создать рабочий код.
    Проверено на БСП 2.3.6.196 в ЕРП 2.2.4.
    Еще раз СПАСИБО 🙂

  3. Также необходимо добавить свой документ в ОбщиеКоманды-ПрисоединенииыеФайлыБП

  4. ERP 2.1.3.143. В документе перехожу к присоединенным файлам, нажимаю кнопку «Добавить», выбираю необходимый файл, кнопка «Открыть» (стандартный диалог выбора файла Windows) и ERP выдает ошибку: «Ошибка при добавлении присоединенного файла «TestFile.txt»: Не заполнен владелец в файле». Вроде делал все по инструкции, есть идею куда смотреть?

    • Могу предположить, что в новом справочнике, где хранятся файлы, например «КакойтоДокументПрисоединенныеФайлы», в реквизите «ВладелецФайла» указан не верный тип документа

      • У меня неверно было сформировано имя справочника ПрисоединенныеФайлы, а это оказалось критически важно. Необходимо, чтобы имя этого справочника было сформировано след. образом: ИмяДокументаПрисоединенныеФайлы или ИмяСправочникаПрисоединенныеФайлы. После переименования все заработало.
        Сергей, спасибо за статью, все изложено куда как более понятно, чем в документации к БСП (там прям ужас).

    • Добрый день. Данная кнопка появляется автоматически. Пример на сайте создан на версии БСП 2.3.2.72. Если у Вас более новая версия, то возможно есть дополнительные действия.
      Например для 3.0.2 надо в процедуре «ПриСозданииНаСервере» добавить

      
      // СтандартныеПодсистемы.РаботаСФайлами
      ГиперссылкаФайлов = РаботаСФайлами.ГиперссылкаФайлов();
      ГиперссылкаФайлов.Размещение = "КоманднаяПанель";
      РаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ГиперссылкаФайлов);
      // Конец СтандартныеПодсистемы.РаботаСФайлами
      
  5. Спасибо отличный материал, все получилось, но ее могу разобраться какие права нужно дать пользователю при работе с файлами для нового документа. Например при открытии файлов в документа реализации все ок, при открытии файлов у нового документа нарушение прав доступ, на документ права полные, на созданный справочник присоедененных файлов так же полные права. Чего может не хватать? БП 3.0.68.66

    • Еще в подсистеме работы с файлами используется регистр сведений «ПрисоединенныеФайлы», но это будет как то странно, потому что обычно достаточно прав на справочник и документ.

  6. Спасибо, все получилось как нужно за считанные минуты для ЗУП 3.1.10.
    Только не смогла сделать, чтобы вместо надписи «Присоединенные файлы» была картинка со скрепкой.

  7. Все получилось в erp,кроме одного- не под полными правами не получается прикрепить файлы(((

      • Все было, добавила права на справочник версии файлов и все заработало, спасибо!!!

      • Заработало на тестовой базе, перенесла на рабочую, а там новая ошибка при определении имён справочников для хранения файлов. Отличаются названия дока и спр., попробую поменять, просто странно, что с разными названиями в другой бд тоже самое работает

  8. Сергей, все получилось, спасибо! А как сделать, чтобы при копировании файлы не копировались в новом документе?

  9. Сергей подскажите пожалуйста почему файлы не пишутся в регистр сведений НаличиеФайлов?Значок скрепки в форме списка появляется только при наличии записи.

    • Могу предположить что для определяемого типа «ВладелецПрисоединенныхФайлов» не добавлен новый объект, для которого добавлялись присоединенные файлы

  10. Сергей, спасибо большое за статью, но я столкнулся со следующей ошибкой, при попытке записать файл:
    «Ошибка при добавлении присоединенного файла «Документ Microsoft Word.docx»:
    Запись не верна! Значение поля «Файл» не может быть пустым!: ДвоичныеДанныеФайлов: (Регистр сведений: Двоичные данные файлов)
    »
    С самим файлом все в порядке, в другие справочники, этот файл крепится без проблем.

    • Разорался, неправильно указывал значения в определяемых типах «ПрисоединенныйФайл», «ПрисоединенныйФайлОбъект» ,там нужно указать ссылку на справочник «хранитель» файлов

  11. Огромная благодарность за материал.
    Все работает. Но почему-то в форме появились две гиперссылки «Файлы».

    • делал по инструкции.
      в предприятии при попытке добавить файл пишет ошибку
      Ошибка при добавлении присоединенного файла «111.epf»:
      Значение поля «Владелец» не заполнено или заполнено неверно.

  12. Сергей, спасибо за сэкономленное время!
    УТ 11.4.13.57, всё работает, только регистр сведений называется НаличиеФайлов.