Не показывать ячейки суммы и цены без скидок

Клиент поставил задачу, что если в строке нет скидки, показывать только ячейки «Цена без скидки» и «Сумма без скидки», а ячейки «Цена со скидкой» и «Сумма со скидкой» скрыть.

Решил через условное оформление:

Процедура НастроитьУсловноеОфомрлениеСкидок(Форма)
	//Поле цена со скидкой и сумма со скидкой - не видимыми, если нет скидки
	НастроитьУсловноеОфомрлениеСкидокПоПолю(Форма, "Товары.Сумма", "ТоварыСумма");
	НастроитьУсловноеОфомрлениеСкидокПоПолю(Форма, "Товары.Цена", "ТоварыЦена");
КонецПроцедуры

Процедура НастроитьУсловноеОфомрлениеСкидокПоПолю(Форма, ИмяДанных, ИмяЭлемента)
	//2021-02-24 Осипов  https://infostart.ru/1c/articles/181336/
	Перем УсловноеОформление;
	
	УсловноеОформление = Форма.УсловноеОформление;
	
	ЭлементОформления = УсловноеОформление.Элементы.Добавить();
	
	ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.СуммаРучнойСкидки"); // имя поля
	ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; // либо задаем свой
	ЭлементОтбора.ПравоеЗначение = 0;
	ЭлементОтбора.Использование = Истина;

	Элемент = ЭлементОформления.Оформление.Элементы.Найти("Текст");
	Элемент.Значение = "-";
	Элемент.Использование = Истина;
	ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
	ПолеОформления.Поле = Новый ПолеКомпоновкиДанных(ИмяЭлемента);
	ПолеОформления.Использование = Истина;
	
КонецПроцедуры

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

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