Как исправить ошибку «Превышен максимальный размер внутреннего файла» в файловой базе 1С?

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

При активной работе с прикрепленными файлами и сканами документов в файловой базе 1С пользователи часто сталкиваются с ошибкой: «Превышен максимальный размер внутреннего файла». Данная проблема может возникать даже тогда, когда общий размер файла базы данных 1Cv8.1CD составляет всего 4–5 ГБ. Проанализируем, почему появляется это ограничение и какие существуют способы его устранения.

Выясним причину возникновения ошибки

В файловом режиме информационная база 1С хранится в одном файле 1Cv8.1CD, состоящем из множества внутренних таблиц. В стандартном формате базы данных установлено жесткое технологическое ограничение: размер любой отдельной внутренней таблицы (в частности, хранилища двоичных данных BLOB) не может превышать 4 ГБ.

Когда пользователи регулярно прикрепляют к документам и справочникам сканы, изображения и файлы (например, в справочник ХранилищеДополнительнойИнформации или ПрикрепленныеФайлы), данные накапливаются в одной конкретной таблице. Как только объем этой таблицы доходит до предела в 4 ГБ, платформа блокирует дальнейшую запись и выдает ошибку превышения размера файла.

Способ 1. Изменение размера страницы базы данных утилитой cnvdbfl.exe

Если необходимо быстро устранить ошибку без глобальной переработки конфигурации, изменим размер страницы базы данных с помощью утилиты cnvdbfl.exe, которая поставляется вместе с платформой 1С:Предприятие.

Увеличение размера страницы (например, до 64 КБ) раздвигает лимит на максимальный объем отдельной таблицы базы с 4 ГБ до 32–64 ГБ. Разберем по шагам порядок выполнения конвертации:

  1. Обязательно создадим резервную копию файла 1Cv8.1CD.
  2. Завершим все сеансы пользователей и выгрузим процессы 1С.
  3. Запустим командную строку от имени администратора и перейдем в каталог установленной платформы.
  4. Выполним команду конвертации файла базы данных:

cnvdbfl.exe -c -f 8.3.8 -p 64k "C:\PathToDatabase\1Cv8.1CD"

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

  1. Создаем новую пустую файловую базу 1С.
  2. Обрабатываем файл 1Cv8.1CD созданной базы утилитой cnvdbfl.exe с параметром -p 64k.
  3. Загружаем файл .dt через Конфигуратор в уже подготовленную базу.

Способ 2. Хранение файлов во внешних томах на диске

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

Рассмотрим основные шаги по настройке такого хранения:

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

После выноса двоичных данных размер файла 1Cv8.1CD перестанет расти при добавлении новых сканов.

Способ 3. Пережатие существующих сканов и очистка пространства

Зачастую сканы документов загружаются в базу с чрезмерно высоким разрешением (300–600 DPI) и в цветном формате. В результате один лист документа может занимать от 5 до 10 МБ вместо стандартных 150–300 КБ. Проанализируем процесс оптимизации данных:

  1. Выгрузим имеющиеся сканы из базы во внешнюю папку.
  2. Проведем групповую обработку файлов с помощью графических редакторов или внешних утилит (понижение разрешения до 150–200 DPI, перевод изображения в оттенки серого).
  3. Заменим тяжеловестные файлы в базе оптимизированными копиями.
  4. Пометим на удаление и окончательно удалим устаревшие или ненужные файлы.

Внимание: после удаления сканов из базы размер файла 1Cv8.1CD на диске автоматически не уменьшится. Чтобы высвободить физическое место на диске, выполним в Конфигураторе процедуру «Тестирование и исправление» с включенным флагом «Сжатие таблиц информационной базы» (либо сделаем перевыгрузку через файл .dt).

Способ 4. Переход на клиент-серверный режим работы

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

Разберем доступные варианты:

  1. СУБД PostgreSQL: полностью бесплатная СУБД с отличной производительностью, которая снимает любые лимиты файлового формата 1С.
  2. MS SQL Server Express: бесплатная версия СУБД от Microsoft (ограничение на общий размер базы до 10 ГБ), не имеющая лимита в 4 ГБ на отдельную таблицу.
  3. Сервер 1С:Предприятие МИНИ: бюджетная лицензия сервера 1С на 5 рабочих мест, позволяющая развернуть полноценный клиент-серверный режим в небольшом офисе.
← На главную