Где правильно хранить прикрепленные файлы в 1С: на диске или в базе данных?

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

При внедрении систем с интенсивным электронным документооборотом, таких как 1С:Документооборот, 1С:ERP или 1С:Управление торговлей, перед системными администраторами и разработчиками неизбежно встает вопрос: где физически размещать прикрепленные файлы (сканы, PDF, офисные документы)? Платформа 1С предлагает два классических варианта: хранение непосредственно в таблицах базы данных (в виде типа ValueStorage) или во внешних томах на диске (через сетевые пути). Рассмотрим подробно каждый из этих подходов, проанализируем их влияние на производительность и выберем оптимальную стратегию для вашей информационной системы.

Вариант 1: Хранение файлов внутри базы данных

Этот метод используется в 1С «по умолчанию». Все бинарные данные упаковываются и записываются в таблицы СУБД (MS SQL Server, PostgreSQL или файловую 1cv8.1cd). Разберем, какие преимущества и скрытые угрозы несет в себе этот способ.

Преимущества хранения в БД:

  1. Целостность и консистентность: Это главный плюс. Когда файлы лежат внутри базы, они являются частью транзакционной модели. Если вы делаете бэкап базы, вы гарантированно получаете и все файлы на этот момент времени. Исключена ситуация «битых ссылок», когда запись в базе есть, а файл на диске отсутствует.
  2. Упрощенное администрирование: Вам не нужно настраивать права доступа к сетевым папкам, следить за доступностью NAS или переживать о том, что антивирус заблокирует файл в каталоге. Все данные защищены механизмами СУБД и правами доступа 1С (включая RLS).
  3. Легкость развертывания копий: При создании тестовой среды для разработчиков достаточно просто восстановить бэкап .bak. Все картинки и документы «подтянутся» автоматически.

Недостатки и риски:

Вариант 2: Хранение файлов в томах на диске

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

Преимущества хранения на диске:

  1. Минимальный размер базы данных: Информационная база остается «легкой». Это позволяет выполнять бэкапы основной базы за считанные минуты и использовать быстрые SSD только для критически важных данных СУБД.
  2. Экономия на оборудовании: Файлы можно хранить на недорогих дисковых массивах (SATA/NL-SAS) или NAS, в то время как база данных будет работать на дорогих и быстрых NVMe накопителях.
  3. Удобство в распределенных системах (РИБ): Если у вас настроен обмен данными, передача огромных файлов внутри сообщений обмена может «парализовать» каналы связи. Хранение на диске позволяет более гибко управлять передачей контента.

Проблемы и сложности:

Технический анализ: Влияние на обслуживание (Maintenance)

Проанализируем ситуацию с точки зрения эксплуатации. Когда файлы хранятся в томах, процедура CheckDB (проверка целостности) выполняется максимально быстро. Если же база весит 2 Тб из-за файлов, любая ошибка на уровне страниц данных может привести к тому, что база уйдет в Emergency mode на несколько суток для восстановления. Рассмотрим также фрагментацию: частое удаление и запись файлов в базу создают сильную фрагментацию страниц, что требует регулярного выполнения Shrink, который сам по себе является тяжелой операцией.

Выясним причину, почему многие крупные внедрения выбирают дисковое хранение. Это связано с линейным масштабированием. Проще добавить еще один недорогой сервер хранения (Storage Server), чем бесконечно наращивать дисковое пространство на дорогом SQL-сервере.

Новый путь: S3-совместимые хранилища

Начиная с современных версий платформы (8.3.15+), появилась возможность использовать облачные объектные хранилища по протоколу S3. Это «золотая середина». Рассмотрим подробнее:

Практические рекомендации по настройке

Если вы решили перенести файлы на диск в типовой конфигурации (например, в «1С:Документооборот»), разберем по шагам, на что обратить внимание:

  1. Перейдите в раздел Администрирование — Настройки работы с файлами.
  2. Установите флаг «Хранить файлы в томах на диске».
  3. Создайте новый Том. Укажите путь в формате UNC (например, \\ServerName\FilesStorage). Важно: Служба сервера 1С:Предприятие (от имени которой запущен процесс rphost) должна иметь полные права (Full Control) на эту папку.
  4. Настройте правила очистки: 1С умеет автоматически создавать подпапки (например, по годам и месяцам). Не допускайте хранения более 10 000 файлов в одной директории, так как это замедляет работу файловой системы (особенно NTFS).

Проанализируем ситуацию с дубликатами. При хранении на диске в Windows Server можно включить роль Дедупликация данных. Если пользователи часто сохраняют одни и те же инструкции или шаблоны под разными именами, эта технология позволит сэкономить до 30-50% дискового пространства на уровне операционной системы, что невозможно при хранении внутри SQL-базы.

Резюме: что же выбрать?

Подведем итог нашему анализу:

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

← На главную