Разные данные в консоли запросов и СКД

1. Tedman 04.10.13 09:54 Сейчас в теме
Добрый день, уважаемые коллеги.
Приключилась тут со мной такая фигня: отчёт выводит не правильную цифру. Сую запрос в консоль - всё правильно. Проверяю в СКД параметры\ресурсы\вычисляемые поля... в общем всё, что даже косвенно могло (да и не могло) повлиять на вывод результата. И ничего... Как показывал он неправильную фигру, так, хоть ты тресни, и показывает.
Если расшифровать немного ситуацию, то я из регистра сведений получаю плановые платежи клиента (в рег свед есть измерение - ПлановаяДата). Клиент за август должен был заплатить 100 т.р., за сентябрь 150 т.р. И дело в том, что консоль берёт данные нормальные - 250 т.р., а СКД только 100 т.р. за август, и сентябрь почему-то игнорирует.
Подскажите, в чём может быть беда.
P.S. Проверить параметры - не предлагать. Я их раз 10 уже проверял.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. gradi 5 04.10.13 09:59 Сейчас в теме
(1) Tedman, отбор из регистра сведений правильные данные возвращает?
4. Tedman 04.10.13 10:05 Сейчас в теме
(2) gradi, правильные. Отбора в СКД никакого нет, как и в консоле.
(3) ReView, к сожалению - нет. Мой регистр не периодический.
3. ReView 04.10.13 10:02 Сейчас в теме
У меня была похожая ситуация скхема компоновки данных в отчете получала из регистра сведений срез последних отличный от того что получала консоль отчетов. Если мне не изменяет память, если не задавать период среза, консоль возвращала последнее значение в регистре, а сКД на текущую дату(у меня это была предпоследняя запись), поэтому данные отличались. Может у вас схожая проблема.
ulen; &rew; OLDMVN; +3 Ответить 3
5. Tedman 04.10.13 10:06 Сейчас в теме
(3) ReView, период задаётся условием:
ПлановыеОплаты.ПлановаяДата < НАЧАЛОПЕРИОДА(&ПериодКонец, ДЕНЬ)
9. DJDUH 17 04.10.13 10:56 Сейчас в теме
(5) Tedman, по идее <=, а не строго меньше!!!
10. Tedman 04.10.13 11:17 Сейчас в теме
(9) DJDUH, нет, именно так, потому что текущий день мне считать не надо.
6. Dasty 35 04.10.13 10:13 Сейчас в теме
Самое правильное и быстрое решение проблемы - берешь "Консоль СКД" и смотришь, а что за запрос получается на самом деле? У СКД есть неприятная особенность - после обработки запроса ее оптимизатором итоговый запрос может получиться "слегка" отличным от исходного.
neo-ti; JohnConnor; jobkostya1c_ERP; Wrols; DEMOS777; SmArtist; +6 Ответить 1
7. Tedman 04.10.13 10:22 Сейчас в теме
(6) Dasty, консоль то я взял, вот только т.к. никогда таких проблем ранее не случалось, не знаю, как ей пользоваться в части проверки итогового запроса. Не могли бы пнуть в нужном направлении?
8. Tedman 04.10.13 10:40 Сейчас в теме
Пнул себя сам.
Большое спасибо ресурсу Spec8, и в особенности Евгению Гилёву за неоценимый вклад в профессиональное развитие программистов (в том числе и меня в данный момент)))))
11. user_2010 988 18.03.16 23:40 Сейчас в теме
тоже столкнулась с такой проблемой... направьте - гд епочитать про консоль СКД, плз
12. Xershi 1536 19.03.16 09:21 Сейчас в теме
(11) user_2010, у вас запрос кривой! Нужно исключить код который в СКД не обрабатывается!
13. user_2010 988 19.03.16 10:06 Сейчас в теме
(12) Xershi, как понять что кривое в запросе? что не обрабатывает скд?
15. Xershi 1536 21.03.16 11:15 Сейчас в теме
(13) user_2010, ну это просто нужно знать.
Выложите запрос скажу примерно где.
18. user_2010 988 21.03.16 11:57 Сейчас в теме
(15) Xershi,вот текст кода, для Бухгалтерии 3.0:
ВЫБРАТЬ
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Период КАК Период,
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.СрокПеречисления КАК СрокПеречисления,
    СУММА(РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Сумма) КАК Сумма
ПОМЕСТИТЬ УдержанныйНДФЛ
ИЗ
    РегистрНакопления.РасчетыНалогоплательщиковСБюджетомПоНДФЛ КАК РасчетыНалогоплательщиковСБюджетомПоНДФЛ
ГДЕ
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Организация = &Организация
    И РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Период >= &ДатаНачала
    И РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Период <= &ДатаКонец
    И РасчетыНалогоплательщиковСБюджетомПоНДФЛ.ВариантУдержания = &ВариантУдержания

СГРУППИРОВАТЬ ПО
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.ГоловнаяОрганизация,
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Период,
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.СрокПеречисления

ИНДЕКСИРОВАТЬ ПО
    ГоловнаяОрганизация,
    Период
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    УдержанныйНДФЛ.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
    ВЫБОР
        КОГДА УдержанныйНДФЛ.СрокПеречисления = ЗНАЧЕНИЕ(Перечисление.СрокиПеречисляемогоНалога.МежрасчетныеОтпускаИБольничные)
            ТОГДА КОНЕЦПЕРИОДА(УдержанныйНДФЛ.Период, МЕСЯЦ)
        ИНАЧЕ КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(УдержанныйНДФЛ.Период, ДЕНЬ, 1), ДЕНЬ)
    КОНЕЦ КАК КрайнийСрокПеречисленияНалога,
    СУММА(УдержанныйНДФЛ.Сумма) КАК Сумма
ПОМЕСТИТЬ СрокУплатыУдержанногоНДФЛ
ИЗ
    УдержанныйНДФЛ КАК УдержанныйНДФЛ

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

ИНДЕКСИРОВАТЬ ПО
    ГоловнаяОрганизация,
    КрайнийСрокПеречисленияНалога
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    КОНЕЦПЕРИОДА(СписаниеСРасчетногоСчета.Дата, ДЕНЬ) КАК Дата,
    СписаниеСРасчетногоСчета.СуммаДокумента КАК СуммаДокумента,
    СписаниеСРасчетногоСчета.Ссылка КАК Ссылка
ПОМЕСТИТЬ ПеречисленияНДФЛ
ИЗ
    Документ.СписаниеСРасчетногоСчета КАК СписаниеСРасчетногоСчета
ГДЕ
    СписаниеСРасчетногоСчета.Дата >= &ДатаНачала
    И СписаниеСРасчетногоСчета.Дата <= &ДатаКонец
    И СписаниеСРасчетногоСчета.Проведен
    И СписаниеСРасчетногоСчета.Организация = &Организация
    И СписаниеСРасчетногоСчета.ВидОперации = &ВидОперации
    И СписаниеСРасчетногоСчета.Налог = &Налог

ИНДЕКСИРОВАТЬ ПО
    Дата,
    Ссылка
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    ПеречисленияНДФЛ.Дата КАК Дата,
    ПеречисленияНДФЛ.СуммаДокумента КАК СуммаДокумента,
    МИНИМУМ(СрокУплаты.КрайнийСрокПеречисленияНалога) КАК КрайнийСрокПеречисленияНалога,
    ПеречисленияНДФЛ.Ссылка
ПОМЕСТИТЬ ПеречисленоИСрокУплаты
ИЗ
    ПеречисленияНДФЛ КАК ПеречисленияНДФЛ
        ЛЕВОЕ СОЕДИНЕНИЕ СрокУплатыУдержанногоНДФЛ КАК СрокУплаты
        ПО ПеречисленияНДФЛ.Дата <= СрокУплаты.КрайнийСрокПеречисленияНалога

СГРУППИРОВАТЬ ПО
    ПеречисленияНДФЛ.Дата,
    ПеречисленияНДФЛ.СуммаДокумента,
    ПеречисленияНДФЛ.Ссылка
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    ПеречисленоИСрокУплаты.СуммаДокумента КАК СуммаДокумента2,
    ПеречисленоИСрокУплаты.КрайнийСрокПеречисленияНалога КАК КрайнийСрокПеречисленияНалога2
ПОМЕСТИТЬ ПеречисленоИСрокУплаты2
ИЗ
    ПеречисленоИСрокУплаты КАК ПеречисленоИСрокУплаты
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    ПеречисленоИСрокУплаты2.СуммаДокумента2,
    ПеречисленоИСрокУплаты2.КрайнийСрокПеречисленияНалога2
ИЗ
    ПеречисленоИСрокУплаты2 КАК ПеречисленоИСрокУплаты2

Показать
19. Xershi 1536 21.03.16 12:25 Сейчас в теме
(18) user_2010, пока ничего криминального не увидел. Только зачем в конце еще ВТ сделали, которая не нужна?
14. user_2010 988 21.03.16 10:59 Сейчас в теме
разбираю все запросы последовательно и нашла где глючит.
Может быть кто-нибудь подскажет : как это обойти:

В результате выполнения нескольких запросов, данные пишутся во временную таблицу Т1:
Сссылка на документ, СуммаДокумента, Срок оплаты - это поле расчетное - рассчитывается на основании других таблиц... хитрое поле Минимум()
Данные Т1 - формируются верно, выводятся через отчет-СКД верно.
Далее мне нужно собрать/сгруппировать данные по Сроку оплаты:
Срок оплаты, СуммаДокумента - вот это уже СКД выводит неверно, теряется часть данных.
Даже если просто сделать выборку из Т1 - двух полей Срок оплаты, СуммаДокумента - она будет уже неверной.
Если сделать выборку из Т1 всех трех полей Сссылка на документ, СуммаДокумента, Срок оплаты - то результат будет верный.

В чем тут соль?
Я так понимаю, что СКД оптимизирует запрос? и результат уже другой...
16. starjevschik 21.03.16 11:30 Сейчас в теме
(14) user_2010, бывает с СКД такое, недавно убил на это кучу времени :). Можно попробовать вместо временных таблиц использовать вложенные запросы, их она не "оптимизирует". Можно попробовать как-то иначе исправить запрос, но это дело очень темное, как я понял, а без временных таблиц нормально получается.
17. user_2010 988 21.03.16 11:39 Сейчас в теме
(16) starjevschik, ага... спасибо - попробую.
С вложенными запросами как-то все сложнее кажется...либо я их просто "не умею готовить" :)
20. Xershi 1536 21.03.16 12:25 Сейчас в теме
(17) user_2010, тоже самое, только запрос без конструктора кажется сложным и если кривой запрос, то будет работать совсем криво!
23. user_2010 988 21.03.16 12:45 Сейчас в теме
24. Xershi 1536 21.03.16 12:47 Сейчас в теме
(23) user_2010, в каждом конкретном случае это отдельный разговор. Кривость значит неоптимально написан!

А так замени

ВЫБРАТЬ
    ПеречисленоИСрокУплаты.СуммаДокумента КАК СуммаДокумента2,
    ПеречисленоИСрокУплаты.КрайнийСрокПеречисленияНалога КАК КрайнийСрокПеречисленияНалога2
ПОМЕСТИТЬ ПеречисленоИСрокУплаты2
ИЗ
    ПеречисленоИСрокУплаты КАК ПеречисленоИСрокУплаты
;

////////////////////////////////////////////////////////////­­////////////////////
ВЫБРАТЬ
    ПеречисленоИСрокУплаты2.СуммаДокумента2,
    ПеречисленоИСрокУплаты2.КрайнийСрокПеречисленияНалога2
ИЗ
    ПеречисленоИСрокУплаты2 КАК ПеречисленоИСрокУплаты2
Показать


На
ВЫБРАТЬ
    ПеречисленоИСрокУплаты.СуммаДокумента КАК СуммаДокумента2,
    ПеречисленоИСрокУплаты.КрайнийСрокПеречисленияНалога КАК КрайнийСрокПеречисленияНалога2
ИЗ
    ПеречисленоИСрокУплаты КАК ПеречисленоИСрокУплаты

28. user_2010 988 21.03.16 13:03 Сейчас в теме
(24) Xershi, так тоже неправильно отрабатывает
21. Xershi 1536 21.03.16 12:28 Сейчас в теме
В чем конкретно различия идут?
Ресурсы делали в самом СКД?
22. user_2010 988 21.03.16 12:42 Сейчас в теме
хоть с ресурсами, хоть без ресурсов - результат один и тот же - в СКД часть записей пропадает.
виртуальная таблица в конце - именно в ней и пропадают записи, хотя идет просто выборка всех записей из предыдущей таблицы.
(если выбирать только СуммаДокумента и КрайнийСрокПеречисленияНалога - тогда часть записей пропадает, если в выборку добавить поле Сссылка, тогда выведутся все записи)
25. spacecraft 21.03.16 12:56 Сейчас в теме
(22) user_2010, у СКД логика отличается от вашей. Он оптимизирует запрос по своим критериям.
В данном случае, если в итоговой выборке Ссылка не нужна, то и измерения по ним не нужны. Он просто не получает дублирующиеся записи (без Ссылки они именно дублирующиеся).
26. user_2010 988 21.03.16 13:02 Сейчас в теме
(25) spacecraft, да, в примере, на котором я проверяю работу отчета - пропадает одна из дублирующихся записей, и еще пропадает последняя запись.
Но мне нужно собрать итоговую сумму по датам, а из-за пропадания записей итого получается неверным
27. user_2010 988 21.03.16 13:02 Сейчас в теме
(25) spacecraft, да, в примере, на котором я проверяю работу отчета - пропадает одна из дублирующихся записей, и еще пропадает последняя запись.
Но мне нужно собрать итоговую сумму по датам, а из-за пропадания записей итого получается неверным
как мне это дело сделать правильно?
29. spacecraft 21.03.16 13:04 Сейчас в теме
(27) user_2010, получайте и Ссылку тоже. Просто не выводите ее в отчет.
30. user_2010 988 21.03.16 13:06 Сейчас в теме
(29) spacecraft, так мне надо посчитать итого,
ссылка есть в предыдущей врем таблице, из нее мне нужно собрать итоги по датам
31. spacecraft 21.03.16 13:19 Сейчас в теме
(30) user_2010, ну так Дату получайте.
32. user_2010 988 21.03.16 13:28 Сейчас в теме
(31) spacecraft, так я так и делаю: Дату и Сумму получаю - и в этой выборке теряются записи
33. spacecraft 21.03.16 13:37 Сейчас в теме
(32) user_2010, прочитайте еще раз (25). Все что не получается в итоговой выборке, не считаются измерениями. Если нужно получать данные по Дате, значит и в итоговой выборке нужно получать Дату.
34. user_2010 988 21.03.16 13:40 Сейчас в теме
(33) spacecraft,
я и получаю дату ПеречисленоИСрокУплаты.КрайнийСрокПеречисленияНалога
ВЫБРАТЬ
ПеречисленоИСрокУплаты.СуммаДокумента КАК СуммаДокумента2,
ПеречисленоИСрокУплаты.КрайнийСрокПеречисленияНалога КАК КрайнийСрокПеречисленияНалога2
...
сейчас подробнее опишу проблему
35. spacecraft 21.03.16 13:52 Сейчас в теме
(34) user_2010,
ВЫБРАТЬ
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Период КАК Период,
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.СрокПеречисления КАК СрокПеречисления,
    СУММА(РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Сумма) КАК Сумма
ПОМЕСТИТЬ УдержанныйНДФЛ
ИЗ
    РегистрНакопления.РасчетыНалогоплательщиковСБюджетомПоНДФЛ КАК РасчетыНалогоплательщиковСБюджетомПоНДФЛ
ГДЕ
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Организация = &Организация
    И РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Период >= &ДатаНачала
    И РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Период <= &ДатаКонец
    И РасчетыНалогоплательщиковСБюджетомПоНДФЛ.ВариантУдержания = &ВариантУдержания

СГРУППИРОВАТЬ ПО
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.ГоловнаяОрганизация,
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Период,
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.СрокПеречисления

ИНДЕКСИРОВАТЬ ПО
    ГоловнаяОрганизация,
    Период
;

////////////////////////////////////////////////////////////­­////////////////////
ВЫБРАТЬ
    УдержанныйНДФЛ.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
    ВЫБОР
        КОГДА УдержанныйНДФЛ.СрокПеречисления = ЗНАЧЕНИЕ(Перечисление.СрокиПеречисляемогоНалога.МежрасчетныеОтпускаИБольничные)
            ТОГДА КОНЕЦПЕРИОДА(УдержанныйНДФЛ.Период, МЕСЯЦ)
        ИНАЧЕ КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(УдержанныйНДФЛ.Период, ДЕНЬ, 1), ДЕНЬ)
    КОНЕЦ КАК КрайнийСрокПеречисленияНалога,
    СУММА(УдержанныйНДФЛ.Сумма) КАК Сумма
ПОМЕСТИТЬ СрокУплатыУдержанногоНДФЛ
ИЗ
    УдержанныйНДФЛ КАК УдержанныйНДФЛ

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

ИНДЕКСИРОВАТЬ ПО
    ГоловнаяОрганизация,
    КрайнийСрокПеречисленияНалога
;

////////////////////////////////////////////////////////////­­////////////////////
ВЫБРАТЬ
    КОНЕЦПЕРИОДА(СписаниеСРасчетногоСчета.Дата, ДЕНЬ) КАК Дата,
    СписаниеСРасчетногоСчета.СуммаДокумента КАК СуммаДокумента,
    СписаниеСРасчетногоСчета.Ссылка КАК Ссылка
ПОМЕСТИТЬ ПеречисленияНДФЛ
ИЗ
    Документ.СписаниеСРасчетногоСчета КАК СписаниеСРасчетногоСчета
ГДЕ
    СписаниеСРасчетногоСчета.Дата >= &ДатаНачала
    И СписаниеСРасчетногоСчета.Дата <= &ДатаКонец
    И СписаниеСРасчетногоСчета.Проведен
    И СписаниеСРасчетногоСчета.Организация = &Организация
    И СписаниеСРасчетногоСчета.ВидОперации = &ВидОперации
    И СписаниеСРасчетногоСчета.Налог = &Налог

ИНДЕКСИРОВАТЬ ПО
    Дата,
    Ссылка
;

////////////////////////////////////////////////////////////­­////////////////////
ВЫБРАТЬ
    ПеречисленияНДФЛ.Дата КАК Дата,
    ПеречисленияНДФЛ.СуммаДокумента КАК СуммаДокумента,
    МИНИМУМ(СрокУплаты.КрайнийСрокПеречисленияНалога) КАК КрайнийСрокПеречисленияНалога,
    ПеречисленияНДФЛ.Ссылка
ПОМЕСТИТЬ ПеречисленоИСрокУплаты
ИЗ
    ПеречисленияНДФЛ КАК ПеречисленияНДФЛ
        ЛЕВОЕ СОЕДИНЕНИЕ СрокУплатыУдержанногоНДФЛ КАК СрокУплаты
        ПО ПеречисленияНДФЛ.Дата <= СрокУплаты.КрайнийСрокПеречисленияНалога

СГРУППИРОВАТЬ ПО
    ПеречисленияНДФЛ.Дата,
    ПеречисленияНДФЛ.СуммаДокумента,
    ПеречисленияНДФЛ.Ссылка
;

////////////////////////////////////////////////////////////­­////////////////////
ВЫБРАТЬ
    ПеречисленоИСрокУплаты.Дата КАК ДатаДокумента,
    ПеречисленоИСрокУплаты.СуммаДокумента КАК СуммаДокумента,
    ПеречисленоИСрокУплаты.КрайнийСрокПеречисленияНалога КАК КрайнийСрокПеречисленияНалога
ИЗ
    ПеречисленоИСрокУплаты КАК ПеречисленоИСрокУплаты
Показать
37. user_2010 988 21.03.16 13:55 Сейчас в теме
(35) spacecraft, в последнем запросе - мне не надо дату документа, мне нужно только 2 поля: КрайнийСрокПеречисленияНалога(это тоже дата) и СуммаДокумента.
36. user_2010 988 21.03.16 13:53 Сейчас в теме
проблема в следующем:
есть временная таблица Т1:

ДатаДокумента СсылкаНаДокумент СуммаДокумента
12/01/2016 1 1000
13/01/2016 2 1000
15/01/2016 3 2000
10/02/2016 4 3000
15/03/2016 5 3000

Есть Таблица Т2 только с датами сроков оплаты
ДатаСрок
13/01/2016
16/01/2016
11/02/2016
29/02/2016
18/03/2016

Мне нужно соединить таблица так: к записям Т1 добавить поле ДатаСрок из Т2 так, чтобы ДатаСрок было ближайшим большим ДатыДокумента (для этого я соединяю по условию ДатаДокумента<=ДатаСрок.. и выбираю Минимум(ДатаСрок))- это работает. Получается такая таблица Т3:
ДатаДокумента СсылкаНаДокумент СуммаДокумента ДатаСрок
12/01/2016 1 1000 13/01/2016
13/01/2016 2 1000 13/01/2016
15/01/2016 3 2000 16/01/2016
10/02/2016 4 3000 11/02/2016
15/03/2016 5 3000 18/03/2016

И вот теперь мне нужно получить такую таблицу: итоги по ДатаСрок:
ДатаСрок СуммаДокументов
13/01/2016 2000
16/01/2016 2000
10/02/2016 3000
15/03/2016 3000

А получается так:

ДатаСрок СуммаДокументов
13/01/2016 1000
16/01/2016 2000
10/02/2016 3000


spacecraft - вы пишите про измерения - я вашего намека не понимаю... поясните, плз, - нужно что-то сделать, чтобы скд стал понимать ДатаСрок как измерения?


13/
38. spacecraft 21.03.16 14:10 Сейчас в теме
(36) user_2010,
ВЫБРАТЬ
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Период КАК Период,
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.СрокПеречисления КАК СрокПеречисления,
    СУММА(РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Сумма) КАК Сумма
ПОМЕСТИТЬ УдержанныйНДФЛ
ИЗ
    РегистрНакопления.РасчетыНалогоплательщиковСБюджетомПоНДФЛ КАК РасчетыНалогоплательщиковСБюджетомПоНДФЛ
ГДЕ
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Организация = &Организация
    И РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Период >= &ДатаНачала
    И РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Период <= &ДатаКонец
    И РасчетыНалогоплательщиковСБюджетомПоНДФЛ.ВариантУдержания = &ВариантУдержания

СГРУППИРОВАТЬ ПО
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.ГоловнаяОрганизация,
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Период,
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.СрокПеречисления

ИНДЕКСИРОВАТЬ ПО
    ГоловнаяОрганизация,
    Период
;

////////////////////////////////////////////////////////////­­­////////////////////
ВЫБРАТЬ
    УдержанныйНДФЛ.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
    ВЫБОР
        КОГДА УдержанныйНДФЛ.СрокПеречисления = ЗНАЧЕНИЕ(Перечисление.СрокиПеречисляемогоНалога.МежрасчетныеОтпускаИБольничные)
            ТОГДА КОНЕЦПЕРИОДА(УдержанныйНДФЛ.Период, МЕСЯЦ)
        ИНАЧЕ КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(УдержанныйНДФЛ.Период, ДЕНЬ, 1), ДЕНЬ)
    КОНЕЦ КАК КрайнийСрокПеречисленияНалога,
    СУММА(УдержанныйНДФЛ.Сумма) КАК Сумма
ПОМЕСТИТЬ СрокУплатыУдержанногоНДФЛ
ИЗ
    УдержанныйНДФЛ КАК УдержанныйНДФЛ

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

ИНДЕКСИРОВАТЬ ПО
    ГоловнаяОрганизация,
    КрайнийСрокПеречисленияНалога
;

////////////////////////////////////////////////////////////­­­////////////////////
ВЫБРАТЬ
    КОНЕЦПЕРИОДА(СписаниеСРасчетногоСчета.Дата, ДЕНЬ) КАК Дата,
    СписаниеСРасчетногоСчета.СуммаДокумента КАК СуммаДокумента,
    СписаниеСРасчетногоСчета.Ссылка КАК Ссылка
ПОМЕСТИТЬ ПеречисленияНДФЛ
ИЗ
    Документ.СписаниеСРасчетногоСчета КАК СписаниеСРасчетногоСчета
ГДЕ
    СписаниеСРасчетногоСчета.Дата >= &ДатаНачала
    И СписаниеСРасчетногоСчета.Дата <= &ДатаКонец
    И СписаниеСРасчетногоСчета.Проведен
    И СписаниеСРасчетногоСчета.Организация = &Организация
    И СписаниеСРасчетногоСчета.ВидОперации = &ВидОперации
    И СписаниеСРасчетногоСчета.Налог = &Налог

ИНДЕКСИРОВАТЬ ПО
    Дата,
    Ссылка
;

////////////////////////////////////////////////////////////­­­////////////////////
ВЫБРАТЬ

    Сумма(ПеречисленияНДФЛ.СуммаДокумента) КАК СуммаДокумента,
    МИНИМУМ(СрокУплаты.КрайнийСрокПеречисленияНалога) КАК КрайнийСрокПеречисленияНалога,


ИЗ
    ПеречисленияНДФЛ КАК ПеречисленияНДФЛ
        ЛЕВОЕ СОЕДИНЕНИЕ СрокУплатыУдержанногоНДФЛ КАК СрокУплаты
        ПО ПеречисленияНДФЛ.Дата <= СрокУплаты.КрайнийСрокПеречисленияНалога

СГРУППИРОВАТЬ ПО
    МИНИМУМ(СрокУплаты.КрайнийСрокПеречисленияНалога)

Показать


За основу взял, что во временных таблицах данные получаются верные (код даже не смотрел там). Писал на коленке. Возможны ошибки.
39. user_2010 988 21.03.16 14:13 Сейчас в теме
получается, что СКД поле СуммаДокумента воспринимается как измерения, а мне надо, чтобы как измерение воспринималось поле КрайнийСрокПеречисления.
Как это сделать?
40. spacecraft 21.03.16 14:30 Сейчас в теме
(39) user_2010,
ВЫБРАТЬ
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Период КАК Период,
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.СрокПеречисления КАК СрокПеречисления,
    СУММА(РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Сумма) КАК Сумма
ПОМЕСТИТЬ УдержанныйНДФЛ
ИЗ
    РегистрНакопления.РасчетыНалогоплательщиковСБюджетомПоНДФЛ КАК РасчетыНалогоплательщиковСБюджетомПоНДФЛ
ГДЕ
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Организация = &Организация
    И РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Период >= &ДатаНачала
    И РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Период <= &ДатаКонец
    И РасчетыНалогоплательщиковСБюджетомПоНДФЛ.ВариантУдержания = &ВариантУдержания

СГРУППИРОВАТЬ ПО
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.ГоловнаяОрганизация,
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Период,
    РасчетыНалогоплательщиковСБюджетомПоНДФЛ.СрокПеречисления

ИНДЕКСИРОВАТЬ ПО
    ГоловнаяОрганизация,
    Период
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    УдержанныйНДФЛ.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
    ВЫБОР
        КОГДА УдержанныйНДФЛ.СрокПеречисления = ЗНАЧЕНИЕ(Перечисление.СрокиПеречисляемогоНалога.МежрасчетныеОтпускаИБольничные)
            ТОГДА КОНЕЦПЕРИОДА(УдержанныйНДФЛ.Период, МЕСЯЦ)
        ИНАЧЕ КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(УдержанныйНДФЛ.Период, ДЕНЬ, 1), ДЕНЬ)
    КОНЕЦ КАК КрайнийСрокПеречисленияНалога,
    СУММА(УдержанныйНДФЛ.Сумма) КАК Сумма
ПОМЕСТИТЬ СрокУплатыУдержанногоНДФЛ
ИЗ
    УдержанныйНДФЛ КАК УдержанныйНДФЛ

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

ИНДЕКСИРОВАТЬ ПО
    ГоловнаяОрганизация,
    КрайнийСрокПеречисленияНалога
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    КОНЕЦПЕРИОДА(СписаниеСРасчетногоСчета.Дата, ДЕНЬ) КАК Дата,
    СписаниеСРасчетногоСчета.СуммаДокумента КАК СуммаДокумента,
    СписаниеСРасчетногоСчета.Ссылка КАК Ссылка
ПОМЕСТИТЬ ПеречисленияНДФЛ
ИЗ
    Документ.СписаниеСРасчетногоСчета КАК СписаниеСРасчетногоСчета
ГДЕ
    СписаниеСРасчетногоСчета.Дата >= &ДатаНачала
    И СписаниеСРасчетногоСчета.Дата <= &ДатаКонец
    И СписаниеСРасчетногоСчета.Проведен
    И СписаниеСРасчетногоСчета.Организация = &Организация
    И СписаниеСРасчетногоСчета.ВидОперации = &ВидОперации
    И СписаниеСРасчетногоСчета.Налог = &Налог

ИНДЕКСИРОВАТЬ ПО
    Дата,
    Ссылка
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ

    ПеречисленияНДФЛ.СуммаДокумента КАК СуммаДокумента,
    МИНИМУМ(СрокУплаты.КрайнийСрокПеречисленияНалога) КАК КрайнийСрокПеречисленияНалога,


ИЗ
    ПеречисленияНДФЛ КАК ПеречисленияНДФЛ
        ЛЕВОЕ СОЕДИНЕНИЕ СрокУплатыУдержанногоНДФЛ КАК СрокУплаты
        ПО ПеречисленияНДФЛ.Дата <= СрокУплаты.КрайнийСрокПеречисленияНалога
ПОМЕСТИТЬ ПеречисленоИСрокУплаты
СГРУППИРОВАТЬ ПО
    ПеречисленияНДФЛ.СуммаДокумента
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    
    Сумма(ПеречисленоИСрокУплаты.СуммаДокумента) КАК СуммаДокумента,
    ПеречисленоИСрокУплаты.КрайнийСрокПеречисленияНалога КАК КрайнийСрокПеречисленияНалога
ИЗ
    ПеречисленоИСрокУплаты КАК ПеречисленоИСрокУплаты
СГРУППИРОВАТЬ ПО
   ПеречисленоИСрокУплаты.КрайнийСрокПеречисленияНалога
Показать

вот. немного исправил. Пробуйте так.
42. user_2010 988 21.03.16 14:42 Сейчас в теме
(40) spacecraft, результат тот же - СКД отбирает только разные значения Суммы.
41. spacecraft 21.03.16 14:38 Сейчас в теме
(39) user_2010,
а мне надо, чтобы как измерение воспринималось поле КрайнийСрокПеречисления

Назначить роль для этого поля.
43. user_2010 988 21.03.16 14:44 Сейчас в теме
(41) spacecraft, в запросе же нельзя роль назначить?...
приведена только часть запроса... дальше еще будут соединения....
52. spacecraft 21.03.16 15:32 Сейчас в теме
(43) user_2010, Тогда зачем сейчас в СКД выводить промежуточный результат?
Берите консоль запросов и пока там отлаживайте.
Вот для разминки, как получать итоги по группировки даты (во вложении).
Прикрепленные файлы:
53. user_2010 988 21.03.16 15:39 Сейчас в теме
(52) spacecraft, в консоли все верно делает! проблема только в скд!
54. Xershi 1536 21.03.16 15:53 Сейчас в теме
(53) user_2010, скачай консоль отчетов. Только она дает точный результат при кривом запросе!
У вас явно логика запроса хромает!
55. spacecraft 21.03.16 15:53 Сейчас в теме
(53) user_2010, вы бы определились? Или это готовый запрос и тогда в настройках указываем роли, или не мудрим и дальше продолжаете готовить запрос. А промежуточный результат настраивать в СКД нет совсем никакого смысла.
56. user_2010 988 21.03.16 16:00 Сейчас в теме
(55) spacecraft, весь полный запрос в консоли запросов работает как нужно. В СКД этот запрос не работает. Чтобы понять в чем проблема - начала упрощать запрос. Нашла где проблема.
Какая разница - где исправить проблему - в большом запросе или в маленьком?
С маленьким же проще разобраться...
57. Xershi 1536 21.03.16 16:02 Сейчас в теме
(56) user_2010, логика не верная!
Исправив мелкий косяк вы пропустите огромную яму!
58. user_2010 988 21.03.16 16:22 Сейчас в теме
(57) Xershi, уже...
пытаюсь освоить консоль СКД.... схему загрузила, параметры заполнила, результата - неправильный - получила - подскажите что дальше нужно делать? куда глядеть?
59. Xershi 1536 21.03.16 16:31 Сейчас в теме
(58) user_2010, понять и простить)))

Запрос весь покажи, раз опыта нет понять в чем дело не так!
44. user_2010 988 21.03.16 14:46 Сейчас в теме
кажется что все ясно и понятно... но... неужели это нельзя сделать в СКД? как-то надо ее обхитрить - ведь наверняка есть такая возможность....
45. user_2010 988 21.03.16 14:48 Сейчас в теме
(44) user_2010, да, еще советовали вложенные таблицы - еще не пробовала...
46. Xershi 1536 21.03.16 14:59 Сейчас в теме
(45) user_2010, галку автозаполнение поставьте. И запрос перепишите, чтобы было только то что считается.
47. user_2010 988 21.03.16 15:03 Сейчас в теме
(46) Xershi, где поставить галку автозаполнение? В СКД - стоит галка автозаполнение.
запрос и так уже минимизирован - оставила только проблемную часть...
48. Xershi 1536 21.03.16 15:14 Сейчас в теме
(47) user_2010, Ссылка переименуйте в ДокументСсылка например! И отбор сделайте между.
49. user_2010 988 21.03.16 15:21 Сейчас в теме
(48) Xershi, хорошо... уже мудрю... но пока результат тот же
51. Xershi 1536 21.03.16 15:24 Сейчас в теме
(49) user_2010, правила наименования объектов нужно понять. В этом проблема, СКД сгруппирует все в итоговый запрос, который на этапе проектирования создал криво. Это приходит только с опытом. И набитием шишек.
50. user_2010 988 21.03.16 15:22 Сейчас в теме
вроде бы понятно - что скд понимает неправильно... но как это обойти? может есть где-нибудь какая-нибудь теория? не все же методом научного потыкивания...
60. user_2010 988 21.03.16 16:32 Сейчас в теме
61. spacecraft 21.03.16 16:33 Сейчас в теме
(60) user_2010, выкладывайте схему, если база типовая.
64. Xershi 1536 21.03.16 17:20 Сейчас в теме
(60) user_2010, ну нажми в консоли и скопируй запрос.
65. user_2010 988 21.03.16 17:25 Сейчас в теме
(64) Xershi, не поняла... что нужно?
62. user_2010 988 21.03.16 16:35 Сейчас в теме
вот схема, база Бухгалтерия 3.0 - типовая.
Прикрепленные файлы:
ПеречисленныйНДФЛ.xml
63. user_2010 988 21.03.16 16:38 Сейчас в теме
(62) user_2010, наверное нужны еще настройки параметров?
66. user_2010 988 21.03.16 17:38 Сейчас в теме
настройки
Прикрепленные файлы:
67. spacecraft 21.03.16 18:14 Сейчас в теме
(66) user_2010, сильно не разбирался в начальном коде. Но вот нужное решение для правильной выборки во вложении
Прикрепленные файлы:
ПеречисленныйНДФЛ out.xml
68. user_2010 988 21.03.16 20:46 Сейчас в теме
(67) spacecraft, да, спасибо! теперь выдает ожидаемый результат.... пока мельком посмотрела ваш запрос... вы изменили только последний запрос?
еще раз спасибо!
69. Xershi 1536 21.03.16 21:16 Сейчас в теме
(68) user_2010, говорил же нужн польный запрос, а то кинули кость, а мясо то в другом месте было!
71. spacecraft 21.03.16 21:37 Сейчас в теме
(69) Xershi, это и был полный текст :)
72. user_2010 988 21.03.16 21:48 Сейчас в теме
(69) Xershi, (69) Xershi, полный запрос я не выкладывала, это таже самая часть запроса
70. spacecraft 21.03.16 21:36 Сейчас в теме
(68) user_2010, последнюю ВТ и результирующую выборку. В последней ВТ была группировка по сумме. Заменил на группировку по ссылке и суммирование поля сумма. СКД оптимизирует запрос и в итоге он может быть совсем не таким, как его написали. В данном случае определив группировку по сумме, СКД изменил запрос и сумму сделал измерением.
73. user_2010 988 21.03.16 21:50 Сейчас в теме
(70) spacecraft, попробую теперь это изменить в своем полном запросе
74. pirm2 21.09.16 13:39 Сейчас в теме
Я тоже добился интересного эффекта: в пользовательском режиме в настройках добавляю определённое поле - показывается вся таблица, как и выглядит в консоли запроса, а если снимаешь галочку, то отчет не только убирает одну колонку, но и 3/4 строк.
Такого же не может быть?
75. FirePyres 72 22.09.16 08:57 Сейчас в теме
Был похожий случай, помог анализ выполнения СКД в консоли СКД
порядок был такой:
Грузим в консоль СКД, выполняем и смотрим какой на самом деле выполнился запрос
сохраняем его тестовый файл например
и исходный текст запроса тоже сохраняем в тестовый файл, после чего сравниваем их через "сравнить файлы"
с моем случаем проблема нашлась и заключалась в том что компоновщик удалял одно измерение, в результате при группировке получал не верное значение
решил помещение этой временной таблицы во вложенный запрос
76. pirm2 22.09.16 14:40 Сейчас в теме
(75) FirePyres, Вы знаете, помогло. Весь запрос отправил во вложенный - стало выводить всё. Но это же совершенно не здорово. Кстати: одно поле уже было во вложенном запросе, я его прописал на вкладке "Компоновка данных" - его отпустило. А вот второе поле было во внешнем - на него стало ругаться "поле замены не найдено". Напрямую не удалось победить.
Возникает другой вопрос: как это понимать, как это предвидеть, как это предотвращать?
77. olegmedvedev 66 22.09.16 14:58 Сейчас в теме
(76) pirm2, тоже была похожая ситуация http://forum.infostart.ru/forum26/topic157926/
Когда выполняю запрос - получаю одни данные (правильные).
Но если этот же запрос исполняется в СКД - то результаты получаются неверные.
На рисунке 01 - запрос верные результаты

в общем как это примерно работает:
Вообще фигурные скобки в СКД это необязательный параметр, НО есть одна фишка если допустим мы в запросе выбираем из регистра остатков или оборотов Ну например вы что то пишите и в запросе у вас есть выборка из оборотного регистра

ИЗ
РегистрНакопления.ТоварыОрганизаций.Обороты(,,) КАК ТоварыОрганизацийОбороты


Здесь скобки поставил сам обычно без них конструктор рисует...
Так вот даже в таком варианте СКД по умолчанию будет строить запрос вот так

РегистрНакопления.ТоварыОрганизаций.Обороты(&НачалоПериода,&КонецПериода,)

И параметры начало период и конец у вас автоматом появятся в параметрах СКД
И вот если не ставить фигурные скобки на своих параметрах СКД любит их заменять на свои НачалоПериода и КонецПериода поэтому тут либо используем то что по умолчанию либо ставить скобки тогда СКД уж точно подставит нужные параметры...
Показать
(с) bmk74

Как отслеживать? я после этого случая все проверять - а что же передала мне компоновка? не изменился ли мой запрос до неузнаваемости. как-то так(
87. magic1s 12 09.10.23 12:18 Сейчас в теме
(75)
Грузим в консоль СКД, выполняем и смотрим какой на самом деле выполнился запрос
сохраняем его тестовый файл например
и исходный текст запроса тоже сохраняем в тестовый файл, после чего сравниваем их через "сравнить файлы"


Ничего не понял!
Как посмотреть "какой на самом деле выполнился запрос", и сохранить его в тестовый файл??
Нужно сохранить СКД в XML? (Там запрос такой же, 1в1!)
88. magic1s 12 09.10.23 13:09 Сейчас в теме
(87) Нашел, млять.
Стандартная консоль СКД 1с-я.
После нажатия на кнопку "Сформировать" на закладке "Макет для табличного документа XML" можно найти финальный вариант запроса, который формирует СКД!
78. pirm2 23.09.16 08:03 Сейчас в теме
Где-то можно это почитать? Мы же не решили проблему стратегически. А если тот запрос нужно кому-то показать?
- А почему у тебя запрос вложенный?
- А потому что я не могу договориться с СКД о выдаче получающейся таблички.
Страшная мысль: а не проверить все отчёты, которые я делал? Квалификация-то нулевая, как её подтянуть хотя бы к приличной?
79. zhkonst 15.11.16 16:09 Сейчас в теме
Столкнулся нынче с этою же проблемой, обошёлся без вложения запросов. Долго чесал репу, матюкался и экспериментировал, но в конце концов переписал запрос правильно (как мне кажется) - и всё заработало. Вот мои соображения. Гуры могут плевать мне в спину и говорить обидные слова, но я исхожу из того, что главный критерий истины - практика, а мне на практике нижеизложенное помогло.

В общем, я так понял, запрос должен быть чётко логически структурированным. Нужно отделить поля-"ресурсы" от полей-"измерений". Ключевой момент этой истории - группировка. Нужно следить, чтобы "ресурсы" не попадали в список "Групповое поле" (раздел запроса "СГРУППИРОВАТЬ ПО"). Конструктор пихает туда все поля, которые не попали в список "Суммируемое поле".

У меня вырисовывался пакет из трёх запросов с двумя временными таблицами (ВТ). В первую временную таблицу (ВТ "Продажи") я тяну товар, дату продажи, сумму продажи и количество. Групповые поля - товар и дата, суммируемые - сумма и количество. Во втором запросе (ВТ "ПродажиСДатойЦП) по дате продажи получаю необходимый мне период периодического регистра, групповые поля - опять товар и дата, суммируемое - период. В третьем - вытягиваю ресурс из этого периодического регистра и свожу всё в кучу. Так вот, сначала я тащил сумму продаж и количество из первой ВТ во вторую, а оттуда - уже в результат запроса:

Первый (неправильный) вариант запроса


Как видите, во втором запросе поля Сумма и Количество попали в раздел ГРУППИРОВАТЬ ПО. В этом виде консоль запросов выдавала результат корректный, а СКД - нет. Покопавшись, я понял, что при формировании второй ВТ мне нужна группировка только по товару и дате, в агрегатных функциях - период, а количество и сумма мне в группировке (да и вообще - во втором запросе и второй ВТ) вообще не нужны. Я их тянул через вторую ВТ транзитом только для того, чтобы использовать в окончательном результате. А конструктор их пихал в групповые поля. Как только я убрал из второго запроса те поля, которые в нём не были необходимы (количество и сумма), всё заработало и в консоли, и в СКД. Третий запрос после этого, правда, чуть разросся - теперь к нему пришлось добавить первую ВТ, из которой я беру сумму и количество.

Второй (рабочий) вариант запроса


Т.е. пока я тянул количество и сумму через весь запрос, через все ВТ, где они попадали в групповые поля, - СКД не хотел воспринимать их как нормальный ресурс, поскольку по ним делалась группировка. Как только этот винегрет из групповых и суммируемых полей прекратился - СКД выдал корректный результат. И никаких скобок и вложенных запросов.
jobkostya1c_ERP; +1 Ответить
80. Jogann 26.09.19 11:57 Сейчас в теме
Да, СКД иногда выдает неправильный результат, и вот пример:

ВЫБРАТЬ
    "Группировка" КАК Группировка,
    "ГАЗ" КАК Модель,
    100 КАК Пробег,
    70 КАК Расход
ПОМЕСТИТЬ ПервыйШаг

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

ВЫБРАТЬ
    "Группировка",
    "ГАЗ",
    200,
    140

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

ВЫБРАТЬ
    "Группировка",
    "ВАЗ",
    10,
    8
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    ПервыйШаг.Группировка,
    ПервыйШаг.Модель,
    МАКСИМУМ(ПервыйШаг.Пробег) КАК Пробег,
    СУММА(ПервыйШаг.Расход) КАК Расход
ПОМЕСТИТЬ ВторойШаг
ИЗ
    ПервыйШаг КАК ПервыйШаг

СГРУППИРОВАТЬ ПО
    ПервыйШаг.Группировка,
    ПервыйШаг.Модель
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    ВторойШаг.Группировка,
    СУММА(ВторойШаг.Пробег) КАК Пробег,
    СУММА(ВторойШаг.Расход) КАК Расход
ИЗ
    ВторойШаг КАК ВторойШаг

СГРУППИРОВАТЬ ПО
    ВторойШаг.Группировка

Показать


Результат запроса, выполненного из СКД:
Группировка Пробег Расход
Группировка 200 218

Правильный результат, полученный из консоли:
Группировка Пробег Расход
Группировка 210 218

Возможно, это следствие оптимизации запросов СКД
Примечание: если поле пробег во временной таблице сделать полем группировки, результат становится правильным

ВЫБРАТЬ
    ПервыйШаг.Группировка,
    ПервыйШаг.Модель,
    ПервыйШаг.Пробег КАК Пробег,
    СУММА(ПервыйШаг.Расход) КАК Расход
ПОМЕСТИТЬ ВторойШаг
ИЗ
    ПервыйШаг КАК ПервыйШаг

СГРУППИРОВАТЬ ПО
    ПервыйШаг.Группировка,
    ПервыйШаг.Модель,
    ПервыйШаг.Пробег

Показать
81. Den75Ch 26.09.19 12:02 Сейчас в теме
(80) как понять иногда? 1 раз правильно, 2 неправильно?
82. Jogann 26.09.19 12:20 Сейчас в теме
(81) Иногда в данном контексте нужно понимать как "в зависимости от того как построен запрос"
83. ovt256 18.10.19 12:50 Сейчас в теме
84. nsa_5 02.11.21 10:14 Сейчас в теме
Спасибо большое за совет про консоль СКД, у меня для формирования поля запроса в параметры СКД передавался список значений, формирующийся программно в зависимости от выбора пользователя. Пока не проверила в консоли СКД не могла понять почему берется только первое значение. Оказалось во вкладке Параметры надо было галочку поставить "Доступен список значений", тогда в передаваемом списке значений стали обрабатываться все значения. Может кому пригодится.
85. Student1C 59 25.05.22 20:34 Сейчас в теме
а еще если указываете в параметрах виртуальной таблицы параметр (например &НачалоГода), отличный от типового (&НачалоПериода или &КонецПериода), но сам типовой тоже используется, указывайте его в фигурных скобках ) - {&НачалоГода}
Ibragimovna; +1 Ответить
86. user1559729 14.09.23 19:18 Сейчас в теме
Столкнулся с подобной проблемой. Взял запрос из СКД, доработал в консоли запросов - всё Ок. Доработал запрос в схеме СКД, но отчет упорно показывал те же самые данные. Проверил на другой базе - результат аналогичный. В настройках отчета ничего особенного, но погасил все группировки для вывода только детальных записей - не помогло. Начал кромсать запрос (а он не маленький), чтобы понять причину потери данных. Подозревал группировки. В итоге докромсал до того, что уже нечего было кромсать, но отчет продолжать выводить одни и те же данные. Начал подозревать кэш. В итоге - просто скорректировал имя отчета и всё заработало. Встречался пару раз с такой темой, но не сразу понял, в чем дело. Пару часов пришлось разбираться.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот