При активной работе с файловой информационной базой 1С пользователи нередко сталкиваются с критической ошибкой: «Превышен максимально допустимый размер внутреннего файла '.../1Cv8.1CD'». Чаще всего сбой происходит в момент прикрепления сканов документов, загрузки внешних отчетов, отправки писем или выполнения обменов. Разберем детально, почему возникает это ограничение и какими способами можно вернуть базу к стабильной работе.
Выясним причину такого поведения платформы. Файловая база данных 1Cv8.1CD состоит из множества внутренних таблиц. Физически каждая отдельная таблица хранит данные в трех внутренних потоках:
При стандартном размере страницы базы данных в 4 КБ на каждый такой внутренний поток действует жесткое ограничение — не более 4 ГБ. Это означает, что сама база данных может иметь суммарный размер 20–30 ГБ и успешно функционировать, но в тот момент, когда поток BLOB-данных хотя бы одной таблицы (например, справочника присоединенных файлов или регистра версий) перешагнет порог в 4 ГБ, платформа выдаст ошибку и заблокирует запись новых объектов.
Проанализируем основные методы устранения данной проблемы: от настройки конфигурации до низкоуровневых утилит платформы.
Рассмотрим самый надежный и правильный способ, если переполнение вызвано накоплением присоединенных файлов (актов, накладных, сканов договоров, вложений электронных писем). По умолчанию все файлы сохраняются непосредственно внутри информационной базы как двоичные данные, быстро исчерпывая лимит таблицы. Перенос файлов в тома на жестком диске полностью снимает эту нагрузку.
Разберем по шагам порядок настройки в типовых конфигурациях (например, в 1C:Бухгалтерия предприятия 3.0):
D:\1C_Files_Storage\).После успешного завершения процедуры файлы перестанут раздувать внутренние таблицы базы, а новые документы будут автоматически сохраняться в указанную папку.
Если перенос файлов невозможен или переполнилась таблица другого типа (например, таблицы конфигурации Config, Params или системные таблицы регистрации изменений), рассмотрим изменение формата базы. Начиная с версии платформы 8.3.8, поддерживается работа с размером страницы от 8 КБ до 64 КБ, что позволяет поднять предельный размер внутреннего файла таблицы с 4 ГБ до 6 ГБ и выше.
Важно: Перед выполнением любых консольных операций обязательно создадим резервную копию файла 1Cv8.1CD.
Для изменения формата воспользуемся штатной консольной утилитой cnvdbfl.exe, расположенной в каталоге установки платформы (папка bin):
cnvdbfl.exe -i "D:\1C\InfoBase\1Cv8.1CD"
cnvdbfl.exe -c -f 8.3.8 -p 8192 "D:\1C\InfoBase\1Cv8.1CD"
Для установки максимального размера страницы 64 КБ используем команду:
cnvdbfl.exe -c -f 8.3.8 -p 65536 "D:\1C\InfoBase\1Cv8.1CD"
После завершения процесса база сможет вмещать таблицы существенно большего объема.
Проанализируем еще один частый источник проблемы — версионирование объектов. При включенном версионировании регистры ИсторияВерсийОбъектов сохраняют полные снимки документов в двоичном виде при каждой записи.
Разберем процедуру очистки:
Рассмотрим стандартный профилактический метод. При регулярном удалении объектов страницы базы данных могут фрагментироваться и не освобождать занятое дисковое пространство автоматически.
.dt).В процессе загрузки платформа полностью перестраивает внутреннюю структуру таблиц 1Cv8.1CD с нуля, удаляя мусорные фрагменты и уменьшая итоговый размер файла.
Если файловая база данных регулярно приближается к критическим пределам, а оптимизация и вынос файлов дают лишь временный эффект, проанализируем переход на клиент-серверный вариант работы. Развертывание базы на СУБД (PostgreSQL, Microsoft SQL Server и др.) полностью снимает архитектурные лимиты файлового формата 1CD на размер таблиц и обеспечивает высокую надежность при многопользовательской работе.