Имя: Пароль:
1C
1С v8
Ошибка в запросе
,
0 korchak
 
06.11.12
12:09
Подскажите где ошибка?

Есть вот такой запрос

ЗапросНоменклатуры = Новый Запрос;
ЗапросНоменклатуры.Текст =
"ВЫБРАТЬ
|    СделкаТовары.Номенклатура КАК Номенклатура,
|    СделкаТовары.Сумма КАК Сумма,
|    СделкаТовары.СуммаНДС КАК СуммаНДС
|ИЗ
|    Документ.ЗаявкаНаРасходованиеСредств.РасшифровкаПлатежа.Сделка.Товары КАК СделкаТовары
|ОБЪЕДИНИТЬ
|ВЫБРАТЬ
|    СделкаУслуги.Номенклатура КАК Номенклатура,
|    СделкаУслуги.Сумма КАК Сумма,
|    СделкаУслуги.СуммаНДС КАК СуммаНДС
|ИЗ
|    Документ.ЗаявкаНаРасходованиеСредств.РасшифровкаПлатежа.Сделка.Услуги КАК СделкаУслуги
|ОБЪЕДИНИТЬ
|ВЫБРАТЬ
|    СделкаМатериалы.Номенклатура КАК Номенклатура,
|    СделкаМатериалы.Сумма КАК Сумма,
|    СделкаМатериалы.СуммаНДС КАК СуммаНДС
|ИЗ
|    Документ.ЗаявкаНаРасходованиеСредств.РасшифровкаПлатежа.Сделка.Материалы КАК СделкаМатериалы
|ГДЕ
|    ЗаявкаНаРасходованиеСредств.РасшифровкаПлатежа.Сделка.Ссылка = &Ссылка
|УПОРЯДОЧИТЬ ПО      
|   Номенклатура";


               
ЗапросНоменклатуры.УстановитьПараметр("Ссылка", Обл.Параметры.Сделка);
           
Результат = ЗапросНоменклатуры.Выполнить();


Есть документ "Заявка на расходование денежных средств", он содержит две ТЧ, одна из них ТЧ "Сделка", в которой есть реквизит, ссылка на документ "Заказ поставщику", а документ "Заказ поставщику" содержит несколько ТБ: "Товары", "Услуги", "Материалы". Вот собственно запросом в цикле выбираю из табличной части все документы "Заказ поставщику" и во вложенном цикле хочу выбрать из ТЧ документа "Заказ поставщику" другие данные. Собственно в параметр "Ссылка" передаю ссылку на документ "Заказ поставщику".
При исполнении запроса, выдает ошибку Таблица не найдена "Документ.ЗаявкаНаРасходованиеСредств.РасшифровкаПлатежа.Сделка.Товары". Подскажите что неправильно в запросе?
1 Wobland
 
06.11.12
12:10
телепатирую. Сделка у тебя - это не таблица
2 korchak
 
06.11.12
12:11
А как сделать правильно чтобы стала таблицей?
3 korchak
 
06.11.12
12:13
Так мне и не нужно чтобы она была таблицей, если я правильно понимаю, Сделка должна быть ссылкой на документ "Заказ поставщику", а уже из документа пускай выбирает таблицы товары, услуги т .д.
4 Reset
 
06.11.12
12:17
Ничего не понял. Если есть ссылка на заказ поставщику, из которого нужно выбрать неки данные, то причем здесь заявка?
5 Reset
 
06.11.12
12:17
в параметр "Ссылка" передаю ссылку на документ "Заказ поставщику".
==>
хочу выбрать из ТЧ документа "Заказ поставщику" другие данные
6 Рэйв
 
06.11.12
12:19
Сделка это колонка составного типа скорее всего.
И сидит у тебя там документ, у которого нет таб части товары
7 Рэйв
 
06.11.12
12:19
потому и матерится
8 hhhh
 
06.11.12
12:20
(3)

ВЫБРАТЬ
|...
|ИЗ
|    Документ.ЗаказПоставщику.Товары КАК СделкаТовары
|ОБЪЕДИНИТЬ
|ВЫБРАТЬ
|...
|ИЗ
|    Документ.ЗаказПоставщику.Услуги КАК СделкаУслуги
|ОБЪЕДИНИТЬ
|ВЫБРАТЬ
|...
|ИЗ
|    Документ.ЗаказПоставщику.Материалы КАК СделкаМатериалы
|ГДЕ
|... = &Ссылка
|УПОРЯДОЧИТЬ ПО      
|   Номенклатура";
9 korchak
 
06.11.12
12:23
В документе "Заявка" есть ТЧ "РасшифровкаПлатежа", в которой один из реквизитов ссылка на документ "Заказ". В документе "Заказ" есть ТЧ "Товары" и т.д.
10 viktor_vv
 
06.11.12
12:23
|    СделкаТовары.Номенклатура КАК Номенклатура,
|    СделкаТовары.Сумма КАК Сумма,
|    СделкаТовары.СуммаНДС КАК СуммаНДС
|ИЗ
|    Выразить(Документ.ЗаявкаНаРасходованиеСредств.РасшифровкаПлатежа.Сделка КАК Документ.ЗаказПоставщику).Товары КАК СделкаТовары
|Где Документ.ЗаявкаНаРасходованиеСредств.РасшифровкаПлатежа.Сделка Ссылка Документ.ЗаказПоставщику
|ОБЪЕДИНИТЬ
|ВЫБРАТЬ
|    СделкаУслуги.Номенклатура КАК Номенклатура,
|    СделкаУслуги.Сумма КАК Сумма,
|    СделкаУслуги.СуммаНДС КАК СуммаНДС
|ИЗ
|    Документ.ЗаявкаНаРасходованиеСредств.РасшифровкаПлатежа.Сделка.Услуги КАК СделкаУслуги
|ОБЪЕДИНИТЬ
|ВЫБРАТЬ
|    СделкаМатериалы.Номенклатура КАК Номенклатура,
|    СделкаМатериалы.Сумма КАК Сумма,
|    СделкаМатериалы.СуммаНДС КАК СуммаНДС
|ИЗ
|    Документ.ЗаявкаНаРасходованиеСредств.РасшифровкаПлатежа.Сделка.Материалы КАК СделкаМатериалы
|ГДЕ
|    ЗаявкаНаРасходованиеСредств.РасшифровкаПлатежа.Сделка.Ссылка = &Ссылка
|УПОРЯДОЧИТЬ ПО      
|   Номенклатура";
11 Рэйв
 
06.11.12
12:27
(9)А ничего что условие ГДЕ ты только на последнее Выбрать накладываешь? И в первые два у тебя идет все полностью.
12 Рэйв
 
06.11.12
12:28
+(11)И там может быть и пусто и вообще черте что
13 pessok
 
06.11.12
12:31
|ГДЕ
|    ЗаявкаНаРасходованиеСредств.РасшифровкаПлатежа.Сделка.Ссылка = &Ссылка

вот тут ошибка
14 viktor_vv
 
06.11.12
12:35
(10) Не, так тоже не хочет.
15 korchak
 
06.11.12
12:35
понял! всем спасибо!!!
16 korchak
 
06.11.12
12:42
"ВЫБРАТЬ
               |    СделкаТовары.Номенклатура КАК Номенклатура,
               |    СделкаТовары.Сумма КАК Сумма,
               |    СделкаТовары.СуммаНДС КАК СуммаНДС
               |ИЗ
               |    Документ.ЗаявкаНаРасходованиеСредств.РасшифровкаПлатежа.Сделка.Товары КАК СделкаТовары
               |ГДЕ
               |    ЗаявкаНаРасходованиеСредств.РасшифровкаПлатежа.Сделка.Ссылка = &Ссылка
               |ОБЪЕДИНИТЬ
               |ВЫБРАТЬ
               |    СделкаУслуги.Номенклатура КАК Номенклатура,
               |    СделкаУслуги.Сумма КАК Сумма,
               |    СделкаУслуги.СуммаНДС КАК СуммаНДС
               |ИЗ
               |    Документ.ЗаявкаНаРасходованиеСредств.РасшифровкаПлатежа.Сделка.Услуги КАК СделкаУслуги
               |ГДЕ
               |    ЗаявкаНаРасходованиеСредств.РасшифровкаПлатежа.Сделка.Ссылка = &Ссылка
               |ОБЪЕДИНИТЬ
               |ВЫБРАТЬ
               |    СделкаМатериалы.Номенклатура КАК Номенклатура,
               |    СделкаМатериалы.Сумма КАК Сумма,
               |    СделкаМатериалы.СуммаНДС КАК СуммаНДС
               |ИЗ
               |    Документ.ЗаявкаНаРасходованиеСредств.РасшифровкаПлатежа.Сделка.Материалы КАК СделкаМатериалы
               |ГДЕ
               |    ЗаявкаНаРасходованиеСредств.РасшифровкаПлатежа.Сделка.Ссылка = &Ссылка
               |УПОРЯДОЧИТЬ ПО      
               |   Номенклатура";


не работает, та же ошибка Таблица не найдена "Документ.ЗаявкаНаРасходованиеСредств.РасшифровкаПлатежа.Сделка.Товары"
17 korchak
 
06.11.12
12:43
"ВЫБРАТЬ
               |    СделкаТовары.Номенклатура КАК Номенклатура,
               |    СделкаТовары.Сумма КАК Сумма,
               |    СделкаТовары.СуммаНДС КАК СуммаНДС
               |ИЗ
               |    Документ.ЗаказПоставщику.Товары КАК СделкаТовары
               |ГДЕ
               |    ЗаказПоставщику.Ссылка = &Ссылка
               |ОБЪЕДИНИТЬ
               |ВЫБРАТЬ
               |    СделкаУслуги.Номенклатура КАК Номенклатура,
               |    СделкаУслуги.Сумма КАК Сумма,
               |    СделкаУслуги.СуммаНДС КАК СуммаНДС
               |ИЗ
               |    Документ.ЗаказПоставщику.Услуги КАК СделкаУслуги
               |ГДЕ
               |    ЗаказПоставщику.Ссылка = &Ссылка
               |ОБЪЕДИНИТЬ
               |ВЫБРАТЬ
               |    СделкаМатериалы.Номенклатура КАК Номенклатура,
               |    СделкаМатериалы.Сумма КАК Сумма,
               |    СделкаМатериалы.СуммаНДС КАК СуммаНДС
               |ИЗ
               |    Документ.ЗаказПоставщику.Материалы КАК СделкаМатериалы
               |ГДЕ
               |    ЗаказПоставщику.Ссылка = &Ссылка
               |УПОРЯДОЧИТЬ ПО      
               |   Номенклатура";


а тут выдает ошибку Поле не найдено "ЗаказПоставщику.Ссылка"
<<?>>ЗаказПоставщику.Ссылка = &Ссылка
18 viktor_vv
 
06.11.12
12:45
А еще вопрос, ты это все делаешь в цикле по табличной части Расшифровка платежа ? или где ?
19 Рэйв
 
06.11.12
12:46
Документ.ЗаказПоставщику.Ссылка = &Ссылка
20 Рэйв
 
06.11.12
12:51
(19)Не, сторно
Вот так

СделкаТовары.Ссылка=&Ссылка
21 korchak
 
06.11.12
12:53
Да, все это делается в цикле по ТЧ Расшифровка платежа
22 korchak
 
06.11.12
12:57
Так тоже не хочет...
Документ.ЗаказПоставщику.Ссылка = &Ссылка
Поле не найдено "Документ.ЗаказПоставщику.Ссылка"
23 korchak
 
06.11.12
12:58
не увидел сторно)
24 viktor_vv
 
06.11.12
12:59
ТекстЗапроса = "
   |Выбрать
   |    Выразить(Расшифровка.Сделка КАК Документ.ЗаказПоставщику) КАК Заказ
   |Поместить
   | ВТЗаказы
   |ИЗ
   |    Документ.ЗаявкаНаРасходованиеСредств.РасшифровкаПлатежа КАК Расшифровка
   |Где Расшифровка.Сделка Ссылка Документ.ЗаказПоставщику
   |    И Расшифровка.Ссылка = &ЗаявкаНаРасход
   |;
   |//////////////////
     |ВЫБРАТЬ
               |    СделкаТовары.Номенклатура КАК Номенклатура,
               |    СделкаТовары.Сумма КАК Сумма,
               |    СделкаТовары.СуммаНДС КАК СуммаНДС
               |ИЗ
               |    Документ.ЗаказПоставщику.Товары КАК СделкаТовары
               |    Внутреннее соединение ВТЗаказы КАК ВТЗаказы
               |        ПО ВТЗаказы.Заказ = СделкаТовары.Ссылка
               |                            
               |ОБЪЕДИНИТЬ
               |ВЫБРАТЬ
               |    СделкаУслуги.Номенклатура КАК Номенклатура,
               |    СделкаУслуги.Сумма КАК Сумма,
               |    СделкаУслуги.СуммаНДС КАК СуммаНДС
               |ИЗ
               |    Документ.ЗаказПоставщику.Услуги КАК СделкаУслуги
               |    Внутреннее соединение ВТЗаказы КАК ВТЗаказы
               |        ПО ВТЗаказы.Заказ = СделкаУслуги.Ссылка                

               |ОБЪЕДИНИТЬ
               |ВЫБРАТЬ
               |    СделкаМатериалы.Номенклатура КАК Номенклатура,
               |    СделкаМатериалы.Сумма КАК Сумма,
               |    0 КАК СуммаНДС
               |ИЗ
               |    Документ.ЗаказПоставщику.Материалы КАК СделкаМатериалы
               |    Внутреннее соединение ВТЗаказы КАК ВТЗаказы
               |        ПО ВТЗаказы.Заказ = СделкаМатериалы.Ссылка                
               |УПОРЯДОЧИТЬ ПО      
               |   Номенклатура
    |" ;
   
    Запрос = Новый Запрос ;
// Устанавливай параметром ссылку на твой документ заявка на расход средств.
    Запрос.УстановитьПараметр("ЗаявкаНаРасход",Заявка) ;
    Запрос.Текст = ТекстЗапроса ;
   
    ТЗ = Запрос.Выполнить().Выгрузить();
   
    ТЗ.ВыбратьСтроку();
25 viktor_vv
 
06.11.12
13:00
(24)+ Без цикла .
26 korchak
 
06.11.12
13:13
за вариант без цикла спасибо! но...
27 korchak
 
06.11.12
13:14
вот этот код вроде заработал без предыдущей ошибки

               "ВЫБРАТЬ
               |    СделкаТовары.Номенклатура КАК Номенклатура,
               |    СделкаТовары.Сумма КАК Сумма,
               |    СделкаТовары.СуммаНДС КАК СуммаНДС
               |ИЗ
               |    Документ.ЗаказПоставщику.Товары КАК СделкаТовары
               |ГДЕ
               |    СделкаТовары.Ссылка = &Ссылка
               |ОБЪЕДИНИТЬ
               |ВЫБРАТЬ
               |    СделкаУслуги.Номенклатура КАК Номенклатура,
               |    СделкаУслуги.Сумма КАК Сумма,
               |    СделкаУслуги.СуммаНДС КАК СуммаНДС
               |ИЗ
               |    Документ.ЗаказПоставщику.Услуги КАК СделкаУслуги
               |ГДЕ
               |    СделкаУслуги.Ссылка = &Ссылка
               |ОБЪЕДИНИТЬ
               |ВЫБРАТЬ
               |    СделкаМатериалы.Номенклатура КАК Номенклатура,
               |    СделкаМатериалы.Сумма КАК Сумма,
               |ИЗ
               |    Документ.ЗаказПоставщику.Материалы КАК СделкаМатериалы
               |ГДЕ
               |    СделкаМатериалы.Ссылка = &Ссылка
               |УПОРЯДОЧИТЬ ПО      
               |   Номенклатура";
               
               ЗапросНоменклатуры.УстановитьПараметр("Ссылка", Обл.Параметры.Сделка);
               
               Результат = ЗапросНоменклатуры.Выполнить();
               ВыборкаСтрок = Результат.Выбрать();


но появилась другая ошибка Синтаксическая ошибка "ИЗ"
<<?>>ИЗ
28 viktor_vv
 
06.11.12
13:15
Запятую убери

               |ВЫБРАТЬ
               |    СделкаМатериалы.Номенклатура КАК Номенклатура,
               |    СделкаМатериалы.Сумма КАК Сумма,
               |ИЗ
29 korchak
 
06.11.12
13:17
проезд, не увидел запятую, хотя просматривал каждую строчку... уффф
30 viktor_vv
 
06.11.12
13:17
И добавь все-таки

               |ВЫБРАТЬ
               |    СделкаМатериалы.Номенклатура КАК Номенклатура,
               |    СделкаМатериалы.Сумма КАК Сумма,
|0 КАК СуммаНДС
31 korchak
 
06.11.12
13:19
да, да а то будет разное количество полей при объеденении...
32 korchak
 
06.11.12
13:21
а почему? Синтаксична помилка "0"
<<?>>0 КАК СуммаНДС
33 hhhh
 
06.11.12
13:27
(32) наверно запятую убрал.
34 Reset
 
06.11.12
13:28
(33) :))
35 korchak
 
06.11.12
13:39
все! на сегодня больше не занимаюсь кодингом, т.к не вижу запятых)))
36 korchak
 
06.11.12
13:39
всем спасибо помощь и поддержку!