Раскраска строк в СКД

14.10.15

Разработка - СКД

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

Итак, если у вас есть отчет, в котором вы выводите какие то данные, которые в своем составе имеют поле справочника или документа, хранящее цвет, и желаете оформить выводимую строку в соответствии с этим цветом, то я расскажу, как это сделать.

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

 

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;


Настройки = КомпоновщикНастроек.Настройки;


//Удалям созданные нами предустановленные условные оформления
//для того, чтобы не дублировать их при повторном формировании отчета
СписокУдаляемыхЭлементов = Новый СписокЗначений;
Для каждого ЭлементУсловногоОформления Из Настройки.УсловноеОформление.Элементы Цикл
Если ЭлементУсловногоОформления.ИдентификаторПользовательскойНастройки = "Предустановленный" Тогда
СписокУдаляемыхЭлементов.Добавить(ЭлементУсловногоОформления);
КонецЕсли;
КонецЦикла;
Для каждого Элемент Из СписокУдаляемыхЭлементов Цикл
Настройки.УсловноеОформление.Элементы.Удалить(Элемент.Значение);
КонецЦикла;

//Обходим весь необходимый справочник и для каждого элемента добавляем условное оформление по цвету фона
ВыборкаСостояния = Справочники.СостоянияЗаказовПокупателей.Выбрать();
Пока ВыборкаСостояния.Следующий() Цикл

ЦветФона = ВыборкаСостояния.Цвет.Получить();
Если ТипЗнч(ЦветФона) <> Тип("Цвет") Тогда
Продолжить;
КонецЕсли;

ЭлементУсловногоОформления = Настройки.УсловноеОформление.Элементы.Добавить();

ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));


ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СостояниеЗаказа"); 
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = ВыборкаСостояния.Ссылка; 

ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", ЦветФона);
ЭлементУсловногоОформления.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
//Указываем идентификатор настройки для того, чтобы при повторном формировании отчета
//удалить все элементы с этим идентификатором
ЭлементУсловногоОформления.ИдентификаторПользовательскойНастройки = "Предустановленный";

КонецЦикла;

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки,ДанныеРасшифровки);

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки);

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
КонецПроцедуры

Вступайте в нашу телеграмм-группу Инфостарт

Раскраска СКД

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    251599    1394    421    

1147

Инструментарий разработчика СКД Программист 1С 8.3 Бесплатно (free)

В этой статье представлен СКДБилдер — общий модуль-обёртка над объектной моделью СКД, который сокращает код в 3-4 раза и делает его читаемым.

29.01.2026    5917    315    shapa_pro    25    

68

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

29.10.2025    17584    ovetgana    112    

108

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

01.07.2025    10277    krasnoshchekovpavel    5    

68

СКД Программист Стажер 1С:Предприятие 8 Россия Бесплатно (free)

Несколько способов управления формами выбора параметров и отборов СКД.

10.04.2025    9576    Neti    0    

41

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

27.02.2025    16109    ovetgana    50    

93

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

24.12.2024    13743    Akcium    17    

46

СКД Механизмы типовых конфигураций Запросы Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Работая с типовыми отчетами в конфигурациях «Зарплата и управление персоналом, редакция 3», «Зарплата и кадры государственного учреждения, редакция 3» и подобных, в схемах компоновки данных можно встретить конструкции запросов, которые обращаются к некоторым виртуальным таблицам.

20.08.2024    10401    AlexeyPROSTO_1C    1    

32
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ZUL_MTFKA 14 14.10.15 07:56 Сейчас в теме
А почему не добавить условное оформление по определенному признаку в самой СКД?

Прикрепленные файлы:
2. Daringer 20 14.10.15 08:35 Сейчас в теме
Потому что цвет заранее не известен. Пользователь сам назначает цвет.
pm74; luter-89; dgolovanov; +3 Ответить
3. dgolovanov 14.10.15 11:23 Сейчас в теме
(2) ща будет вопрос типа "а зачем пользователю самому назначать себе цвет?" ))
4. zhuravlev_as 605 29.10.15 09:07 Сейчас в теме
Что-то я мало что понял. Заголовок публикации "Если вы выводите в отчет какой-либо элемент справочника, который хранит цвет" - это доработка должна быть? Тогда так и пишите. И потом снова, написано "элемент справочника", а на заглавном рисунке - документы "Заказ покупателя".

На фоне всего этого мне улыбается использовать условное оформление компоновки данных:
ZUL_MTFKA; +1 Ответить
5. pm74 207 03.12.17 01:18 Сейчас в теме
(0) каким образом вы храните цвет ? в виде строки ?
Для отправки сообщения требуется регистрация/авторизация