Как ограничить список выбора у перечисления в поле ввода составного типа не отключая "Выбирать тип"?
По теме из базы знаний
- Всякие полезности
- Создание web-площадки на технологиях 1С, или как Водоканал сделал "Личный кабинет потребителя"
- Собираем образ виртуальной машины с PostgreSQL и платформой 1С. Цикл "Многопоточный CI для 1С c Packer, Vagrant и Jenkins", часть 2
- Комплексный контроль остатков. Для одного или сразу нескольких логически связанных регистров накопления. Универсальное решение уровня данных для контроля не только складских остатков
- Смотрим запросы 1С через Microsoft SQL Profiler по следам ошибок разработчиков, приводящих к проблемам производительности
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Вам нужно событие у данного элемента ОбъектНачалоВыбора
Далее создаете список с нужными вами типами
Далее создаете список с нужными вами типами
Процедура ОбъектНачалоВыбора(Элемент. СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить("Имя", "Представление"); // перебираете то что нужно
СписокЗначений.Добавить("Имя", "Представление"); // перебираете то что нужно
СписокЗначений.Добавить("Имя", "Представление"); // перебираете то что нужно
ВыбранноеЗначение = ВыбратьИзСписка(СписокЗначений, Элемент);
// далее обрабатываете выбранное значение
Конецпроцедуры
Показать
Для органичения необходимо в процедуре ОбработкаПолученияДанныхВыбора() модуля менеджера перечисления указать доступные данные выбора в переменной ДанныеВыбора. Для этого в переменную ДанныеВыбора поместим список допустимых значений.
Так же не забываем переменной СтандартнаяОбработка присвоить значение Ложь, иначе в списке выбора будут доступны все элементы + указанные в переменной ДанныеВыбора.
Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ДанныеВыбора = Новый СписокЗначений;
ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.СтатусыРассылки.Подготавливается"));
ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.СтатусыРассылки.Подготовлена"));
КонецПроцедуры
ПоказатьТак же не забываем переменной СтандартнаяОбработка присвоить значение Ложь, иначе в списке выбора будут доступны все элементы + указанные в переменной ДанныеВыбора.
Я в итоге сделал тип значения составной у реквизита формы Перечисление + Строка. Использую "Режим выбора из списка" у элемента выбора.
Заполняю список выбора и все работает.
Если же не использовать составной тип, то получается глюк, к значениям перечисления добавляются еще три моих значения, получается вот такой список выбора (хотя в табло в списке выбора всего три значения), это явный глюк 1С:
ПП
РП
ППС
ППЗ
ПП
РП
ППС
Заполняю список выбора и все работает.
С = Элементы.ТПКВ.СписокВыбора;
С.Очистить();
С.Добавить(Перечисления.ТПКВ.ПП);
С.Добавить(Перечисления.ТПКВ.РП);
С.Добавить(Перечисления.ТПКВ.ППС);
Если же не использовать составной тип, то получается глюк, к значениям перечисления добавляются еще три моих значения, получается вот такой список выбора (хотя в табло в списке выбора всего три значения), это явный глюк 1С:
ПП
РП
ППС
ППЗ
ПП
РП
ППС
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот