Ошибки вида «Превышен максимальный размер файла» или аварийное завершение работы платформы при пересчете итогов в 1С 7.7 — классический симптом разрастания файлов таблиц итогов регистров (файлы с префиксом RG). Рассмотрим подробно, почему происходит этот процесс и какими техническими методами можно остановить рост и восстановить работоспособность базы данных.
Выясним причину, почему опухает именно таблица итогов RG. В платформе 1С 7.7 механизм работы с регистрами накопления и партий построен следующим образом:
.DBF в 32-битной платформе 1С 7.7 имеет жесткий физический предел размера одного файла в 2 147 483 647 байт (2 Гб). Это ограничение касается как файлов данных, так и их индексов .CDX. Никакие патчи не способны обойти это базовое ограничение в файловом режиме.Рассмотрим порядок действий по поиску и исправлению перекосов аналитики в движениях регистра (таблица RA):
ПартииТоваров). Если такие измерения, как Контрагент, Поставка, Статус или Склад, не закрываются в ноль при расходе, они создают постоянный прирост записей.VFP OLEDB) найдем и исправим незаполненные реквизиты в движениях:
RA, где не заполнен документ прихода (ПрихДокумент), и проставим нужные ссылки.Склад в движениях списания.Поставщик на основании первичного документа поступления.Типичная ошибка при попытке зафиксировать зависшие копеечные суммы или нулевое количество — проведение корректирующего документа текущей датой. Разберем, почему это не помогает уменьшить размер RG:
Если списать копейки текущим числом, все предыдущие месяцы (начиная с 2003 года и по сей день) так и останутся наполненными незакрытыми записями. Чтобы очистить итоги, списывать зависшие хвосты необходимо строго датой (периодом) их появления.
После проведения корректировок прошлыми периодами необходимо выполнить процедуру сжатия и очистки пустых итоговых записей. В файловом режиме для окончательного удаления помеченных записей из DBF требуется монопольная упаковка таблиц (процедура PACK).
Если у предприятия действительно сохраняются реальные физические остатки товаров по партиям многолетней давности и удалять историю нельзя, файловый режим исчерпывает свои возможности. В этом случае единственным стабильным решением является перевод базы 1С 7.7 на MS SQL Server.
Проанализируем ключевые настройки MS SQL Server, необходимые для корректной и быстрой работы базы 1С 7.7 с большими регистрами:
max degree of parallelism в значение 1:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'max degree of parallelism', 1;
GO
RECONFIGURE;
GO
.LDF) при выполнении пересчета итогов установим простую модель восстановления — Simple. При необходимости частых бэкапов можно использовать модель Full, но с регулярным сжатием и резервным копированием журнала транзакций.После перевода базы на MS SQL Server пересчет итогов больших регистров будет выполняться существенно быстрее за счет оптимизатора T-SQL, а ограничение на размер файла 2 Гб перестанет блокировать работу пользователей.