Имя: Пароль:
1C
 
Запрос в обработке и запрос в консоли отчетов выдают разные результаты
0 YFedor
 
24.05.16
12:34
Имеется БП 2.0 (2.0.65.21)

Выполняю запрос в консоли отчетов - получаю в результате 23 строки и сумму 10 284,38

Выполняю запрос в обработке получаю в результате 65 строк и сумму 18 665,57

Как такое возможно?



Запросы:


№ 1 Консоль отчетов

ВЫБРАТЬ
    ХозрасчетныйОстатки.Субконто1,
    ХозрасчетныйОстатки.Субконто2,
    ХозрасчетныйОстатки.Субконто3,
    СУММА(ХозрасчетныйОстатки.СуммаОстатокДт) КАК СуммаОстатокДт,
    СУММА(ХозрасчетныйОстатки.КоличествоОстатокДт) КАК КоличествоОстатокДт,
    ХозрасчетныйОстатки.Валюта
ПОМЕСТИТЬ втСпецодеждаБаланс
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(, Счет В ИЕРАРХИИ (&ПараметрЗапросаСчет10111), , Организация = &ПараметрЗапросаОрганизация) КАК ХозрасчетныйОстатки

СГРУППИРОВАТЬ ПО
    ХозрасчетныйОстатки.Субконто1,
    ХозрасчетныйОстатки.Субконто2,
    ХозрасчетныйОстатки.Субконто3,
    ХозрасчетныйОстатки.Валюта
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ХозрасчетныйОстатки.Субконто1,
    ХозрасчетныйОстатки.Субконто2,
    ХозрасчетныйОстатки.Субконто3,
    СУММА(ХозрасчетныйОстатки.СуммаОстатокДт) КАК СуммаОстатокДт,
    СУММА(ХозрасчетныйОстатки.КоличествоОстатокДт) КАК КоличествоОстатокДт,
    ХозрасчетныйОстатки.Валюта
ПОМЕСТИТЬ втСпецодеждаЗаБаланс
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(, Счет В ИЕРАРХИИ (&ПараметрЗапросаСчетМЦ02), , Организация = &ПараметрЗапросаОрганизация) КАК ХозрасчетныйОстатки

СГРУППИРОВАТЬ ПО
    ХозрасчетныйОстатки.Субконто1,
    ХозрасчетныйОстатки.Субконто2,
    ХозрасчетныйОстатки.Субконто3,
    ХозрасчетныйОстатки.Валюта
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    втСпецодеждаБаланс.Субконто1,
    втСпецодеждаБаланс.Субконто2,
    втСпецодеждаБаланс.Субконто3,
    СУММА(втСпецодеждаБаланс.СуммаОстатокДт) КАК СуммаОстатокДт,
    СУММА(втСпецодеждаБаланс.КоличествоОстатокДт) КАК КоличествоОстатокДт,
    втСпецодеждаБаланс.Валюта
ИЗ
    втСпецодеждаБаланс КАК втСпецодеждаБаланс
        ЛЕВОЕ СОЕДИНЕНИЕ втСпецодеждаЗаБаланс КАК втСпецодеждаЗаБаланс
        ПО втСпецодеждаБаланс.Субконто1 = втСпецодеждаЗаБаланс.Субконто1
            И втСпецодеждаБаланс.Субконто2 = втСпецодеждаЗаБаланс.Субконто2
            И втСпецодеждаБаланс.Субконто3 = втСпецодеждаЗаБаланс.Субконто3
ГДЕ
    втСпецодеждаЗаБаланс.Субконто1 ЕСТЬ NULL
    И втСпецодеждаЗаБаланс.Субконто2 ЕСТЬ NULL
    И втСпецодеждаЗаБаланс.Субконто3 ЕСТЬ NULL

СГРУППИРОВАТЬ ПО
    втСпецодеждаБаланс.Субконто1,
    втСпецодеждаБаланс.Субконто2,
    втСпецодеждаБаланс.Субконто3,
    втСпецодеждаБаланс.Валюта


№ 2 Обработка

ВЫБРАТЬ
    ХозрасчетныйОстатки.Субконто1,
    ХозрасчетныйОстатки.Субконто2,
    ХозрасчетныйОстатки.Субконто3,
    СУММА(ХозрасчетныйОстатки.СуммаОстатокДт) КАК СуммаРазвернутыйОстатокДт,
    СУММА(ХозрасчетныйОстатки.КоличествоОстатокДт) КАК КоличествоОстатокДт,
    ХозрасчетныйОстатки.Валюта
ПОМЕСТИТЬ втСпецодеждаБаланс
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&ГраницаСреза, Счет В ИЕРАРХИИ (&ПараметрЗапросаСчет10111), , Организация = &ПараметрЗапросаОрганизация) КАК ХозрасчетныйОстатки

СГРУППИРОВАТЬ ПО
    ХозрасчетныйОстатки.Субконто1,
    ХозрасчетныйОстатки.Субконто2,
    ХозрасчетныйОстатки.Субконто3,
    ХозрасчетныйОстатки.Валюта
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ХозрасчетныйОстатки.Субконто1,
    ХозрасчетныйОстатки.Субконто2,
    ХозрасчетныйОстатки.Субконто3,
    СУММА(ХозрасчетныйОстатки.СуммаОстатокДт) КАК СуммаРазвернутыйОстатокДт,
    СУММА(ХозрасчетныйОстатки.КоличествоОстатокДт) КАК КоличествоОстатокДт,
    ХозрасчетныйОстатки.Валюта
ПОМЕСТИТЬ втСпецодеждаЗаБаланс
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&ГраницаСреза, Счет В ИЕРАРХИИ (&ПараметрЗапросаСчетМЦ02), , Организация = &ПараметрЗапросаОрганизация) КАК ХозрасчетныйОстатки

СГРУППИРОВАТЬ ПО
    ХозрасчетныйОстатки.Субконто1,
    ХозрасчетныйОстатки.Субконто2,
    ХозрасчетныйОстатки.Субконто3,
    ХозрасчетныйОстатки.Валюта
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    втСпецодеждаБаланс.Субконто1 КАК Субконто1,
    втСпецодеждаБаланс.Субконто2 КАК Субконто2,
    втСпецодеждаБаланс.Субконто3 КАК Субконто3,
    СУММА(втСпецодеждаБаланс.СуммаРазвернутыйОстатокДт) КАК СуммаРазвернутыйОстатокДт,
    СУММА(втСпецодеждаБаланс.КоличествоОстатокДт) КАК КоличествоОстатокДт,
    втСпецодеждаБаланс.Валюта
ИЗ
    втСпецодеждаБаланс КАК втСпецодеждаБаланс
        ЛЕВОЕ СОЕДИНЕНИЕ втСпецодеждаЗаБаланс КАК втСпецодеждаЗаБаланс
        ПО втСпецодеждаБаланс.Субконто1 = втСпецодеждаЗаБаланс.Субконто1
            И втСпецодеждаБаланс.Субконто2 = втСпецодеждаЗаБаланс.Субконто2
            И втСпецодеждаБаланс.Субконто3 = втСпецодеждаЗаБаланс.Субконто3
ГДЕ
    втСпецодеждаЗаБаланс.Субконто1 ЕСТЬ NULL
    И втСпецодеждаЗаБаланс.Субконто2 ЕСТЬ NULL
    И втСпецодеждаЗаБаланс.Субконто3 ЕСТЬ NULL

СГРУППИРОВАТЬ ПО
    втСпецодеждаБаланс.Субконто1,
    втСпецодеждаБаланс.Субконто2,
    втСпецодеждаБаланс.Субконто3,
    втСпецодеждаБаланс.Валюта

УПОРЯДОЧИТЬ ПО
    Субконто1,
    Субконто2,
    Субконто3
АВТОУПОРЯДОЧИВАНИЕ
1 Cyberhawk
 
24.05.16
12:36
Ты забыл сравнить параметры - в консоли у тебя, чай, дата, а в обработке - граница (как вариант)
2 FIXXXL
 
24.05.16
12:36
в отладчике перво наперво параметры запроса проверь
3 YFedor
 
24.05.16
12:37
(1), (2) параметры везде одинаковые и типы тоже
4 lodger
 
24.05.16
12:39
&ГраницаСреза где?
5 YFedor
 
24.05.16
12:41
(4) так параметр период в консоли появляется автоматически, а в обработке его приходится добавлять самому.

Граница среза = Период в консоли
6 lodger
 
24.05.16
12:44
(5) я бы не был так уверен в "автоматически". это же параметр виртуальной таблицы, которая и с пустым параметром работает, только срежет на текущую дату.
7 YFedor
 
24.05.16
12:45
(6) ты консоль-то запускал хоть раз?
8 lodger
 
24.05.16
12:47
(7) не, только отладчик, только хардкор.
9 Sabbath
 
24.05.16
12:53
(0) Первая мысль, конечно - проверить параметры.

Вторая мысль - если консоль отчетов на СКД, то текст результирующего запроса может меняться в зависимости от настроек.

Я не совсем понял, зачем ты смотришь по консоли отчетов, если есть консоль запросов, которая выдаст тебе результат именно этого запроса. Ведь тебе не нужно смотреть, как это будет в отчете, а интересует какая-то обработка. Если отличается в консоли запросов и в обработке, то дело может быть только в параметрах.
10 YFedor
 
24.05.16
12:56
(9) Я сначала сделал запрос в консоли отчетов, чтобы посмотреть есть ли нужные записи.


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

чешу репу ...
11 Sabbath
 
24.05.16
12:59
(10) Ну не знаю, разбери по частям запросы в консоли и в обработке, и отследи, в какой момент появляются различия
12 YFedor
 
24.05.16
12:59
консоль запросов выдает тот же результат, что и в обработке
13 YFedor
 
24.05.16
13:00
А я в консоли отчетов делаю простенькие отчеты для бухов - печально, теперь не факт, что отчеты выдают правильный результат
14 Sabbath
 
24.05.16
13:04
(12) Если тебе не отчет надо сделать, а просто получить результат запроса, то забей на консоль отчетов.

А если нужен отчет на СКД, то придется разбираться в СКД :)
С виртуальными таблицами там все не так просто, особенно с бухгалтерскими и ОстаткиИОбороты. Надо правильно настраивать роли, параметры и выводимые поля, а то может пойти кривизна.
Основная теорема систематики: Новые системы плодят новые проблемы.