Имя: Пароль:
1C
1С v8
Отображение таблицы значений на форме
,
0 Aleksey1989
 
05.03.13
11:57
Добрый день. Никак не могу понять, где ошибка. Мне надо, чтобы таблица значений, заполненная программно, отобразилась на форме в соответствующем элементе.

&НаСервере
Процедура ПоискФизЛицаНаСервере()
   
   ЗапросФизЛица = Новый запрос;
   ЗапросФизЛица.Текст = "ВЫБРАТЬ
                         |    ФизическиеЛица.Ссылка
                         |ИЗ
                         |    Справочник.ФизическиеЛица КАК ФизическиеЛица
                         |ГДЕ
                         |    ФизическиеЛица.Наименование ПОДОБНО &СтрокаПоиска";
                         
   ЗапросФизЛица.УстановитьПараметр("СтрокаПоиска",(НаименованиеФизЛицаПоиск+"%"));
   РезультатЗапроса = ЗапросФизЛица.Выполнить().Выгрузить();                      
   
   ТаблицаЗначенийФизЛица.Загрузить(РезультатЗапроса);    
   
   ЗначениеВДанныеФормы(РезультатЗапроса,ЭтаФорма.Элементы.ТаблицаЗначенийФизЛица);

КонецПроцедуры

Здесь ТаблицаЗначенийФизЛица - это реквизит формы, имеющий тип ТаблицаЗначений.
1 Classic
 
05.03.13
11:58
СоздатьКолонки?
2 Aleksey1989
 
05.03.13
12:03
Нет, колонки уже созданы в самой форме. Суть такая: я получаю запрос, состоящий из одной колонки, в которой перечисляются ссылки на элементы справочника "Физические лица". Далее выполняю этот запрос и выгружаю его в таблицу значений.

На управляемой форме создаю реквизит формы, имеющий тип "ТаблицаЗначений", создаю для него одну колонку, имеющую тип "СправочникСсылка.ФизическиеЛица".
3 Defender aka LINN
 
05.03.13
12:06
ЗначениеВРЕКВИЗИТФормы
4 Aleksey1989
 
05.03.13
12:08
(3) Пробовал, ругается на 2-й параметр: указываю, как и сказано в СП, наименование реквизита в кавычках.
5 AllJoke
 
05.03.13
12:09
(4) Покажи как указываешь?
6 Aleksey1989
 
05.03.13
12:11
(5) ЗначениеВРеквизитФормы(РезультатЗапроса,"ТаблицаЗначенийФизЛица")
7 AllJoke
 
05.03.13
12:12
РезультатЗапроса = ЗапросФизЛица.Выполнить().Выгрузить();                      
   

   
   ЗначениеВДанныеФормы(РезультатЗапроса,"ТаблицаЗначенийФизЛица");
8 AllJoke
 
05.03.13
12:13
Если конечно же ТаблицаЗначенийФизЛица - это ТаблицаЗначений в реквизитах формы.
9 Defender aka LINN
 
05.03.13
12:13
(4) Дык. В таблице, полученной из запроса, во всех колонках присутствует тип "NULL". В твоем реквизите его нет.
10 Aleksey1989
 
05.03.13
12:13
(7) Просто я пробывал и ЗначениеВДанныеФормы и ЗначениеВРеквизитФормы - ни то, ни другое не помогает.
11 AllJoke
 
05.03.13
12:15
http://screencast.com/t/BLX3jTTmoDU

Результат = Запрос.Выполнить();
ТЗ = Результат.Выгрузить();
ЗначениеВРеквизитФормы(ТЗ, "ТаблицаРезультата");
12 AllJoke
 
05.03.13
12:15
Так работает у меня.
13 Aleksey1989
 
05.03.13
12:15
(9) Не понял: откуда в таблице, полученной из запроса, во всех колонках будет "NULL"? При запуске отладчика я вижу, что там одна колонка, содержащия ссылки на некоторых физ. лиц.
14 AllJoke
 
05.03.13
12:17
(13) нужно смотреть что возвращает запрос, и какие колонки в ТЗ на форме. Может запрос тупо возвращает список с Наименованием ФизЛиц.
15 Defender aka LINN
 
05.03.13
12:17
(13) Ты слово "Тип" из принципа не прочитал?
16 Defender aka LINN
 
05.03.13
12:17
(11) Значит, у аффтара вообще ТЗ с реквизитом не совпадают
17 AllJoke
 
05.03.13
12:23
Могу скинуть работающую обработку. Тока наваял.
18 AllJoke
 
05.03.13
12:26
А вообще - проверь что возвращает запрос и как называется колонка в ТЗ на твоей форме.
19 AllJoke
 
05.03.13
12:26
Колонка наверняка должна называться "Ссылка".
20 Mort
 
05.03.13
12:32
ЗначениеВДанныеФормы(РезультатЗапроса,ЭтаФорма.Элементы.ТаблицаЗначенийФизЛица)

Второй параметр должен быть не таблица формы, а коллекция.
Т.е. ЗначениеВДанныеФормы(РезультатЗапроса,ТаблицаЗначенийФизЛица);
21 Aleksey1989
 
05.03.13
12:48
(19) ТОЧНО, колонка таблицы значений управляемой формы должна называться так же, как и поле в запросе. Как я так лопухнулся, понять не могу.
22 Aleksey1989
 
05.03.13
12:48
+(21) Спасибо всем за помощь.