Имя: Пароль:
1C
1С v8
Запрос к табличной части справочника
,
0 Tramplin
 
24.03.16
15:43
Добрый день. Пытаюсь сделать запрос из документа к табличной части справочника, чтобы получить наименование, но ничего не выходит..Подскажите пожалуйста, что не так?
ЗапросПолучитьНаименование = Новый запрос;
ЗапросПолучитьНаименование .Текст = "ВЫБРАТЬ
                                                      |    Товары.ТабличнаяЧастьТовара.(
                                                      |        Наименование КАК НаименованиеТовара
                                                      |    )
                                                      |ИЗ
                                                      |    Справочник.Товары КАК Товары
                                                      |ГДЕ
                                                      |    Товары.Наименование = &Наименование";
                    ЗапросПолучитьНаименование.УстановитьПараметр("Наименование",РезультатЗапроса.Товар);
РезультатЗапроса = ЗапросПолучитьНаименование .Выполнить().Выбрать();
МассивИменТЧ = Новый Массив;
Пока РезультатЗапроса .Следующий() Цикл
МассивИменТЧ .Добавить(РезультатЗапроса.Наименование);
КонецЦикла;
Сообщить(МассивИменТЧ .Количество());
1 DTX 4th
 
24.03.16
15:44
выбрать А.Наименование их Справочник.Товары.ТабличнаяЧастьТовара КАК А
2 Rie
 
24.03.16
15:45
Откуда там "Наименование", если ты его обозвал "НаименованиеТовара?
3 ObjectRelation Model
 
24.03.16
15:46
да и вообще там в выборке таблица значений так-то
4 Tramplin
 
24.03.16
15:47
(2) Изменил на НаименованиеТовара, ничего не поменялось, также 0 выводит, хотя там 2 записи(
5 Tramplin
 
24.03.16
16:10
Может есть какой то другой способ выбрать? Типо с помощью метода Количество() можно узнать сколько строк, а есть какой-нибудь метод чтобы получить всё табличную часть?
6 hhhh
 
24.03.16
16:13
(5) включи голову, написали же

       |    ТоварыТабличнаяЧастьТовара.Наименование КАК НаименованиеТовара
                                                      |    )
                                                      |ИЗ
                                                      |    Справочник.Товары.ТабличнаяЧастьТовара КАК ТоварыТабличнаяЧастьТовара
                                                      |ГДЕ
                                                      |    ТоварыТабличнаяЧастьТовара.Ссылка.Наименование = &Наименование";
7 Одинесю
 
24.03.16
16:13
(4) Ты из таблицы выбирай, а не документа, см (1)
8 Одинесю
 
24.03.16
16:19
(6) Он же скобку тоже скопирует))
9 Tramplin
 
24.03.16
16:26
(8) не скопировал) но всё равно не выходит ничего))
10 Fish
 
24.03.16
16:26
(9) Используй силу конструктора запросов.
11 Rie
 
24.03.16
16:27
(9) У тебя там таблица. Откуда у неё Наименование?
См. (1).
12 Одинесю
 
24.03.16
16:28
РезультатЗапроса = ЗапросПолучитьНаименование .Выполнить().Выбрать(); закомментируй, сделай строчку ТЗ = РезультатЗапроса = ЗапросПолучитьНаименование .Выполнить().Выгрузить();, поставь на ней точку останова и в отладке посмотри что у тебя в ТЗ.
13 Одинесю
 
24.03.16
16:31
ТЗ = ЗапросПолучитьНаименование .Выполнить().Выгрузить(); вот такую, вернее)
14 Tramplin
 
24.03.16
16:37
(10) В нем и ковыряюсь

(13) "Значение" - пусто , "Тип" - неопределено)
15 Одинесю
 
24.03.16
16:39
(14)  ЗапросПолучитьНаименование.УстановитьПараметр("Наименование",РезультатЗапроса.Товар); у тебя РезультатЗапроса.Товар скорее всего не то, что ты ожидаешь.
16 hhhh
 
24.03.16
16:42
(14)           |ГДЕ
                                                      |    ТоварыТабличнаяЧастьТовара.Ссылка = &Ссылка";
                    ЗапросПолучитьНаименование.УстановитьПараметр("Ссылка",РезультатЗапроса.Товар);
17 Tramplin
 
24.03.16
16:43
(15) Нет, я смотрю там именно то значение которое надо. Может из за того что я передаю тип Ссылку, а сравниваю её со строчным реквизитом?
18 Tramplin
 
24.03.16
16:47
(16) О заработало! Спасибо) Всё так с Типом было неправильно)