При работе в программе «1С:Управление торговлей 11» пользователи часто сталкиваются со следующей проблемой: запускается стандартный механизм восстановления последовательности (через меню Проведение документов -> Восстановление последовательности), расчеты с клиентами успешно актуализируются и сдвигаются на текущую дату, а вот граница расчетов с поставщиками намертво «застывает» на какой-то старой дате. При этом групповое перепроведение документов проходит абсолютно гладко, система не выдает никаких ошибок, а в журнале регистрации отсутствуют какие-либо критические записи.
В этой статье мы подробно разберем, почему возникает подобная ситуация, как устроена архитектура взаиморасчетов в современных версиях УТ 11, и по шагам пройдем весь путь локализации и устранения этой проблемы.
Для того чтобы понять, почему стандартное восстановление последовательности не дает результатов, нам необходимо заглянуть под капот конфигурации «1С:Управление торговлей 11». В редакциях 11.1–11.4 по умолчанию часто используется так называемый «офлайновый» режим распределения взаиморасчетов.
В отличие от старых конфигураций (например, УТ 10.3), где зачет авансов и распределение платежей происходили непосредственно в момент проведения первичного документа (накладной или платежного поручения), в УТ 11 этот процесс разделен на два этапа:
ЗаданияКРаспределениюРасчетовСПоставщиками (или аналогичный регистр по расчетам с клиентами).Если дата границы последовательности расчетов с поставщиками перестала двигаться, это означает, что в регистре ЗаданияКРаспределениюРасчетовСПоставщиками накопились необработанные записи («задания»), выполнение которых по какой-то причине заблокировано или аварийно прерывается.
Основной движок, который отвечает за актуализацию расчетов и продвижение границы последовательности вперед — это регламентное задание «Выполнение отложенных движений по расчетам с клиентами/поставщиками». Выясним, почему оно может не срабатывать:
Часто фоновый алгоритм распределения расчетов спотыкается на конкретном документе из-за логических ошибок в данных. При обычном интерактивном проведении документа система не выдает ошибок, но при попытке распределить взаиморасчеты фоновым заданием происходит сбой.
Проанализируем наиболее частые скрытые ошибки:
Совет по локализации проблемы: Чтобы найти тот самый «проблемный» документ, на котором спотыкается система, попробуем перепровести вручную документы за ту конкретную дату, на которой «зависла» граница последовательности. Снимите их с проведения и проведите заново. Если при ручном перепроведении конкретного документа система выдаст ошибку проведения (например, по контролю остатков, нехватке прав или блокировке периода) — это и есть причина остановки последовательности.
Если вы работаете в современных версиях программы (начиная с релизов УТ 11.4 и выше), разработчики 1С предлагают кардинальное решение этой проблемы — переход на новую архитектуру «Онлайн-взаиморасчеты».
В режиме «Онлайн» распределение взаиморасчетов происходит мгновенно в момент проведения документов. Классический «офлайновый» механизм и регистры заданий к распределению в этом случае вообще не используются, а сама вкладка восстановления последовательности расчетов в интерфейсе становится неактивной или полностью скрывается. Это избавляет базу данных от необходимости регулярного запуска фоновых заданий актуализации.
Разберем по шагам, как переключить программу в этот режим:
Если ваша база работает на старом релизе или по каким-то причинам вы не можете оперативно перейти на онлайн-режим взаиморасчетов, выполним следующие практические шаги для принудительного сдвига границы:
Забудьте про устаревшие обработки восстановления последовательности через стандартное меню проведения. Все расчеты в УТ 11 завязаны на единый регламент закрытия периода. Перейдем в раздел Финансовый результат и контроллинг -> Закрытие месяца. Запустим расчет для нужной организации. Обратим особое внимание на этап «Формирование движений по данным взаиморасчетов». Если на этом этапе возникает ошибка, система покажет детальный лог со ссылкой на конкретный документ-виновник.
Иногда система просто «теряет» информацию о том, что по какому-то контрагенту нужно пересчитать расчеты (например, если документы были изменены напрямую кодом без записи в регистры заданий). Мы можем инициировать расчет вручную:
ЗаданияКРаспределениюРасчетовСПоставщиками.Если при попытке выполнить расчет система бесконечно «крутит» процесс актуализации без видимого результата, выполним следующие действия:
BackgroundJob).Выполнение этих шагов гарантированно поможет локализовать ошибку, очистить очередь зависших заданий и восстановить корректное состояние взаиморасчетов с вашими поставщиками.