Вложения в 1С:ДО: таблица базы, том на диске или локальный кэш

· 10 мин

Содержание

Файлы в 1С:Документообороте хранятся в одном из двух мест: внутри самой информационной базы (в таблицах СУБД или в файле 1Cv8.1CD) либо в томах — обычных каталогах на диске сервера, путь к которым задаёт администратор. Какой вариант включён, решает одна настройка хранения файлов. Третье место — рабочий каталог на компьютере пользователя, куда файл копируется при открытии и редактировании.

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

Как ДО хранит файл и его версии

Карточка файла в Документообороте — это не сам документ Word или PDF. Это запись справочника: имя, автор, владелец (документ, задача, папка), признаки редактирования. Двоичное содержимое лежит отдельно и привязано к версии файла.

Каждое сохранение изменений создаёт новую версию. У каждой версии свои данные:

  • 📄 номер версии, автор, дата создания;
  • 📏 размер и расширение;
  • 💾 место хранения: в информационной базе или в томе;
  • 📂 для тома — ссылка на том и относительный путь к файлу внутри него.

Отсюда практическое следствие. Если у договора 12 версий по 5 МБ, на диске или в базе лежит около 60 МБ, а не 5. Старые версии не удаляются сами — их чистят вручную или регламентно, по правилам вашей организации.

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

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

Хранение файлов в информационной базе (SQL и файловый вариант)

Это вариант по умолчанию. Содержимое версий сериализуется и записывается в отдельную таблицу базы данных как двоичные данные.

Клиент-серверный вариант. Файлы лежат в базе на MS SQL Server или PostgreSQL. Отдельной папки с документами на сервере нет — только файлы данных СУБД (.mdf, .ndf для MS SQL или каталог данных PostgreSQL).

Файловый вариант. Всё внутри одного файла 1Cv8.1CD в каталоге базы. Этот файл растёт вместе с вложениями.

Имена таблиц в СУБД не совпадают с именами объектов конфигурации: платформа использует служебные имена вида _InfoRg1234 или _Reference56. Чтобы понять, какая таблица хранит двоичные данные файлов, выполните в консоли запросов или внешней обработке:

Структура = ПолучитьСтруктуруХраненияБазыДанных(, Истина);
Для Каждого Строка Из Структура Цикл
    Если СтрНайти(Строка.Метаданные, "Файл") > 0 Тогда
        Сообщить(Строка.Метаданные + " -> " + Строка.ИмяТаблицы);
    КонецЕсли;
КонецЦикла;

Второй параметр Истина возвращает имена таблиц в терминах СУБД. В выводе ищите объекты, в названии которых есть «Двоичные данные» или «Версии файлов».

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

Когда хранение в базе удобно:

  • ✅ база небольшая, вложений мало;
  • ✅ одна резервная копия СУБД содержит всё сразу;
  • ❌ при десятках гигабайт вложений растут время бэкапа, размер .dt и нагрузка на сервер СУБД.

Тома на диске: что лежит в каталоге

Том хранения — это элемент справочника в ДО, который указывает на каталог на диске. В карточке тома задаются:

ПолеЧто значит
Полный путь WindowsКаталог для сервера на Windows, например D:\1C_Files\Vol01\ или \\fs01\docflow$\Vol01\
Полный путь LinuxКаталог для сервера на Linux, например /srv/1c_files/vol01/
Максимальный размерЛимит тома в мегабайтах; 0 — без ограничения
Порядок заполненияКакой том заполняется первым, когда их несколько

Когда текущий том достигает лимита, следующие версии пишутся в том со следующим порядком заполнения. Если места нет ни в одном томе, сохранение файла завершится ошибкой.

Внутри корня тома программа сама создаёт подкаталоги и раскладывает по ним файлы версий. Что важно знать о содержимом:

  • 🔢 имя файла на диске не обязано совпадать с именем в карточке: к нему добавляются номер версии и служебные части;
  • 🗂️ структура подкаталогов служебная, её нельзя перестраивать вручную;
  • 🔗 связь «карточка — файл на диске» держится на относительном пути, записанном в версии. Переименовали папку внутри тома — ссылка сломана.

Чтобы узнать, где именно лежит конкретная версия, откройте карточку файла, перейдите к списку версий и посмотрите сведения о версии: там видны том и путь. Найти документ «пролистыванием» каталога тома почти невозможно, и это нормально.

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

Где в интерфейсе включить тома и указать путь

Настройка находится в разделе администрирования. В ДО 3.x он называется «Настройка», в ДО 2.1 — «Настройка и администрирование». Внутри ищите группу настроек работы с файлами (название группы в разных релизах может немного отличаться).

Порядок включения хранения в томах:

  1. Создайте каталог на сервере и выдайте права (о правах — в следующем разделе).
  2. Откройте настройки работы с файлами и перейдите к списку томов хранения.
  3. Создайте том: наименование, путь Windows и/или Linux, максимальный размер, порядок заполнения.
  4. Включите флажок хранения файлов в томах на диске.
  5. Загрузите в любой документ тестовый файл и убедитесь, что он появился в каталоге тома.
  6. Если нужно перенести уже накопленные файлы из базы — запустите обработку переноса файлов в тома, доступную из той же группы настроек.

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

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

Рабочий каталог пользователя. При открытии файла на просмотр или редактирование ДО копирует его на компьютер пользователя. Путь к этому каталогу и лимит его размера видны в персональных настройках работы с файлами. По умолчанию каталог находится внутри профиля Windows (в AppData). Это кэш: оригинал всё равно хранится в базе или томе, а изменения попадают туда только после команды «Закончить редактирование» или сохранения изменений.

Права доступа Windows и службы 1С

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

Вариант базыКто обращается к тому
Клиент-серверныйРабочий процесс сервера 1С (rphost) под учётной записью службы агента сервера 1С
Файловый, тонкий/толстый клиентПроцесс клиента под учётной записью каждого пользователя
Веб-клиент через веб-серверПроцесс веб-сервера (IIS или Apache) под его учётной записью

Отсюда правила:

  1. В клиент-серверном варианте права на изменение каталога тома нужны учётной записи службы 1С, а не пользователям. Пользователям прямой доступ к папке не нужен вообще — и лучше его не давать.
  2. Для сетевой папки указывайте путь UNC (\\fs01\docflow$\Vol01\). Подключённые буквы дисков (Z:\) существуют только в сеансе пользователя, служба их не видит.
  3. Если служба работает под локальной учётной записью, к сетевой папке на другом сервере она не получит доступа. Нужна доменная учётная запись службы с правами и на общий ресурс, и на NTFS.
  4. На Linux каталог тома должен принадлежать пользователю, от имени которого запущен сервер 1С, или быть доступен ему на запись.
Диагностика: выберите симптом

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

Отдельно про антивирус: проверка каталога тома в реальном времени может блокировать запись крупных файлов. Если ошибки записи «плавающие», проверьте журнал антивируса, а не только права.

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

Главное правило для томов: выгрузка .dt и бэкап СУБД не содержат файлы из томов. В копии базы будут только карточки и ссылки. Сами документы нужно сохранять отдельно — копированием каталогов томов.

Чтобы копии были согласованными, база и тома должны быть скопированы на один и тот же момент:

  • 🕐 запускайте копирование томов сразу после бэкапа СУБД, в одно ночное окно;
  • 📦 храните копии базы и томов парами, с одинаковой датой в имени;
  • 🔁 для томов подходит инкрементное копирование: старые файлы версий не меняются, добавляются только новые;
  • 🧪 раз в квартал восстанавливайте пару «база + тома» на тестовый сервер и открывайте случайные файлы.

Восстановление по шагам:

  1. Восстановите базу из бэкапа нужной даты.
  2. Восстановите каталоги томов из копии той же даты, с исходной структурой подкаталогов.
  3. Если тома теперь лежат по другому пути, исправьте путь в карточке каждого тома.
  4. Откройте несколько файлов разных лет и разных томов.

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

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

Частые ошибки администратора

  • ❌ Чистят каталог тома вручную, чтобы освободить место. Карточки остаются, файлы пропадают. Место освобождают через удаление лишних версий и удаление помеченных объектов в самой программе: тогда файл уходит с диска вместе с записью.
  • ❌ Переключили хранение в тома и ждут, что база похудеет. Старые файлы остаются в базе, пока не запущен перенос. После переноса для реального уменьшения размера базы MS SQL нужно ещё сжатие файлов данных средствами СУБД.
  • ❌ Указали путь к тому на диске сервера СУБД, а сервер 1С стоит на другой машине. Путь D:\... в карточке тома всегда читается со стороны сервера 1С.
  • ❌ Один том без лимита на системном диске. Диск C: заполняется, и ломается уже не только ДО. Выделяйте под тома отдельный диск и ставьте лимит.

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

Можно ли хранить часть файлов в базе, а часть в томах?
Да. Файлы, загруженные до включения томов, остаются в базе, пока их не перенесут. Программа открывает их одинаково, пользователь разницы не видит.
Шифруются ли файлы в томе?
Сами по себе нет: файл в томе — обычный файл на диске, его можно открыть, зная путь. Защита строится на правах NTFS: доступ к каталогу только у службы 1С и администраторов. Для особо важных документов в ДО есть шифрование файлов с помощью сертификата.
Сколько места нужно под тома?
Оцените текущий объём таблицы двоичных данных файлов и умножьте на ожидаемый рост. Ориентир для расчёта: средний размер файла × число новых файлов в месяц × среднее число версий × 12 месяцев, плюс запас 30–50%.
Можно ли положить том на NAS или в облачное хранилище?
NAS с доступом по SMB подходит, если учётная запись службы 1С имеет на него права. Синхронизируемые облачные папки (клиенты облачных дисков) для томов не подходят: они блокируют файлы на время синхронизации.
Почему в рабочем каталоге пользователя лежат файлы, которые он давно не открывал?
Это локальный кэш. Его размер ограничивается в персональных настройках работы с файлами, там же его можно очистить. Перед очисткой пользователь должен завершить редактирование всех файлов, иначе несохранённые изменения пропадут.