Как реализовать механизм присоединения файлов в 1С на базе БСП

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом IT и автоматизация бизнеса
← На главную

При разработке в современных конфигурациях 1С, таких как Зарплата и управление персоналом 3.1, ERP или Бухгалтерия предприятия 3.0, часто возникает задача добавить возможность прикрепления внешних файлов (сканов документов, PDF, Word) к объектам системы — визуально контролировать вложения в списках поможет отображение значка наличия файлов в списках документов 1С. В таких конфигурациях используется БСП (Библиотека стандартных подсистем), которая уже содержит мощный модуль РаботаСФайлами. Рассмотрим подробно, как правильно интегрировать этот функционал в ваш объект метаданных.

Шаг 1. Подготовка метаданных: создание справочника для хранения файлов

Прежде чем писать программный код, нам необходимо подготовить структуру в дереве конфигурации. Для каждого основного объекта (например, справочника ФизическиеЛица), к которому мы хотим прикреплять файлы, должен существовать вспомогательный справочник — автоматизировать этот процесс на практике поможет автоматическое прикрепление файлов к карточкам 1С. Проанализируем, как это сделать правильно:

  1. Найдите в вашей конфигурации справочник Файлы или любой существующий справочник присоединенных файлов (например, ОрганизацииПрисоединенныеФайлы).
  2. Создайте новый справочник с именем ФизическиеЛицаПрисоединенныеФайлы. Лучше всего сделать это копированием аналогичного справочника из БСП, чтобы сохранились все реквизиты: Автор, ДатаСоздания, Расширение, ХранилищеДиректории и табличные части.
  3. В созданном справочнике установите владельца — наш основной справочник ФизическиеЛица.

Шаг 2. Настройка определяемых типов

Система БСП должна «узнать» о том, что ваш новый справочник теперь участвует в механизме работы с файлами. Для этого разберем настройку определяемых типов:

Шаг 3. Программная реализация в модуле формы

Теперь перейдем к самому интересному — оживлению интерфейса. Чтобы на форме справочника ФизическиеЛица появилась кнопка управления файлами и гиперссылка, нам нужно добавить вызовы процедур БСП в модуль формы. Рассмотрим пример кода, который необходимо разместить в форме элемента:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // СтандартныеПодсистемы.РаботаСФайлами
    ПараметрыГиперссылки = РаботаСФайлами.ГиперссылкаФайлов();
    ПараметрыГиперссылки.Размещение = "КоманднаяПанель";
    РаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыГиперссылки);
    // Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    // СтандартныеПодсистемы.РаботаСФайлами
    РаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
    // Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
    // СтандартныеПодсистемы.РаботаСФайлами
    РаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия);
    // Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры

Обратите внимание на параметр Размещение. Значение КоманднаяПанель создаст кнопку в верхней части формы. Если вы хотите видеть гиперссылку в определенном месте формы, можно указать имя группы или элемента.

Шаг 4. Обработка команд и Drag-and-drop

Для того чтобы команды управления файлами (добавление, просмотр, редактирование) корректно работали, необходимо добавить стандартные подключаемые процедуры. Проанализируем ситуацию, когда пользователь хочет просто перетащить файл мышкой на форму:


#Область СтандартныеПодсистемы_РаботаСФайлами

&НаКлиенте
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)
    РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
    РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
    РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры

#КонецОбласти

Не забудьте, что для работы этих процедур на самой форме должны быть созданы соответствующие команды с именами, начинающимися на Подключаемый_, или система должна автоматически их подхватить через механизм БСП.

Шаг 5. Настройка места хранения файлов

Выясним причину, по которой база 1С может начать быстро расти после внедрения этого функционала. По умолчанию файлы сохраняются прямо в информационную базу (в SQL-таблицы). Выясним, как этого избежать:

  1. Зайдите в режим «1С:Предприятие» под правами администратора.
  2. Перейдите в раздел Администрирование — Настройки параметров системы — Работа с файлами.
  3. Настройте Тома хранения файлов. Создайте новый том, указав путь к сетевой папке.
  4. Установите переключатель «Хранить файлы в томах на диске» — быстро перенести накопленные вложения из базы данных поможет перенос файлов из базы 1С в тома на диске.

Это позволит хранить тяжелые документы отдельно от базы данных, что значительно ускорит процесс резервного копирования и повысит стабильность системы. При необходимости гибкой настройки томов в зависимости от типа объекта можно использовать расширение для сохранения файлов в разные тома.

Важные нюансы и советы

Разберем несколько важных моментов, которые часто упускают начинающие разработчики:

Таким образом, использование стандартной подсистемы 1С:БСП позволяет реализовать профессиональный механизм работы с файлами всего за несколько шагов, обеспечивая при этом высокую надежность и удобство для конечного пользователя.

← На главную