Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
17 янв 2026, 09:10

Вывести цвета групп объектов

Автор Алексей_1985_06, 11 янв 2026, 15:04

0 Пользователей и 1 гость просматривают эту тему.

Алексей_1985_06

Всем привет! Знатоков прошу помочь,суть в следующем:
1. Есть справочник в котором хранятся группы оборудования, там реквизит "Цвет" (для того чтобы выделять цветом объекты которые входят в соответствующую группу) см. Рис.1
2. Как на форме списка с объектами эксплуатации вывести что-то типа: Цвет - наименование группы объектов, чтобы пользователь мог видеть к каким цветом выделена группа (реквизит ДС "Классификационная группа" - нужно убрать).

 Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ГруппыОбъектов.Ссылка КАК Ссылка,
        |    ГруппыОбъектов.Цвет КАК Цвет
        |ИЗ
        |    Справочник.ГруппыОбъектовЭксплуатации КАК ГруппыОбъектов
        |ГДЕ
        |    НЕ ГруппыОбъектов.ПометкаУдаления";   
    Результат = Запрос.Выполнить();   
    Выборка = Результат.Выбрать();
   
    Пока Выборка.Следующий() Цикл
// Дальше не могу понять куда вывести эти данные чтобы показать цвет и наименование соответствующей этому цвету группы

antoneus

Ну, группы оборудования как-то связаны с объектами эксплуатации?

Алексей_1985_06

antoneus, да, конечно, в объектах эксплуатации, реквизит - ссылка на справочник группы оборудования

antoneus

Ну левое соединение, в чем проблема-то? В запросе списка.

Алексей_1985_06

antoneus, как колонку с цветом добавить я понимаю, но задача стоит в том, чтобы сверху/снизу ДС отображалось что-то типа прямоугольников залитых соответствующим цветом а напротив них - соответствующие название группы.

nvj84

Что то в этом роде нужно.
Цвета на ДС.png
В справочнике ГруппыОборудования в реквизите Цвет храним название WebЦвета (как он заполняется и как проверяется корректность упускаем) для группы.
В справочнике ОбъектыЭксплуатации есть реквизит с типом предыдущего справочника. В форме списка которого изменяем запрос добавляя поле Цвет (просто пустая строка). Ну и далее в событии списка СписокПриПолученииДанныхНаСервере раскрашиваем согласно цветам указанным в справочнике.
&НаСервереБезКонтекста
Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
    Для Каждого КлючИЗначение Из Строки Цикл
ВебЦветСтроки = КлючИЗначение.Ключ.ГруппаОборудования.Цвет; // У поля динамического списка ГруппаОборудования есть реквизит Цвет (в текстовом виде хранятся WebЦвета)
        ОформлениеЯчейки = КлючИЗначение.Значение.Оформление["Цвет"]; // Цвет - оформляемое поле
        ОформлениеЯчейки.УстановитьЗначениеПараметра("ЦветФона", WebЦвета[ВебЦветСтроки]);
    КонецЦикла;
КонецПроцедуры
ДС ВебЦвета.dt

LexaK

Попробуйте более простой вариант!
Используйте УО усл.оформление
в ДС подтягиваете поле с номером/кодом цвета
а в УО по этому коду красите ячейку

это должно гораздо быстрее\оптимальнее работать чем СписокПриПолученииДанныхНаСервере
если конечно в ДС не 10 записей.
если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск