Вопрос подписчика
А как быть если в ЕРП работают круглосуточно? Данное задание вызывает конфликт блокировок у пользователей, а без его выполнения закрытие месяца зависает навечно…
Суть проблемы
- «Допроведение документов» — это не “одна операция”, а механизм, который обрабатывает накопленные задания из неоперативной очереди (взаиморасчёты, переоценка и т.п.). Закрытие месяца в 1С ERP
- Выполняться это может двумя способами:
- регламентным заданием «Допроведение документов»,
- или внутри закрытия месяца этапом «Допроведение документов», если регламентное задание не справилось/не запускалось.
- В режиме 24/7 у вас почти всегда есть параллельные изменения документов и регистров → фоновые потоки “допроведения” сталкиваются с пользовательскими транзакциями, ловят блокировки, откаты, повторные попытки — и очередь не разгребается.
- Снаружи это выглядит как “закрытие висит”, а по факту оно упёрлось в ошибку очереди.Отдельная коварная причина “вечного зависания” — ошибка в очереди: если гранула задания 3 раза не смогла выполниться, система помечает её как “выполнено с ошибкой”, и все зависимые задания дальше не попадают в обработку, пока вы не исправите первичную причину.
Что может 1С:ERP (встроенные механизмы)
1) Настройка неоперативной очереди: потоки и “порции”
В ERP есть управляющий поток и исполняющие потоки, которые берут задания порциями. Важные детали алгоритма:
- в один поток попадает один день и один вид задания;
- в поток берётся количество гранул, не превышающее размер порции;
- задания с зависимостями по тому же документу не берутся “вперемешку”.
То есть систему можно “настроить на аккуратную работу мелкими кусками”, чтобы снижать конкуренцию с пользователями.
2) Регламентное задание «Допроведение документов»
Его можно (и в 24/7 нужно) запускать не только “ночью”, а регулярно — просто с правильно подобранными порциями и потоками. В документации прямо говорится, что администратор включает выполнение и настраивает расписание регламентного задания «Допроведение документов».
3) Контроль и разбор ошибок очереди
Если очередь “встала”, первым делом проверяют ошибки очередей: после исправления документа формируются новые задания, а старые ошибочные помечаются выполненными и очищаются.
4) “Блокировка периода от изменений”
Это не про “отключить 24/7”, а про дисциплину: закрыли → период защищён от новых правок. Для закрытия месяца предусмотрен механизм блокировки закрытого периода от изменений — чтобы после закрытия в периоде не создавались новые задания к закрытию.
5) Управляемая остановка сеансов (когда совсем без паузы нельзя)
Это полезно для короткого технологического окна, если реально надо добить тяжёлый этап. В ERP есть служебные механизмы “завершения работы пользователей” (в т.ч. с сообщением об ошибке, если принудительное завершение невозможно).
Решение и рекомендации для режима 24/7 (практический план)
Шаг 1. Сначала исключаем “ложное зависание”: проверьте ошибки очереди
Если закрытие “висит бесконечно”, почти всегда есть одна из двух причин:
- очередь не успевает из-за блокировок,
- или очередь встала из-за ошибки (и зависимые задания не идут).
Что делаем:
- Открываем форму/список неоперативной очереди из рабочего места закрытия месяца (в документации указано, что это доступно администратору).
- Ищем признак «Выполнено с ошибкой» и открываем список ошибок очередей заданий.
- Чиним первопричину (как правило — документ/настройка/разрыв аналитики), перепроводим/исправляем документ → система создаёт новые задания, и очередь “отлипает”.
Если этот шаг пропустить — можно бесконечно “ждать”, потому что система в принципе не сможет пойти дальше по зависимостям.
Шаг 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