Свертка крупной учетной системы, такой как 1С:Управление производственным предприятием (УПП 1.3), существенно отличается от аналогичной процедуры в типовой бухгалтерии. Штатная обработка свертки базы с диска ИТС часто не дает ожидаемого уменьшения объема файла 1Cv8.1CD или таблиц в СУБД SQL. Документы остаются в системе, ссылочная целостность не позволяет удалить первичку, а объем базы практически не меняется. Разберем архитектурные причины такого поведения конфигурации и детально рассмотрим работающие сценарии решения задачи.
Почему штатная свертка УПП не уменьшает размер базы?
Проанализируем технические особенности конфигурации УПП 1.3, которые удерживают исторические документы от полного удаления:
Партионный учет (традиционный режим): Если в настройках параметров учета не используется РАУЗ (Режим учета затрат), регистры накопления партий (например, ПартииТоваровНаСкладах) содержат измерение ДокументОприходования. Если на момент свертки на остатке лежит позиция, оприходованная три года назад, ссылка на исходную накладную блокирует удаление документа из базы.
Взаиморасчеты с детализацией по документам: При ведении расчетов по договорам с контролем по накладным регистры расчетов хранят прямые ссылки на первичные документы («Сделка» или «Документ расчетов с контрагентом»). До полного закрытия сальдо конкретного документа ссылка на него сохраняется.
Учет основных средств и расчет зарплаты: Регистры сведений подсистем ОС хранят непрерывную историю параметров амортизации с момента ввода в эксплуатацию. В зарплатном блоке удаление расчетных документов нарушает расчет среднего заработка за предшествующие годы.
Особенности хранения данных в файловом режиме (1CD): Физическое удаление записей или отмена проведения документов не освобождают дисковое пространство автоматически. Страницы файла базы лишь помечаются как свободные. Уменьшение размера происходит исключительно после выполнения специальной процедуры сжатия.
Способ 1. Использование типовой обработки с последующей программной зачисткой
Рассмотрим распространенный и быстрый сценарий, при котором сначала используется типовая обработка свертки с диска ИТС, а затем выполняется принудительное удаление непроведенных документов с очисткой ссылочной целостности.
Важно: Перед выполнением любых операций обязательно создайте полную резервную копию информационной базы.
Разберем по шагам алгоритм действий:
Запустите типовую обработку свертки данных. Обработка создаст документы корректировки записей регистров на дату свертки, сформирует остатки и снимет проведение с исторических документов.
Учтите ограничения по подсистемам: при настройке правил свертки исключите регистры, связанные с расчетом зарплаты, учетом основных средств (ОС) и НДС, чтобы не нарушить расчет амортизации и учетные алгоритмы будущих периодов.
Запустите процедуру непосредственного удаления непроведенных документов за свернутый период. Посмотрим на пример программной обработки:
Для Каждого МетаДок Из Метаданные.Документы Цикл
Выборка = Документы[МетаДок.Имя].Выбрать(, ДатаКонца);
Пока Выборка.Следующий() Цикл
Если Выборка.Проведен Тогда
Продолжить;
КонецЕсли;
Попытка
ДокОбъект = Выборка.Ссылка.ПолучитьОбъект();
Если ДокОбъект <> Неопределено Тогда
ДокОбъект.Удалить();
КонецЕсли;
Исключение
// Пропуск документов, заблокированных системными блокировками
КонецПопытки;
КонецЦикла;
КонецЦикла;
После завершения удаления откройте конфигуратор и выполните пункт меню Администрирование -> Тестирование и исправление информационной базы. Обязательно установите флаги Реиндексация таблиц, Сжатие таблиц информационной базы, а при проверке логической и ссылочной целостности укажите Очищать ссылки для несуществующих объектов.
Способ 2. Перенос остатков и справочников в чистую базу
Если информационная база сильно перегружена накопленными ошибками учета за много лет, самым надежным и методологически чистым решением является создание новой пустой базы с переносом актуальных данных.
Разберем этапы переноса:
Создайте пустую информационную базу из аналогичного файла конфигурации (cf) рабочей УПП.
Перенесите нормативно-справочную информацию (НСИ) с помощью конфигурации «Конвертация данных 2.1» или универсальной выгрузки/загрузки XML. Синхронизацию элементов справочников производите по уникальному идентификатору (UUID).
Сформируйте документы ввода начальных остатков. Вместо громоздких документов КорректировкаЗаписейРегистров используйте целевые документы подсистем:
ОприходованиеТоваров — для формирования складских остатков номенклатуры;
ВводНачальныхОстатковПоВзаиморасчетам — для переноса сальдо контрагентов с привязкой к служебным документам расчетов (ручной учет);
Документы ввода остатков по ОС и НМА для сохранения исходных параметров начисления амортизации;
Документ Операция (бухгалтерский и налоговый учет) — для выравнивания сальдо на счетах бухгалтерского и налогового учета.
Проведите перенесенные документы ввода остатков и проверьте оборотно-сальдовую ведомость новой базы в сравнении со старой на дату среза.
Способ 3. Оптимизация производительности без полной свертки
Проанализируем ситуацию, когда свертка нежелательна из-за риска налоговых проверок за предыдущие 3 года, но требуется ускорить работу и сократить объемы файлов.
Перевод базы на клиент-серверный вариант (SQL): Файловая база размером 7–9 ГБ находится в зоне риска из-за лимита внутреннего формата 1CD (не более 4 ГБ на одну внутреннюю таблицу). В СУБД (например, MS SQL Server) можно применить сжатие таблиц (Data Compression), что позволяет уменьшить занимаемый объем на 30–40% без потери данных.
Очистка отдельных «раздутых» регистров: Анализ таблиц в SQL часто показывает, что наибольший объем занимают устаревшие движения заказов или регистры сведений. Например, согласованная зачистка движений регистра накопления ЗаказыПокупателей за закрытые годы существенно ускоряет проведение документов оперативного контура.
Управление итогами: Для ускорения проведения документов в конфигураторе обязательно выполните пересчет итогов через Операции -> Управление итогами. При отключении расчета итогов по неактуальным прошлым периодам скорость выполнения запросов к виртуальным таблицам остатков и оборотов возрастает.
Использование твердотельных накопителей (SSD): Для файловых баз перенос каталога базы данных на быстрый NVMe/SSD-диск и организация терминального доступа пользователей позволяет устранить зависания программы без риска повреждения учетных цепочек прошлых лет.