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

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 Платные (руб)

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

6000 руб.

16.01.2015    62114    43    59    

81

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

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

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    54703    16    21    

42

Управление дашбордами

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

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

2400 руб.

29.06.2020    16909    22    4    

36

Каждому менеджеру нужен свой Excel

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

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

2 стартмани

22.04.2024    3774    dimanich70    11    

14

Новогоднее оформление для 1С

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

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

27.12.2023    11185    762    elcoan    45    

106

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

Работа с интерфейсом Платформа 1С v8.3 1С:ERP Управление предприятием 2 Россия Абонемент ($m)

"Структура подчиненности" или, как ее сейчас называют, "Связанные документы" представлена в виде дерева значений. Подключается через дополнительные отчеты и обработки. Требуется небольшое вмешательство программиста.

2 стартмани

25.04.2023    3858    31    dimanich70    17    

7

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

Работа с интерфейсом Платформа 1С v8.3 1С:ERP Управление предприятием 2 Россия Абонемент ($m)

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

1 стартмани

13.04.2023    2946    14    dimanich70    3    

14
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. comptr 31 07.12.23 09:37 Сейчас в теме
А мне нравится вот эта обработка: https://infostart.ru/1c/tools/1161402/
Код получается наглядным и коротким, при этом остаётся гибкость настройки.
2. dimanich70 644 07.12.23 17:44 Сейчас в теме
(1)
Это космос. Мне больше нравится что-то простенькое.
Оставьте свое сообщение