Как ускорить закрытие месяца и расчет себестоимости в 1С:ERP 2: практические методы и настройки

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

Одной из самых обсуждаемых проблем при внедрении 1С:ERP 2 является длительное время выполнения регламентных операций закрытия месяца. Слухи о том, что расчет себестоимости может занимать 2-3 суток, часто пугают руководителей и становятся поводом для радикальных, но не всегда верных решений, таких как разделение базы на торговую и производственную. В рамках этой статьи мы проанализируем реальный опыт специалистов, разберем архитектурные особенности системы и выясним, как сократить время закрытия месяца с нескольких суток до считанных минут или часов.

Анализ ситуации: стоит ли разделять базы?

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

1. Включение и настройка многопоточности

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

Начиная с релизов ветки 2.4.6, управление многопоточностью вынесено в пользовательский интерфейс. Выполним следующие действия:

  1. Перейдем в рабочее место Закрытие месяца.
  2. Откроем раздел Настройки — Настройка параметров операций закрытия месяца.
  3. Найдем операцию Распределение затрат и расчет себестоимости.
  4. В поле управления потоками укажем количество потоков (по умолчанию стоит 5, но для мощных серверов это значение можно увеличить до 10-16 и более).

В более старых версиях или для глубокого тюнинга программисты могут использовать параметры МаксимальноеКоличествоФЗРасчетаПартий или МаксимальноеКоличествоФЗ, которые находятся в общих модулях ПартионныйУчет22 и УниверсальныеМеханизмыПартийИСебестоимости.

2. Переход на платформенный механизм СЛАУ

Выясним причину, по которой расчет «зависает» на этапе решения систем линейных уравнений. Это часто происходит при наличии встречных выпусков или сложных цепочек перемещений между организациями (Интеркампани). Ранее расчет производился программным кодом конфигурации, что было крайне медленно.

Важное решение: Начиная с версии ERP 2.4.8 и платформы 8.3.14.1565, реализован механизм решения СЛАУ на уровне платформы. Алгоритмы, написанные на C++, работают в десятки раз быстрее. Для активации этого ускорения необходимо убедиться, что версия платформы и конфигурации соответствует требованиям. Это позволяет сократить расчет с 50 часов до 30-40 минут в крупных производственных холдингах.

3. Оптимизация механизмов Интеркампани и «Видов запасов»

Проанализируем ситуацию с «шаловливыми ручонками» пользователей. В 1С:ERP 2.4 была внедрена новая концепция работы с взаиморасчетами и видами запасов. Рассмотрим ключевые моменты:

4. Тюнинг SQL-сервера под задачи ERP

Посмотрим на проблему со стороны системного администрирования. Расчет себестоимости — это интенсивная работа с временными таблицами. Разберем шаги по оптимизации СУБД:

  1. Настройка TempDB: Рекомендуется вынести файлы базы TempDB на самые быстрые диски (NVMe) и разделить её на несколько файлов равного размера (по количеству ядер процессора).
  2. Обновление статистики: Перед запуском процедуры закрытия месяца крайне полезно выполнить регламентное задание по обновлению статистики SQL. Это поможет оптимизатору запросов правильно построить планы для тяжелых расчетов по регистрам СебестоимостьТоваров и ВыручкаИСебестоимостьПродаж.
  3. Параллелизм (MAXDOP): Для баз 1С:ERP часто рекомендуют устанавливать Max Degree of Parallelism в значение 1 или 4, чтобы избежать чрезмерных блокировок при выполнении сложных вложенных запросов.

5. Предварительный расчет себестоимости как альтернатива

Если топ-менеджменту данные о себестоимости нужны ежедневно для оперативного управления, не обязательно «закрывать месяц» полностью каждые сутки. В 1С:ERP предусмотрен механизм Предварительного расчета. Разберем его особенности:

Он может запускаться по расписанию (например, ночью) и рассчитывать стоимость ТМЦ по методу среднего взвешенного за период. Это не делает проводок в регламентированном учете, но заполняет управленческие регистры, позволяя видеть маржинальность продаж «здесь и сейчас» без блокировки работы всей базы.

6. Использование платформенных функций в коде

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


// Пример логики запуска фонового расчета
ПараметрыЗапуска = Новый Структура;
ПараметрыЗапуска.Вставить("Организация", ВыбОрганизация);
ПараметрыЗапуска.Вставить("Период", КонецМесяца(ТекущаяДата()));

ФоновыеЗадания.Выполнить("ПартионныйУчет.ВыполнитьРасчет", ПараметрыЗапуска);

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

Резюме: стоит ли бояться?

Подводя итог, можно сказать: цифра в 2-3 суток на закрытие месяца в 1С:ERP 2 — это либо признак очень старого релиза (до появления платформенного СЛАУ), либо следствие некорректной настройки серверов и методологии учета. При правильном подходе (использование ERP 2.4/2.5, настройка многопоточности, оптимизация SQL и отказ от избыточного перепроведения документов) время расчета сокращается до вполне приемлемых величин, не требующих разделения единого информационного пространства компании.

← На главную