При работе в конфигурации 1С:Управление торговлей (редакция 11.4), особенно на релизах ветки 11.4.9.х (в частности, 11.4.9.98), пользователи часто сталкиваются с крайне неприятной ситуацией. После выполнения всех регламентных операций по закрытию месяца отчет «Контроль управленческого баланса» оказывается незакрытым. В нем отображается множество расхождений («хвостов») по суммам, которые были сформированы автоматическими документами Распределение расхода.
Самое удивительное в данном поведении системы заключается в том, что если открыть эти автоматически созданные документы вручную и просто перепровести их, то отчет «Контроль управленческого баланса» волшебным образом закрывается «в ноль», все предупреждения исчезают, а регламентные операции остаются со статусом успешного выполнения (зеленые галочки). Давайте подробно разберем, почему возникает этот баг, как работает механизм распределения в новых релизах и какими способами можно окончательно решить данную проблему.
Начиная с релиза УТ 11.4.9, разработчики фирмы «1С» кардинально переработали схему распределения затрат и формирования финансового результата. Если раньше за доходы и расходы отвечал один общий механизм, то теперь система разделяет их:
Распределение расхода. Он генерируется автоматически во время процедуры закрытия месяца для всех статей расходов, у которых настроено списание на финансовый результат или на другие направления деятельности, если распределение не было введено вручную.Баг с «красным» управленческим балансом возникает из-за специфики выполнения регламентных операций в фоновом режиме. Когда процедура закрытия месяца запускает расчет себестоимости и распределение расходов, документы Распределение расхода создаются программно в рамках общего пакета транзакций расчета. В этот момент из-за внутренней ошибки кэширования и неоптимальной последовательности записи данных в платформе 1С:Предприятие 8.3 не срабатывает полноценный механизм проведения по регистру накопления Активы и пассивы (именно на его основе строится управленческий баланс).
При этом, когда мы открываем документ интерактивно в режиме предприятия и нажимаем кнопку «Провести», система инициирует стандартную транзакцию проведения «в лоб». В этом случае все обработчики проведения отыгрывают корректно, регистр Активы и пассивы получает необходимые симметричные записи двойной записи, и баланс сходится.
Если у вас нет возможности прямо сейчас обновить конфигурацию или привлечь программиста для изменения кода, можно воспользоваться самым простым административным обходом проблемы. Поскольку ручное перепроведение документов решает проблему, автоматизируем этот процесс.
Проанализируем порядок действий после завершения закрытия месяца:
Групповое изменение реквизитов (или воспользуемся аналогичной обработкой группового перепроведения документов).Документ "Распределение расхода".После этого переформируем отчет «Контроль управленческого баланса». Вы увидите, что все расхождения по регистру Активы и пассивы исчезли.
Если вы хотите устранить первопричину багов автоматического распределения и закрытия месяца без постоянного ручного вмешательства, необходимо скорректировать программный код конфигурации. Схожая проблема наблюдается не только в УТ, но и в родственных конфигурациях — 1С:Комплексная автоматизация (КА 2) и 1С:ERP Управление предприятием.
Давайте посмотрим на пример доработки. В модуле менеджера документа РаспределениеПрочихЗатрат (или соответствующем объекте, отвечающем за автоматическую генерацию распределения расходов в вашей версии конфигурации) найдем процедуру, отвечающую за финальное распределение на финансовый результат. Обычно это метод РаспределитьРасходыНаФинансовыйРезультат().
Нам необходимо принудительно зарегистрировать сформированные регистраторы к отражению в учете в цикле обхода выборки. Рассмотрим код, который необходимо внедрить в конец цикла ВыборкаРегистраторов.Следующий():
// Внедрение принудительной регистрации движений для корректного закрытия баланса
РеглУчетПроведениеСервер.ЗарегистрироватьОтражениеДокумента(
ВыборкаРегистраторов.Регистратор,
Перечисления.СтатусыОтраженияДокументовВРеглУчете.КОтражениюВРеглУчете
);
Этот код заставляет систему гарантированно зафиксировать измененные документы распределения расходов в очереди трансляции проводок и движений по активам и пассивам, предотвращая «зависание» сумм в промежуточном состоянии фонового потока.
Описанная проблема являлась критической ошибкой платформенных механизмов интеграции контуров себестоимости и управленческого баланса в ветке 11.4.9. Фирма «1С» оперативно отреагировала на жалобы пользователей и выпустила исправления.
Рекомендуем выполнить следующие шаги для системного решения:
Активы и пассивы при автоматическом закрытии месяца была существенно оптимизирована и избавлена от проблемы «двойного проведения» документов Распределение расхода.Также стоит помнить о циклической зависимости расчетов. Иногда, чтобы полностью выровнять баланс, требуется запустить процедуру закрытия месяца повторно 2–3 раза подряд, так как расчет себестоимости может незначительно корректировать суммы распределения расходов на каждом последующем этапе итерации.