Условное оформление строк и полей Таблицы значений и Дерева значений (готовый код)

06.12.23

Разработка - Работа с интерфейсом

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

Если вам нужен цвет и запрет редактирования, то просто тупо копируем.

Пример можно скачать здесь Структура подчиненности деревом

 

Все другие хотелки вы сможете допилить, если чуть-чуть поизучаете код вызываемых процедур. 

Две процедуры:

1. УстановитьоформлениеСтрокиЦветом(ИмяПоля,ПравоеЗначение,ЦветОформления,ИмяПоляФормы) 

    Первый параметр - реквизит дерева от которого зависит цвет (ДеревоПоставок - это реквизит формы с типом ДеревоЗначений, ДеревоПоставок.Уровень - колонка этого дерева значений),

    Второй параметр - значение реквизита от которого зависит цвет (если значение колонки Уровень будет равно 3, то заработает наше условное оформление),

    Третий параметр - сам цвет,

    Четвертый параметр - поле на форме, которое будем красить цветом (ДеревоПоставок1 - это элемент формы связанный с нашим реквизитом ДеревоПоставок. Если указываем его, то красим всю строку, если укажем конкретное поле, скажем ДеревоПоставок1Уровень - красим только его).

2. УстановитьЗапретПолейДляРедактирования(ИмяПоля,СписокПравоеЗначение,СписокИмяПоляФормы)

    Первый параметр - реквизит дерева от которого зависит запрет редактирования (ДеревоПоставок - это реквизит формы с типом ДеревоЗначений, ДеревоПоставок.Уровень - колонка этого дерева значений),

    Второй параметр - список значений реквизита из первого параметра, при которых устанавливается запрет редактирования

    Третий параметр - список полей редактирование которых будем запрещать

&НаКлиенте
Процедура УстановитьУсловноеоформлениеДерева() 
	//// оформляем цветом строки
	УстановитьОформлениеСтрокиЦветом("ДеревоПоставок.Уровень",3,Новый Цвет(250,250,206),"ДеревоПоставок1"); 
	//
	// доступность поля Выбран 
	СписокДляЗапрета1 = Новый СписокЗначений;
	СписокДляЗапрета1.Добавить(1); 
	СписокДляЗапрета1.Добавить(4);
	//
	СписокИмяПоляФормы1 = Новый СписокЗначений;
	СписокИмяПоляФормы1.Добавить("ДеревоПоставок1Выбран"); 
	//
	УстановитьЗапретПолейДляРедактирования("ДеревоПоставок.Уровень",СписокДляЗапрета1,СписокИмяПоляФормы1);
	//				
КонецПроцедуры
&НаСервере
Процедура УстановитьОформлениеСтрокиЦветом(ИмяПоля,ПравоеЗначение,ЦветОформления,ИмяПоляФормы)  
	//
	ЭлементОформления = УсловноеОформление.Элементы.Добавить(); 	
	// Создаем условие отбора
	ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоля); // имя поля
	ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; // либо задаем свой
	//**** Значение для отбора
	ЭлементОтбора.ПравоеЗначение = ПравоеЗначение;
	// следует заметить что правым значением может выступать ПолеКомпоновкиДанных формы или списка
	//ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоля);
	//****
	ЭлементОтбора.Использование = Истина;
	
	//Значение свойства УО:
	
	// Установка значения элемента УО
	// Возможно обращение как по индексу так и установка через метод
	//1.
	Элемент = ЭлементОформления.Оформление.Элементы[0];
	Элемент.Значение = ЦветОформления;
	//2.
	//ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СеребристоСерый);
	
	Элемент.Использование = Истина; 
	//  
	ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
	ПолеОформления.Поле = Новый ПолеКомпоновкиДанных(ИмяПоляФормы);
	ПолеОформления.Использование = Истина; 	

КонецПроцедуры 
&НаСервере
Процедура УстановитьЗапретПолейДляРедактирования(ИмяПоля,ПравоеЗначение,СписокИмяПоляФормы)  
	//
	ЭлементОформления = УсловноеОформление.Элементы.Добавить(); 	
	// Создаем условие отбора
	ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоля); // имя поля
	ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; // либо задаем свой
	//**** Значение для отбора
	ЭлементОтбора.ПравоеЗначение = ПравоеЗначение;
	// следует заметить что правым значением может выступать ПолеКомпоновкиДанных формы или списка
	//ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоля);
	//****
	ЭлементОтбора.Использование = Истина;
	
	//Значение свойства УО:
	
	// Установка значения элемента УО
	// Возможно обращение как по индексу так и установка через метод
	//1.
	//Элемент = ЭлементОформления.Оформление.Элементы[0];
	//Элемент.Значение = ЦветОформления;
	//2.
	ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
	
	//Элемент.Использование = Истина; 
	//  
	Для Каждого ЭлТа ИЗ СписокИмяПоляФормы Цикл
		ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
		ПолеОформления.Поле = Новый ПолеКомпоновкиДанных(ЭлТа.Значение);
		ПолеОформления.Использование = Истина; 
	КонецЦикла;

КонецПроцедуры

Не забудьте добавить в избранное, чтобы не потерять.

Используется на ERP 2.5.12.147, платформа 8.3.23.1782.

 

Продолжает цикл полезных отчетов и примочек.

1. Анализ использования номенклатуры

2. Форма списка Заказы поставщикам с выводом состава

3. Товары на складах по срокам хранения

4. Структура подчиненности деревом

5. Загрузка из Excel (любой таблицы) в ТЧ документа

6. Панель функций

7. Поддержание запаса на складе

Готовый код условное оформление запрет для редактирования

См. также

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Богатый редактор картинок 1С предназначен для обработки изображений в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    62986    44    59    

82

Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    18855    26    6    

41

Работа с интерфейсом Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Редактор графов в 1С - внешний отчет, который формирует графы на основе таблицы значений, используя рисунки табличного документа. Есть возможность добавления, редактирования объектов графа и выгрузки результата в таблицу значений.

1500 руб.

06.10.2020    10224    7    7    

10

Работа с интерфейсом Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Это инструкция по дизайну форм в среде 1С. Гайд охватывает рекомендации и стандарты для оптимизации пользовательского интерфейса. В гайде содержатся указания по использованию элементов интерфейса, включая как основные, так и продвинутые аспекты. Предоставляются также примеры и антипримеры для наглядного понимания принципов дизайна

20.08.2024    16802    mrXoxot    43    

121

Работа с интерфейсом Программист Платформа 1С v8.3 Бесплатно (free)

Пример простого и симпатичного прогресс-бара в динамическом списке, без картинок, используя редактирование запроса.

27.05.2024    7353    smielka    37    

100

Адаптация типовых решений Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Абонемент ($m)

Каждый из нас сталкивается с ситуацией, когда какой-нибудь менеджер показывает свой Excel и рассказывает, как он что-то из 1С копирует в него, снабжает пояснениями, выделяет цветом и т.д. и т.п. Заканчивается все просьбой сделать вот чтобы также было в 1С. И оказывается такой человек (почти с гарантией) либо лучшим продажником, либо каким-то важным, за все отвечающим, - на ком все держится.

2 стартмани

22.04.2024    5267    dimanich70    15    

22

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    14789    913    elcoan    47    

117
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. comptr 35 07.12.23 09:37 Сейчас в теме
А мне нравится вот эта обработка: https://infostart.ru/1c/tools/1161402/
Код получается наглядным и коротким, при этом остаётся гибкость настройки.
2. dimanich70 870 07.12.23 17:44 Сейчас в теме
(1)
Это космос. Мне больше нравится что-то простенькое.
3. yuraskas 177 03.06.24 12:10 Сейчас в теме
Автору однозначный плюс. Подскажите, а как сделать чтобы ячейка красилась без Отбора? Если полностью комментирую Отбор, то ничего не окрашивается?
Оставьте свое сообщение