Как вывести максимальную и минимальную сумму в отчете 1С без использования конфигуратора

Пользователь 1С v8.3 (Управляемые формы)
← На главную

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

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

Использование механизма пользовательских полей

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

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

В открывшемся окне настройки варианта отчета перейдем на вкладку Пользовательские поля. Здесь мы можем создавать поля двух типов:

  1. Поле-выбор: позволяет выводить текст или значения в зависимости от условий (аналог конструкции ВЫБОР КОГДА в запросах).
  2. Поле-выражение: позволяет использовать математические и агрегатные функции для вычислений. Это именно то, что нам нужно.

Создание поля для расчета максимума и минимума

Разберем процесс создания колонки с максимальным значением. Нажмем кнопку Добавить и выберем Новое поле-выражение. Проанализируем настройки, которые нам необходимо заполнить:

Заголовок поля: укажем понятное название, например, Максимальная сумма.

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

МАКСИМУМ(Сумма)

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

МАКСИМУМ(Сумма)

Аналогичным образом создадим второе пользовательское поле для минимума, назвав его Минимальная сумма и использовав функцию МИНИМУМ(Сумма). Проанализируем ситуацию: теперь у нас есть два новых виртуальных поля, которые ведут себя как полноценные ресурсы отчета.

Размещение полей в структуре и выбор колонок

Создать поля — это только половина дела. Теперь нам нужно заставить систему вывести их в виде отдельных колонок. Для этого выполним следующие действия:

  1. Перейдем на вкладку Настройки (в том же окне Изменить вариант).
  2. В нижней части окна найдем вкладку Выбранные поля.
  3. В левом списке доступных полей найдем папку Пользовательские поля.
  4. Перетащим наши созданные поля Максимальная сумма и Минимальная сумма в правый список.
  5. Используя стрелки «Вверх» и «Вниз», установим их в нужное место (например, сразу после основной колонки Сумма).

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

Разбор нюансов агрегации: почему значения могут быть одинаковыми?

Рассмотрим ситуацию, когда пользователь добавил поле, но в каждой строке видит то же самое значение, что и в колонке Сумма. Это происходит потому, что на уровне Детальных записей (самых нижних строк отчета) контекстом функции МАКСИМУМ является одна единственная текущая строка. Максимум из одного числа равен самому этому числу.

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

Альтернативный подход: Условное оформление

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

Для этого в меню Изменить вариант перейдем на вкладку Условное оформление:

  1. Добавим новое условие.
  2. В оформлении выберем, например, Цвет фона — зеленый для максимума и красный для минимума.
  3. В условии укажем: Сумма Равно [Максимальная сумма]. Здесь в качестве значения сравнения мы выбираем созданное нами пользовательское поле.

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

Ограничения и рекомендации

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

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

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

← На главную