Имя: Пароль:
1C
1С v8
не понял поведение Универсального Отчета
0 famnam
 
28.09.15
10:49
Всем привет. Почему построитель отчета в универсальном отчете за меня решает какой запрос выполнять?
Исходный запрос:

ВЫБРАТЬ
    ВложенныйЗапрос.Регистратор КАК Регистратор,
    ВложенныйЗапрос.Номенклатура КАК Номенклатура,
    ВложенныйЗапрос.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    СУММА(взЗакупки.СтоимостьЗакупки_ПТУ / взЗакупки.КоличествоОборот) КАК СтоимостьЗакупки_ПТУ,
    СУММА(взЗакупки.НДСЗакупки / взЗакупки.КоличествоОборот) КАК НДСЗакупки,
    СУММА(взЗакупки.СтоимостьЗакупки_ДопРасходы / взЗакупки.КоличествоОборот) КАК СтоимостьЗакупки_ДопРасходы
ПОМЕСТИТЬ втЗакупки
....
СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Регистратор,
    ВложенныйЗапрос.ХарактеристикаНоменклатуры,
    ВложенныйЗапрос.Номенклатура
;


Запрос, который формирует построитель (Построитель.ПолучитьЗапрос()):

ВЫБРАТЬ

    ВложенныйЗапрос.Номенклатура КАК Номенклатура,

    СУММА(взЗакупки.СтоимостьЗакупки_ПТУ / взЗакупки.КоличествоОборот) КАК СтоимостьЗакупки_ПТУ,
    СУММА(взЗакупки.НДСЗакупки / взЗакупки.КоличествоОборот) КАК НДСЗакупки,
    СУММА(взЗакупки.СтоимостьЗакупки_ДопРасходы / взЗакупки.КоличествоОборот) КАК СтоимостьЗакупки_ДопРасходы
ПОМЕСТИТЬ втЗакупки
...
СГРУППИРОВАТЬ ПО


    ВложенныйЗапрос.Номенклатура

Т.е. теряется группировка по регистратору. Как так?
1 famnam
 
28.09.15
10:52
я понимаю, когда построитель меняет запрос, добавляя какие-либо отборы, но тут меняется группировка! Ведь далее идет запрос, в котором идет левое соединение с этой таблицей по регистратору и номенклатуре, а построитель это соединение удаляет, оставляя только по номенклатуре. На выходе - полная ерунда в отчете.
2 НЕА123
 
28.09.15
10:54
нету регистратора.
3 famnam
 
28.09.15
10:59
(2) регистратор участвует в соединение в след.выборке
4 НЕА123
 
28.09.15
10:59
(1) сторно.
не проснулся.
5 НЕА123
 
28.09.15
10:59
* это я про (2)
6 famnam
 
28.09.15
11:05
(1) т.е.
вместо
ЛЕВОЕ СОЕДИНЕНИЕ втЗакупки КАК втЗакупки
        ПО ВложенныйЗапрос.Регистратор = втЗакупки.Регистратор
            И ВложенныйЗапрос.Номенклатура = втЗакупки.Номенклатура
            И ВложенныйЗапрос.ХарактеристикаНоменклатуры = втЗакупки.ХарактеристикаНоменклатуры

становится

        ЛЕВОЕ СОЕДИНЕНИЕ втЗакупки КАК втЗакупки
        ПО ВложенныйЗапрос.Номенклатура = втЗакупки.Номенклатура
7 НЕА123
 
28.09.15
11:12
(0)
непонятно, кто меняет. построительотчета или универсалный отчет.
первый запрос = Построитель.Текст?
8 famnam
 
28.09.15
11:14
(7). Типовой отчет УТ10, сделанный через УниверсальныйОтчет, который в свою очередь получает результат через ПостроительОтчета.

Первый запрос = Построитель.Текст
Второй запрос = Построитель.ПолучитьЗапрос().Текст
9 famnam
 
28.09.15
12:39
в общем, победить не удалось. Пришлось в отчет вывести регистратор, тогда построитель перестал удалять его.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой