Задача: организовать прикрепление и хранение файлов в документе. Желательно используя «штатный велосипед» 1С.
Решение:
Всё зависит от БСП на основе которой построена Ваша конфигурация. В моем случае, конфигурация Бухгалтерия 3.0.75.100, БСП 3.1.25
Узнать версию БСП можно при помощи:
|
Сообщить(СтандартныеПодсистемыСервер.ВерсияБиблиотеки()); |
Далее если есть подписка на ИТС, читаем тут или если нет, то у меня 😉
1) Чтобы ручками не заполнять все реквизиты, копируем справочник «ПередачаТоваровПрисоединенныеФайлы», копию переименовываем в <ИмяМоегоДокумента>ПрисоединенныеФайлы. В моем случае документ носит имя «Абоненты». Далее на скриншотах и в тексте я его так и буду называть. В Вашем случае это будет Ваш справочник/документ.
В реквизите «ВладелецФайла» указываем наш документ
2) В состав определяемых типов ПрисоединенныйФайл (ссылки) и ПрисоединенныйФайлОбъект (объекты) добавим наш документ:
3) Включить в состав плана обмена ОбновлениеИнформационнойБазы
4) Добавить источники у подписк и «ПереопределитьПолучаемуюФормуПрисоединенногоФайла» и «УстановитьПометкуУдаленияПрисоединенныхФайловДокументов»
5) Добавить в состав определяемых типов ВладелецПрисоединенныхФайлов (ссылки) и ВладелецПрисоединенныхФайловОбъект (объекты)
Если перед закрытием формы объекта-владельца файлов требуется проверить наличие занятых текущим пользователем файлов, то необходимо:
- Добавить реквизит формыМожноЗакрытьФормуСФайламитипа Булево.
- В обработчике формыПередЗакрытиемвставить вызов процедуры ПоказатьПодтверждениеЗакрытияФормыСФайлами общего модуля РаботаСФайламиКлиент по шаблону:
|
&НаКлиенте Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) РаботаСФайламиКлиент.ПоказатьПодтверждениеЗакрытияФормыСФайлами(ЭтотОбъект, Отказ, Объект.Ссылка); КонецПроцедуры |
- Другой код, который необходимо выполнять в обработчикеПередЗакрытием, следует размещать после вызова процедуры и проверки параметраОтказ. Например:
|
&НаКлиенте Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) РаботаСФайламиКлиент.ПоказатьПодтверждениеЗакрытияФормыСФайлами(ЭтотОбъект, Отказ, Объект.Ссылка); Если Отказ Тогда Возврат; КонецЕсли; <другой код...> КонецПроцедуры |
Результат: появившаяся «скрепочка» и список файлов по её нажатии.
Всё хорошо, одно плохо. Не понятно как это всё будет себя вести при обновлении. Предполагаю что галочки эти нужно будет расставлять каждый раз.