Имя: Пароль:
1C
1С v8
Помогите с запросом
0 ВотОнЯ
 
19.03.12
15:45
Проблема такая:
Есть построитель отчета, в котором нижеследующий запрос отрабатывает.
В форме настройки выставляю порядок вывода группировок, режим вывода объектов(Элементы с иерархией)
Все выводится правильно, кроме группировки "ОбъектСтроительства". Этот выводится или только элементами(без иерархии) или никак вообще.
Где что посмотреть?
Сам запрос:


ВЫБРАТЬ
   ВЫБОР
       КОГДА ХозрасчетныйОбороты.СуммаОборот > 0
           ТОГДА ВЫРАЗИТЬ("2. Приход" КАК СТРОКА(10))
       ИНАЧЕ ВЫРАЗИТЬ("3. Расход" КАК СТРОКА(10))
   КОНЕЦ КАК ВидДвижения,
   НАЧАЛОПЕРИОДА(ХозрасчетныйОбороты.Период, МЕСЯЦ) КАК Месяц,
   ВЫБОР
       КОГДА ХозрасчетныйОбороты.Счет В ИЕРАРХИИ (&Счет50)
           ТОГДА ВЫБОР
                   КОГДА ХозрасчетныйОбороты.Субконто1 = &ПустоеСубконто
                       ТОГДА ВЫРАЗИТЬ("<Не выбран>" КАК СТРОКА(20))
                   ИНАЧЕ ХозрасчетныйОбороты.Субконто1
               КОНЕЦ
       ИНАЧЕ ВЫБОР
               КОГДА ХозрасчетныйОбороты.Субконто2 = &ПустоеСубконто
                   ТОГДА ВЫРАЗИТЬ("<Не выбран>" КАК СТРОКА(20))
               ИНАЧЕ ХозрасчетныйОбороты.Субконто2
           КОНЕЦ
   КОНЕЦ КАК СтатьяДвиженияДС,
   ВЫБОР
       КОГДА ХозрасчетныйОбороты.Субконто3 = &ПустоеСубконтоОбъектСтроительства
           ТОГДА ВЫРАЗИТЬ("<Не выбран>" КАК СТРОКА(20))
       ИНАЧЕ ХозрасчетныйОбороты.Субконто3
   КОНЕЦ КАК ОбъектСтроительства,
   ХозрасчетныйОбороты.КорСубконто1 КАК Контрагент,
   ХозрасчетныйОбороты.КорСубконто2 КАК Договор,
   ХозрасчетныйОбороты.СуммаОборот КАК СуммаОборот,
   ХозрасчетныйОбороты.Регистратор КАК Регистратор
ИЗ
   РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНач, &ДатаКон, Регистратор, Счет В (&МассивСчетов), , , , ) КАК ХозрасчетныйОбороты
ГДЕ
   ХозрасчетныйОбороты.Организация = &ВыбОранизация
   И НЕ ХозрасчетныйОбороты.КорСчет В ИЕРАРХИИ (&Счет50)
   И НЕ ХозрасчетныйОбороты.КорСчет В ИЕРАРХИИ (&Счет51)
   И НЕ ХозрасчетныйОбороты.КорСчет В ИЕРАРХИИ (&Счет71)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   ВЫРАЗИТЬ("1. Начальный остаток" КАК СТРОКА(20)),
   НАЧАЛОПЕРИОДА(ХозрасчетныйОстаткиИОбороты.Период, МЕСЯЦ),
   NULL,
   NULL,
   NULL,
   NULL,
   ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток,
   NULL
ИЗ
   РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Месяц, , Счет В (&МассивСчетов), , ) КАК ХозрасчетныйОстаткиИОбороты
ГДЕ
   ХозрасчетныйОстаткиИОбороты.Организация = &ВыбОранизация

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   ВЫРАЗИТЬ("4. Конечный остаток" КАК СТРОКА(20)),
   НАЧАЛОПЕРИОДА(ХозрасчетныйОстаткиИОбороты.Период, МЕСЯЦ),
   NULL,
   NULL,
   NULL,
   NULL,
   ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток,
   NULL
ИЗ
   РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Месяц, , Счет В (&МассивСчетов), , ) КАК ХозрасчетныйОстаткиИОбороты
ГДЕ
   ХозрасчетныйОстаткиИОбороты.Организация = &ВыбОранизация

УПОРЯДОЧИТЬ ПО
   ВидДвижения,
   Месяц,
   СтатьяДвиженияДС,
   ОбъектСтроительства,
   Контрагент,
   Договор,
   Регистратор
ИТОГИ
   СУММА(СуммаОборот)
ПО
   ВидДвижения,
   Месяц,
   ОбъектСтроительства,
   СтатьяДвиженияДС,
   Контрагент,
   Договор,
   Регистратор
1 ВотОнЯ
 
19.03.12
16:00
блин понять не могу..
В запросе вроде все норм, параметры построителя выставлены аналогично..
очему иерархический вывод не работает.. х.з.
2 ВотОнЯ
 
19.03.12
16:03
В данном случае я имею ввиду “ТипИзмерения” (один из вариантов фильтра по значениям поля: иерархия (элементы и группы), только иерархия (только группы) или элементы (только элементы)).
3 DrShad
 
19.03.12
16:03
а есть ли у Объектов строительства иерархия?
4 ВотОнЯ
 
19.03.12
16:04
естественно, чего бы я тогда мозг делал?
5 DrShad
 
19.03.12
16:06
ну я же не знаю что у тебя за конфа
6 ВотОнЯ
 
19.03.12
16:08
Справочник иерархический, ограничение на вложенность - 4 уровня
7 DrShad
 
19.03.12
16:09
у меня все равно не так
8 ВотОнЯ
 
19.03.12
16:14
что и где не так и как не так?
9 МихаилМ
 
19.03.12
16:16
это пример , как не надо писать запросы.

за такое уволить - мало.
10 DrShad
 
19.03.12
16:25
(9) комменты, в студию
11 ВотОнЯ
 
19.03.12
16:27
(9) и для остальных, прошу троллить с аргументами
12 ВотОнЯ
 
19.03.12
16:36
есть кто живой?
13 ВотОнЯ
 
19.03.12
16:43
Ау...
14 МихаилМ
 
19.03.12
16:56
да что с оргументами

если Вы не владеете зами работы с бд

вот аргументы
1)
ВидДвижения конечный остаток - ерунда. ну да пусть.
2)
при отборе бух движений указание вида субконто обязательно, тк оно входит в индекс раньше субконто.

3)
ГДЕ
   ХозрасчетныйОбороты.Организация = &ВыбОранизация
   И НЕ ХозрасчетныйОбороты.КорСчет В ИЕРАРХИИ (&Счет50)
   И НЕ ХозрасчетныйОбороты.КорСчет В ИЕРАРХИИ (&Счет51)
   И НЕ ХозрасчетныйОбороты.КорСчет В ИЕРАРХИИ (&Счет71)


нужно указвать в условии вирт таблиц.


4) происходит избыточное считывание данных

вы получаете нач остатки, потом обороты, потом кон остатки

это можно получить одним обращением к вирт таблице

ктомуже можно нарматься на блокироку чтения
5)

                ТОГДА ВЫРАЗИТЬ("<Не выбран>" КАК СТРОКА(20))
                   ИНАЧЕ ХозрасчетныйОбороты.Субконто1

попытка выборки разных типов в одном столбце
может 1с это  разнотипие  и обработает

но стиль - богомерзкий .


6) итоги ужно заменить группировкой
15 ВотОнЯ
 
19.03.12
17:05
2) В Выборке "БухРегистрОбороты" недоступно указание вида субконто
3) Допустим, но никак не влияет на текущую проблему.
4) Повторюсь, оптимизация позже, сейчас я хочу получить рабочий вариант. Прежде чем оптимизировать
5) Альтернатива то какая?
6) Это попорбуем
16 ВотОнЯ
 
19.03.12
17:50
если исправить по группировкам - вообще не получится