Имя: Пароль:
1C
1С v8
Подскажите как заполнить СписокВыбора в УФ
0 vfrcbv
 
03.07.19
10:28
Добрый день!

На форме УФ есть реквизит со списком выбора. На сервере запросом получаю необходимые данные, заполняю этими данными список значений и возвращаю на клиент.

На клиенте не получается заполнить СписокВыбора возвращенным СпискомЗначений.

>вылазит ошибка: Поле объекта недоступно для записи (СписокВыбора)

Подскажите как заполнить СписокВыбора, сформированным СпискомЗначений?
1 exwill
 
03.07.19
10:29
(0) "=" или "Добавить()" ?
2 aleks_default
 
03.07.19
10:32
А как делаешь покажи
3 vfrcbv
 
03.07.19
10:38
(2)
...
НомераТелефонов = ПолучитьНомераТелефоновКЛ();
Элементы.НомерТелефона.СписокВыбора.Очистить();
Элементы.НомерТелефона.СписокВыбора = НомераТелефонов;

....


Функция ПолучитьНомераТелефоновКЛ()
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ВЫБОР
    |        КОГДА КонтактныеЛицаКонтактнаяИнформация.НомерТелефона <> """"
    |            ТОГДА ПОДСТРОКА(КонтактныеЛицаКонтактнаяИнформация.Вид.Наименование, 1, 999) + "":    "" + ПОДСТРОКА(КонтактныеЛицаКонтактнаяИнформация.Представление, 1, 999)
    |    КОНЕЦ КАК НомерТелефона
    |ИЗ
    |    Справочник.КонтактныеЛица.КонтактнаяИнформация КАК КонтактныеЛицаКонтактнаяИнформация
    |ГДЕ
    |    КонтактныеЛицаКонтактнаяИнформация.Ссылка = &СсылкаНаКЛ";
    Запрос.УстановитьПараметр("СсылкаНаКЛ", Объект.КонтактноеЛицо);
    
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    //МассивТелефонов = Новый Массив;
    //Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    //    ТекНомер = ВыборкаДетальныеЗаписи.НомерТелефона;
    //    Если ЗначениеЗаполнено(ТекНомер) Тогда
    //        МассивТелефонов.Добавить(ТекНомер);
    //    КонецЕсли;
    //КонецЦикла;
    //
    //Возврат МассивТелефонов;
    
    СписокЗначений = Новый СписокЗначений;
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ТекНомер = ВыборкаДетальныеЗаписи.НомерТелефона;
        Если ЗначениеЗаполнено(ТекНомер) Тогда
            СписокЗначений.Добавить(ТекНомер, "1");
        КонецЕсли;
    КонецЦикла;
    
    Возврат СписокЗначений;

    
    
КонецФункции // ПолучитьНомераТелефоновКЛ()
4 Василий Алибабаевич
 
03.07.19
10:38
(1) Исключительно "Добавить()". Ему нельзя сказать ссылаться на другой список. Оно потому что привязано к элементу управления.
5 Василий Алибабаевич
 
03.07.19
10:42
(3) Вот это вот низ-з-з-я :
Элементы.НомерТелефона.СписокВыбора = НомераТелефонов;

Нужно примерно так

Элементы.НомерТелефона.СписокВыбора.ЗагрузитьЗначения(НомераТелефонов.ВыгрузитьЗначения());