Как изменить цвет фона ячеек в таблице формы документа в зависимости от значения данных табличной части документа.
Добрый день. 1С 8.3.10 Управляемая форма.
Есть 2 таблицы ДанныеОВремени:
Сотрудник 1 2 3
Иванов Я Я Я
Петров Я Я Я
И
Сотрудник 1 2 3
Иванов Б Б Я
Петров Я Я Я
Как в таблице ДанныеОВремени1 покрасить ячейки в 2 и 3 колонке у сотрудника Иванов, т.к. у этого сотрудника в таблице ДанныеОВремени2 другие значения(Я <> Б)?
Есть 2 таблицы ДанныеОВремени:
Сотрудник 1 2 3
Иванов Я Я Я
Петров Я Я Я
И
Сотрудник 1 2 3
Иванов Б Б Я
Петров Я Я Я
Как в таблице ДанныеОВремени1 покрасить ячейки в 2 и 3 колонке у сотрудника Иванов, т.к. у этого сотрудника в таблице ДанныеОВремени2 другие значения(Я <> Б)?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Вот моя процедура проверки документов табель1, которую заполнили вручную, и табель2, которую заполнили автоматически
так красится вся колонка. На форме табличная часть ДанныеОВремени отображается как (Свойство = Элементы.ДанныеОВремени Значение = ТаблицаФормы Тип = ТаблицаФормы)
&НаСервере
Процедура КрасимОшибки(ТабТиповой, Д1, Д2)
//ТабТиповой - таблица документа табель2, заполненная вызовом типовой функции кнопки Заполнить на форме
ТабВремя = Объект.ДанныеОВремени;// эту таблицу заполнили вручную
НомСотр = 0;
Для Каждого СтрСотрудника Из ТабВремя Цикл
Сотр = СтрСотрудника.Сотрудник;
СтрокаПроверки = ТабТиповой.Найти(Сотр, "Сотрудник");
Если СтрокаПроверки <> Неопределено Тогда
Для дДень = Д1 По Д2 Цикл
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
//Вот тут не знаю как задать поле ячейки, где есть ошибка
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы["ДанныеОВремениВремя"+Ддень+"Представление"].Имя);
//Вот тут
//((Отбор работает.
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ДанныеОВремени["+НомСотр + "].Время"+дДень + "Представление");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = СтрокаПроверки["Время"+дДень + "Представление"];
ОтборЭлемента.Использование = Истина;
//Отбор работает.))
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(255, 0, 0));
Элемент.Использование = Истина;
КонецЦикла;
КонецЕсли;
НомСотр = НомСотр + 1;
КонецЦикла;
КонецПроцедуры
Показатьтак красится вся колонка. На форме табличная часть ДанныеОВремени отображается как (Свойство = Элементы.ДанныеОВремени Значение = ТаблицаФормы Тип = ТаблицаФормы)
(7) нет, там то же самое, там можно выбрать поля оформления.
Просто, если тебе надо сопоставлять одну таблицу с другой, то просто условка так обрабатывать там не будет. Ей нужно конкретно, в строке какое-то значение, и такая то колонка оформляется так то. В общем как обычная настройка списков
Просто, если тебе надо сопоставлять одну таблицу с другой, то просто условка так обрабатывать там не будет. Ей нужно конкретно, в строке какое-то значение, и такая то колонка оформляется так то. В общем как обычная настройка списков
&НаКлиенте
Процедура ОбработчикПриИзмененииКолонкиКоличества(Элемент);
Сверка = Элементы.Товары.ТекущиеДанные.Количество;
ТД = Элементы.Товары.ТекущиеДанные;
СверкаР = Сверка;
Для Сч = 1 По ДобавленныеРеквизиты.Количество() Цикл
ИмяРеквизита = СтрЗаменить(ДобавленныеРеквизиты[Сч-1].Значение,"Объект.Товары.","");
СверкаР = СверкаР - ТД[ИмяРеквизита];
КонецЦикла;
Элементы.Товары.ТекущиеДанные.КоличествоСверка = СверкаР;
Если Элементы.Товары.ТекущиеДанные.КоличествоСверка<0 Тогда
//Элементы.Товары.ТекущиеДанные.КоличествоСверка = 0;
//ТД = 0;
ЦветПоляТаблицы = Новый Цвет (255,0,0);
Элементы.Товары.КоличествоСверка.ЦветФона = ЦветПоляТаблицы;
Сообщить("Количество для сверки не может быть отрицательным!");
Возврат;
КонецЕсли;
КонецПроцедуры
ПоказатьВообщем, тут просто проверка содержимого ячейки, поэтому ячейка становится красной, если ошибка
Ну, используйте это как функцию чисто для изменения цвета. Прогоните ее или по данным через запрос, или пробегайтесь по всем ячейкам ТЧ. Просто нюанс, что если проверять все ячейки - будет шибко долго. А если пройтись по результатам запроса - наверняка будет быстрее. Ну, например, запросом выбрать ячейки, где выполняется условие, и потом в цикле пройтись конкретно по ним и изменить цвет.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот