Работа с файлами в расширении

Печать (Ctrl+P)

Подсистема работа с файлами БСП.

Расширение стандартной подсистемы работы с файлами

Для использования подсистемы Работа с файлами и подсистемы Присоединенные файлы в расширении прикладных решений, созданных на базе БСП 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

Полный список дополнительных отчетов и обработок можно посмотреть здесь

Previous Article
Next Article

5 Replies to “Работа с файлами в расширении”

  1. Николай

    Подскажите, а можете для особо одаренных начинающих программистов выложить расширение из примера?

    • master1c8

      Не могу Николай. Это уникальная работа стоит деньги. Этот функционал входит в одном из моих проектов “Согласование платежей” в расширении. В этой статьи я показываю, что возможно присоединить файлы в расширении с использованием подсистемы “Работа с файлами” из библиотеки БСП, несмотря на то, что объекты “Определяемые типы” не поддерживаются в расширении.

    • master1c8

      За деньги я мог бы послать демо расширение для любой конфигурации на базе БСП 3.1. Задание заключается в том, что нужно в расширяемой конфигурации на базе БСП 3.1 создать в расширении новый вид документ и присоединить к нему файлы с использование функционала “Работа с файлами”. Данная задача имеет практическое значение , но требует подключения расширения в небезопасном режиме. Расценка моих услуг 1000 р в час. Я потратил больше 8 часов, но могу уступить за 6 часов работы ( 6000 р =1000* 6 часов). Расширение использует все возможности функционала работы с файлами – можно хранить присоединенные файлы на томе или в двоичных данных в базе в зависимости от настройки функционала “Работа с файлами”

Добавить комментарий

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

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