Можно ли отключить регистр накопления «ТоварыОрганизаций» и как уменьшить размер базы?

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

При активном документообороте в конфигурациях на платформе «1С:Предприятие 8» (таких как «1С:Управление торговлей», «1С:ERP», «1С:Комплексная автоматизация») база данных может значительно увеличиваться в объеме. Одной из самых объемных таблиц часто становится регистр накопления ТоварыОрганизаций. У разработчиков возникает соблазн отключить этот регистр, перенеся реквизит Организация в регистр ТоварыНаСкладах. Разберем, почему такая доработка несет критические риски для архитектуры системы и какими штатными способами можно безопасно сократить размер базы.

Различие концепций: складской и финансовый учет

Проанализируем базовую концепцию типовых конфигураций. В системе строго разделены физический и финансовый контуры учета:

  1. Регистр «ТоварыНаСкладах» — это чисто складской (количественный) регистр. Он отражает фактическое физическое наличие номенклатуры в конкретных складских помещениях и ячейках. Складу не важно, какому юридическому лицу принадлежит товар, главное — факт его наличия на полке.
  2. Регистр «ТоварыОрганизаций» — это финансово-правовой регистр. Он фиксирует право собственности конкретной организации на товар. Например, при комиссионной торговле товар может физически отсутствовать на складе компании или лежать на ответственном хранении, но числиться за организацией.

Попытка объединить эти две различные сущности приведет к разрушению внутренней модели данных типового решения.

Архитектурные риски отключения регистра «ТоварыОрганизаций»

Рассмотрим, к каким необратимым последствиям приведет удаление движений или вырезание регистра из конфигурации:

  1. Нарушение расчета себестоимости и партионного учета: Механизм закрытия месяца и распределения партий жестко опирается на данные регистра ТоварыОрганизаций. Без него перестанут формироваться движения по регистрам ПартииТоваровОрганизаций, СебестоимостьТоваров и ВыручкаИСебестоимостьПродаж.
  2. Отказ механизма «Интеркампани» (Intercompany): Автоматическое оформление межфирменных продаж и выкупов между собственными организациями холдинга полностью построено на разницах остатков в регистре ТоварыОрганизаций.
  3. Раздельный учет НДС и контроль номеров ГТД: Списание импортных товаров, контроль стран происхождения и раздельный учет НДС привязаны к аналитике этого регистра.
  4. Ошибки в типовых отчетах: Большинство управленческих и финансовых отчетов используют левые соединения с таблицами этого регистра. При его очистке отчетность начнет выдавать пустые или некорректные данные.

Почему разрастается таблица итогов регистра

Выясним причину, по которой таблица регистра разбухает в СУБД. В 1С для регистров остатков создаются две физические таблицы: таблица движений и таблица итогов (AccumRegTotals). Таблица итогов растет экспоненциально по следующим причинам:

  1. Неоформленные передачи между организациями: Когда одна организация продает товар другой без своевременного оформления передачи, по одной организации висит плюс, по другой — минус. В итогах хранятся обе строки, не сворачиваясь в ноль.
  2. Дробление ключей аналитики: Использование серий, характеристик и индивидуальных назначений создает уникальные комбинации в измерении АналитикаУчетаНоменклатуры, что препятствует агрегации записей.
  3. Фантомные нулевые остатки: Ошибки округлений или незакрытые аналитические разрезы оставляют записи с нулевым количеством, которые продолжают занимать место в таблице итогов.

Штатные способы решения проблемы без изменения конфигурации

Вместо переписывания конфигурации применим проверенные административные и технологические методы оптимизации.

  1. Сжатие и пересчет итогов регистра накопления:

    Регулярное выполнение сжатия таблицы итогов удаляет нулевые записи и схлопывает движения прошлых периодов. Это можно выполнить в режиме «Тестирование и исправление» (флаг «Пересчет итогов») или программным вызовом:

    РегистрыНакопления.ТоварыОрганизаций.СжатьТаблицуИтогов();
  2. Смещение периода рассчитанных итогов:

    Убедимся, что граница рассчитанных итогов не установлена далеко в будущее. Оптимально сдвинуть границу на конец текущего месяца с помощью стандартного метода:

    
    РегистрыНакопления.ТоварыОрганизаций.УстановитьПериодРассчитанныхИтогов(КонецМесяца(ТекущаяДата()));
    
  3. Регулярное оформление межфирменных передач:

    Используем рабочее место «Оформление передач и выкупов товаров» (раздел «Финансовый результат и контроллинг»). Оформление документов передачи закрывает встречные положительные и отрицательные остатки между организациями, что радикально уменьшает число строк в таблице итогов.

  4. Обслуживание индексов и статистик на уровне СУБД:

    Настроим регулярные планы обслуживания в Microsoft SQL Server или PostgreSQL. Выполним реорганизацию/дефрагментацию индексов и обновление статистик для таблиц с префиксом _AccumReg и _AccumRegTotals, относящихся к регистру ТоварыОрганизаций.

  5. Штатная свертка информационной базы:

    Если база содержит данные за много лет, используем стандартную обработку «Свертка информационной базы». Процедура удалит движения за закрытые прошлые периоды и сформирует компактные документы ввода остатков, что сократит как размер движений, так и таблицу итогов.

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

← На главную