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