При активном документообороте в конфигурациях на платформе «1С:Предприятие 8» (таких как «1С:Управление торговлей», «1С:ERP», «1С:Комплексная автоматизация») база данных может значительно увеличиваться в объеме. Одной из самых объемных таблиц часто становится регистр накопления ТоварыОрганизаций. У разработчиков возникает соблазн отключить этот регистр, перенеся реквизит Организация в регистр ТоварыНаСкладах. Разберем, почему такая доработка несет критические риски для архитектуры системы и какими штатными способами можно безопасно сократить размер базы.
Проанализируем базовую концепцию типовых конфигураций. В системе строго разделены физический и финансовый контуры учета:
Попытка объединить эти две различные сущности приведет к разрушению внутренней модели данных типового решения.
Рассмотрим, к каким необратимым последствиям приведет удаление движений или вырезание регистра из конфигурации:
ТоварыОрганизаций. Без него перестанут формироваться движения по регистрам ПартииТоваровОрганизаций, СебестоимостьТоваров и ВыручкаИСебестоимостьПродаж.ТоварыОрганизаций.Выясним причину, по которой таблица регистра разбухает в СУБД. В 1С для регистров остатков создаются две физические таблицы: таблица движений и таблица итогов (AccumRegTotals). Таблица итогов растет экспоненциально по следующим причинам:
АналитикаУчетаНоменклатуры, что препятствует агрегации записей.Вместо переписывания конфигурации применим проверенные административные и технологические методы оптимизации.
Регулярное выполнение сжатия таблицы итогов удаляет нулевые записи и схлопывает движения прошлых периодов. Это можно выполнить в режиме «Тестирование и исправление» (флаг «Пересчет итогов») или программным вызовом:
РегистрыНакопления.ТоварыОрганизаций.СжатьТаблицуИтогов();
Убедимся, что граница рассчитанных итогов не установлена далеко в будущее. Оптимально сдвинуть границу на конец текущего месяца с помощью стандартного метода:
РегистрыНакопления.ТоварыОрганизаций.УстановитьПериодРассчитанныхИтогов(КонецМесяца(ТекущаяДата()));
Используем рабочее место «Оформление передач и выкупов товаров» (раздел «Финансовый результат и контроллинг»). Оформление документов передачи закрывает встречные положительные и отрицательные остатки между организациями, что радикально уменьшает число строк в таблице итогов.
Настроим регулярные планы обслуживания в Microsoft SQL Server или PostgreSQL. Выполним реорганизацию/дефрагментацию индексов и обновление статистик для таблиц с префиксом _AccumReg и _AccumRegTotals, относящихся к регистру ТоварыОрганизаций.
Если база содержит данные за много лет, используем стандартную обработку «Свертка информационной базы». Процедура удалит движения за закрытые прошлые периоды и сформирует компактные документы ввода остатков, что сократит как размер движений, так и таблицу итогов.
Таким образом, отключать или модифицировать регистр ТоварыОрганизаций категорически не рекомендуется. Оптимальный путь — устранение учетных пересортиц между организациями, регламентное сжатие итогов и своевременная свертка базы данных.