Ниже представлена инструкция, как подключить новый документ к подсистеме присоединенных файлов.
Настройки необходимо будет выполнить в режиме "Конфигуратор".
Например, в типовой конфигурации у документа "Отчет производства за смену" отсутствует возможность прикреплять файлы.
1. Необходимо создать в расширении справочник, с именем документа + "ПрисоединенныеФайлы", можно скопировать с конфигурации, например "АвансовыйОтчетПрисоединенныеФайлы":
2. Меняем владельца у справочника на документ "ОтчетПроизводстваЗаСмену" (в расширении):
3. Расширяем (добавляем) тип документа "ДокументСсылка.ОтчетПроизводстваЗаСмену" в следующих объектах (в расширении):
ОпределяемыйТип.ПФ_ВладелецПрисоединенныхФайлов.Тип
ОбщаяКоманда.ПФ_ПрисоединенныеФайлы.ТипПараметраКоманды
Справочник.ОтчетПроизводстваЗаСменуПрисоединенныеФайлы.Реквизит.ВладелецФайла.Тип
РегистрСведений.ПФ_НаличиеФайлов.Измерение.ОбъектСФайлами.Тип
РегистрСведений.ПФ_СведенияОФайлах.Ресурс.ВладелецФайла.Тип
РегистрСведений.ПФ_НомераОтсканированныхФайлов.Измерение.Владелец.Тип
4. Расширяем (добавляем) тип нового справочника "СправочникСсылка.ОтчетПроизводстваЗаСменуПрисоединенныеФайлы" в следующих объектах (в расширении):
ПодпискаНаСобытие.ВыполнитьДействияПередЗаписьюПрисоединенногоФайла.Источник
ПодпискаНаСобытие.ВыполнитьДействияПередУдалениемПрисоединенногоФайла.Источник
ПодпискаНаСобытие.ВыполнитьДействияПередУдалениемПрисоединенногоФайлаБРО.Источник
ПодпискаНаСобытие.ВыполнитьДействияПриЗаписиПрисоединенногоФайла.Источник
ПодпискаНаСобытие.ВыполнитьДействияПриЗаписиПрисоединенногоФайлаБРО.Источник
ПодпискаНаСобытие.ОбработкаПроверкиЗаполненияПрисоединенногоФайла.Источник
ОпределяемыйТип.ПФ_ПрисоединенныйФайл.Тип
ОпределяемыйТип.ПФ_ПрисоединенныйФайлОбъект.Тип
РегистрСведений.ПФ_ДвоичныеДанныеФайлов.Измерение.Файл.Тип
РегистрСведений.ПФ_СведенияОФайлах.Измерение.Файл.Тип
РегистрСведений.ПФ_КодировкиФайлов.Измерение.Файл.Тип
5. Изменяем тип значения параметров: ВладелецФайла, Ключ, ПрисоединенныйФайл на форме "присоединенный файл":
6. Добавляем форму списка документа в расширение, создаем процедуру "ПриСозданииНаСервере", и программно меняем текст запроса динамического списка (в расширении):
&НаСервере
Процедура ПФ_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
Список.ТекстЗапроса = СтрЗаменить(Список.ТекстЗапроса,
" ДокументОтчетПроизводстваЗаСмену.ВидОперации КАК ВидОперации",
" ДокументОтчетПроизводстваЗаСмену.ВидОперации КАК ВидОперации,
|ВЫБОР
|КОГДА ПФ_НаличиеФайлов.ЕстьФайлы ЕСТЬ NULL
| ТОГДА 1
|КОГДА ПФ_НаличиеФайлов.ЕстьФайлы
| ТОГДА 0
|ИНАЧЕ 1
|КОНЕЦ КАК ПФ_ЕстьФайлы");
Список.ТекстЗапроса = СтрЗаменить(Список.ТекстЗапроса,
" Документ.ОтчетПроизводстваЗаСмену КАК ДокументОтчетПроизводстваЗаСмену",
" Документ.ОтчетПроизводстваЗаСмену КАК ДокументОтчетПроизводстваЗаСмену
| {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПФ_НаличиеФайлов КАК ПФ_НаличиеФайлов
| ПО ДокументОтчетПроизводстваЗаСмену.Ссылка = ПФ_НаличиеФайлов.ОбъектСФайлами}");
ПФ_ЕстьФайлы = Элементы.Добавить("ПФ_ЕстьФайлы", Тип("ПолеФормы"), Элементы.Список);
ПФ_ЕстьФайлы.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
ПФ_ЕстьФайлы.Вид = ВидПоляФормы.ПолеКартинки;
ПФ_ЕстьФайлы.ПутьКДанным = "Список.ПФ_ЕстьФайлы";
ПФ_ЕстьФайлы.КартинкаЗначений = БиблиотекаКартинок.Скрепка;
ПФ_ЕстьФайлы.КартинкаШапки = БиблиотекаКартинок.Скрепка;
Элементы.Переместить(ПФ_ЕстьФайлы, Элементы.Список, Элементы.Дата);
КонецПроцедуры
6. После проделанных манипуляций, появляется возможность добавлять файл к документу:
Протестировано на версии: Бухгалтерия предприятия, редакция 3.0 (3.0.143.42).
Версия платформы: 1С:Предприятие 8.3 (8.3.23.1912).
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.159.23