Как настроить отчет по сегментам партнеров в 1С без задвоения данных?

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

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

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

В чем суть проблемы и почему «1С» права?

Проанализируем механику работы сегментов. В конфигурациях 1С связь между справочником Партнеры и сегментами строится по принципу «многие-ко-многим». Это означает, что один и тот же клиент (партнер) может одновременно входить в неограниченное количество сегментов. Например, «Дядя Вадя» может одновременно являться участником сегментов «Оптовые покупатели», «Проблемные клиенты» и «Региональные дилеры».

Представим, что мы все-таки добавили жесткую группировку по сегментам в отчет по задолженности. Если «Дядя Вадя» должен нашей компании 10 000 рублей, то в отчете с группировкой по сегментам мы увидим следующую картину:

При подсчете общего итога по отчету система СКД просуммирует эти строки, и итоговая задолженность превратится в 30 000 рублей вместо реальных 10 000 рублей. Обычный менеджер или руководитель, посмотрев на такой отчет, получит недостоверные данные о дебиторской задолженности компании. Именно поэтому стандартная группировка по сегментам в типовых отчетах не предусмотрена.

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

Решение 1. Использование стандартных отборов вместо группировок

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

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

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

Решение 2. Использование дополнительных реквизитов (рекомендуемый метод)

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

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

Разберем процесс настройки по шагам:

  1. Перейдем в раздел НСИ и администрирование -> Общие настройки -> Дополнительные реквизиты и сведения.
  2. Найдем в списке справочник Партнеры и добавим новый дополнительный реквизит, например, «Основная категория клиента» с типом значения «Дополнительное значение».
  3. Заполним список возможных значений (например: «Опт», «Розница», «Дилеры»).
  4. В карточках партнеров заполним созданный реквизит.
  5. Теперь откроем настройки любого типового отчета по продажам или взаиморасчетам. В структуре группировок добавим новое поле. Платформа 1С автоматически делает доступными дополнительные реквизиты. Нам достаточно развернуть поле Партнер и выбрать наш дополнительный реквизит Основная категория клиента.

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

Решение 3. Вывод сегментов «через запятую» с помощью СКД (для разработчиков)

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

Для реализации этого метода выполним следующие действия в СКД:

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

СоединитьСтроки(ТаблицаЗначений(Сегмент))

Такое решение позволит вывести в отчет красивую и информативную колонку: например, напротив контрагента «Дядя Вадя» в колонке «Сегменты» будет выведено «Оптовики, Проблемные». При этом сама строка в отчете останется единственной, и итоговая сумма долга в 10 000 рублей не задвоится.

Ограничение логики отборов «И» / «ИЛИ»

Анализируя работу с отборами по сегментам, важно учитывать еще один нюанс платформы. Стандартный отбор по сегментам в СКД работает по логике «ИЛИ». То есть, если вы укажете в отборе два сегмента («Опт» и «VIP»), система выведет клиентов, которые принадлежат хотя бы к одному из этих сегментов.

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

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

← На главную