Как настроить хранение прикрепленных файлов вне базы в 1С:УПП 1.3?

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

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

Рассмотрим подробнее, почему так происходит, проанализируем архитектурные ограничения платформы и разберем проверенные способы решения этой задачи.

Причина поведения программы: почему файлы сохраняются в базу

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

  1. Механизм прикрепления прикладываемых файлов: В типовом решении УПП 1.3 механизм прикрепления файлов к произвольным документам и справочникам организован через справочник ХранилищеДополнительнойИнформации. Содержимое файлов сохраняется непосредственно в реквизит с типом ХранилищеЗначений. Это означает, что бинарные данные физически записываются в таблицы СУБД, увеличивая размер информационной базы.
  2. Изолированность настройки томов ЭДО: Константы и настройки в меню Настройка программы -> Электронные документы -> Хранить файлы в томах на диске распространяются исключительно на подсистему **Электронного документооборота (ЭДО)** (например, при обмене электронными счетами-фактурами или актами с контрагентами). Обычные сканы документов не относятся к подсистеме ЭДО, поэтому программа игнорирует данные константы при загрузке обычных вложений.

Способы выноса хранения файлов за пределы информационной базы

Разберем основные варианты решения задачи по выгрузке файлов из базы данных на внешний диск или в сторонние системы.

1. Доработка справочника «Хранилище дополнительной информации»

Посмотрим на вариант с минимальной модификацией типового функционала. В этом случае мы изменяем структуру справочника ХранилищеДополнительнойИнформации и логику работы с ним:

  1. Добавляем в справочник реквизиты для хранения имени файла и относительного пути к нему на файловом сервере.
  2. В модулях работы с файлами переписываем процедуру записи: при отправке файла данные сохраняются на сетевой диск, а реквизит типа ХранилищеЗначений очищается или не заполняется.
  3. При открытии или считывании файла программа берет путь из реквизита и считывает файл из каталога.

2. Создание нетипового регистра сведений

Если требуется сохранить типовой справочник без изменений, создаем отдельный регистр сведений (например, ПрикрепленныеФайлыДокументов):

  1. Задаем измерения: ОбъектСсылка (ссылка на документ УПП) и ИмяФайла.
  2. Задаем ресурсы: ПутьКФайлу (текстовая строка с UNC-путем) и ДатаЗагрузки.
  3. На форму нужных документов выносим гиперссылку или отдельную форму для просмотра и прикрепления файлов. При добавлении скан копируется в общую папку, а в регистре сохраняется путь.

3. Бесшовная интеграция с «1С:Документооборот»

Наиболее масштабируемый и архитектурно правильный вариант — использование веб-сервиса интеграции DMService для связи 1С:УПП 1.3 с базой «1С:Документооборот»:

  1. Пользователи работают в привычном интерфейсе 1С:УПП 1.3 и нажимают кнопку прикрепления файлов к документу.
  2. Физически файлы отправляются в базу «1С:Документооборот», где штатно работает механизм размещения файлов в томах на диске, контроль версий и разграничение прав доступа.
  3. В базе УПП 1.3 хранятся только ссылки на связанные объекты.

Ограничения платформы 1С и требования к инфраструктуре

Проанализируем технические нюансы, которые необходимо учесть при настройке работы с внешними каталогами:

  1. Права учетной записи сервера 1С:Предприятия: В клиент-серверном режиме запись и чтение файлов осуществляются от имени службы сервера 1С (процесс rphost). Пользователь ОС (например, USR1CV8), под которым запущена служба сервера 1С, должен иметь полные права (чтение, запись, изменение) на расшаренную сетевую папку.
  2. Формат пути к хранилищу: Сетевые пути должны указываться исключительно в UNC-формате вида \\server\share\folder. Диски, подключенные под буквами (например, Z:\...) на пользовательских ПК, сервер 1С распознать не сможет.
  3. Работа в среде Linux: Если сервер 1С:Предприятия функционирует под управлением ОС Linux, UNC-пути Windows не поддерживаются напрямую. Сетевой ресурс SMB/NFS должен быть предварительно смонтирован в файловую систему Linux (например, в /mnt/storage), а в программе указывается локальный POSIX-путь к смонтированной директории.
← На главную