Найти в Дзене

Закрытие месяца в 1С:ERP при работе 24/7: как избежать блокировок и “вечного зависания”

Вопрос подписчика А как быть если в ЕРП работают круглосуточно? Данное задание вызывает конфликт блокировок у пользователей, а без его выполнения закрытие месяца зависает навечно… В ERP есть управляющий поток и исполняющие потоки, которые берут задания порциями. Важные детали алгоритма: То есть систему можно “настроить на аккуратную работу мелкими кусками”, чтобы снижать конкуренцию с пользователями. Его можно (и в 24/7 нужно) запускать не только “ночью”, а регулярно — просто с правильно подобранными порциями и потоками. В документации прямо говорится, что администратор включает выполнение и настраивает расписание регламентного задания «Допроведение документов». Если очередь “встала”, первым делом проверяют ошибки очередей: после исправления документа формируются новые задания, а старые ошибочные помечаются выполненными и очищаются. Это не про “отключить 24/7”, а про дисциплину: закрыли → период защищён от новых правок. Для закрытия месяца предусмотрен механизм блокировки закрытого пер
Оглавление

Вопрос подписчика

А как быть если в ЕРП работают круглосуточно? Данное задание вызывает конфликт блокировок у пользователей, а без его выполнения закрытие месяца зависает навечно…

Суть проблемы

  1. «Допроведение документов» — это не “одна операция”, а механизм, который обрабатывает накопленные задания из неоперативной очереди (взаиморасчёты, переоценка и т.п.). Закрытие месяца в 1С ERP
  2. Выполняться это может двумя способами:
  • регламентным заданием «Допроведение документов»,
  • или внутри закрытия месяца этапом «Допроведение документов», если регламентное задание не справилось/не запускалось.
  1. В режиме 24/7 у вас почти всегда есть параллельные изменения документов и регистров → фоновые потоки “допроведения” сталкиваются с пользовательскими транзакциями, ловят блокировки, откаты, повторные попытки — и очередь не разгребается.
  2. Снаружи это выглядит как “закрытие висит”, а по факту оно упёрлось в ошибку очереди.Отдельная коварная причина “вечного зависания” — ошибка в очереди: если гранула задания 3 раза не смогла выполниться, система помечает её как “выполнено с ошибкой”, и все зависимые задания дальше не попадают в обработку, пока вы не исправите первичную причину.

Что может 1С:ERP (встроенные механизмы)

1) Настройка неоперативной очереди: потоки и “порции”

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

  • в один поток попадает один день и один вид задания;
  • в поток берётся количество гранул, не превышающее размер порции;
  • задания с зависимостями по тому же документу не берутся “вперемешку”.

То есть систему можно “настроить на аккуратную работу мелкими кусками”, чтобы снижать конкуренцию с пользователями.

2) Регламентное задание «Допроведение документов»

Его можно (и в 24/7 нужно) запускать не только “ночью”, а регулярно — просто с правильно подобранными порциями и потоками. В документации прямо говорится, что администратор включает выполнение и настраивает расписание регламентного задания «Допроведение документов».

3) Контроль и разбор ошибок очереди

Если очередь “встала”, первым делом проверяют ошибки очередей: после исправления документа формируются новые задания, а старые ошибочные помечаются выполненными и очищаются.

4) “Блокировка периода от изменений”

Это не про “отключить 24/7”, а про дисциплину: закрыли → период защищён от новых правок. Для закрытия месяца предусмотрен механизм блокировки закрытого периода от изменений — чтобы после закрытия в периоде не создавались новые задания к закрытию.

5) Управляемая остановка сеансов (когда совсем без паузы нельзя)

Это полезно для короткого технологического окна, если реально надо добить тяжёлый этап. В ERP есть служебные механизмы “завершения работы пользователей” (в т.ч. с сообщением об ошибке, если принудительное завершение невозможно).

Решение и рекомендации для режима 24/7 (практический план)

Шаг 1. Сначала исключаем “ложное зависание”: проверьте ошибки очереди

Если закрытие “висит бесконечно”, почти всегда есть одна из двух причин:

  • очередь не успевает из-за блокировок,
  • или очередь встала из-за ошибки (и зависимые задания не идут).

Что делаем:

  1. Открываем форму/список неоперативной очереди из рабочего места закрытия месяца (в документации указано, что это доступно администратору).
  2. Ищем признак «Выполнено с ошибкой» и открываем список ошибок очередей заданий.
  3. Чиним первопричину (как правило — документ/настройка/разрыв аналитики), перепроводим/исправляем документ → система создаёт новые задания, и очередь “отлипает”.

Если этот шаг пропустить — можно бесконечно “ждать”, потому что система в принципе не сможет пойти дальше по зависимостям.

Шаг 2. Для 24/7 меняем философию: не “ночной прогон”, а “постоянно, но малыми порциями”

В 24/7 это заменяется на режим: В статье я советовал ночное окно (21:00–06:00) как типовой кейс.

  • частые запуски регламентного задания «Допроведение документов» (например, каждые 10–30 минут),
  • маленький размер порции (чтобы не “раздавить” пользователей),
  • ограниченное число потоков (иногда меньше потоков = меньше блокировок).

Смысл простой: пусть очередь разгребается постоянно, тогда в момент закрытия месяца этап “Допроведение” либо уже почти пустой, либо занимает минуты, а не часы.В документации есть логика расчёта максимальной порции (в терминах “гранул/день, число потоков, число запусков”).

Шаг 3. Настройка потоков: “больше” не всегда значит “быстрее”

Интуитивно хочется поставить 16 потоков. Но в 24/7 это может увеличить взаимные блокировки.

Рекомендация по практике:

  • начните с умеренного числа потоков (например, 2–4),
  • посмотрите, как меняется:
    скорость разгребания,
    количество конфликтов/повторов,
    нагрузка на SQL/сервер 1С.

И помните: по алгоритму “один день + один вид задания” в одном потоке, так что параллелизм имеет смысл, но его легко перегнуть.

Шаг 4. Делайте “предзакрытие” в течение месяца, а не героическое закрытие в один момент

Практика для 24/7 такая:В ERP есть различие предварительного и окончательного закрытия месяца (в т.ч. что именно считается, что не считается).

  • в течение месяца (или в последние 3–5 дней) делаем регулярное предварительное закрытие;
  • это снижает объём перерасчётов “в последнюю ночь/последний час”.

Шаг 5. Без “правил периода” никак: включайте блокировку от изменений и ограничьте правки задним числом

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

Что делаем:

  • включаем/используем механизм блокировки закрытия месяца от изменений (он описан в руководстве по закрытию месяца).
  • организационно: назначаем “окно” для правок прошлого периода (например, до 2-го числа включительно), дальше — только через регламентированный сценарий (служебная записка/согласование/ответственный бухгалтер).

Шаг 6. Если реально нет ни одной “тихой” минуты — нужен короткий технологический слот

Это неприятно, но честно: если нагрузка равномерно высокая 24/7, то “допроведение” и “расчёт себестоимости/закрытие” будут конфликтовать всегда.

Тогда правильный вариант — короткое технологическое окно (даже 15–30 минут), где:

  • пользователи предупреждены,
  • сеансы завершаются управляемо,
  • выполняется критический кусок закрытия.

В ERP есть механики завершения работы пользователей (с обработкой ситуаций, когда завершить нельзя, например, при открытом конфигураторе).

Итог простыми словами (аналогия в стиле статьи)

Представьте, что у вас прачечная работает круглосуточно. Если вы пытаетесь устроить “генеральную стирку всего белья” в разгар потока клиентов — будет пробка и конфликт.

Решение не в том, чтобы ждать “идеальную ночь”, а в том, чтобы:

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

Типичные сценарии 24/7 и что делать

Сценарий 1. “Очередь не разгребается, закрытие висит”

Почти наверняка есть ошибка в очереди или бесконечный поток новых заданий из-за правок прошлого периода.

Действие: проверить “выполнено с ошибкой” и ошибки очередей, исправить первичную причину.

Сценарий 2. “Конфликты блокировок каждую минуту”

Действие: уменьшить порцию и/или число потоков; запускать чаще. Ориентироваться на принцип порционного выполнения.

Сценарий 3. “Никакой ночи нет, производство/продажи постоянно”

Действие: короткое технологическое окно + управляемое завершение сеансов, затем закрытие критических операций.

Если хотите, я могу дать конкретный “чек-лист админа” (где открыть, какие параметры смотреть, какие пороги считать тревожными) — но для этого нужно знать 2 цифры: сколько пользователей одновременно и сколько заданий в неоперативной очереди накапливается за сутки. Это позволит настроить порции “по формуле” из документации и уйти от вечных блокировок. Пишите мне на почту erpmaster-1c@yandex.ru