Условное оформление для программно созданных элементов формы
Здравствуйте. На форме создал ТЗ, с одной колонкой, затем программно добавляю реквизиты формы(колонки таблицы динамически создаются) и соответственно элементы формы под них, тут все норм. Делаю условное оформление ниже код1 отрабатывает, если применяю оформление для реквизита(колонки) добавленного на самой форме, а код2 ниже, ни как не получается если пытаюсь оформление добавить для элементов созданных программно. Как то неправильно такой элемент пишу может не пойму.
Код1
Код2
Код1
НовыйЭлементУФ = УсловноеОформление.Элементы.Добавить();
ОформленийЦвет = НовыйЭлементУФ.Оформление.Элементы.Найти("ЦветФона");
ОформленийЦвет.Значение = WebЦвета.Красный;
ОформленийЦвет.Использование = Истина;
НастройкаОтбора = НовыйЭлементУФ.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
НастройкаОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Файл");
НастройкаОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
НастройкаОтбора.ПравоеЗначение = "";
ОформляемыеПоля = НовыйЭлементУФ.Поля.Элементы.Добавить();
ОформляемыеПоля.Поле = Новый ПолеКомпоновкиДанных("ТаблицаЗагрузкиТовар");
ОформляемыеПоля.Использование = Истина;
ПоказатьКод2
НовыйЭлементУФ = УсловноеОформление.Элементы.Добавить();
ОформленийЦвет = НовыйЭлементУФ.Оформление.Элементы.Найти("ЦветФона");
ОформленийЦвет.Значение = WebЦвета.Красный;
ОформленийЦвет.Использование = Истина;
НастройкаОтбора = НовыйЭлементУФ.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
НастройкаОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Файл");
НастройкаОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
НастройкаОтбора.ПравоеЗначение = "";
ОформляемыеПоля = НовыйЭлементУФ.Поля.Элементы.Добавить();
//Вариант 1 как пробовал
ОформляемыеПоля.Поле = Новый ПолеКомпоновкиДанных("ТаблицаЗагрузки.ПодчиненныеЭлементы.Линейка"); // элемент в подчиненных отладка показывает
//Вариант 2 как пробовал
ОформляемыеПоля.Поле = Новый ПолеКомпоновкиДанных("ТаблицаЗагрузкиЛинейка"); //отладка не показывает такой
//элемент
//Вариант 3 как пробовал
ОформляемыеПоля.Поле = Новый ПолеКомпоновкиДанных("Элементы.ТаблицаЗагрузкиЛинейка");
//Вариант 4 как пробовал
ОформляемыеПоля.Поле = Новый ПолеКомпоновкиДанных("Элементы.ТаблицаЗагрузки.ПодчиненныеЭлементы.Линейка"");
ОформляемыеПоля.Использование = Истина;
ПоказатьПо теме из базы знаний
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(2) Получилось, но сама логика не срабатывает. А есть возможность без условного оформления установить фон в конкретной ячейке? Т.е. пересечение определенной строки и колонки. У меня просто признака, на основе которого это нужно устанавливать в таблицы формы быть не может по логике, нужно анализировать др данные из таблицы значений в скрине, и заполнять по строчно по колонкам.
Прикрепленные файлы:
(3)
Нет. Без условного оформления фон устанавливается на всю колонку, для всех строк таблицы.
Добавьте служебную колонку, булевую, которую на форму выводить не будете. В ней будет храниться признак необходимости применения оформления ячейки по данной строке.
То есть при заполнении таблицы, изменении значения в ячейке - заполняете значение этой колонки, и оформление будет применяться.
А есть возможность без условного оформления установить фон в конкретной ячейке?
Нет. Без условного оформления фон устанавливается на всю колонку, для всех строк таблицы.
Добавьте служебную колонку, булевую, которую на форму выводить не будете. В ней будет храниться признак необходимости применения оформления ячейки по данной строке.
То есть при заполнении таблицы, изменении значения в ячейке - заполняете значение этой колонки, и оформление будет применяться.
(5)Не получится так, смотрите, в таблице значений исходной скрин 2 я ее обхожу построчно, для каждого доп реквизита есть это свой признак последняя колонка выделена красным то есть каждая строка доп реквизит, заполняет уже одну строку в таблице формы, но уже по колонкам, то есть если сделать служебное поле, не понятно будет по какой именно колонке красить, да можно всю колонку закрасить, но нужно по конкретным строкам. Я так понимаю такое не осуществить
(7) Условие такое, нужно чтобы те доп реквзиты, что есть в виде номенклатуры в ут определенной номенклатуры из файла эксель записывать их. Но могут быть ошибки и в файле есть, а в наборе вида нет. Надо эту инфу вывести на форму, но загвоздка в том, что нужно в одно это поле вывести как и само значение ошибочное, так и подкрасить, чтобы понимать, что самого такого реквзита в наборе нет.
(8) Для каждого реквизита делаешь булевую служебную колонку и заполняешь в ней Истина, если надо окрашивать в данной строке соответствующую колонку.
Например, есть колонка "Линейка", добавляешь колонку "ЛинейкаОформление", и так для каждой колонки, если колонку надо оформлять. Выводить на форму при этому такие колонки не надо.
Например, есть колонка "Линейка", добавляешь колонку "ЛинейкаОформление", и так для каждой колонки, если колонку надо оформлять. Выводить на форму при этому такие колонки не надо.
Вакансии
Разработчик 1С (от middle до senior), до 300 К gross
Санкт-Петербург
зарплата от 195 000 руб. до 300 000 руб.
Полный день
Санкт-Петербург
зарплата от 195 000 руб. до 300 000 руб.
Полный день