Как скрыть вывод текста отбора и настроить расчет итогов в отчетах УТ 11?

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

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

Анализ проблемы: почему СКД выводит текст отбора и как работают итоги

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

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

Шаг 1. Отключение вывода информации об отборе группировки

Выясним причину появления служебной строки и уберем ее штатными средствами расширенной формы настроек отчета. Выполним следующие действия:

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

Шаг 2. Корректный расчет итогов через пользовательские поля

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

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

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

Выбор 
    Когда [Сальдо конечное] > 0 
    Тогда [Сальдо конечное] 
    Иначе 0 
Конец
  1. В поле Выражение итогов пропишем агрегатную функцию для вышестоящих уровней и общего итога:

Сумма(Выбор Когда [Сальдо конечное] > 0 Тогда [Сальдо конечное] Иначе 0 Конец)

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

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

Шаг 3. Использование условного оформления для скрытия ненужных строк

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

  1. В расширенных настройках перейдем на закладку Условное оформление и нажмем Добавить.
  2. В области Оформление отметим параметр Текст и оставим значение пустым (или настроим формат числа так, чтобы отрицательные числа не отображались).
  3. На вкладке Условие добавим строку: поле [Сальдо конечное] со значением сравнения Меньше или равно 0.
  4. На вкладке Оформляемые поля выберем колонку сальдо.
  5. При таком подходе итоговые строки отчета сохранят исходную бухгалтерскую корректность, а в детальных строках клиентов отрицательные числа отображаться не будут.

Методологические нюансы расчетов в «1С:Управление торговлей 11»

Проанализируем типовую специфику ведения взаиморасчетов в УТ 11. Партнеры предприятия нередко выступают одновременно и покупателями, и поставщиками. Важно учитывать, что в программе учет задолженностей ведется в двух независимых регистрах накопления: РасчетыСКлиентами и РасчетыСПоставщиками.

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

← На главную