Доброго дня!
Поиском по инету не нашел решения, поэтому решил выложить.
Сегодня опять столкнулся со странным поведением поля выбора, у которого установлен режим выбора из списка. Обычные формы, ничего сложного - при открытии заполняю список выбора разными видами документов. Использую при создании записи в регистре сведений.
Процедура ПриОткрытии()
СписокДокументов = Новый СписокЗначений;
Для каждого МД Из Метаданные.Документы Цикл
СписокДокументов.Добавить(МД.Имя,МД.Синоним);
КонецЦикла;
СписокДокументов.СортироватьПоПредставлению();
ЭлементыФормы.ВидДокумента.СписокВыбора = СписокДокументов;
КонецПроцедуры
Открываю форму записи регистра, выбираю нужный вид документа, записываю. При повторном открытии этой записи - в поле выбора пусто, значение очищено. Что произошло непонятно.
Хорошо, думаю может быть ПередОткрытием нужно заполнить список выбора. Переношу заполнение туда - та же картина, форма открывается - пустое значение. По форумам полазил - не нашел. Причем, нашел такую особенность - при обновлении уже открытой формы (кнопкой Перечитать данные) - значение появляется, чудеса.
Ну и наконец, я решил перенести код формирования списка выбора элемента в сам модуль формы, после всех процедур. Признаюсь, что в модуле формы я очень редко что-то пишу, максимум определяю переменные доступные для всего контекста формы, а уж свойства элементов формы определять - мне казалось совсем дурным тоном.
Но это решило проблему, все заработало. Видимо где-то еще до события "Перед открытием формы" ищется соответствие значения поля и элемента в списке выбора.
Процедура ПриОткрытии()
// не работает
КонецПроцедуры
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
// не работает
КонецПроцедуры
// заполняем список документов для ограничения выбора
// работает
СписокДокументов = Новый СписокЗначений;
Для каждого МД Из Метаданные.Документы Цикл
СписокДокументов.Добавить(МД.Имя,МД.Синоним);
КонецЦикла;
СписокДокументов.СортироватьПоПредставлению();
ЭлементыФормы.ВидДокумента.СписокВыбора = СписокДокументов;
Если вы это знали, то хорошо. Если не знали, то еще лучше. Я раньше просто выключал Режим выбора из списка по причине того, что не понимал как работает эта непонятная вещь. Вообще конечно, странно, что в инструкциях этого нет (либо я не умею читать).