Как в отчете СКД изменить фон строки итогов?

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

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

Решение с помощью условного оформления

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

Пошаговая инструкция:

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

После этих действий при формировании отчета строка общих итогов будет окрашена в выбранный вами цвет.

Что делать, если условное оформление не работает?

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

Причина 1: Неправильно задана область использования

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

Причина 2: Указаны оформляемые поля

Как упоминалось выше, если на вкладке «Оформляемые поля» указать одно или несколько полей, оформление применится только к ним. Например, ячейки с итоговыми суммами окрасятся, а ячейка с текстом «Итого» останется без изменений. Для окрашивания всей строки список полей должен быть пустым.

Причина 3: Правило оформления добавлено не на уровне всего отчета

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

Причина 4: Пользовательские настройки

Часто разработчик настраивает все в конфигураторе, а у пользователя отчет выглядит по-старому. Это может происходить из-за того, что у пользователя сохранены свои, персональные настройки отчета, которые имеют приоритет. Чтобы это проверить, попросите пользователя в режиме «1С:Предприятие» сбросить настройки отчета. Обычно это делается через меню «Еще» → «Стандартные настройки» → «Загрузить стандартные настройки» или «Еще» → «Прочие» → «Сбросить настройки».

Причина 5: Использование макета

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

Альтернативный способ: использование макетов

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

Разберем по шагам:

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

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

Пример запроса для отчета

Хотя сам запрос не влияет на оформление, для полноты картины приведем пример, похожий на тот, что обсуждался в теме. Он показывает, как собираются данные для отчета по продажам и доставкам.


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

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

← На главную