ДАНО:
Есть Перечисление АААААА со значениями:
- Значение 1
- Значение 2
- Значение 3
- Значение 4
- Значение 5
На форме есть реквизит (поле выбора) с данными - Перечисление ААААА
ЗАДАЧА: Показать пользователю в списке выбора только значения:
- Значение 1
- Значение 3
- Значение 5
ВОПРОС: Как это можно реализовать?
P.S.
Код:
НужныйСписок = НОВЫЙ СписокЗначений;
НужныйСписок.Добавить(Перечисления.ААААА.Значение1);
НужныйСписок.Добавить(Перечисления.ААААА.Значение3);
НужныйСписок.Добавить(Перечисления.ААААА.Значение5);
//ВЫРИАНТ 1
//Остается "первоначальный" список и добавляется "новый"
//Получается такой:
//- Значение 1
//- Значение 2
//- Значение 3
//- Значение 4
//- Значение 5
//- Значение 1
//- Значение 3
//- Значение 5
Элементы.МойРеквизит.СписокВыбора.Очистить();
Элементы.МойРеквизит.СписокВыбора.Добавить(НужныйСписок );
//ИЛИ
//ВАРИАНТ 2
//РАБОТАЕТ ТОЛЬКО НА ТОЛСТОМ КЛИЕНТЕ
Элементы.МойРеквизит.СписокВыбора.ДоступныеЗначения(НужныйСписок );
AnryMc @ Сегодня, 15:57
,
треба на потрібному полі форми зробити обробник НачалоВыбора
там треба
СтандартнаяОбработка = Ложь;
ВыбранноеЗначение = ВыбратьИзСписка(спВыбора, Элемент);
&НаСервере
Процедура УстановитьНужноеЗначение(текЗначение = НЕОПРЕДЕЛЕНО)
Если текЗначение <> НЕОПРЕДЕЛЕНО Тогда
Существующие = Метаданные.Перечисления.МОЕПЕРЕЧИСЛЕНИЕ.ЗначенияПеречисления;
Для КАЖДОГО текЗн ИЗ Существующие Цикл
Если СокрЛП(текЗн.Синоним) = текЗначение Тогда
Объект.МОЙРЕКВИЗИТ= Вычислить("Перечисления.МОЕПЕРЕЧИСЛЕНИЕ."+текЗначение .Имя);
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
AnryMc @ Вчера, 15:57
,
Я б в палітрі властивостей елемента форми встановив прапорець "РежимВыбораИзСписка" и в полі "СписокВыбора" обрав тільки ті значення, що потрібні
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua