Имя: Пароль:
1C
1С v8
работа с результатом запроса
,
0 Artyom20
 
03.06.15
11:52
Ребят, помогите - совсем затупил.
Как мне открыть документ, который находится в результате запроса:

Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    РеализацияТоваровУслугТовары.Ссылка
    |ИЗ
    |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    |ГДЕ
    |     РеализацияТоваровУслугТовары.ЗаказПокупателя = &ЗаказПокупателя";
    
    Запрос.УстановитьПараметр("ЗаказПокупателя", НайденнаяСтрока.заказ.номер);
    
    Результат = Запрос.Выполнить();
1 Naumov
 
03.06.15
11:52
организовать выборку из результата запроса.
2 Ненавижу 1С
 
гуру
03.06.15
11:53
запрос фееричный конечно ))
ну и параметр тоже ))
3 vi0
 
03.06.15
11:53
со стажем 3 года на мисте..
4 pessok
 
03.06.15
11:53
запрос ничего не найдет
5 Defender aka LINN
 
03.06.15
11:58
(4)  С таким текстом запроса я готов поверить, что в реквизите "номер" реально хранится заказ.
6 Artyom20
 
03.06.15
11:58
(3) молодец
7 pessok
 
03.06.15
12:00
(5) ну возможно человеку надо получить 5 (по количеству товаров в РТиУ) строк по сделке :)
8 vi0
 
03.06.15
12:02
(6) чем вопрос то у тебя?
ты не знаешь как выборку организовать из результата вопроса? слабо верится
9 D_E_S_131
 
03.06.15
12:03
(3) Может ТС только "Пятницу" читал все эти годы...
10 Симпатяшка
 
03.06.15
12:03
не, ну что вы. Может он в первый раз запрос пишет. Там у него написано же, что род занятий "Консультант"
11 Artyom20
 
03.06.15
12:05
я получаю из строки заказ покупателя, хочу найти документ реализации, который сделан на основании этого заказа - если документ не нахожу, тогда делаю новый.
12 GROOVY
 
03.06.15
12:06
Вангую, запрос в цикле.
13 GROOVY
 
03.06.15
12:07
А в строке заказа, случайно, самого документа реализации нет?
14 Artyom20
 
03.06.15
12:08
(12) нет, запрос не в цикле, и самого дока реализации нет
15 Бубка Гоп
 
03.06.15
12:09
Выборка = Результат.Выбрать();
Пока Выборка.Следующий Цикл
ОткрытьЗначение(Выборка.Ссылка);
КонецЦикла;
16 Симпатяшка
 
03.06.15
12:09
Совсем никому здесь ТСа не жалко
17 Симпатяшка
 
03.06.15
12:09
(0)
Во-первых, в параметр нужно не номер заказа передавать, а ссылку.

Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Док = Выборка.Ссылка
...
18 D_E_S_131
 
03.06.15
12:09
(14) А почему ищешь РТУ по заказу в ТЧ "Товары"?
19 Бубка Гоп
 
03.06.15
12:09
(15) Следующий()*
20 Бубка Гоп
 
03.06.15
12:10
(18) +1
21 Dmitrii
 
гуру
03.06.15
12:10
(0) Исправить

Запрос.УстановитьПараметр("ЗаказПокупателя", НайденнаяСтрока.заказ.номер);

на

     Запрос.УстановитьПараметр("ЗаказПокупателя", НайденнаяСтрока.заказ);

В конце добавить:

Если Результат.Пустой() Тогда
   //Создаем РТиУ на основании заказа
   СоздатьДокументРеализацииКЗаказу(НайденнаяСтрока.заказ);
КонецЕсли;
22 D_E_S_131
 
03.06.15
12:11
(17) И тут как бы вообще обход не нужен. Достаточно

Если Результат.Пустой() Тогда
   // создаем РТУ из Заказа
КонецЕсли;
23 D_E_S_131
 
03.06.15
12:11
(21) Опередил. :)
24 Мыш
 
03.06.15
12:12
В копилку )))
ОткрытьЗначение(Результат.Выгрузить()[0][0]);
25 Бубка Гоп
 
03.06.15
12:13
(22) т.е. исключается возможность создания нескольких реализаций по одному заказу?
26 Dmitrii
 
гуру
03.06.15
12:15
(25) Задача озвучена в (11): "...если документ не нахожу, тогда делаю новый"
27 D_E_S_131
 
03.06.15
12:18
(25) Откуда мне знать? Можно и несколько, на каждую строку заказа по РТУ. :) Но все равно же их делать из заказа, и все равно при условии "не нахожу".
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой