Как ограничить список выбора у перечисления в поле ввода составного типа не отключая "Выбирать тип"?

1. exitone 12.04.19 13:19 Сейчас в теме
Всем привет.
Каким событием можно отловить момент выбора типа значения, если это перечисление, чтобы ограничить ему список выбора?
У меня при нажатии ОК в списке выбора типа сразу выпадает список со ВСЕМИ значениями. Отловить не смог.
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Dmitrij-2 47 12.04.19 13:31 Сейчас в теме
(1) У элемента формы можно программно заполнить список выбора. Посмотри как в типовых сделано, например хозяйственная операция
5. tusv 212 12.04.19 17:39 Сейчас в теме
(1) У элемента формы есть свойство Ограничение типа. Его и устанавливаем
Элементы.Объект.ОграничениеТипа = Новый ОписаниеТипов("СправочникСсылка.Контрагенты");
3. SedovSU@mail.ru 298 12.04.19 13:39 Сейчас в теме
Вам нужно событие у данного элемента ОбъектНачалоВыбора
Далее создаете список с нужными вами типами

Процедура ОбъектНачалоВыбора(Элемент. СтандартнаяОбработка)

СтандартнаяОбработка = Ложь;

СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить("Имя", "Представление"); // перебираете то что нужно
СписокЗначений.Добавить("Имя", "Представление"); // перебираете то что нужно
СписокЗначений.Добавить("Имя", "Представление"); // перебираете то что нужно

ВыбранноеЗначение = ВыбратьИзСписка(СписокЗначений, Элемент);
// далее обрабатываете выбранное значение

Конецпроцедуры
Показать
ulen; usd1001; +2 Ответить
4. SedovSU@mail.ru 298 12.04.19 13:40 Сейчас в теме
В любом случае смотрите события Началовыбора. НачалоВыбораИзСписка, Обработкавыбора
6. vovan221980 08.12.23 09:39 Сейчас в теме
Для органичения необходимо в процедуре ОбработкаПолученияДанныхВыбора() модуля менеджера перечисления указать доступные данные выбора в переменной ДанныеВыбора. Для этого в переменную ДанныеВыбора поместим список допустимых значений.

Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
	
    СтандартнаяОбработка = Ложь;
	
    ДанныеВыбора = Новый СписокЗначений;
    ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.СтатусыРассылки.Подготавливается"));
    ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.СтатусыРассылки.Подготовлена"));
	
КонецПроцедуры
Показать


Так же не забываем переменной СтандартнаяОбработка присвоить значение Ложь, иначе в списке выбора будут доступны все элементы + указанные в переменной ДанныеВыбора.
ddukatov; user1440383; user1951539; Rabin; +4 Ответить
7. fixin 4269 22.07.24 16:56 Сейчас в теме
Я в итоге сделал тип значения составной у реквизита формы Перечисление + Строка. Использую "Режим выбора из списка" у элемента выбора.

Заполняю список выбора и все работает.

			С = Элементы.ТПКВ.СписокВыбора;
			С.Очистить();
			С.Добавить(Перечисления.ТПКВ.ПП);
			С.Добавить(Перечисления.ТПКВ.РП);
			С.Добавить(Перечисления.ТПКВ.ППС);



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

ПП
РП
ППС
ППЗ
ПП
РП
ППС
8. vladislav25_00 18.09.24 16:08 Сейчас в теме
В моем случае надо было прописать условие еще, вдруг кому пригодится
Элементы.СИНовыйСтатус.РежимВыбораИзСписка = Истина ;
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот