Почему зависает создание счет-фактур и регламентный расчет взаиморасчетов в 1С:Управление торговлей?

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

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

Причины возникновения блокировок и зависаний

Рассмотрим, как устроена работа подсистемы взаиморасчетов в архитектуре с отложенным распределением:

  1. Конфликт управляемых блокировок: при интерактивном создании счет-фактуры на основании реализации система пытается определить платежно-расчетные документы и зачесть авансы, обращаясь к регистру накопления РасчетыСКлиентамиПоДокументам. Если в этот момент активно регламентное или фоновое задание распределения взаиморасчетов, оно накладывает исключительные транзакционные и управляемые блокировки на измерения (Организация, Партнер, Контрагент, Договор или ОбъектРасчетов). Сеанс пользователя переходит в состояние ожидания освобождения ресурса вплоть до истечения таймаута.
  2. Пиковые нагрузки в первых числах месяца: на стыке расчетных периодов выполняется переоценка валютных остатков и закрытие прошлого месяца. Это порождает массовое добавление записей в очередь отложенного проведения по всем открытым договорам.
  3. Наличие «битых» или зависших заданий: если в регистре сведений ЗаданияКРаспределениюРасчетовСКлиентами присутствуют записи с пустыми измерениями ОбъектРасчетов или Документ, либо даты документов попадают в закрытый период («Дату запрета изменения данных»), регламентное задание входит в бесконечный цикл. Оно пытается провести распределение, натыкается на блокировку запрета записи, откатывает транзакцию и при следующем шаге перезапускается заново, монопольно занимая ресурсы сервера.

Способ 1. Анализ и очистка регистра заданий к распределению

Проанализируем состояние очереди заданий. Для этого перейдем к просмотру регистра сведений ЗаданияКРаспределениюРасчетовСКлиентами (через Функции для технического специалиста / Все функции):

  1. Найдем записи с незаполненными ключевыми полями (ОбъектРасчетов, Документ) или с неактуальными датами из прошлых закрытых периодов.
  2. Удалим единичные зависшие «хвосты». Как показывает практика, наличие даже одной некорректной записи за прошлый месяц способно остановить всю цепочку фонового пересчета.
  3. Проверим соответствие отчетов Ведомость расчетов с клиентами и Задолженность клиентов по срокам. Если показатели сходятся, очередь заданий можно безопасно актуализировать.

Способ 2. Оптимизация расписания и отключение фонового расчета

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

  1. Перейдем в раздел НСИ и администрирование → Настройка НСИ и разделов → Финансовый результат и контроллинг (или Казначейство и взаиморасчеты).
  2. Отключим автоматический запуск фонового задания расчета взаиморасчетов при проведении документов и формировании отчетов.
  3. В списке регламентных заданий настроим расписание для регламентного задания «Выполнение отложенных движений по расчетам с клиентами/поставщиками», сместив интервал его выполнения на ночное нерабочее время, либо увеличим интервал между запусками.

Способ 3. Сброс последовательности и переход на онлайн-взаиморасчеты

Выясним варианты решения проблемы в зависимости от используемого релиза программы:

  1. Для УТ 11.2: сброс заданий выполняется вручную программной очисткой записей регистра сведений либо временным снятием даты запрета изменения данных для завершения регламентного пересчета.
  2. Для УТ 11.3: в конфигурации появилась штатная возможность актуализации и сброса последовательности непосредственно из форм регистров сведений Задания к распределению расчетов с клиентами и Задания к распределению расчетов с поставщиками (видимость команды настраивается через форму списка).
  3. Для УТ 11.4 и новее: разработчики 1С переработали архитектуру взаиморасчетов. Рекомендуется переключить режим взаиморасчетов на «Онлайн». В этом режиме движения по регистрам РасчетыСКлиентамиПоДокументам формируются непосредственно в момент проведения первичного документа, что полностью исключает потребность в очереди заданий и устраняет задержки при создании счет-фактур.
← На главную