Имя: Пароль:
1C
1С v8
Про В ИЕРАРХИИ и массив групп
,
0 YF
 
03.09.12
17:36
В запросе

Счет В ИЕРАРХИИ (&ПараметрЗапросаМассивСчетов)

В массиве счетов лежат счета-группы. Данные при этом не выбираются.

Как заставить запрос обрабатывать вложенность внутри запроса или это невозможно?
1 Шапокляк
 
03.09.12
17:41
Вроде когда группы лежат в списке, иерархия отрабатывается. Может, что с массивом не так?
2 YF
 
03.09.12
17:43
(1) И в списке пробовал - не отрабатывает. Во всяком случае со счетами
3 YF
 
03.09.12
17:44
Условие в операторе ВЫБОР
4 Axel2009
 
03.09.12
17:45
счета группы надеюсь все же оформлены как потомок-родитель. а не кодом 10 и 10.1
5 Никола_
Питерский
 
03.09.12
17:47
У меня данные выбираются.
6 mikecool
 
03.09.12
17:48
а не было ли как то темы про то, что сабж по группе счетов - пипец как тормознутый?
7 YF
 
03.09.12
17:50
(5) Кинь посмотреть кусочек запроса с условием
8 YF
 
03.09.12
18:03
ау
9 Никола_
Питерский
 
03.09.12
18:04
5 сек, не кричи )))
10 Никола_
Питерский
 
03.09.12
18:14

ВЫБРАТЬ
   "Выручка" КАК ВЗ,
   ХозрасчетныйДвиженияССубконто.Период КАК Дата,
   ХозрасчетныйДвиженияССубконто.Регистратор КАК Док,
   ВЫБОР
       КОГДА ХозрасчетныйДвиженияССубконто.СчетДт В ИЕРАРХИИ (&СчетДТ62)
               И ХозрасчетныйДвиженияССубконто.СчетКт В ИЕРАРХИИ (&СчетКТ90)
           ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт3
       КОГДА ХозрасчетныйДвиженияССубконто.СчетДт В ИЕРАРХИИ (&СчетДТ90)
               И ХозрасчетныйДвиженияССубконто.СчетКт В ИЕРАРХИИ (&СчетКТ682)
           ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт3
   КОНЕЦ КАК Товар,
   ХозрасчетныйДвиженияССубконто.СчетДт,
   ХозрасчетныйДвиженияССубконто.СубконтоДт1,
   ХозрасчетныйДвиженияССубконто.СубконтоДт2,
   ХозрасчетныйДвиженияССубконто.СубконтоДт3,
   ХозрасчетныйДвиженияССубконто.СубконтоДт4,
   ХозрасчетныйДвиженияССубконто.СчетКт,
   ХозрасчетныйДвиженияССубконто.СубконтоКт1,
   ХозрасчетныйДвиженияССубконто.СубконтоКт2,
   ХозрасчетныйДвиженияССубконто.СубконтоКт3,
   ХозрасчетныйДвиженияССубконто.СубконтоКт4,
   ВЫБОР
       КОГДА ХозрасчетныйДвиженияССубконто.СчетДт В ИЕРАРХИИ (&СчетДТ62)
               И ХозрасчетныйДвиженияССубконто.СчетКт В ИЕРАРХИИ (&СчетКТ90)
           ТОГДА ХозрасчетныйДвиженияССубконто.Сумма
       КОГДА ХозрасчетныйДвиженияССубконто.СчетДт В ИЕРАРХИИ (&СчетДТ90)
               И ХозрасчетныйДвиженияССубконто.СчетКт В ИЕРАРХИИ (&СчетКТ682)
           ТОГДА -ХозрасчетныйДвиженияССубконто.Сумма
   КОНЕЦ КАК Сумма
ИЗ
   РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
           &Дата1,
           &Дата2,
           (СчетДт В ИЕРАРХИИ (&СчетДТ62)
                   И СчетКт В ИЕРАРХИИ (&СчетКТ90)
               ИЛИ СчетДт В ИЕРАРХИИ (&СчетДТ90)
                   И СчетКт В ИЕРАРХИИ (&СчетКТ682))
               И Организация = &Организация,
           ,
           ) КАК ХозрасчетныйДвиженияССубконто

11 Никола_
Питерский
 
03.09.12
18:14
Причем вложенность счетов дай боже !
12 Stanislav_
Orlov
 
03.09.12
18:25
(0) /dev/hands ?
13 YF
 
04.09.12
10:06
Каккой из параметров для условий по счетам представляет собой массив групп счетов?
14 salvator
 
04.09.12
10:19
Дай-ка запрос целиком
15 Reset
 
04.09.12
10:19
(13) Попробовал, вот такой запрос вполне работает

Запрос=Новый Запрос("ВЫБРАТЬ
|    ХозрасчетныйОстатки.Счет,
|    ХозрасчетныйОстатки.Субконто1,
|    ХозрасчетныйОстатки.Субконто2,
|    ХозрасчетныйОстатки.Субконто3
|ИЗ
|    РегистрБухгалтерии.Хозрасчетный.Остатки(, Счет В ИЕРАРХИИ (&Массив), , ) КАК ХозрасчетныйОстатки");
Массив=Новый Массив;
Массив.добавить(ПланыСчетов.Хозрасчетный.ОсновныеСредства);
Массив.добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("69"));
Запрос.УстановитьПараметр("Массив",Массив);
ОткрытьЗначение(Запрос.Выполнить().Выгрузить());
16 YF
 
04.09.12
10:20
(15) У меня условие в ВЫБОР
17 YF
 
04.09.12
10:22
(14) Да пожалуйста

запрос_                    = Новый Запрос("ВЫБРАТЬ РАЗЛИЧНЫЕ
   |    зТаблицаБухОборотов.Субконто2.усэГруппаПотребителей КАК зГруппаПотребителей,
   |    зТаблицаБухОборотов.Субконто1 КАК зКонтрагент,
   |    зТаблицаБухОборотов.Субконто2 КАК зДоговор,
   |    зТаблицаБухОборотов.Субконто3 КАК зДокументРасчетов,
   |    ВЫБОР
   |        КОГДА зТаблицаБухОборотов.КорСчет В ИЕРАРХИИ (&ПараметрЗапросаМассивСчетов50_51)
   |            ТОГДА зТаблицаБухОборотов.СуммаОборотКт
   |        ИНАЧЕ 0
   |    КОНЕЦ КАК зПоступилоДС,
   |    ВЫБОР
   |        КОГДА зТаблицаБухОборотов.КорСчет В ИЕРАРХИИ (&ПараметрЗапросаМассивСчетовНачислений)
   |            ТОГДА зТаблицаБухОборотов.СуммаОборотДт
   |        ИНАЧЕ 0
   |    КОНЕЦ КАК зНачислено,
   |    ВЫБОР
   |        КОГДА зТаблицаБухОборотов.Счет = &ПараметрЗапросаСчет62_1
   |                И зТаблицаБухОборотов.КорСчет = &ПараметрЗапросаСчет62_2
   |            ТОГДА зТаблицаБухОборотов.СуммаОборотКт
   |        ИНАЧЕ 0
   |    КОНЕЦ КАК зЗачтеноАвансов,
   |    ВЫБОР
   |        КОГДА зТаблицаБухОборотов.Субконто3.Дата МЕЖДУ &ПараметрЗапросаНачалоПериода И &ПараметрЗапросаОкончаниеПериода
   |                И зТаблицаБухОборотов.Счет = &ПараметрЗапросаСчет62_1
   |            ТОГДА зТаблицаБухОборотов.СуммаОборотКт
   |        ИНАЧЕ 0
   |    КОНЕЦ КАК зРеализацияТекущая,
   |    ВЫБОР
   |        КОГДА зТаблицаБухОборотов.КорСчет В ИЕРАРХИИ (&ПараметрЗапросаМассивСчетов50_51)
   |                И зТаблицаБухОборотов.Счет = &ПараметрЗапросаСчет62_2
   |            ТОГДА зТаблицаБухОборотов.КоличествоОборотКт
   |        ИНАЧЕ 0
   |    КОНЕЦ КАК зПоступилоАвансов,
   |    ВЫБОР
   |        КОГДА зТаблицаБухОборотов.Счет = &ПараметрЗапросаСчет62_1
   |                И зТаблицаБухОборотов.КорСчет = &ПараметрЗапросаСчет62_2
   |                И (зТаблицаБухОборотов.КорСубконто3.Дата МЕЖДУ &ПараметрЗапросаНачалоПериода И &ПараметрЗапросаОкончаниеПериода)
   |            ТОГДА зТаблицаБухОборотов.СуммаОборотКт
   |        ИНАЧЕ 0
   |    КОНЕЦ КАК зЗачтеноТекущихАвансов,
   |    ВЫБОР
   |        КОГДА зТаблицаБухОборотов.Счет = &ПараметрЗапросаСчет62_1
   |                И зТаблицаБухОборотов.Субконто3.Дата < &ПараметрЗапросаНачалоПериода
   |            ТОГДА зТаблицаБухОборотов.СуммаОборотКт
   |        ИНАЧЕ 0
   |    КОНЕЦ КАК зРеализацияВСчетДЗ
   |ИЗ
   |    РегистрБухгалтерии.Хозрасчетный.Обороты(
   |            &ПараметрЗапросаНачалоПериода,
   |            &ПараметрЗапросаОкончаниеПериода,
   |            ,
   |            Счет В (&ПараметрЗапросаМассивСчетов),
   |            ,
   |            ВЫБОР
   |                    КОГДА &ПараметрЗапросаОрганизация = НЕОПРЕДЕЛЕНО
   |                        ТОГДА ИСТИНА
   |                    ИНАЧЕ Организация = &ПараметрЗапросаОрганизация
   |                КОНЕЦ
   |                И ВЫБОР
   |                    КОГДА &ПараметрЗапросаВидУслуги = НЕОПРЕДЕЛЕНО
   |                        ТОГДА ИСТИНА
   |                    ИНАЧЕ Субконто2.ВидВзаиморасчетов В ИЕРАРХИИ (&ПараметрЗапросаВидУслуги)
   |                КОНЕЦ
   |                И ВЫБОР
   |                    КОГДА &ПараметрЗапросаГруппаПотребителей = НЕОПРЕДЕЛЕНО
   |                        ТОГДА ИСТИНА
   |                    ИНАЧЕ Субконто2.усэГруппаПотребителей В ИЕРАРХИИ (&ПараметрЗапросаГруппаПотребителей)
   |                КОНЕЦ
   |                И ВЫБОР
   |                    КОГДА &ПараметрЗапросаЕстьОтборПоКонтрагентам
   |                        ТОГДА Субконто1 В ИЕРАРХИИ (&ПараметрЗапросаКонтрагенты)
   |                    ИНАЧЕ ИСТИНА
   |                КОНЕЦ,
   |            ,
   |            ) КАК зТаблицаБухОборотов");
18 Reset
 
04.09.12
10:25
(16)
Запрос=Новый Запрос("ВЫБРАТЬ
|    ХозрасчетныйОстатки.Счет,
|    ХозрасчетныйОстатки.Субконто1,
|    ХозрасчетныйОстатки.Субконто2,
|    ХозрасчетныйОстатки.Субконто3,
|    ВЫБОР
|        КОГДА ХозрасчетныйОстатки.Счет В ИЕРАРХИИ (&Массив1)
|            ТОГДА ""1""
|        КОГДА ХозрасчетныйОстатки.Счет В ИЕРАРХИИ (&Массив2)
|            ТОГДА ""2""
|        ИНАЧЕ ""0""
|    КОНЕЦ КАК Поле1
|ИЗ
|    РегистрБухгалтерии.Хозрасчетный.Остатки(, Счет В ИЕРАРХИИ (&Массив), , ) КАК ХозрасчетныйОстатки");
Массив=Новый Массив;
Массив.добавить(ПланыСчетов.Хозрасчетный.ОсновныеСредства);
Массив.добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("69"));
Массив1=Новый Массив;
Массив1.добавить(ПланыСчетов.Хозрасчетный.ОсновныеСредства);
Массив2=Новый Массив;
Массив2.добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("69"));

Запрос.УстановитьПараметр("Массив",Массив);
Запрос.УстановитьПараметр("Массив1",Массив1);
Запрос.УстановитьПараметр("Массив2",Массив2);
ОткрытьЗначение(Запрос.Выполнить().Выгрузить());
19 Reset
 
04.09.12
10:26
(16) Все работает
20 Никола_
Питерский
 
04.09.12
10:28
(17) Так у тебя в параметрах ВТ условие на счет не в иерархии ? может в этом засада ?
21 Reset
 
04.09.12
10:29
(20) Наверняка. А нам дурит голову
22 YF
 
04.09.12
10:30
(19) Фантастика и у меня седня все работает, нужно было по-орать просто :-)
23 Reset
 
04.09.12
10:33
(22) Нужно было вчера сделать перерыв