К статье
Практический материал

Администрирование · 11 мин

Как хранить файлы в 1С: способы и настройка

Как хранить файлы в 1С: справочник присоединенных файлов, тома на диске, хранение в базе и внешних хранилищах. Настройка, ограничения и типичные ошибки.

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

Основных подхода три: хранение файлов внутри информационной базы (в таблицах СУБД), хранение в томах на диске с привязкой к объектам базы и использование внешних хранилищ. В типовых конфигурациях на базе Библиотеки стандартных подсистем (БСП) эти варианты уже реализованы через подсистему «Работа с файлами» — достаточно правильно её настроить.

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

Какие механизмы хранения файлов есть в 1С

Платформа и типовые библиотеки предоставляют несколько уровней решения. На уровне платформы есть тип ХранилищеЗначения, который позволяет положить в реквизит объекта любые двоичные данные в сжатом виде. Это самый простой способ, но у него нет встроенного интерфейса для пользователя — всё придётся программировать самостоятельно.

На уровне БСП существует подсистема «Работа с файлами», которая включает справочники присоединенных файлов (например, «ПрисоединенныеФайлы» или специализированные вроде «НоменклатураПрисоединенныеФайлы»), версионирование, подписание, заимствование файлов и обмен с томами. Именно этот механизм используется в «Управлении торговлей», «ERP», «Бухгалтерии предприятия» и других типовых решениях.

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

Хранение файлов в информационной базе

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

Плюсы подхода: единая резервная копия (файлы не потеряются отдельно от базы), работа через веб-клиент и тонкий клиент без доступа к сетевым папкам, корректная работа в сервисах вроде 1С:Фреш. Минусы: база быстро растёт, выгрузка в DT и бэкапы занимают больше времени, при больших объёмах (десятки гигабайт сканов) возможно замедление работы СУБД.

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

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

Том — это каталог на сервере или сетевом ресурсе, куда 1С складывает файлы, а в базе сохраняет только относительный путь. Настройка выполняется в разделе администрирования (в типовых конфигурациях: «Настройки работы с файлами» → «Хранить файлы в томах на диске»), где создаются элементы справочника «Тома хранения файлов» с указанием полного пути к каталогу.

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

Настройка присоединенных файлов в типовой конфигурации

В конфигурациях на БСП механизм уже встроен, его нужно только включить и настроить. Порядок действий для администратора выглядит так.

Порядок настройки
  1. 1
    Откройте раздел «Администрирование» → «Общие настройки» (или «Настройки работы с файлами») и включите опцию использования присоединенных файлов.
  2. 2
    Определите способ хранения: в информационной базе или в томах на диске. Для томов создайте каталог и пропишите путь в справочнике томов.
  3. 3
    Задайте максимальный размер загружаемого файла, если требуется ограничить загрузку больших видео или архивов.
  4. 4
    Проверьте права: у ролей пользователей должно быть разрешение на добавление и изменение присоединенных файлов нужных объектов.
  5. 5
    Прикрепите тестовый файл к любому документу, откройте его из базы и убедитесь, что файл читается корректно.

После включения во многих формах объектов появляется команда «Присоединенные файлы» или скрепка на панели. Если команда не появилась — проверьте, что функциональная опция включена и у пользователя есть соответствующие права.

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

Программное хранение файлов в самописных конфигурациях

Если конфигурация разрабатывается с нуля без БСП, минимальный вариант — реквизит типа ХранилищеЗначения в справочнике или документе. В него помещаются двоичные данные файла:

ДвоичныеДанные = Новый ДвоичныеДанные("C:\Docs\dogovor.pdf");

Объект.ФайлДанные = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9));

Объект.ИмяФайла = "dogovor.pdf";

Объект.Записать();

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

bsl
ПараметрыФайла = РаботаСФайлами.ПараметрыДобавленияФайла();
ПараметрыФайла.ВладелецФайлов = ДокументСсылка;
ПараметрыФайла.ИмяБезРасширения = "Акт";
ПараметрыФайла.РасширениеБезТочки = "pdf";
ПрисоединенныйФайл = РаботаСФайлами.ДобавитьФайл(ПараметрыФайла, ПоместитьВоВременноеХранилище(ДвоичныеДанные));

Сравнение способов хранения

КритерийВ базеВ томах на дискеХранилищеЗначения (самописное)
Рост базы данныхБыстрыйМинимальныйБыстрый
Резервное копированиеЕдиная копияБаза и тома отдельноЕдиная копия
Готовый интерфейсДа (БСП)Да (БСП)Нет
ВерсионированиеДаДаНет
Подходит для больших объёмовОграниченноДаНет
Маршрут решения

Как выбрать способ

Файлов немного (счета, подписи, небольшие сканы) и важна простота бэкапаХраните в информационной базе — это режим по умолчанию и самый надёжный для малых объёмов
Ежедневно загружаются десятки сканов, фото или архивов, база растёт на гигабайтыВключите хранение в томах на диске и настройте отдельное резервное копирование каталогов
Конфигурация самописная без БСП и файлов малоИспользуйте реквизит типа ХранилищеЗначения с обязательным хранением имени и расширения файла
Требуется доступ к файлам извне (сайт, мобильное приложение)Рассмотрите тома или интеграцию с внешним хранилищем через HTTP/API

Резервное копирование и перенос файлов

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

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

Контрольные точки

Как проверить результат

Открытие файла из карточки объекта
Норма

Файл открывается в ассоциированной программе, содержимое читается

Тревожный признак

Ошибка «файл не найден» или пустой/битый документ

Наличие файла в томе
Норма

В каталоге тома появился файл с служебным именем в подкаталоге по дате

Тревожный признак

Каталог пуст при включённом хранении в томах

Размер базы после загрузки файлов
Норма

При хранении в томах размер базы почти не меняется

Тревожный признак

База растёт пропорционально загруженным файлам — значит, данные пишутся в базу

Резервная копия
Норма

Архивируются и база, и каталоги томов с одинаковой датой

Тревожный признак

Копируется только база — файлы в томах не защищены

Типичные ошибки и ограничения

Типичные ошибки
01
Хранение больших видео и архивов в базе — приводит к разрастанию СУБД и долгим бэкапам; такие файлы лучше держать в томах или вне 1С.
02
Указание тома на локальный диск клиента в клиент-серверном режиме — файл запишется, но будет недоступен другим пользователям.
03
Отсутствие резервного копирования томов — при сбое диска файлы теряются безвозвратно, хотя база цела.
04
Перенос папки тома вручную без изменения пути в справочнике томов — все ссылки на файлы перестают работать.
05
Загрузка файлов без ограничения размера — один пользователь может загрузить файл, который заметно замедлит выгрузку базы.

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

Итог

Что важно запомнить

В типовых конфигурациях используйте подсистему «Работа с файлами»: малые объёмы храните в базе, большие — в томах на диске с отдельным резервным копированием. Проверяйте открытие файлов после любой смены настроек и никогда не переносите каталоги томов без обновления путей в базе.

Частые вопросы

Куда физически записываются файлы при хранении в базе?

Двоичные данные сохраняются в таблицах СУБД вместе с остальными данными информационной базы. Отдельного файла на диске не создаётся — достать документ можно только через 1С или прямым запросом к базе, что не рекомендуется.

Можно ли перенести уже накопленные файлы из базы в тома?

Да, для конфигураций на БСП существуют штатные и внешние обработки переноса. Перед запуском сделайте полную резервную копию, убедитесь в достаточном объёме диска и выполняйте перенос в нерабочее время — процесс может быть длительным.

Есть ли ограничение на размер одного файла в 1С?

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

Как дать пользователям доступ к файлам без доступа к сетевой папке?

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

Что делать, если при открытии присоединенного файла ошибка «файл не найден»?

Проверьте, доступен ли каталог тома с сервера 1С, не менялся ли путь в справочнике томов и не удалён ли файл вручную. Если файл удалён, восстановить его можно только из резервной копии тома — запись в базе сама по себе данные не содержит.

Можно ли хранить файлы в облачном хранилище вместо тома?

Штатно тома рассчитаны на локальные и сетевые каталоги. Для объектных хранилищ (S3-подобных) потребуется доработка или готовые расширения. В сервисе 1С:Фреш файлы хранятся инфраструктурой сервиса, и настройка томов там недоступна.