Почему долго формируются движения по партиям в 1С и как ускорить закрытие месяца?

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

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

1. Проверка актуальности итогов и зависших остатков в регистрах

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

Рассмотрим порядок проверки и исправления:

  1. Перейдем в режим конфигуратора или административный раздел программы и проверим дату, по которую рассчитаны итоги регистров накопления. Итоги должны быть рассчитаны по конец месяца, предшествующего рассчитываемому.
  2. Сформируем отчеты по остаткам или воспользуемся Универсальным отчетом по регистру накопления Себестоимость товаров. Убедимся, что по регистрам остатков отсутствуют «минусы» или пересортица, когда количество полностью списано, а суммовой остаток продолжает висеть (или наоборот). Такие зависшие ключи аналитики вызывают зацикливание алгоритмов подбора партий.

2. Поиск документов с «будущими» датами

Сбой в дате проведения документа — частая причина нарушений в работе механизмов партионного учета. Если пользователь случайно провел документ (например, Поступление товаров и услуг или Перемещение товаров) с датой из далекого будущего (например, 2099 или 3999 год), алгоритм расчета начинает выстраивать временную последовательность партий с учетом этой ошибочной точки.

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

3. Тестирование и исправление информационной базы (ТИИ)

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

Выполним процедуру диагностики через Конфигуратор:

  1. Создадим резервную копию информационной базы (файл .dt или средствами СУБД).
  2. Запустим режим Администрирование > Тестирование и исправление.
  3. Отметим флажками пункты: Проверка логической целостности, Проверка ссылочной целостности, Переиндексация таблиц и Пересчет итогов.
  4. Запустим процесс выполнения и дождемся его завершения.

4. Обновление статистики и обслуживание MS SQL Server

Если база данных работает в клиент-серверном режиме под управлением MS SQL Server, причина 4-часового расчета при свободных аппаратных ресурсах часто кроется в устаревшей статистике СУБД. Оптимизатор SQL-сервера строить неэффективные планы выполнения запросов (query plans), из-за чего соединения больших временных таблиц происходят крайне медленно.

Разберем необходимые регламентные действия на стороне SQL Server:

  1. Перед повторным запуском процедуры формирования партий выполним регламентное задание UPDATE STATISTICS для базы данных.
  2. Проведем дефрагментацию и реорганизацию (или реиндексацию) индексов основных таблиц партионного учета и себестоимости.
  3. Проверим настройки системной базы tempdb. Формирование партий создает колоссальный объем временных таблиц. Файлы tempdb должны располагаться на высокоскоростных накопителях (NVMe/SSD) и иметь заранее выделенный достаточный объем, чтобы исключить постоянные паузы на авторасширение.

5. Анализ закольцованных схем поставок (Интеркампани и Сборка)

Если в организации используются схемы межфирменных продаж (Интеркампани), перемещения между складами или операции сборки/разборки, алгоритм партионного учета может столкнуться с цикличными (встречными) ссылками. Например, организация «А» продает товар организации «Б», а затем организация «Б» передает этот же товар обратно «А» в том же месяце.

В таких ситуациях механизмы построения графа партий не могут определить однозначную последовательность списания. Система автоматически сбрасывает многопоточный расчет в однопоточный режим и переходит к итерационному перебору узлов, что увеличивает время расчета в десятки раз. Для решения проблемы следует проанализировать отчеты по межфирменному перемещению и исключить кольцевые схемы движений.

6. Проверка версии алгоритма партионного учета

Посмотрим на настройки учетной политики программы. В редакциях 1С:КА 2 и 1С:ERP предусмотрены разные версии партионного учета. Архитектурная версия 2.1 работает медленнее версии 2.2 при больших объемах данных из-за особенностей структуры временных таблиц и механизмов подбора НДС.

В настройках системы (НСИ и администрирование > Финансовый результат и контроллинг > Учет себестоимости) рекомендуется проверить используемую версию и при наличии возможности переключить партионный учет на актуальную версию 2.2.

7. Диагностика с помощью замера производительности

Чтобы точно определить, на какой именно процедуре происходит задержка, запустим закрытие месяца на копии базы в режиме отладки с включенным Замером производительности. Это позволит увидеть, какая именно функция (например, подбор партий для целей НДС/УСН, расчет распределения расходов или запись движения в регистр) забирает наибольший процент времени, и направить точечные усилия на устранение «узкого места».

← На главную