При разработке отчетов на схеме компоновки данных (СКД) в «1С:Предприятие» часто возникает задача изменить стандартный вывод значений. Например, добавить статическое слово к группировке (превратить «Иванов» в «Итого по: Иванов»), дописать единицу измерения к числу (добавить «%» или «руб.») или полностью переопределить представление ячейки. При этом важно сделать так, чтобы оформление применялось локально — только на уровне группировок, не затрагивая детальные записи, и сохраняло стандартную расшифровку (интерактивный клик по ссылке).
В этой статье мы подробно разберем четыре наиболее эффективных и профессиональных способа решения этой задачи. Вы узнаете, почему стандартное условное оформление через форматную строку иногда выдает ошибку и как обойти это ограничение программно или интерактивно.
Этот способ идеально подходит, когда вам нужно разделить представление данных в детальных строках и в итогах по группировкам. Пользовательские поля в СКД позволяют задавать разные выражения для этих уровней без изменения схемы наборов данных.
Разберем процесс настройки по шагам:
КонтрагентСПрефиксом.Контрагент. В детальных строках имя будет выводиться в стандартном виде."Итого по: " + Строка(Контрагент)Контрагент на вновь созданное пользовательское поле КонтрагентСПрефиксом.Этот метод хорош тем, что он не требует написания сложного кода и изменения структуры запроса, а также полностью сохраняет стандартные механизмы работы СКД.
Использование макетов оформления предоставляет разработчику абсолютную свободу в форматировании выводимых данных. Этот способ незаменим, если вам нужно не просто добавить текст, но и сохранить интерактивность ячейки — возможность дважды кликнуть по контрагенту и открыть его карточку в системе.
Рассмотрим, как правильно настроить макет поля для группировки:
Контрагент). В колонке «Тип макета» можно оставить значение по умолчанию или жестко привязать его к имени конкретной группировки.Итого по: [КонтрагентПредставление]КонтрагентПредставление.Строка(Контрагент)ПараметрРасшифровкиКонтрагента.КонтрагентТеперь при формировании отчета СКД автоматически подставит нужное текстовое сопровождение, сохранив при этом стандартную навигацию по ссылкам «1С».
Часто разработчики пытаются решить задачу «в лоб» через условное оформление, прописывая в свойстве «Формат» выражение вида "Итого по: " + Строка(Контрагент). Это приводит к ошибке выполнения отчета. Свойство «Формат» ожидает на вход исключительно стандартную форматную строку платформы (правила округления, маски дат и чисел), а не произвольное выражение встроенного языка.
Чтобы обойти это ограничение и красиво решить задачу с помощью условного оформления, нам потребуется свойство «Текст» в комбинации с вычисляемыми полями.
Выясним алгоритм действий по шагам:
ПредставлениеДляГруппировки."Итого по: " + Строка(Контрагент)Контрагент).ПредставлениеДляГруппировки.Контрагент).Таким образом, условное оформление отработает локально только для выбранной группировки, подменив стандартное системное представление ссылочного объекта на наше вычисляемое поле с префиксом.
Если ваша задача сводится к банальному добавлению статического символа к числовому значению (как в сообщении №0 исходной темы форума), то прибегать к вычисляемым полям или макетам не нужно. Здесь отлично справится стандартная форматная строка условного оформления.
Проанализируем пример настройки числового формата со знаком процента:
Конструктор сформирует форматную строку следующего вида:
ЧДЦ=2; ЧФ='0" %"'
Обратите внимание на синтаксис: сам символ процента обязательно помещается в двойные кавычки внутри общих одинарных кавычек параметра ЧФ. Это позволяет СКД корректно интерпретировать текст как статический суффикс числового значения.
Этот способ подходит для глобального переопределения вывода поля во всем отчете. На вкладке «Наборы данных» у каждого поля есть колонка «Выражение представления». Если прописать туда формулу:
Строка(Контрагент) + " (%)"
то система применит это представление абсолютно ко всем ячейкам, где выводится данное поле, включая детальные записи, группировки и даже системные подсказки в быстрых отборах.
Важное ограничение: написать условие «применять только для итогов» непосредственно в выражении представления поля набора данных невозможно, поэтому для гибкой локальной настройки группировок используйте первые три способа.