Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Не отрабатывает запрос !!! (http://forums.kuban.ru/f1040/ne_otrabatyvaet_zapros-5366677.html)

роо 07.02.2014 16:43

Не отрабатывает запрос !!!
 
БП 3.0.26.9

Есть запрос, кот. выбирает доки Реализация товаров, услуг, содержащих в табл. части "Агентские услуги" номенклатуру из массива МассивНоменклатуры. Результат- пустой запрос.
Запрос = Новый Запрос ;
Запрос.УстановитьПараметр("ДатаНачало",НачалоДня(Объект.ДатаНачала));
Запрос.УстановитьПараметр("ДатаКонец",КонецДня(Объект.ДатаКонца));
Запрос.УстановитьПараметр("Организация",Объект.Организация);
Запрос.УстановитьПараметр("МассивНоменклатуры",МассивНоменклатуры);

ТекстЗапроса = "
|ВЫБРАТЬ

| ДокументУслуги.Ссылка.Организация ,
| ДокументУслуги.Ссылка.Номер ,
| ДокументУслуги.Ссылка КАК Док,
| ДокументУслуги.Ссылка.Дата ,
| ДокументУслуги.Ссылка.Контрагент КАК Контрагент,
| ДокументУслуги.Ссылка.ДоговорКонтрагента КАК ДоговорКонтрагента,
| ДокументУслуги.Ссылка.СуммаВключаетНДС,
| ДокументУслуги.Номенклатура КАК Номенклатура,
| ДокументУслуги.Сумма КАК Сумма,
| ДокументУслуги.СуммаНДС КАК СуммаНДС
|ИЗ
| Документ.РеализацияТоваровУслуг.АгентскиеУслуги Как ДокументУслуги
|
|ГДЕ (ДокументУслуги.Ссылка.Дата >=&ДатаНачало И ДокументУслуги.Ссылка.Дата <=&ДатаКонец)

|(ДокументУслуги.Ссылка.Организация = &Организация)

|(ДокументУслуги.Номенклатура В (&МассивНоменклатуры))
|ИТОГИ
|СУММА(Сумма),
|СУММА(СуммаНДС)
|ПО
|Док

|";

При этом запрос отрабатывает, если
|(ДокументУслуги.Номенклатура В (&МассивНоменклатуры))
заменить на
|(ДокументУслуги.Номенклатура =&Номенклатура ),
т.е. если выборка по одному элементу, а не из массива или списка(список тоже пробовал).

Umga2002 07.02.2014 16:53

Сказки.....

роо 07.02.2014 17:01

вот именно...Невероятное, но ....очевидное....(((9

Uho 07.02.2014 17:07

не верю

roma n 07.02.2014 17:26

дай угадаю...
МассивНоменклатуры есть как реквизит объекта/формы

роо 07.02.2014 17:39

(4)не угадал.... происхождение МассивНоменклатуры следующее:

Объект.Услуги.Сортировать("Номенклатура");
ТЗ = Объект.Услуги.Выгрузить(,"Номенклатура");МассивНоменклатуры = ТЗ.ВыгрузитьКолонку("Номенклатура");
т.е. это массив.

Услуги - это табличная часть объекта.Тип - СправочникСсылка.Номенклатура

роо 07.02.2014 17:52

и содержание этого массива - правильное ... я проверял

Write 08.02.2014 12:46

(5) а в форме какого Объекта выполняете запрос?

nordbox 08.02.2014 13:51

(7)я не автор темы, но у меня была подобная ситуация как и в (0), не помню как я это решал, но решил. Тогда я делал какую то внешнюю обработку.
По подробнее можно на тему "в форме какого Объекта выполняете запрос? "

Write 08.02.2014 17:58

По подробнее можно на тему "в форме какого Объекта выполняете запрос? " - В форме какого документа или справочника.
+(5)|(ДокументУслуги.Номенклатура =&Номенклатура ) - каким образом присваивали значение параметра Номенклатура?

real 08.02.2014 18:14

ГДЕ (ДокументУслуги.Ссылка.Дата >=&ДатаНачало И ДокументУслуги.Ссылка.Дата <=&ДатаКонец)

<= с одной стороны убрать =

nordbox 08.02.2014 18:32

(9) примерно как и в (0) только у меня это был список значений

роо 10.02.2014 12:25

(7) Объект - внешний отчет
(9) параметр Номенклатура - реквизит объекта
(10) не совсем понял, с какой стороны, что и для чего убрать ?
(11) через список пробовал ранее тоже (не только с массивом)... результат - тот же...(((

EarlyBird 10.02.2014 13:39

ну значит, у тебя массив пустой

Jimbo 10.02.2014 13:43

консоль запросов в помощь!
без итогов попробуй

сумма(ДокументУслуги.Сумма) как суммаДока
группировка док, номенклатура

роо 10.02.2014 13:50

(13) смотри (6)

roma n 10.02.2014 14:03

(4)
Из предложенного кода нельзя сделать вывод, что МассивНоменклатуры - действительно массив.
ТЗ.ВыгрузитьКолонку("Номенклатура") - массив. А вот то, что в МассивНоменклатуры тоже будет массив - не факт.
Чтоб исключить попробуй без промежуточной переменной ... УстановитьПараметр("МассивНоменклатуры",Объект.Услуги.Выгрузить(,"Номенклатура").ВыгрузитьКолонку("Номенклатура"))
+ Сообщить(Количество(Объект.Услуги.Выгрузить(,"Номенклатура").ВыгрузитьКолонку("Номенклатура")))

EarlyBird 10.02.2014 14:04

[quote=роо;34047158] и содержание этого массива - правильное ... я проверял [/quote]
что в этом массиве?
элементы, или группы, или вперемешку?

EarlyBird 10.02.2014 14:07

а вообще, запрос вполне работающий, при условии правильно заполненного массива и Организации
так что, либо автор врёт, либо он не в состоянии проверить чего пихает в запрос

роо 10.02.2014 14:31

(17)
Объект.Услуги.Сортировать("Номенклатура");
ТЗ = Объект.Услуги.Выгрузить(,"Номенклатура");
МассивНоменклатуры = ТЗ.ВыгрузитьКолонку("Номенклатура");
т.е. это массив.

Услуги - это табличная часть объекта.Тип - СправочникСсылка.Номенклатура

Тип элементов массива - СправочникСсылка.Номенклатура

roma n 10.02.2014 14:43

19-роо > ещё раз: из твоих вводных следует что ТЗ.ВыгрузитьКолонку("Номенклатура") - массив, но из них не следует что МассивНоменклатуры тоже массив. Проверь. Каким угодно способом. ТипЗНЧ, в конце концов. Или табло.

роо 10.02.2014 14:49

(20)
1.из Синт-помощника:

Создает массив и копирует в него значения, содержащиеся в колонке таблицы значений.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Пример:

ТаблицаЗначений.Свернуть("Номенклатура");
Запрос.УстановитьПараметр("МассивНоменклатуры", ТаблицаЗначений.ВыгрузитьКолонку("Номенклатура"));

2.Кроме того уже проверял через ТипЗнч - Массив

EarlyBird 10.02.2014 14:55

вставь в свою нетленку перед выполнением запроса следующий цикл:

[b]Для Каждого ЭлементМассива Из МассивНоменклатуры Цикл
Сообщить(СокрЛП(ЭлементМассива))
КонецЦикла;[/b]

И скопипасти сюда результат выполнения цикла

роо 10.02.2014 15:16

(2)
Аренда Места
Аренда недвижимого имущества
Аренда рекламного места
Водоотведение - эксплуатационные услуги

EarlyBird 10.02.2014 15:22

ну давай базу, посмотрим на такое чудо

EarlyBird 10.02.2014 17:37

ну где этот маленький врунишка?

Dark_Shadow 10.02.2014 19:21

А если
ДокументУслуги.Номенклатура
заменить на
ДокументУслуги.Номенклатура.Ссылка ?

EarlyBird 11.02.2014 12:47

ну что, с концами пропал этот лгунишка?


Текущее время: 06:59. Часовой пояс GMT +3.