Администрирование · 11 мин
Как хранить файлы в 1С: способы и настройка
Как хранить файлы в 1С: справочник присоединенных файлов, тома на диске, хранение в базе и внешних хранилищах. Настройка, ограничения и типичные ошибки.
Практически в любой конфигурации 1С рано или поздно возникает задача прикрепить файл к объекту: скан договора к контрагенту, изображение товара к номенклатуре, акт к реализации. Платформа 1С:Предприятие предлагает для этого несколько механизмов, и выбор между ними напрямую влияет на скорость работы базы, объём резервных копий и удобство пользователей.
Основных подхода три: хранение файлов внутри информационной базы (в таблицах СУБД), хранение в томах на диске с привязкой к объектам базы и использование внешних хранилищ. В типовых конфигурациях на базе Библиотеки стандартных подсистем (БСП) эти варианты уже реализованы через подсистему «Работа с файлами» — достаточно правильно её настроить.
Ниже разобраны доступные механизмы, порядок их настройки, ограничения каждого варианта и типичные ошибки, которые приводят к разрастанию базы или потере файлов.
Какие механизмы хранения файлов есть в 1С
Платформа и типовые библиотеки предоставляют несколько уровней решения. На уровне платформы есть тип ХранилищеЗначения, который позволяет положить в реквизит объекта любые двоичные данные в сжатом виде. Это самый простой способ, но у него нет встроенного интерфейса для пользователя — всё придётся программировать самостоятельно.
На уровне БСП существует подсистема «Работа с файлами», которая включает справочники присоединенных файлов (например, «ПрисоединенныеФайлы» или специализированные вроде «НоменклатураПрисоединенныеФайлы»), версионирование, подписание, заимствование файлов и обмен с томами. Именно этот механизм используется в «Управлении торговлей», «ERP», «Бухгалтерии предприятия» и других типовых решениях.
Дополнительно существует механизм хранения файлов в томах: сами двоичные данные лежат в сетевой папке или на диске сервера, а в базе остаётся только ссылка и путь. Это разгружает СУБД и упрощает резервное копирование больших архивов документов.
Хранение файлов в информационной базе
Режим по умолчанию в большинстве типовых конфигураций — хранение данных файла непосредственно в таблицах базы. Пользователь прикрепляет документ через кнопку «Присоединить файл» в карточке объекта, и двоичные данные записываются в служебный реквизит справочника присоединенных файлов.
Плюсы подхода: единая резервная копия (файлы не потеряются отдельно от базы), работа через веб-клиент и тонкий клиент без доступа к сетевым папкам, корректная работа в сервисах вроде 1С:Фреш. Минусы: база быстро растёт, выгрузка в DT и бэкапы занимают больше времени, при больших объёмах (десятки гигабайт сканов) возможно замедление работы СУБД.
Практическая граница: если суммарный объём файлов измеряется сотнями мегабайт или единицами гигабайт, хранение в базе обычно не создаёт проблем. Когда объёмы идут на десятки гигабайт и растут, стоит планировать переход на тома.
Хранение файлов в томах на диске
Том — это каталог на сервере или сетевом ресурсе, куда 1С складывает файлы, а в базе сохраняет только относительный путь. Настройка выполняется в разделе администрирования (в типовых конфигурациях: «Настройки работы с файлами» → «Хранить файлы в томах на диске»), где создаются элементы справочника «Тома хранения файлов» с указанием полного пути к каталогу.
Важные условия: каталог должен быть доступен с сервера 1С (или с каждого клиента в файловом режиме), у учётной записи службы сервера 1С должны быть права на запись, а сам путь для Linux и Windows указывается отдельно в соответствующих полях тома. При резервном копировании тома нужно архивировать отдельно от базы — типовой бэкап их не включает.
Настройка присоединенных файлов в типовой конфигурации
В конфигурациях на БСП механизм уже встроен, его нужно только включить и настроить. Порядок действий для администратора выглядит так.
- 1Откройте раздел «Администрирование» → «Общие настройки» (или «Настройки работы с файлами») и включите опцию использования присоединенных файлов.
- 2Определите способ хранения: в информационной базе или в томах на диске. Для томов создайте каталог и пропишите путь в справочнике томов.
- 3Задайте максимальный размер загружаемого файла, если требуется ограничить загрузку больших видео или архивов.
- 4Проверьте права: у ролей пользователей должно быть разрешение на добавление и изменение присоединенных файлов нужных объектов.
- 5Прикрепите тестовый файл к любому документу, откройте его из базы и убедитесь, что файл читается корректно.
После включения во многих формах объектов появляется команда «Присоединенные файлы» или скрепка на панели. Если команда не появилась — проверьте, что функциональная опция включена и у пользователя есть соответствующие права.
Для изображений товаров есть отдельный механизм: картинка, назначенная основной, отображается прямо в карточке номенклатуры и может выгружаться на сайт при интеграции.
Программное хранение файлов в самописных конфигурациях
Если конфигурация разрабатывается с нуля без БСП, минимальный вариант — реквизит типа ХранилищеЗначения в справочнике или документе. В него помещаются двоичные данные файла:
ДвоичныеДанные = Новый ДвоичныеДанные("C:\Docs\dogovor.pdf");
Объект.ФайлДанные = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9));
Объект.ИмяФайла = "dogovor.pdf";
Объект.Записать();
Чтение выполняется обратным получением значения и записью во временный файл. Такой подход работает, но требует самостоятельной реализации интерфейса, контроля размера и не поддерживает версионирование. Поэтому при наличии БСП рекомендуется использовать готовые процедуры общего модуля РаботаСФайлами — например, РаботаСФайлами.ДобавитьФайл(), которая создаёт присоединенный файл к любому объекту-владельцу.
ПараметрыФайла = РаботаСФайлами.ПараметрыДобавленияФайла();
ПараметрыФайла.ВладелецФайлов = ДокументСсылка;
ПараметрыФайла.ИмяБезРасширения = "Акт";
ПараметрыФайла.РасширениеБезТочки = "pdf";
ПрисоединенныйФайл = РаботаСФайлами.ДобавитьФайл(ПараметрыФайла, ПоместитьВоВременноеХранилище(ДвоичныеДанные));Сравнение способов хранения
| Критерий | В базе | В томах на диске | ХранилищеЗначения (самописное) |
|---|---|---|---|
| Рост базы данных | Быстрый | Минимальный | Быстрый |
| Резервное копирование | Единая копия | База и тома отдельно | Единая копия |
| Готовый интерфейс | Да (БСП) | Да (БСП) | Нет |
| Версионирование | Да | Да | Нет |
| Подходит для больших объёмов | Ограниченно | Да | Нет |
Как выбрать способ
Резервное копирование и перенос файлов
Главный риск при работе с томами — рассинхронизация: базу восстановили из копии, а каталог томов забыли или восстановили за другую дату. В результате в базе есть записи о файлах, которых физически нет, или наоборот. Правило простое: копию томов и копию базы делайте в одном окне обслуживания и фиксируйте время обеих операций.
При миграции между режимами в БСП есть обработка переноса файлов из базы в тома и обратно (входит в состав функциональности работы с файлами или поставляется как внешняя обработка). Перед переносом обязательно сделайте полную копию базы и проверьте свободное место в целевом каталоге.
Как проверить результат
Файл открывается в ассоциированной программе, содержимое читается
Ошибка «файл не найден» или пустой/битый документ
В каталоге тома появился файл с служебным именем в подкаталоге по дате
Каталог пуст при включённом хранении в томах
При хранении в томах размер базы почти не меняется
База растёт пропорционально загруженным файлам — значит, данные пишутся в базу
Архивируются и база, и каталоги томов с одинаковой датой
Копируется только база — файлы в томах не защищены
Типичные ошибки и ограничения
Ещё одно ограничение: при работе через веб-клиент загрузка и скачивание файлов идёт через сервер, поэтому большие файлы передаются медленнее, чем по сетевой папке. Для сценариев с очень большими файлами (видео, образы дисков) 1С вообще не является подходящим хранилищем — лучше хранить в базе только ссылку на внешний ресурс.
Что важно запомнить
В типовых конфигурациях используйте подсистему «Работа с файлами»: малые объёмы храните в базе, большие — в томах на диске с отдельным резервным копированием. Проверяйте открытие файлов после любой смены настроек и никогда не переносите каталоги томов без обновления путей в базе.
Частые вопросы
Куда физически записываются файлы при хранении в базе?
Двоичные данные сохраняются в таблицах СУБД вместе с остальными данными информационной базы. Отдельного файла на диске не создаётся — достать документ можно только через 1С или прямым запросом к базе, что не рекомендуется.
Можно ли перенести уже накопленные файлы из базы в тома?
Да, для конфигураций на БСП существуют штатные и внешние обработки переноса. Перед запуском сделайте полную резервную копию, убедитесь в достаточном объёме диска и выполняйте перенос в нерабочее время — процесс может быть длительным.
Есть ли ограничение на размер одного файла в 1С?
Жёсткого платформенного ограничения для типичных сценариев нет, но администратор может задать максимальный размер в настройках. Практический предел определяется ресурсами сервера и временем передачи: файлы в сотни мегабайт заметно нагружают базу и сеть.
Как дать пользователям доступ к файлам без доступа к сетевой папке?
Храните файлы в базе или в томах, доступных только серверу 1С: пользователи работают с файлами через клиент 1С, и прямой доступ к каталогу им не нужен. Это одновременно повышает безопасность — удалить или подменить файл в обход учёта нельзя.
Что делать, если при открытии присоединенного файла ошибка «файл не найден»?
Проверьте, доступен ли каталог тома с сервера 1С, не менялся ли путь в справочнике томов и не удалён ли файл вручную. Если файл удалён, восстановить его можно только из резервной копии тома — запись в базе сама по себе данные не содержит.
Можно ли хранить файлы в облачном хранилище вместо тома?
Штатно тома рассчитаны на локальные и сетевые каталоги. Для объектных хранилищ (S3-подобных) потребуется доработка или готовые расширения. В сервисе 1С:Фреш файлы хранятся инфраструктурой сервиса, и настройка томов там недоступна.