Имя: Пароль:
1C
1С v8
Что не так с запросом
0 goleaff2006
 
08.04.13
12:28
Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
   |    Номенклатура.Ссылка
   |ИЗ
   |    Справочник.Номенклатура КАК Номенклатура
   |ГДЕ
   |    Номенклатура.Ссылка В ИЕРАРХИИ(&Ссылка)
   |    И Номенклатура.ЭтоГруппа";
   Запрос.УстановитьПараметр("Ссылка",СписокЗначенийНоменклатуры );
Ругается не верные параметры.
1 palpetrovich
 
08.04.13
12:29
СписокЗначенийНоменклатуры - тип какой?
2 goleaff2006
 
08.04.13
12:30
СписокЗначений
3 mzelensky
 
08.04.13
12:30
не так надо
типа такого должно быть

"СписокЗначенийНоменклатуры.выгрузитьЗначения()"
4 mikecool
 
08.04.13
12:31
эх, и тут маленький Давид победил...
(2) точно список?
5 Шапокляк
 
08.04.13
12:31
|    Номенклатура.Ссылка В ИЕРАРХИИ(&Ссылка)
   |    И Номенклатура.ЭтоГруппа= ИСТИНА";
а если так?
6 goleaff2006
 
08.04.13
12:32
Точнее некуда
7 kosts
 
08.04.13
12:33
(6) В некоторых своих запросах наблюдал странную картину. Со списком значений глючило, заменил на массив, то нормально заработало...
8 mzelensky
 
08.04.13
12:34
(6) ты (3) попробовал?!
9 palpetrovich
 
08.04.13
12:34
(6) тогда все так :)
(7) тоже встречался
10 mikecool
 
08.04.13
12:35
(7) прикольно, всегда пользовался списками - пока не сталкивался )
11 goleaff2006
 
08.04.13
12:35
(5) он ругается на параметр Номенклатура.Ссылка <<?>>В ИЕРАРХИИ(&Ссылка)
12 goleaff2006
 
08.04.13
12:36
Даже в консоли запросов нельзя задать список значений номенклатуры.
13 ssh2006
 
08.04.13
12:37
(12) можно
14 kosts
 
08.04.13
12:37
(10) Тоже был сильно удивлен...
15 Шапокляк
 
08.04.13
12:38
(12) Посмотри (5)
16 palpetrovich
 
08.04.13
12:38
(12) фигня, сейчас проверил (0) в консоли - все работает
17 palpetrovich
 
08.04.13
12:38
(15) не прикалывайся :)
18 1Сергей
 
08.04.13
12:39
вместо

|    Номенклатура.Ссылка В ИЕРАРХИИ(&Ссылка)

надо

|    Номенклатура.Ссылка В (&Ссылка)
19 goleaff2006
 
08.04.13
12:40
надо именно В ИЕРАРХИИ
20 palpetrovich
 
08.04.13
12:43
посмотри в отладчике "СписокЗначенийНоменклатуры" на строке:
Запрос.УстановитьПараметр("Ссылка",СписокЗначенийНоменклатуры );
21 palpetrovich
 
08.04.13
12:43
+20 небось ща выяснится, что там СписокЗначенийНаименованийНоменклатуры ;)
22 1Сергей
 
08.04.13
12:45
(19) в списке есть группы?
23 goleaff2006
 
08.04.13
12:46
Смотрю Свойство СписокЗначенийНоменклатуры Значение Сахар;Соль
тип список значений
24 goleaff2006
 
08.04.13
12:46
(1)Да в этом списке только группы
25 goleaff2006
 
08.04.13
12:47
(22)Да в этом списке только группы
26 palpetrovich
 
08.04.13
12:47
(23)  список значений - это СписокЗначенийНоменклатуры, а типы "Сахар;Соль" ?
27 1Сергей
 
08.04.13
12:48
ТипЗнч(СписокЗначенийНоменклатуры[0].Значение) = ?
28 goleaff2006
 
08.04.13
12:49
(27) элементсписказначений
29 1Сергей
 
08.04.13
12:50
(28) о_О
30 1Сергей
 
08.04.13
12:50
а должен быть СправочникСсылка
31 1Сергей
 
08.04.13
12:51
В общем, дело как всегда не в бобине. Показывай как заполняется Список Значений
32 goleaff2006
 
08.04.13
12:51
СписокНоменклатуры=Новый СписокЗначений;
   СписокСтруктурныхЕдиниц=  Новый СписокЗначений;
   ОтборСтруктураЕдиниц=Новый СписокЗначений;
   ОтборНоменклатура=Новый СписокЗначений;
   
   //получить отбор
   Для каждого стр  Из Отчет.КомпоновщикНастроек.Настройки.Отбор.Элементы  Цикл
       
       Если стр.использование Тогда
           
           Если ТипЗнч(стр) = Тип("ЭлементОтбораКомпоновкиДанных") и    ((стр.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке или стр.видСравнения = ВИдСравненияКомпоновкиДанных.ВСпискеПоИерархии или
               стр.видСравнения = ВидсравненияКомпоновкиДанных.НеВСписке или стр.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСпискеПоИерархии) или
               (стр.ВидСравнения = СокрЛП(СтрокА(ВидСравненияКомпоновкиДанных.ВСписке)) или стр.видСравнения = СокрЛП(Строка(ВИдСравненияКомпоновкиДанных.ВСпискеПоИерархии)) или
               стр.видСравнения = СокрЛП(Строка(ВидсравненияКомпоновкиДанных.НеВСписке))
               или стр.ВидСравнения = СокрЛП(Строка(ВидСравненияКомпоновкиДанных.НеВСпискеПоИерархии))))  
               тогда
               
               Если стр.левоеЗначение=Новый ПолеКомпоновкиДанных("Номенклатура") Тогда
                   
                   Для каждого стр_ Из стр.правоезначение Цикл
                       СписокНоменклатуры.Добавить(стр_);
                   КонецЦикла;
               ИначеЕсли стр.левоеЗначение=Новый ПолеКомпоновкиДанных("СтруктурныеЕдиницы") тогда
                   
                   Для каждого стр_ Из стр.правоезначение Цикл
                       СписокСтруктурныхЕдиниц.Добавить(стр_);
                   КонецЦикла;
                   
               КонецЕсли;
           Иначе
               
               Если стр.левоеЗначение=Новый ПолеКомпоновкиДанных("Номенклатура") Тогда
                   СписокНоменклатуры.Добавить(стр.правоезначение);
               ИначеЕсли стр.левоеЗначение=Новый ПолеКомпоновкиДанных("СтруктурныеЕдиницы") тогда
                   СписокСтруктурныхЕдиниц.Добавить(стр.правоезначение);
               КонецЕсли;
               
           Конецесли;
           
       КонецЕсли;
   КонецЦикла;
33 goleaff2006
 
08.04.13
12:52
пояснить нужно? =)
34 1Сергей
 
08.04.13
12:53
СписокНоменклатуры.Добавить(стр_.Значение);
35 goleaff2006
 
08.04.13
12:58
вСЕ ЗАРАБОТАЛО
36 goleaff2006
 
08.04.13
12:58
работало спасиб всем.
37 palpetrovich
 
08.04.13
13:00
(36) дык :)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший