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