Отключаем кнопку «Показать все» в поле ввода

В заказе клиента есть поле выбора вида цены, в нем при выборе работает окно «Показать все»:

Прочитал полное драматизма обсуждение, как отключить это окно.

Попробовал так:

Элементы.ТоварыВидЦены.ИсторияВыбораПриВводе = ИсторияВыбораПриВводе.НеИспользовать; 
Элементы.ТоварыВидЦены.КнопкаСоздания = Ложь;	
Элементы.ТоварыВидЦены.РежимВыбораНезаполненного = РежимВыбораНезаполненного.ПриАктивизации;

Увы, не помогло.

Тогда сделал по-серьезному, рубанул так сказать с плеча:

СтандартнаяОбработка = Ложь;
ОткрытьФорму("Справочник.ВидыЦен.ФормаВыбора", , Элементы.ТоварыВидЦены,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

Пробовал этот код использовать событие НачалоВыбора, НачалоВыбораИзСписка — увы, эти события даже не вызывались.

Весьма познавательным, но также бесполезной для решения проблемы оказалась статья. К ней даже видео прилагается:

Но информация в конце видео про галочку «Быстрый выбор» натолкнула меня на мысль установить свойство «Быстрый выбор» в истина:

Элементы.ТоварыВидЦены.БыстрыйВыбор = истина;
Элементы.ТоварыВидЦены.ИсторияВыбораПриВводе = ИсторияВыбораПриВводе.НеИспользовать; 
Элементы.ТоварыВидЦены.КнопкаСоздания = Ложь;	
Элементы.ТоварыВидЦены.РежимВыбораНезаполненного = РежимВыбораНезаполненного.ПриАктивизации;  
Элементы.ТоварыВидЦены.ОтображениеКнопкиВыбора = ОтображениеКнопкиВыбора.ОтображатьВПолеВвода;

И заработало нормально:

Правда, выбор происходит в поле ввода, а не открывается новое окно, но клиента так устроило. Если бы нужно было показывать именно окно справочника, даже не знаю как бы решал. Ставил бы на поле только просмотр и вешал бы выбор на событие Выбор (при нажатии Enter).

Теперь окно открывается сразу, без лишних прелюдий.

UPD 2024-07-07: реализовал в виде функции:

Процедура НастроитьБыстрыйВыборЭлемента(Элемент) Экспорт   
	Элемент.БыстрыйВыбор = истина;
	Элемент.ИсторияВыбораПриВводе = ИсторияВыбораПриВводе.НеИспользовать; 
	Элемент.КнопкаСоздания = Ложь;	
	Элемент.РежимВыбораНезаполненного = РежимВыбораНезаполненного.ПриАктивизации;  
	Элемент.ОтображениеКнопкиВыбора = ОтображениеКнопкиВыбора.ОтображатьВПолеВвода;
КонецПроцедуры

Среда: УТ 11.5.12.53 Объем: 0.7 час

fixin

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

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

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

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