В современных конфигурациях на базе 1С:Предприятие 8.3, таких как 1С:ERP 2.4, функционал работы с файлами реализован через механизмы Библиотеки стандартных подсистем (БСП). Это мощный инструмент, который позволяет не «изобретать велосипед», а использовать уже готовые интерфейсные решения и логику хранения данных. Однако для корректной работы этого механизма недостаточно просто нажать одну кнопку — требуется внести ряд изменений в метаданные и программный код. Рассмотрим подробно, как реализовать эту задачу.
Первым делом проанализируем, как система понимает, к какому объекту можно прикреплять файлы. В БСП для этого используются определяемые типы. Это позволяет подсистеме «Работа с файлами» взаимодействовать с любыми документами конфигурации без необходимости менять код самой подсистемы.
Нам необходимо найти в дереве метаданных следующие определяемые типы и добавить в них наш документ:
ВладелецПрисоединенныхФайлов — сюда добавляем ссылку на наш документ (ДокументСсылка.ИмяВашегоДокумента). Это основной тип, указывающий, что объект может иметь вложения.ВладелецПрисоединенныхФайловОбъект — сюда добавляем объект документа (ДокументОбъект.ИмяВашегоДокумента). Это необходимо для работы механизмов при записи и удалении.ВладелецФайлов — еще один важный тип для интеграции с общими формами списка файлов.Проанализируем ситуацию: если мы ограничимся только этим шагом, система всё равно не будет знать, в какой именно таблице хранить данные о файлах для конкретного типа документа. БСП требует создания отдельного справочника для каждого вида документа.
Для каждого документа, который должен поддерживать вложения, создается вспомогательный справочник. Рассмотрим стандарт именования: обычно он называется ИмяВашегоДокумента + ПрисоединенныеФайлы (например, ЗаказКлиентаПрисоединенныеФайлы).
Вместо создания справочника «с нуля», мы рекомендуем скопировать уже существующий справочник из состава типовой конфигурации. Это сэкономит массу времени, так как такой справочник содержит десятки реквизитов (Автор, ДатаСоздания, Расширение, ХранитьНаДиске, Том и другие), которые необходимы для корректной работы БСП.
После копирования или создания справочника выполним следующие настройки:
ПрисоединенныйФайл (добавляем СправочникСсылка...ПрисоединенныеФайлы);ПрисоединенныйФайлОбъект (добавляем СправочникОбъект...ПрисоединенныеФайлы).Теперь разберем, как вывести заветную кнопку со «скрепкой» на форму документа. В управляемых формах 1С:ERP 2.4 это делается программно в модуле формы. Нам нужно инициализировать подсистему при создании формы на сервере.
Откроем модуль формы вашего документа и добавим следующий код в процедуру ПриСозданииНаСервере:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Подготовка параметров для инициализации подсистемы работы с файлами
ПараметрыРаботыСФайлами = Новый Структура;
ПараметрыРаботыСФайлами.Вставить("ГруппаКоманд", Элементы.ГруппаГлобальныеКоманды); // Укажите вашу группу команд
// Вызов метода БСП для настройки интерфейса
РаботаСФайлами.ПриСозданииНаСервере(ЭтаФорма, ПараметрыРаботыСФайлами);
КонецПроцедуры
Также важно убедиться, что в форме документа присутствуют стандартные команды. Если вы используете типовые шаблоны форм ERP, кнопки добавятся автоматически в командную панель. Если же форма уникальная, проанализируем необходимость добавления элемента формы типа «Группа» с видом «Командная панель», где будут отображаться подключаемые команды БСП.
Выясним причину, по которой у некоторых пользователей кнопка может не появиться или не работать. Всё дело в правах доступа. Для нового справочника ...ПрисоединенныеФайлы необходимо настроить роли. Как правило, в системе уже есть роли вроде ЧтениеПрисоединенныхФайлов или ДобавлениеИзменениеПрисоединенныхФайлов.
Однако, так как ваш справочник новый, вам нужно либо создать для него отдельные роли, либо добавить его в существующие профили групп доступа. Без прав на чтение и запись в этот справочник пользователь не сможет взаимодействовать с файлами, даже если кнопка видна на форме.
При активном добавлении файлов (сканы договоров, PDF-инвойсы, архивы) объем базы данных может начать расти лавинообразно. Проанализируем, как этого избежать. В 1С:ERP предусмотрен механизм хранения файлов в томах на диске.
Разберем по шагам, как это настроить в пользовательском режиме:
\\ServerName\Files1C\).После этой настройки сама база (SQL или файловая) будет содержать только ссылки на файлы и метаданные, а сами «тяжелые» данные будут лежать в структурированном виде на диске. Это значительно ускоряет процесс резервного копирования базы данных.
Рассмотрим ситуацию: пользователь пометил документ на удаление. Что должно произойти с файлами? По правилам хорошего тона, они также должны быть помечены на удаление. В БСП за это отвечают подписки на события. Проверьте, включен ли ваш новый справочник присоединенных файлов в состав подписок, таких как УстановитьПометкуУдаленияПрисоединенныхФайлов. Это гарантирует, что система не будет хранить «мусорные» файлы, потерявшие связь со своими владельцами.
Важный момент: если вы планируете использовать шаблоны документов (например, автоматическое заполнение Word-файлов данными из документа), ваш справочник также должен быть интегрирован с подсистемой «Шаблоны сообщений». Это требует настройки соответствующих метаданных в определяемом типе ИсточникШаблонаСообщения.
Таким образом, процесс добавления вложений — это комплексная задача, охватывающая настройку метаданных, программную инициализацию в формах и администрирование прав и способов хранения. Использование механизмов БСП в ERP 2.4 позволяет сделать это максимально надежно и в соответствии с архитектурой типового решения.