Как устранить блокировки пользователей при проведении расчета себестоимости выпуска в 1С:УПП 1.3?

Программист 1С v8.3 (Обычные формы) Бухгалтерский учет Промышленность, строительство и АПК
← На главную

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

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

Причины возникновения блокировок при проведении РСВ

Чтобы выбрать правильный метод устранения проблемы, выясним причину, почему фоновое или интерактивное проведение РСВ блокирует работу пользователей:

  1. Автоматический режим блокировок в СУБД: Если конфигурация или отдельные регистры работают в автоматическом режиме управления блокировками, СУБД (например, MS SQL Server) эскалирует блокировки строк до диапазонов индексов и целых таблиц. В результате транзакция РСВ монопольно захватывает таблицы остатков, не давая другим пользователям даже прочитать данные для контроля остатков при выписке счетов и заказов.
  2. Блокировка границ последовательностей: При традиционном партионном учете документ РСВ регистрируется в последовательностях документов. Монопольный захват таблицы последовательности блокирует оперативное проведение любых первичных документов, входящих в ту же цепочку учета.
  3. Длительная неделимая транзакция: Когда в одном документе РСВ выбраны все возможные действия (распределение производственных расходов, списание прямых и косвенных затрат, расчет выпусков и брака), платформа удерживает монопольные блокировки на протяжении всех 10–30 минут работы алгоритма.
  4. Синхронные трансляции и подписки на события: Использование сторонних модулей (например, онлайн-трансляции проводок в подсистемы бюджетирования или МСФО) многократно увеличивает время проведения и объем удерживаемых блокировок.

Способ 1. Использование режима расширенной аналитики учета затрат (РАУЗ)

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

В режиме РАУЗ проведение документов оперативного контура в течение месяца делает только количественные движения, не обращаясь к партионным таблицам стоимости. Это позволяет выполнять расчет себестоимости выпуска с минимальным воздействием на проведение документов реализации и заказов.

Для дополнительного ускорения расчета в РАУЗ убедимся, что на сервере 1С зарегистрирована и используется штатная внешняя C++ компонента для решения СЛАУ (систем линейных алгебраических уравнений), которая выполняет математические итерации значительно быстрее встроенного языка 1С.

Способ 2. Разделение расчета на цепочку отдельных документов РСВ

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

  1. Документ №1: Выполняются только предварительные действия — Распределение производственных расходов и Расчет прямых затрат.
  2. Документ №2: Выполняется Распределение косвенных расходов.
  3. Документ №3: Выполняются финальные корректировки — Расчет выпусков, Учет брака и Закрытие счетов косвенных расходов.

Такое разделение разбивает 20-минутную блокировку на несколько коротких транзакций по 2–4 минуты. В промежутках между проведением этих документов оперативные менеджеры успевают беспрепятственно провести свои документы.

Способ 3. Перевод базы на управляемый режим блокировок

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

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

Способ 4. Временное отключение онлайн-трансляций и интеграций

Если в базе развернуты внешние надстройки (например, БИТ.ФИНАНС или трансляция в МСФО), онлайн-формирование движений по параллельным планам счетов многократно увеличивает время блокировки таблиц. Отключим онлайн-трансляцию на время выполнения регламентных процедур закрытия месяца и перенесем формирование движений бюджетирования в фоновый регламентный режим после завершения РСВ.

Способ 5. Расчет на технологической копии с обратной загрузкой

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

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

Оптимизация предварительного контроля ошибок

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

← На главную