Как автоматизированные скидки могут работать из коробки в УТ 11.4?

В УТ11.4 своеобразное РМК, вот как выглядит табличная часть товары:

Я решил включить автоматизированные скидки, но столкнулся с тем, что у полей скидок в УТ11.4 почему-то сброшена пользовательская видимость по умолчанию:

Причем я сначала подумал, что это программисты постарались, чтобы скрыть ненужные колонки (ведь у клиента сначала не было скидок) но потом посмотрел конфигурацию поставщика и увидел, что это изначально у 1С так назначено.

Мне не совсем понятно, как автоматизированные скидки могут работать в УТ11.4 под ключ? Ведь это каждому пользователю нужно заходить и включать эти галочки в настройке формы? Интересно, как видят в 1С внедрение этого функционала в УТ? Вопрос не праздный, т.к. мне предстоит внедрение УТ у другого клиента и наверняка с этим придется столкнуться.

Т.к. я использую расширение, то можно, конечно, поставить галочку в форме расширения (как советуют здесь), но это некрасиво.

Поэтому я написал небольшую функцию по клонированию элемента:

Процедура ЗаменитьНаКлонЭлементаФормы(Форма, Элемент, ИмяРезЭлемента = Неопределено) Экспорт
	
	Если ИмяРезЭлемента = Неопределено Тогда
		ИмяРезЭлемента = "дор_" + Элемент.Имя;
	КонецЕсли;
	
	Попытка
		//https://forum.mista.ru/topic.php?id=810016
		
		Если не Элемент = Неопределено Тогда
			ТипЭлемента = ТипЗнч(Элемент);
			РодительЭлемента = Элемент.Родитель;
			ИмяЭлемента = Элемент.Имя;
			НовыйЭлемент = Форма.Элементы.Вставить(ИмяРезЭлемента, ТипЭлемента, РодительЭлемента, Элемент);
			ЗаполнитьЗначенияСвойств(НовыйЭлемент, Элемент,,"ВыделенныйТекст, СвязьПоТипу, ПутьКДанным");
			НовыйЭлемент.ПутьКДанным = Элемент.ПутьКДанным;
			Форма.Элементы.Удалить(Элемент);
		КонецЕсли; 
	Исключение
	КонецПопытки;
	
КонецПроцедуры

Сначала я хотел добавлять элемент с новым именем, но потом понял, что тогда теряются настройки элемента, например видимость. Код 1С будет включать видимость не моего элемента, а невидимого. Поэтому я замещаю типовой элемент. Можно было бы еще и события копировать, но у этих полей событий нет (важных для меня)

Эту функцию я вызываю при создании формы РМК:

	//Добавляем клоны элементов
	_Сервер.ЗаменитьНаКлонЭлементаФормы(ЭтаФорма, Элементы.ТоварыПроцентАвтоматическойСкидки);
	_Сервер.ЗаменитьНаКлонЭлементаФормы(ЭтаФорма, Элементы.ТоварыСуммаАвтоматическойСкидки);
	_Сервер.ЗаменитьНаКлонЭлементаФормы(ЭтаФорма, Элементы.ТоварыПроцентРучнойСкидки);
	_Сервер.ЗаменитьНаКлонЭлементаФормы(ЭтаФорма, Элементы.ТоварыСуммаРучнойСкидки);
	
	
	
	Элементы.ТоварыПроцентРучнойСкидки.Ширина = 5;
	Элементы.ТоварыПроцентРучнойСкидки.Формат = "ЧН=-; ЧФ=Ч%";
	Элементы.ТоварыПроцентРучнойСкидки.АвтоМаксимальнаяШирина = ложь;
	Элементы.ТоварыПроцентРучнойСкидки.РастягиватьПоГоризонтали = ложь;

	Элементы.ТоварыПроцентАвтоматическойСкидки.Ширина = 5;
	Элементы.ТоварыПроцентАвтоматическойСкидки.Формат = "ЧН=-; ЧФ=Ч%";
	Элементы.ТоварыПроцентАвтоматическойСкидки.АвтоМаксимальнаяШирина = ложь;
	Элементы.ТоварыПроцентАвтоматическойСкидки.РастягиватьПоГоризонтали = ложь;
	
	Элементы.ТоварыСуммаАвтоматическойСкидки.Ширина = 15;
	Элементы.ТоварыСуммаАвтоматическойСкидки.АвтоМаксимальнаяШирина = ложь;
	Элементы.ТоварыСуммаАвтоматическойСкидки.РастягиватьПоГоризонтали = ложь;
	
	Элементы.ТоварыСуммаРучнойСкидки.Ширина = 15;
	Элементы.ТоварыСуммаРучнойСкидки.АвтоМаксимальнаяШирина = ложь;
	Элементы.ТоварыСуммаРучнойСкидки.РастягиватьПоГоризонтали = ложь;

После этого форма стала показывать процент и сумму скидок:

Среда: УТ 11.4.13.46. Объем: 1 час.

fixin

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

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

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

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