Имя: Пароль:
1C
1С v8
Не отображается список выбора на форме
0 YamEgor
 
25.10.19
09:30
добрый день, подскажите почему не отображается список выбора на форме обработки, создаю обработку МетаданныеДокумента и на форме создаю реквизит Список тип СписокЗначений,в свойствах Список выставляю галочку РежимВыбораИзСписка и ПриСозданииНаСервере заполняю его данными

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   Для каждого Документ Из Метаданные.Документы Цикл
      Элементы.Список.СписокВыбора.Добавить(Документ.Имя,Документ.Синоним);
   КонецЦикла;
КонецПроцедуры

все это было сделано в управляемом приложении Режим совместимости Версия 8.2.13, проверяю в пользовательском режиме все работает хорошо из выпадающего списка значение нормально выбирается и отображается на форме, потом решил попробовать постепенно режим совместимости менять и когда выбрал режим Версия 8.3.3 то после этого в пользовательском режиме выпадающий список работает, список формируется, но выбранное значение на форме не отображается поле остается пустым, что можно сделать,что бы значение отображалось?

И когда я решил опять поставить режим Версия 8.2.13 то при обновлении получил ошибку
В процессе обновления информационной базы произошла критическая ошибка
по причине:
Ошибка SDBL:
В схеме базы данных нет таблицы с именем AccRgOpt
кто то может подсказать как это исправить?
1 unenu
 
25.10.19
09:44
8.2. и 8.3.3 - уже практически похоронены и помочь вам может только 1С-ник некрофил

я таких не знаю(
2 Андроны едут
 
25.10.19
09:48
(0) Список выбора на клиенте надо заполнять:

&НаКлиенте
СписокВыбора.ЗагрузитьЗначения(ЗаполнитьСписокВыбора())

&НаСервере
Функция ЗаполнитьСписокВыбора()
СписокВыбора = Новый СписокЗначений;
    
....
Возврат СписокВыбора.ВыгрузитьЗначения();
КонецФункции
3 YamEgor
 
26.10.19
17:39
&НаКлиенте
Процедура СписокНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
        СтандартнаяОбработка = Ложь;
    ДанныеВыбора = ПолучаемСписокДокументов();    
КонецПроцедуры



сделал вот так все заработало

&НаСервере
Функция ПолучаемСписокДокументов()
    
    СписокДоков = Новый СписокЗначений;
    Для каждого Документ Из Метаданные.Документы Цикл
        СписокДоков.Добавить(Документ.Имя,Документ.Синоним);
    КонецЦикла;
    
    Возврат СписокДоков;    
    
КонецФункции // ПолучаемСписокДокументов()

а можно еще вот так

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Элементы.Декорация.Заголовок = Элементы.Декорация.Заголовок + Метаданные.Синоним;
    
    лкСписок = Элементы.Документ.СписокВыбора;
    Для каждого лкСтр Из Метаданные.Документы Цикл
        лкСписок.Добавить(лкСтр.Имя, лкСтр.Синоним);
    КонецЦикла;
    
КонецПроцедуры
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший