В библиотеке стандартных подсистем (БСП) есть механизм присоединенных файлов. Он позволяет добавлять любые файлы к объектам 1С.
При разработке расширений для своих объектов тоже хочется воспользоваться этим типовым механизмом.
В этой статье пошагово расскажу, как это можно сделать для новых объектов добавленных в свое расширение.
1️⃣ Вводные данные
И так у нас есть расширение в нем есть произвольный справочник и для этого справочника нужно организовать возможность прикрепления файлов, как это сделано в типовой конфигурации.
2️⃣ Создание справочника — ПрисоединенныеФайлы
Нам нужно создать справочник, где будут храниться прикрепленные файлы. Этот справочник создается по определенным правилам:
1. Имя формируется по шаблону: ИмяСправочникаВладельца + ПрисоединенныеФайлы. Например, в нашем случае имя будет — Расш1_Справочник1ПрисоединенныеФайлы.
2. У этого справочника должны быть добавлены обязательные реквизиты:
Добавлять их "руками" достаточно трудоемко, тем более они имеют различны типы данных в том числе и ссылочные, которые нужно будет перенести и в наше расширение. Тут можно пойти следующим путем:
1. Копируем в расширение (не через добавление в расширение, а именно копипастом) любой типовой справочник ПрисоединенныхФайлов, например — НоменклатураПрисоединенныеФайлы:
При копировании справочника будет выдано сообщение, что часть типов данных не перенесена. Эти объекты нужно будет добавить в расширение "руками". И после назначить реквизитам соответствующие типы:
По факту нам нужно добавить в расширение:
- Справочник — Пользователи. Реквизиты: Автор, Изменил, Редактирует
- Справочник — ТомаХраненияФайлов. Реквизит: Том
- Перечисление — СтатусыИзвлеченияТекстаФайлов. Реквизит: СтатусИзвлеченияТекста
- Перечисление — ТипыХраненияФайлов. Реквизит: ТипХраненияФайла
2. Для реквизита ВладелецФайла, указываем тип: СправочникСсылка.Расш1_Справочник1
3. Незабываем переименовать скопированный справочник в Расш1_Справочник1ПрисоединенныеФайлы
3️⃣ Переопределение Определяемых типов
Добавляем в расширение определяемы типы и назначаем им нужные типы данных:
- ВладелецПрисоединенныхФайлов. Тип: СправочникСсылка.Расш1_Справочник1
- ВладелецПрисоединенныхФайловОбъект. Тип: СправочникОбъект.Расш1_Справочник1
- ПрисоединенныйФайл. Тип: СправочникСсылка.Расш1_Справочник1ПрисоединенныеФайлы
- ПрисоединенныйФайлОбъект. Тип: СправочникОбъект.Расш1_Справочник1ПрисоединенныеФайлы
- ПодписанныйОбъект. Тип: СправочникСсылка.Расш1_Справочник1ПрисоединенныеФайлы
- ВладелецЗначенийКлючейДоступа. Тип: СправочникСсылка.Расш1_Справочник1
- ВладелецЗначенийКлючейДоступаОбъект. Тип: СправочникОбъект.Расш1_Справочник1ПрисоединенныеФайлы
4️⃣ Переопределение подписки на событие
Добавляем в расширение подписку на событие: ПереопределитьПолучаемуюФормуПрисоединенногоФайла
В качестве источника указываем: СправочникМенеджер.Расш1_Справочник1ПрисоединенныеФайлы
По итогу конфигурация расширения будет выглядеть вот так:
5️⃣ Проверка
Давайте проверим работу. Открываем справочник и видим команду Файлы в меню навигации формы:
На этом все!