1С условное оформление строки табличной части

В 1С Предприятии 8.2 к табличной части можно применить такое же условное оформление, как и к динамическому списку. Но в отличие от динамического списка, где настройка списка доступна и в пользовательском режиме, сделать это можно только в режиме конфигуратора или из встроенного языка. Для этого нужно использовать свойство УсловноеОформление формы.

Например, нам требуется оформить строки табличной части приходной накладной так, чтобы строки с суммой больше 30000 были выделены желтым фоном, а ячейки Товар и Количество строк табличной части с количеством больше единицы были выделены красным текстом.

Выполним условное оформление интерактивно. Создадим форму документа ПриходнаяНакладная , выделим корень элементов формы (строку Форма ) и откроем ее свойства. В строке УсловноеОформление нажмем ссылку Открыть .

В появившемся окне Настройка условного оформления нажмем кнопку Добавить.

Сначала укажем Оформление для выделения полей. Нажмем кнопку выбора в поле Оформление и установим желтый цвет фона.

Затем укажем условие, при наступлении которого будет применяться оформление, то есть когда фон строк табличной части будет желтым. Нажмем кнопку выбора в поле Условие и в появившемся окне добавим Новый элемент отбора . Для этого нажмем на кнопку Добавить и укажем в графе Левое значение – поле табличной части Объект.Товары.Сумма , в графе Вид сравнения – Больше , а в графе Правое значение выберем 30000 .

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

Читайте также:  10101 101 В двоичной системе

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

Затем создадим еще одно условие для полей табличной части Товар и Количество , чтобы цвет текста этих полей был красным, в случае если значение в поле Количество больше единицы.

Таким образом, мы добились требуемого оформления табличной части формы документа ПриходнаяНакладная .

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

Демонстрационный пример находится в каталоге 1CITS/EXE/FAQ/КакРаскраситьСтрокиТабличнойЧасти.dt. Пример выполнен на версии платформы 8.2.9.356.

По условию можно оформить также и строки списка документов или других объектов конфигурации. Это делается через УсловноеОформление списка. Подробнее смотрите в вопросе Как раскрасить строки списка по некоторому условию?

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

Оформление в строк табличной части для обычных форм

Условное оформление в управляемых формах

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

ВАЖНО! Работы с элементами условного оформления доступна только на стороне сервера!
ВАЖНО! Для оформления строк таблицы (или дерева) значений мы будем использовать условное оформление самой формы, а не элемента списка!

Таким образом, код для реализации условного оформления управляемой формы будет иметь следующий вид: В приведенном примере, в случае если значение реквизита "Реквизит1" будет больше 10, цвет текста строки будет выделен зеленым.
Вы же можете наложить любое условие и любое необходимое оформление.

среда, 4 апреля 2018 г.

Раскрасить табличную часть или условное оформление табличной части

Чтобы раскрасить табличную часть документа (установить параметры условного оформления) нужно воспользоваться следующим методом в предопределенной процедуре "ПриСозданииНаСервере"

Читайте также:  Холодильник бирюса 22 кшд 255

Данный метод доступен только в директиве компиляции "&НаСервере"

Оформление = УсловноеОформление.Элементы.Добавить();
Оформление.Использование = Истина;
//
//Для табличных частей нужно указывать оформляемые поля в ручную.
Поле1 = Оформление.Поля.Элементы.Добавить();
Поле1.Поле = Новый ПолеКомпоновкиДанных("ТоварыНоменклатураАртикул");
Поле2 = Оформление.Поля.Элементы.Добавить();
Поле2.Поле = Новый ПолеКомпоновкиДанных("ТоварыНоменклатура");
//
Отбор = Оформление.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Количество");// неопбходимо обращаться к объекту формы!
Отбор.ПравоеЗначение = 3;
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно;
Отбор.Использование = Истина;
Оформление.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Аквамарин);

Оцените статью
Добавить комментарий

Adblock detector