Управляемые формы.
На своей самописной форме расположено поле ввода (выпадающий список) с ним связан реквизит формы с типом перечисление.
Какие есть возможные способы чтобы ограничить содержимое выпадающего списка по условию.

Например список:
ПервыйЭлементСписка,
ВторойЭлементСписка,
ТретийЭлементСписка,
ЧетвертыйЭлементСписка.

При определенном условии, чтобы список отображался как:
ПервыйЭлементСписка,
ВторойЭлементСписка.
а третий и четвертый элемент списка были скрыты

Возможно такое сделать?? Или это делать через справочник с группами??
---
Вообщем сделал так

```1c
    &НаКлиенте
    Процедура ТипЭлектродаПриИзменении(Элемент)
    Элементы.ТипПроводника.СписокВыбора.Очистить();
    Если ТипЭлектрода=ПредопределенноеЗначение("Перечисление.ТипЭлектрода.Нет") Или
    ТипЭлектрода=ПредопределенноеЗначение("Перечисление.ТипЭлектрода.Электрод1") Или
    ТипЭлектрода=ПредопределенноеЗначение("Перечисление.ТипЭлектрода.Электрод2") Или
    ТипЭлектрода=ПредопределенноеЗначение("Перечисление.ТипЭлектрода.Электрод3") Тогда
    Элементы.ТипПроводника.СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ТипПроводника.Нет"));
    Элементы.ТипПроводника.СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ТипПроводника.СПроводником1"));
    Элементы.ТипПроводника.СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ТипПроводника.СПроводником2"));
    ИначеЕсли ТипЭлектрода=ПредопределенноеЗначение("Перечисление.ТипЭлектрода.Электрод4") Или
    ТипЭлектрода=ПредопределенноеЗначение("Перечисление.ТипЭлектрода.Электрод5") Или
    ТипЭлектрода=ПредопределенноеЗначение("Перечисление.ТипЭлектрода.Электрод6") Тогда
    Элементы.ТипПроводника.СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ТипПроводника.Нет"));
    Элементы.ТипПроводника.СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ТипПроводника.СКабелем1"));
    КонецЕсли;
    КонецПроцедуры
```

Чтобы все работало правильно нужно еще включить свойство РежимВыбораИзСписка
---
```1c
    ЗаполнитьСписокВыбора(Элементы.ВидДоговора.СписокВыбора);
```

Можно пойти через ОбработкуПолученияДанныхВыбора модуля менеджера перечисления (или отдельной процедурой список формировать)

```1c
    Процедура ЗаполнитьСписокВыбора(СписокВыбора)
    СписокВыбора.Очистить();
    Отбор = Новый Структура("ТвоиПараметры", ТвоиПараметры);
    ДоступныеЗначения = Перечисления.ВидыДоговоров.ПолучитьДанныеВыбора(Новый Структура("Отбор", Отбор));
    Для каждого ЭлементСписка из ДоступныеЗначения Цикл
    СписокВыбора.Добавить(ЭлементСписка.Значение);
    КонецЦикла;
```
---
Сделать СписокЗначений, заполнять его по условиям и дать его элементу формы как список для выбора
---
Так попробовал. Получается что при открытии списка появляется окно со списком значений, с добавленными мной программно плюс имеется стандартная кнопка Добавить, что может ввести пользователя в заблуждение.
СписокЗначений - это наверное используется как типа в запросах оператор ( "В")

когда писал этот пост понял, что не сделал вторую часть предложенного решения - не дал этот список элементу формы как список для выбора
---
Может через событие ПриНачалеВыбораИзСписка?
Там можно самому сформировать список, который будет отображен пользователю.
---
Однако:
Михаил Зотов (ZOMI) 69 05.03.14 17:56
(0) На 8.3 событие НачалоВыбораИзСписка не используется -

Цитата от 1С из пресс-релиза по изменениям

Свойство поля управляемой формы КнопкаСпискаВыбора более не доступно и оставлено для совместимости. Событие поля ввода НачалоВыбораИзСписка более не вызывается.
В режиме совместимости с версией 8.3.2 поведение не изменилось.

https://forum.infostart.ru/forum9/topic106100/
---
Вообщем сделал так

```1c
    &НаКлиенте
    Процедура ТипЭлектродаПриИзменении(Элемент)
    Элементы.ТипПроводника.СписокВыбора.Очистить();
    Если ТипЭлектрода=ПредопределенноеЗначение("Перечисление.ТипЭлектрода.Нет") Или
    ТипЭлектрода=ПредопределенноеЗначение("Перечисление.ТипЭлектрода.Электрод1") Или
    ТипЭлектрода=ПредопределенноеЗначение("Перечисление.ТипЭлектрода.Электрод2") Или
    ТипЭлектрода=ПредопределенноеЗначение("Перечисление.ТипЭлектрода.Электрод3") Тогда
    Элементы.ТипПроводника.СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ТипПроводника.Нет"));
    Элементы.ТипПроводника.СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ТипПроводника.СПроводником1"));
    Элементы.ТипПроводника.СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ТипПроводника.СПроводником2"));
    ИначеЕсли ТипЭлектрода=ПредопределенноеЗначение("Перечисление.ТипЭлектрода.Электрод4") Или
    ТипЭлектрода=ПредопределенноеЗначение("Перечисление.ТипЭлектрода.Электрод5") Или
    ТипЭлектрода=ПредопределенноеЗначение("Перечисление.ТипЭлектрода.Электрод6") Тогда
    Элементы.ТипПроводника.СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ТипПроводника.Нет"));
    Элементы.ТипПроводника.СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ТипПроводника.СКабелем1"));
    КонецЕсли;
    КонецПроцедуры
```

Чтобы все работало правильно нужно еще включить свойство РежимВыбораИзСписка
---
Как можно было сделать по другому, чтобы можно было использовать перечисления? Передавать элемент на сервер и там уже работать с перечислениями?
---
Помогло последнее Спасибо!!