Почему пропали движения по регистру «Расчеты с клиентами по документам» в 1С:УТ 11.4 и как их восстановить?

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

При работе в конфигурациях 1С:Управление торговлей (редакция 11.4), 1С:Комплексная автоматизация 2 или 1С:ERP пользователи и администраторы иногда сталкиваются с неприятной ситуацией. После изменения или перепроведения документов оплаты (например, Поступление наличных ДС или Списание с банковского счета) либо документов отгрузки (Реализация товаров и услуг) внезапно пропадают движения по детальным регистрам взаиморасчетов. В частности, «опустеть» может важный регистр накопления Расчеты с клиентами по документам.

Давайте подробно разберем, почему возникает эта проблема, как устроена архитектура ведения взаиморасчетов в современных решениях фирмы «1С», и пошагово выясним, как вернуть пропавшие движения и не допустить повторения подобного цейтнота в будущем.

---

Архитектурные особенности взаиморасчетов: Онлайн против Оффлайн

Для того чтобы понять природу проблемы, проанализируем, как система 1С:УТ 11.4 производит запись движений по расчетам с контрагентами. В конфигурации заложено два принципиально разных режима проведения расчетов:

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

Если в вашей базе включен оффлайн-режим, любые манипуляции с реквизитами документов (например, изменение реквизита Основание платежа в документе Поступление наличных ДС) приводят к тому, что старые детальные движения очищаются, а в регистр сведений отправляется новая задача на расчет. Пока задача не будет выполнена, движения по регистру Расчеты с клиентами по документам будут отсутствовать.

---

Выясняем причины: почему фоновое задание не выполнило расчет?

Если движения пропали и не появляются длительное время, это сигнализирует о сбое в работе механизма распределения расчетов. Рассмотрим подробнее три основные причины, почему регламентное задание «Выполнение отложенных движений по расчетам с клиентами\поставщиками» могло не справиться со своей задачей.

Причина 1. Общая дата запрета изменения данных

Регламентные задания в 1С выполняются в фоновом режиме от лица системного пользователя (обычно это предопределенный пользователь для регламентных задач или учетная запись администратора). При выполнении отложенных расчетов система пытается актуализировать движения документов, которые могут относиться к прошлым (уже закрытым) периодам.

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

Причина 2. «Битые» записи в регистре заданий к распределению

В процессе работы информационной базы (особенно при программном создании документов сторонними обработками, интеграции с сайтами или некорректном переносе данных) в регистре сведений Задания к распределению расчетов с клиентами могут появиться некорректные записи. Чаще всего это строки, в которых отсутствует аналитика организации (поле Организация пустое).

Когда регламентный механизм пытается обработать запись без указания организации, алгоритм распределения расчетов зацикливается, завершается ошибкой СУБД или просто игнорирует выполнение всей последующей очереди заданий.

Причина 3. Отключен автоматический запуск фонового задания

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

---

Пошаговая инструкция по восстановлению движений

Рассмотрим по шагам, как локализовать ошибку, очистить «битые» данные и запустить расчет для восстановления статус-кво в информационной базе.

Шаг 1. Проверяем и очищаем регистр «Задания к распределению расчетов с клиентами»

Прежде чем приступать к принудительному расчету, необходимо избавиться от ошибочных записей с пустой организацией. Сделать это можно с помощью стандартного интерфейса «Функции для технического специалиста» (в старых версиях — «Все функции»):

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

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


// Создаем набор записей для очистки пустых ссылок организации
НаборЗаписей = РегистрыСведений.ЗаданияКРаспределениюРасчетовСКлиентами.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Организация.Установить(Справочники.Организации.ПустаяСсылка());

// Считываем набор (если записи есть, они попадут в набор)
НаборЗаписей.Прочитать();

Если НаборЗаписей.Количество() > 0 Тогда
    НаборЗаписей.Очистить();
    НаборЗаписей.Записать(Истина);
    Сообщить("Успешно зачищены пустые записи в регистре заданий.");
КонецЕсли;

Шаг 2. Временное отключение даты запрета редактирования

Чтобы исключить влияние даты запрета на выполнение фонового задания, перейдем в раздел НСИ и администрирование — Поддержка и обслуживание — Даты запрета изменения данных. Временно сдвиньте дату запрета назад (на период проведения корректируемого документа) либо полностью отключите ее на время проведения расчетов.

Шаг 3. Запуск регламентного задания вручную

Теперь запустим расчет отложенных движений в ручном режиме:

  1. Перейдите в раздел Администрирование — Обслуживание — Регламентные и фоновые задания.
  2. Найдите в списке задание с наименованием Выполнение отложенных движений по расчетам с клиентами\поставщиками (в некоторых релизах они разделены на два отдельных задания).
  3. Нажмите кнопку Выполнить сейчас.
  4. Дождитесь завершения работы задания. Статус должен измениться на «Выполнено».

Также запустить расчет можно непосредственно из рабочего места закрытия месяца: перейдите в Финансовый результат и контроллинг — Закрытие месяца и выполните операцию Актуализация расчетов с клиентами/поставщиками.

После успешного завершения задания зайдите в документ оплаты или реализации и проверьте движения по регистру Расчеты с клиентами по документам — они должны восстановиться в полном объеме.

---

Как сделать так, чтобы движения всегда формировались сразу?

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

Вариант А. Перевод системы на новую онлайн-архитектуру взаиморасчетов (рекомендуется)

Этот способ кардинально решает проблему задержки проведения документов.

  1. Перейдите в раздел НСИ и администрирование — Настройка НСИ и разделов — Казначейство и взаиморасчеты.
  2. Найдите подраздел Взаиморасчеты.
  3. Переведите переключатель архитектуры взаиморасчетов в положение Онлайн.

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

Вариант Б. Настройка моментальной актуализации в оффлайн-режиме

Если по каким-то причинам переход на онлайн-режим сейчас невозможен (например, база сильно доработана или вы ограничены требованиями учета), можно настроить автоматический вызов фонового задания сразу при проведении документов пользователем.

  1. Перейдите в те же настройки: НСИ и администрирование — Казначейство и взаиморасчеты.
  2. Установите флаг напротив опции Автоматически запускать фоновое задание расчета взаиморасчетов при проведении документов.
  3. Дополнительно включите опцию Автоматически запускать фоновое задание расчетов взаиморасчетов из отчетов.

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

← На главную