Имя: Пароль:
1C
1С v8
Подскажите по простейшему запросу плз.
0 BigShmax
 
30.08.11
17:36
Есть документ ЗаказПокупателя и есть регистр сведений с информацией о ЗаказПокупателя/ФИО/Телефон/Адрес.  задача если по  заказу  есть инфа в РС  то брать в печатную форму из него, иначе из заказа.

привожу поделку та что с ошибками

ЗапросПодстановка = Новый Запрос;
   ЗапросПодстановка.Текст =
   "ВЫБРАТЬ
   |    ИнформацияОКонечномПотребителе.ФИОКонтрагента
   |ИЗ
   |    Документ.ЗаказПокупателя КАК ЗаказПокупателя
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИнформацияОКонечномПотребителе КАК ИнформацияОКонечномПотребителе
   |        ПО ЗаказПокупателя.Ссылка = ИнформацияОКонечномПотребителе.ЗаказПокупателя";

....


Область.Параметры.Контрагент     =  ЗапросПодстановка.Контрагент;

   ЗапросПодстановка.УстановитьПараметр("ЗаказПокупателя", ЗаказПокупателя);
1 BigShmax
 
30.08.11
17:37
ну параметр ессно идет сразу под запросом  а вывод позже
2 BigShmax
 
30.08.11
17:40
тьфу

в ВЫБРАТЬ  конечно же

|    ЕСТЬNULL(ИнформацияОКонечномПотребителе.ФИОКонтрагента, ЗаказПокупателя.Контрагент) КАК Контрагент,
3 Eugene_life
 
30.08.11
17:41
(0) как-то так:
.... запрос
затем:
ЗапросПодстановка.УстановитьПараметр("ЗаказПокупателя", ЗаказПокупателя);
РезультатЗапроса = ЗапросПодстановка.Выполнить().Выбрать();
Пока РезультатЗапроса.Следующий() Цикл
Область.Параметры.Контрагент     =  ЗапросПодстановка.Контрагент;
КонецЦикла;
4 Eugene_life
 
30.08.11
17:41
(2) см выше - запрос надо сначала выполнить и выбрать данные, а потом уже перебирать выборку
5 WF72
 
30.08.11
17:42
Параметр не обязательно должен идти под запросом.
Вопроса я не увидел. В чем собсно проблема?
6 Eugene_life
 
30.08.11
17:43
(3) ошибся маленько:
Пока РезультатЗапроса.Следующий() Цикл
Область.Параметры.Контрагент     =  РезультатЗапроса.ФИОКонтрагента;
КонецЦикла;
7 luckyluke
 
30.08.11
17:43
(0) ты наверное про это:
ВЫБРАТЬ
    ЕСТЬNULL(ИнформацияОКонечномПотребителе.ФИОКонтрагента, ЗаказПокупателя.Контрагент) КАК Контрагент,
....
8 BigShmax
 
30.08.11
17:44
я привел запрос  после того как проигнорировал ошибки.  не могу собрать запрос :-(

(4)  Выборка не нужна.  на один заказ  не больше одной строки в РС мне тупо нужно выбрать контрагента из заказа и из РС . Инфа из РС приоритетнее.
9 BigShmax
 
30.08.11
17:47
на те заказы на которые нет инфы в РС выводим из документа.

немогу собрать запрос на одно поле из двух таблиц :-(
10 Eugene_life
 
30.08.11
17:47
(8) все равно запрос надо выполнить и выбрать. Просто вместо цикла пишешь
Если РезультатЗапроса.Следующий() Тогда
Область.Параметры.Контрагент     =  РезультатЗапроса.Контрагент;
КонецЕсли;
11 Fram
 
30.08.11
17:48
(9) вроде все верно в запросе.. в чем ошибка?
12 luckyluke
 
30.08.11
17:50
(9) ну так смотри (7), что не понятно?
13 hhhh
 
30.08.11
17:52
(11) похоже здесь

Область.Параметры.Контрагент     =  ЗапросПодстановка.Контрагент;
14 BigShmax
 
30.08.11
17:54
ЗапросПодстановка = Новый Запрос;
   ЗапросПодстановка.Текст =
   "ВЫБРАТЬ
   |ЕСТЬNULL(ИнформацияОКонечномПотребителе.ФИОКонтрагента, ЗаказПокупателя.Контрагент) КАК Контрагент
   |ИЗ
   |    Документ.ЗаказПокупателя КАК ЗаказПокупателя
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИнформацияОКонечномПотребителе КАК ИнформацияОКонечномПотребителе
   |        ПО ЗаказПокупателя.Ссылка = ИнформацияОКонечномПотребителе.ЗаказПокупателя";
   ЗапросПодстановка.УстановитьПараметр("ЗаказПокупателя", ЗаказПокупателя);

пытаюсь войтиконструктором и получаю ошибку

(6,6) Неоднозначное поле "ЗаказПокупателя.Ссылка" ПО <?> ЗаказПокупателя.Ссылка = ИнформацияОКонечномПотребителе.ЗаказПокупателя
15 BigShmax
 
30.08.11
17:55
фиг с ней с областью  откинем  все  на текущий момент не могу завести запрос.
16 Fram
 
30.08.11
17:58
(14) сделай Документ.ЗаказПокупателя КАК ЗаказПокупателя2 например
17 shuhard
 
30.08.11
17:59
(15) Неоднозначное поле
и что в ошибке не понятно ?

ИЗ
   |    Документ.ЗаказПокупателя КАК ЗаказПокупателя_ххх
18 BigShmax
 
30.08.11
18:00
(16) сработало  а что это было

(17)  ну не встречался я с такой ошибкой ранее, не пинайте ногами то
19 Fram
 
30.08.11
18:04
(18) ИнформацияОКонечномПотребителе.ЗаказПокупателя
видишь тут тоже ЗаказПокупателя
20 BigShmax
 
30.08.11
18:08
ну тада допинайте мой разум чтобы это вывести и я буду счастлив :-)

Результат = ЗапросПодстановка.Выполнить();
   
   Область = Макет.ПолучитьОбласть("ШапкаТовары");
   Область.Параметры.Контрагент     =  Результат.Контрагент;


дает

{Форма.Форма.Форма(2222)}: Поле объекта не обнаружено (Контрагент)
   Область.Параметры.Контрагент     =  Результат.Контрагент;

Итоги пробовал по контрагенту
21 BigShmax
 
30.08.11
18:09
(19)  спасиб, ошибка действительно несла в себе всю инфу
22 Fram
 
30.08.11
18:26
(20) Открой переменную Результат  в отладчике.. Думаю сам поймешь
23 BigShmax
 
30.08.11
18:31
ща чайку хлебну разберусь - главное  что в консоли открыл то что мне надо там есть :-)
24 BigShmax
 
30.08.11
18:37
Метод объекта следующий гооврит не обнаружен :-(

я понимаю  что нужно выполнить запрос и взять из него то что вижу в консоли  но не дается сволочь.  оба обхода ругаются одинаково :-(

   РезультатЗапроса = ЗапросПодстановка.Выполнить();
   
   Область = Макет.ПолучитьОбласть("ШапкаТовары");
   
   Пока РезультатЗапроса.Следующий() Цикл
       Область.Параметры.Контрагент     =  РезультатЗапроса.Контрагент;
   КонецЦикла;
   
   //Если РезультатЗапроса.Следующий() Тогда
   //    Область.Параметры.Контрагент     =  РезультатЗапроса.Контрагент;
   //КонецЕсли;
25 BigShmax
 
30.08.11
18:38
{Форма.Форма.Форма(2225)}: Метод объекта не обнаружен (Следующий)
   Пока РезультатЗапроса.Следующий() Цикл
26 Eugene_life
 
30.08.11
18:39
(25) РезультатЗапроса = ЗапросПодстановка.Выполнить().Выбрать();
27 BigShmax
 
30.08.11
18:42
(26)   век тебя помнить буду

спасибо, пойду убьюсь ап стену :-)


все работает на ура
28 Fram
 
30.08.11
19:18
(27) только перешел на 8ку?
пожалей стену :)
изучай типовые, например БСП посмотри
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший