Имя: Пароль:
1C
1С v8
Почему Запрос не работает?((
,
0 tolok_d
 
19.02.13
12:39
Господа. Подскажите ошибку в простеньком запросе:

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

   Результат = Запрос.Выполнить();

//ЭтотОбъект - это ДокументОбъект ЗаказПокупателя

Этот запрос выдает значение неопределено. Но если я пишу
ДокРеал = Документы.РеализацияТоваровУслуг.НайтиПоРеквизиту("Сделка", ЭтотОбъект.Ссылка);
то все хорошо ищет. Мне просто интересно почему запрос не работает. Ведь должен же((
1 КуплюКровать
 
19.02.13
12:40
а где выборка?
2 pessok
 
19.02.13
12:41
потому в параметр надо передавать ДокументСсылка, а не ДокументОбъект
3 salvator
 
19.02.13
12:41
Сообщить(Запрос.Выполнить().Выгрузить().Количество());
Что дает?
А вообще, не плоди темы
v8: Мой первый запрос
4 pessok
 
19.02.13
12:41
да и вообще не видать установки параметра запроса
5 GANR
 
19.02.13
12:41
(0) как Запрос.Выполнить() может возвращать неопределено??? он может возвращать РезультатЗапроса, который может быть пустым.
6 Рэйв
 
19.02.13
12:43
(0)
Сделай

Результат = Запрос.Выполнить().выгрузить();
Результат.ВыбратьСроку() ;

И посмотри то там он тебе сделал
7 tolok_d
 
19.02.13
12:45
(1) ВыборкаДетальныеЗаписи = Результат.Выбрать();
просто не писал. она есть
8 tolok_d
 
19.02.13
12:47
(2) ЭтотОбъект.Ссылка это же и есть документ ссылка. Или нет?
9 vvp91
 
19.02.13
12:47
|ВЫБРАТЬ
|    РеализацияТоваровУслуг.Ссылка
|ИЗ
|    Документ.РеализацияТоваровУслуг КАК РТУ
|ГДЕ
|    РТУ.Сделка = &Ссылка
|";
10 vvp91
 
19.02.13
12:48
|ВЫБРАТЬ
|    РТУ.Ссылка
|ИЗ
|    Документ.РеализацияТоваровУслуг КАК РТУ
|ГДЕ
|    РТУ.Сделка = &Ссылка
|";
11 tolok_d
 
19.02.13
12:48
(3) там тема умерла. Количество 1, но этот один Неопределен и написано что ошибка чтения.
12 salvator
 
19.02.13
12:49
(11) Тебе в той теме ответили уже, почему.
13 tolok_d
 
19.02.13
12:50
(4) Параметр запроса это Ссылка на документ Заказ покупателя. Зуб даю, это именно Ссылка на документ Заказ покупателя(проверял при отладке)
14 tolok_d
 
19.02.13
12:50
(12) нет. Я все сделал как Вы говорили, но ничего не работает. Сам запрос не отрабатывает
15 Рэйв
 
19.02.13
12:51
(13)Ты зубы то пожалей...А то не напасешься:-)
16 salvator
 
19.02.13
12:52
(14) Код полностью покажи.
17 tolok_d
 
19.02.13
12:55
(16) Ну я полностью показал. Я же не буду Вам весь модуль скидывать.
18 vvp91
 
19.02.13
12:56
>>> (13)Параметр запроса это Ссылка на документ Заказ покупателя.
Если параметр это ссылка на заказ покупателя, то в отборе сделка там никак не должна присутствовать.

Запрос должен быть таким:

|ВЫБРАТЬ
|    РТУ.Ссылка
|ИЗ
|    Документ.РеализацияТоваровУслуг КАК РТУ
|ГДЕ
|    РТУ.ЗаказКлиента = &Ссылка
|";

А вот если НайтиПоРеквизиту("Сделка"...) нашел что-то, если туда передали ссылку на заказ покупателя, то это мега-баг в платформе.
19 salvator
 
19.02.13
12:59
(14)+(17) Читал? v8: Мой первый запрос
20 pessok
 
19.02.13
13:00
(18) так как раз таки сделка. по крайней мере в УТ 10.3 и БП 2.0
21 GANR
 
19.02.13
13:00
(0) Иди-ка ты на http://www.sql-ex.ru/.
22 tolok_d
 
19.02.13
13:02
(19) читал. И? Вообще не пойму Вас. Обьясните. Где ссылка в Заказе покупателя на Реализацию Товаров и услуг?
23 salvator
 
19.02.13
13:05
(22) 1. ГДЕ РеализацияТоваровУслуг.Сделка.Ссылка = &Ссылка - ".Ссылка" убрать
2. Добавить "Если ВыборкаДетальныеЗаписи.Следующий() Тогда" для позиционирования на элементе выборки.

Что тут непонятного?
24 tolok_d
 
19.02.13
13:08
(23) теперь понятно. Спасибо.
Но исправил по другому. И все хорошо работает)):

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

Значит проблема не в Ссылке была. Я то ссылку сейчас уберу, я понял замечание. Просто не понятно почему тогда не работало. Всем огромное спасибо за помощь.
25 salvator
 
19.02.13
13:09
(24) И не поймешь.
26 Рэйв
 
19.02.13
13:41
(24)Так ты все это затеял только чтобы проверить проведен ли текущий документ???

О май гад!!!
*рукалицо
27 Рэйв
 
19.02.13
13:42
(24)

Если ЭтотОбъект.Ссылка.Проведен = Истина Тогда
  ЭтаФорма.ТолькоПросмотр = Истина;
КонецЕсли;


...Извращенец
28 tolok_d
 
19.02.13
14:48
(26) Затеял чтобы проверить был ли на основании заказа покупателя создана реализация товаров и услуг.
29 SherifSP
 
19.02.13
15:14
(28) Ну так выбирай заказы и проверяй на пустую ссылку документ Реализации
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой