Доброго времени суток всем читающим! Друзья помогите разобраться с отчетом в СКД. Запросом в консоли запросов я получаю желаемый результат, вот сам запрос
но в отчет попадают строки в которых если количество 0 тогда должно быть предыдущее пустыми, хотя в консоли запросов эти строки заполняются. Сам отчет приложил
ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.ПериодДень
ПОМЕСТИТЬ Вт1
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.Склад,
ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.ПериодДень
ПОМЕСТИТЬ Вт2
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто, ДвиженияИГраницыПериода, ) КАК ТоварыНаСкладахОстаткиИОбороты
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Вт1.ПериодДень,
МАКСИМУМ(Вт2.ПериодДень) КАК ПериодДень1
ПОМЕСТИТЬ Вт3
ИЗ
Вт1 КАК Вт1
ЛЕВОЕ СОЕДИНЕНИЕ Вт2 КАК Вт2
ПО Вт1.ПериодДень >= Вт2.ПериодДень
СГРУППИРОВАТЬ ПО
Вт1.ПериодДень
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Вт3.ПериодДень,
Вт2.Склад,
Вт2.Номенклатура,
Вт2.КоличествоКонечныйОстаток
ИЗ
Вт3 КАК Вт3
ЛЕВОЕ СОЕДИНЕНИЕ Вт2 КАК Вт2
ПО Вт3.ПериодДень1 = Вт2.ПериодДень
Показатьно в отчет попадают строки в которых если количество 0 тогда должно быть предыдущее пустыми, хотя в консоли запросов эти строки заполняются. Сам отчет приложил
По теме из базы знаний
- Нестандартная расшифровка СКД или расшифровка одного отчета СКД при помощи другого отчета СКД установкой пользовательских настроек (в управляемых формах, методика + пример для УТ11)
- Расшифровка одного отчета СКД при помощи другого отчета СКД (в управляемых формах, классический вариант, методика + пример для УТ11)
- Нестандартная расшифровка СКД или расшифровка одного отчета СКД при помощи другого отчета СКД с выбором варианта настроек (в управляемых формах, методика + пример для УТ11)
- Программная корректировка при выводе отчета СКД
- Доработка типового отчета на СКД с помощью расширения
Найденные решения
В Вт3 нужны склад и номенклатура…
ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.ПериодДень
ПОМЕСТИТЬ Вт1
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.Склад,
ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.ПериодДень
ПОМЕСТИТЬ Вт2
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто, ДвиженияИГраницыПериода, ) КАК ТоварыНаСкладахОстаткиИОбороты
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Вт1.ПериодДень,
МАКСИМУМ(Вт2.ПериодДень) КАК ПериодДень1,
Вт2.Склад,
Вт2.Номенклатура
ПОМЕСТИТЬ Вт3
ИЗ
Вт1 КАК Вт1
ЛЕВОЕ СОЕДИНЕНИЕ Вт2 КАК Вт2
ПО Вт1.ПериодДень >= Вт2.ПериодДень
СГРУППИРОВАТЬ ПО
Вт1.ПериодДень,
Вт2.Склад,
Вт2.Номенклатура
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Вт3.ПериодДень КАК ПериодДень,
Вт2.Склад КАК Склад,
Вт2.Номенклатура КАК Номенклатура,
Вт2.КоличествоКонечныйОстаток
ИЗ
Вт3 КАК Вт3
ЛЕВОЕ СОЕДИНЕНИЕ Вт2 КАК Вт2
ПО Вт3.ПериодДень1 = Вт2.ПериодДень
И Вт3.Склад = Вт2.Склад
И Вт3.Номенклатура = Вт2.Номенклатура
УПОРЯДОЧИТЬ ПО
Номенклатура,
ПериодДень,
Склад
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4) PhoenixAOD, очень "мутно". Может лучше описать словами что ты хочешь получить? Вот ты пишешь:
Проверил в демо базе 2-мя обработками запрос из СКД. Обе на 04.02.07 ничего не возвращают. Соответственно и схема из СКД загруженная в консоль компоновки данных возвращает то же что и у тебя.
по позиции бош видно что 04.02.07 пусто, а должно быть 198
Проверил в демо базе 2-мя обработками запрос из СКД. Обе на 04.02.07 ничего не возвращают. Соответственно и схема из СКД загруженная в консоль компоновки данных возвращает то же что и у тебя.
В Вт3 нужны склад и номенклатура…
ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.ПериодДень
ПОМЕСТИТЬ Вт1
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.Склад,
ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.ПериодДень
ПОМЕСТИТЬ Вт2
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто, ДвиженияИГраницыПериода, ) КАК ТоварыНаСкладахОстаткиИОбороты
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Вт1.ПериодДень,
МАКСИМУМ(Вт2.ПериодДень) КАК ПериодДень1,
Вт2.Склад,
Вт2.Номенклатура
ПОМЕСТИТЬ Вт3
ИЗ
Вт1 КАК Вт1
ЛЕВОЕ СОЕДИНЕНИЕ Вт2 КАК Вт2
ПО Вт1.ПериодДень >= Вт2.ПериодДень
СГРУППИРОВАТЬ ПО
Вт1.ПериодДень,
Вт2.Склад,
Вт2.Номенклатура
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Вт3.ПериодДень КАК ПериодДень,
Вт2.Склад КАК Склад,
Вт2.Номенклатура КАК Номенклатура,
Вт2.КоличествоКонечныйОстаток
ИЗ
Вт3 КАК Вт3
ЛЕВОЕ СОЕДИНЕНИЕ Вт2 КАК Вт2
ПО Вт3.ПериодДень1 = Вт2.ПериодДень
И Вт3.Склад = Вт2.Склад
И Вт3.Номенклатура = Вт2.Номенклатура
УПОРЯДОЧИТЬ ПО
Номенклатура,
ПериодДень,
Склад
Показать
Вероятный виновник этого
СГРУППИРОВАТЬ ПО
Вт1.ПериодДень
Неоднократно было замечено некорректное поведение оптимизатора компановщика на полях группировки в пакетных запросах,
Так же возможно у поля период не указан метод дополнения день просто выводится поле период, без дополнения, в настройках колонки.
Как вариант, в конструкторе компановки не указана роль период у поля периоддень.
Период секунда нужно вытаскивать когда Вам нужен период Регистратор или Период запись. На период День оно не оказывает воздействия.
3 пути:
1) поместить все во вложенные запросы, упадет оптимальность, потому что оптимизатор не будет изменять текст запроса в соответствии с отборами, но не будут вылазить сюрпризы от оптимизатора, потому что он во вложенные запросы не лезет.
2) правильно настроить саму схему компановки.
Для диагностики Вам нужно получить исполняемый текст запроса, при помощи инструментров разработчика, тем более вы в них работаете, одна из верхних кнопок показывает запрос, который фактически выполняется, а не был сделан разработчиком.иногда там такие чудеса получаются. После этого Вы сами быстро сможете решить эту задачу, поняв откуда растут ноги.
3) Сделать 2 набора данных и связать их, опять же из практики связь наборов работает корректнее чем соединение пакетов с группировкой в одном из них.
СГРУППИРОВАТЬ ПО
Вт1.ПериодДень
Неоднократно было замечено некорректное поведение оптимизатора компановщика на полях группировки в пакетных запросах,
Так же возможно у поля период не указан метод дополнения день просто выводится поле период, без дополнения, в настройках колонки.
Как вариант, в конструкторе компановки не указана роль период у поля периоддень.
Период секунда нужно вытаскивать когда Вам нужен период Регистратор или Период запись. На период День оно не оказывает воздействия.
3 пути:
1) поместить все во вложенные запросы, упадет оптимальность, потому что оптимизатор не будет изменять текст запроса в соответствии с отборами, но не будут вылазить сюрпризы от оптимизатора, потому что он во вложенные запросы не лезет.
2) правильно настроить саму схему компановки.
Для диагностики Вам нужно получить исполняемый текст запроса, при помощи инструментров разработчика, тем более вы в них работаете, одна из верхних кнопок показывает запрос, который фактически выполняется, а не был сделан разработчиком.иногда там такие чудеса получаются. После этого Вы сами быстро сможете решить эту задачу, поняв откуда растут ноги.
3) Сделать 2 набора данных и связать их, опять же из практики связь наборов работает корректнее чем соединение пакетов с группировкой в одном из них.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот