Полезные ссылки

Скачать TeamViewer

Скачать TEAMVIEWER

Скачать CureIt

Скачать Dr. Web CureIt

Прайс-лист компании 1С

Скачать прайс-лист 1C

Проверка подписки ИТС

Введите регистрационный номер Вашего программного продукта
Главная » Архив статей

Раскраска формы списка программно

Для управляемых форм. Тестировалось на 1С 8.3 (8.3.6.2237).

Для программной раскраски формы списка необходимо использовать условное оформление (УО) формы или настройку самого списка (Смотрим свойства формысписка).
Однако, т.к. условное оформление спискаформы имеет ограничение (например, нельзя указать разность дат в виде сравнения), то необходимо использовать программное оформление. Учтите, что УО доступно только на сервере (директива компиляции &НаСервере).


Пример УО для раскраски списка по одному условию:

Раскрасим в оранжевый строку списка, если ДатаПроблемы старше 7ми дней.

&НаСервере
Процедура РаскраситьСписок()
   
    ЗначениеОтбора = НачалоДня(ТекущаяДата()) - 604800; //7 дней
   
    ЭлементОформления = Список.УсловноеОформление.Элементы.Добавить();

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

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



Пример Уо для раскраски по нескольким условиям:

Раскрасим в оранжевый строку списка, если ДатаПроблемы старше 7ми дней и статус проблемы "Ожидание согласования" ИЛИ раскрасим в красный, если ДатаПроблемы старше 14 дней и стутс проблемы "Ожидание согласования".

&НаСервере
Процедура РаскраситьСписок()
   
    ЗначениеОтбора1 = НачалоДня(ТекущаяДата()) - 604800; //7 дней
    ЗначениеОтбора2 = НачалоДня(ТекущаяДата()) - 1209600; //14 дней
   
    ЭлементОформления1 = Список.УсловноеОформление.Элементы.Добавить();
    ЭлементОформления2 = Список.УсловноеОформление.Элементы.Добавить();
   
    Группа1 = ЭлементОформления1.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
    Группа1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
    Группа1.Использование = Истина;
    ЭлементыОтбора1 = Группа1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементыОтбора1.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно;
    ЭлементыОтбора1.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатаПроблемы");
    ЭлементыОтбора1.ПравоеЗначение = ЗначениеОтбора1;
    ЭлементыОтбора1.Использование = Истина;
    ЭлементыОтбора11 = Группа1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементыОтбора11.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементыОтбора11.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Статус");
    ЭлементыОтбора11.ПравоеЗначение = Перечисления.СтатусыПроблемОтделаПоставки.ОжиданиеСогласования;
    ЭлементыОтбора11.Использование = Истина;
    ЭлементОформления1.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(255,155,0));
   
    Группа2 = ЭлементОформления2.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
    Группа2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
    Группа2.Использование = Истина;
    ЭлементыОтбора2 = Группа2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементыОтбора2.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно;
    ЭлементыОтбора2.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатаПроблемы");
    ЭлементыОтбора2.ПравоеЗначение = ЗначениеОтбора2;
    ЭлементыОтбора2.Использование = Истина;
    ЭлементыОтбора22 = Группа2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементыОтбора22.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементыОтбора22.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Статус");
    ЭлементыОтбора22.ПравоеЗначение = Перечисления.СтатусыПроблемОтделаПоставки.ОжиданиеСогласования;
    ЭлементыОтбора22.Использование = Истина;
    ЭлементОформления2.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(255,0,0));
   
    ПоляОформления1 = ЭлементОформления1.Поля.Элементы.Добавить();
    ПоляОформления1.Использование = Истина;
   
    ПоляОформления2 = ЭлементОформления2.Поля.Элементы.Добавить();
    ПоляОформления2.Использование = Истина;
   
КонецПроцедуры


 

Опубликовано: 04 февраля 2016 г.

Другие статьи из категории

Как почистить кэш 1С 8.3 на компьютере

Опубликовано: 08 ноября 2017 г.

Немного о табличных документах 1Сv8X

Опубликовано: 06 сентября 2016 г.

Подключение и отображение дополнительных обработок и отчетов

Очень часто возникает неободимость в подключении и отображении дополнительных обработок и отчетов в управлении торговлей версии 11...

Опубликовано: 04 февраля 2016 г.
все статьи »
Пожалуйста, подождите...
Вход ×