Работа с файлами в расширении
Подсистема работа с файлами БСП.
Расширение стандартной подсистемы работы с файлами
Для использования подсистемы Работа с файлами и подсистемы Присоединенные файлы в расширении прикладных решений, созданных на базе БСП 3.1 (платформа 1С 8.3.14 и выше) я написал шаблон расширения.
Расширение нужно подключать в обычном ( небезопасном ) режиме потому, что используется
Расширение предназначено для полноценного применения функционала БСП 3.1 “Работа с файлами” для собственных объектов расширения, которые должны содержать присоединенные файлы («объекты с файлами»). Такими объектами, как правило, являются справочники или документы, при которых могут содержаться файлы-вложения.
Шаблон расширения с инструкциями по внедрению в прикладных расширениях стоит 8 000 р. Для его приобретения обратитесь ко мне по почте master1c8x@mail.ru
Расширение является шаблонным решением для его внедрения в прикладных решениях 1С на базе БСП 3.1. Следует отметить, что данный шаблон расширения не применим в прикладнее решениях на базе БСП 3.0 потому, что требуется совместимость с платформой 1С 8.3.14 и выше
Расширение позволяет присоединить файлы к справочникам и документам , созданных в расширении. Эти присоединенные файлы можно сохранить в двоичных данных в информационной базе или в папке общего доступа на сервере в зависимости от настройки подсистемы в разделе администрирование – настройки работы с файлами:
Если документ расширяемой конфигурации , как например, Перемещение товаров не является владельцем файлов , то для того, чтобы этот документ был владельцем в расширении, то тогда Вам нужно приобрести предлагаемый здесь шаблон расширения с инструкциями по настройке шаблона в прикладном расширении.
В предлагаемом готовом демонстрационном шаблоне расширения добавлена подсистема “Работа с файлами в расширении” с двумя владельцами файлов, созданными в расширении: Простой справочник Согл_ЦФО и простой документ Согл_ЗаявкаНаОплату без реквизитов. На практике , владельцами могут быть любой документ или справочник, который в расширяемой конфигурации не является владельцем присоединенных файлов.
Для каждого объекта – владельца нужно создавать в расширении справочник с именем
<Префикс>ПрисоединенныеФайлы,
где <Префикс> – имя объекта метаданных, для которого настраиваются присоединенные файлы. Для этого в качестве заготовки можно скопировать Согл_ЗаявкаНаОплатуПрисоединенныеФайлы. У реквизита ВладелецФайла нужно установить тип владельца файла. Например, ДокументСсылка. Согл_ЗаявкаНаОплату
В форме демонстрационного документа Согл_ЗаявкаНаОплату я добавил гиперссылки вложения для показа наименовании всех присоединенных файлов, а также добавил общую команду Присоединенные файлы в панель навигации формы Перейти
При нажатии гиперссылки или по общей команде открывается типовая форма списка присоединенных файлов для добавления, просмотра и редактирования
Важно! Одна из причин, по которой подсистема Работа с файлами и подсистема Присоединенные файлы расширяемой БСП не подходят для работы с владельцами файлами , созданными в расширении заключается в том, что платформа 1С не поддерживает свойство типа Определяемые типы в расширении.
В связи с тем, создам общий модуль Согл_РаботаСФайламиПереопределяемый , который содержит две функции МассивТиповВладельцевПрисоединенныхФайлов и МассивТиповПрисоединенныхФайлов для включения в состав массивов типы созданных владельцев и присоединенных файлов в расширении.
Присоединенные файлы в основной конфигурации хранятся в информационной базе в виде двоичных данных в регистре сведений ДвоичныеДанныеФайлов. Но из-за того, что не доступны в расширениях объекты типа Определяемые типы невозможно хранить присоединенные файлы в этом регистре и поэтому я создал копию этого регистра сведений ДвоичныеДанныеФайла и переименовал с префиксом расширения, а в свойстве тип измерения файл я указал составной тип объектов присоединённых файлов.
Также в общем модуле Согл_РаботаСФайламиПереопределяемый я создал две глобальные функции МассивТиповВладельцевПрисоединенныхФайлов :
В теле функции МассивТиповПрисоединенныхФайлов нужно включать все справочники типа ПрисоединенныеФайлы, созданные в расширении, а в теле функции МассивТиповВладельцевПрисоединенныхФайлов нужно включать владельцы этих файлов.
Общий модуль Согл_РаботаСфайлами содержит программный код обработчиков подписки на событие и функцию ЭтоПрисоединенныйФайлВРасширении куда, передается ссылка на справочник типа ПрисоединенныеФайлы для определения создан ли файл в расширении или в основной конфигурации:
Я добавил в расширение ключевые процедуры общих модулей стандартной подсистемы работы с файлами, чтобы операции записи и чтения двоичных данных файла выполнялись по новому регистру, когда владелец являлся объектом, добавленным в расширении. Во всех случаях я использовал метод замены (аннотация Вместо), например:
&Вместо("ЗаписатьФайлВИнформационнуюБазу")
Процедура Согл_ЗаписатьФайлВИнформационнуюБазу(ВерсияСсылка, ХранилищеФайла)
Если Согл_РаботаСфайлами.ЭтоПрисоединенныйФайлВРасширении(ВерсияСсылка) Тогда
Согл1_ЗаписатьФайлВИнформационнуюБазу(ВерсияСсылка, ХранилищеФайла);
иначе
ПродолжитьВызов(ВерсияСсылка, ХранилищеФайла);
КонецЕсли;
КонецПроцедуры
Процедура Согл1_ЗаписатьФайлВИнформационнуюБазу(ВерсияСсылка, ХранилищеФайла)
УстановитьПривилегированныйРежим(Истина);
МенеджерЗаписи = РегистрыСведений.Согл_ДвоичныеДанныеФайлов.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Файл = ВерсияСсылка;
МенеджерЗаписи.ДвоичныеДанныеФайла = ХранилищеФайла;
МенеджерЗаписи.Записать(Истина);
КонецПроцедуры
Шаблон расширения с инструкциями по внедрению в прикладных расширениях стоит 8 000 р. Для его приобретения обратитесь ко мне на почту master1c8x@mail.ru
Полный список дополнительных отчетов и обработок можно посмотреть здесь
Подскажите, а можете для особо одаренных начинающих программистов выложить расширение из примера?
Не могу Николай. Это уникальная работа стоит деньги. Этот функционал входит в одном из моих проектов “Согласование платежей” в расширении. В этой статьи я показываю, что возможно присоединить файлы в расширении с использованием подсистемы “Работа с файлами” из библиотеки БСП, несмотря на то, что объекты “Определяемые типы” не поддерживаются в расширении.
А за деньги данный кусочек тоже не вариант получить?
За деньги я мог бы послать демо расширение для любой конфигурации на базе БСП 3.1. Задание заключается в том, что нужно в расширяемой конфигурации на базе БСП 3.1 создать в расширении новый вид документ и присоединить к нему файлы с использование функционала “Работа с файлами”. Данная задача имеет практическое значение , но требует подключения расширения в небезопасном режиме. Расценка моих услуг 1000 р в час. Я потратил больше 8 часов, но могу уступить за 6 часов работы ( 6000 р =1000* 6 часов). Расширение использует все возможности функционала работы с файлами – можно хранить присоединенные файлы на томе или в двоичных данных в базе в зависимости от настройки функционала “Работа с файлами”
Цена вполне приемлемая.