Как в универсальном отчете 1С:УТ 11 отобрать закрытые заказы со 100% оплатой?

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

При настройке аналитических отчетов в «1С:Управление торговлей 11» пользователи часто сталкиваются с задачей сопоставить данные по продажам с финансовым состоянием расчетов. Типичный сценарий: требуется открыть Универсальный отчет, выбрать регистр накопления Выручка и себестоимость продаж (таблица Обороты) и отобрать только те заказы клиента, которые одновременно имеют статус Закрыт и оплачены покупателем ровно на 100%.

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

Выясним причину: почему одного регистра недостаточно

Проанализируем структуру хранения данных в конфигурациях на базе ERP-платформы (УТ 11, КА 2, ERP). В системе строго разделены подсистемы учета:

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

Главное ограничение встроенного Универсального отчета заключается в том, что он может считывать данные только из одной таблицы метаданных. Через реквизит документа Заказ клиента через точку можно обратиться только к постоянным свойствам шапки и табличных частей самого документа. Процент и состояние оплаты являются расчетными величинами и внутри заказа не хранятся, поэтому получить их через точку в универсальном отчете невозможно.

Вариант 1. Проверка типовой функциональной опции контроля

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

Перейдем в раздел НСИ и администрирование, откроем группу Настройка НСИ и разделов, выберем пункт Продажи и раскроем блок Заказы клиентов. Проверим активность флага Контроль оплаты при закрытии заказов и заявок.

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

Вариант 2. Построение Универсального отчета по регистру состояний

Если нам требуется увидеть именно факт состояния взаиморасчетов без привязки к себестоимости и выручке отгрузок, настроим Универсальный отчет по специализированному источнику:

  1. Откроем Универсальный отчет (раздел «НСИ и администрирование» — «Печатные формы, отчеты и обработки» или «Отчеты»).
  2. В поле Тип объекта укажем Регистр сведений.
  3. В поле Имя объекта выберем Состояния заказов клиентов.
  4. В поле Таблица выберем Основные данные.
  5. Перейдем в настройки отчета и добавим отборы по нужным колонкам состояния выполнения, состояния оплаты и статуса документа.

Обратим внимание на технический нюанс: в информационных базах, где включен режим фонового или отложенного расчета взаиморасчетов, записи в регистре СостоянияЗаказовКлиентов актуализируются фоновым регламентным заданием. Если платежи только что проведены, данные в этом регистре могут иметь небольшую задержку до момента завершения расчета.

Вариант 3. Использование типовых специализированных отчетов подсистемы продаж

Если цель — проанализировать финансовые показатели (выручку, валовую прибыль) именно по оплаченным позициям, вместо универсального отчета лучше использовать готовые штатные отчеты программы. Разработчики уже объединили необходимые регистры в специализированных формах:

  1. Валовая прибыль по полной оплате отгрузок: Типовой отчет, который соединяет оборотные регистры продаж с регистрами взаиморасчетов. Он выводит строки только тех реализаций и заказов, по которым платежи закрыты на 100%. Находится в панели отчетов раздела Продажи.
  2. Состояние выполнения заказов клиентов: Отчет наглядно выводит сводную картину по каждому заказу: процент оплаты, процент отгрузки, долг клиента и остаток резерва по товарам.

Вариант 4. Создание внешнего отчета на СКД (для разработчиков)

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


ВЫБРАТЬ
    ВыручкаОбороты.ЗаказКлиента КАК ЗаказКлиента,
    ВыручкаОбороты.СуммаВыручкиОборот КАК СуммаВыручки,
    ВыручкаОбороты.СебестоимостьОборот КАК Себестоимость,
    Состояния.Состояние КАК СостояниеЗаказа,
    Состояния.СостояниеОплаты КАК СостояниеОплаты
ИЗ
    РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК ВыручкаОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЗаказовКлиентов КАК Состояния
        ПО ВыручкаОбороты.ЗаказКлиента = Состояния.Заказ
ГДЕ
    ВыручкаОбороты.ЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Закрыт)

Такой запрос объединяет финансовые результаты отгрузки и текущее состояние оплаты каждого заказа клиента, полностью решая поставленную задачу без ограничений типового универсального отчета.

← На главную