КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, ОтборПересчета.ПолучитьНастройки(),,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
СхемаКомпоновкиДанных тянется из макета документа. После второй строки представленного кода запрос в получившемся макете содержит левое поле выборки, которого нет в оригинальном запросе схемы документа, а также левое условие, которое тоже отсутствует в оригинальной схеме. Я уже всю голову сломал откуда они там берутся. Из-за этого получаемые данные не соответствуют ожидаемым и не сходятся с данными из консоли запроса.
Пример оригинального запроса
ВЫБРАТЬ
ВЫБОР
КОГДА ВТ_Предварительная.Номенклатура ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ ВТ_Предварительная.Количество
КОНЕЦ КАК Количество,
ВЫБОР
КОГДА ВТ_Предварительная.Номенклатура ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ ВТ_Предварительная.КоличествоУпаковок
КОНЕЦ КАК КоличествоУпаковок,
ВЫБОР
КОГДА ВТ_Предварительная.Номенклатура ЕСТЬ NULL
ТОГДА кпИнвентаризацияТоваровТовары.Серия
ИНАЧЕ ВТ_Предварительная.Серия
КОНЕЦ КАК Серия,
ЕСТЬNULL(ВТ_Предварительная.Номенклатура, кпИнвентаризацияТоваровТовары.Номенклатура) КАК Номенклатура,
ВЫБОР
КОГДА ВТ_Предварительная.Номенклатура ЕСТЬ NULL
ТОГДА кпИнвентаризацияТоваровТовары.Характеристика
ИНАЧЕ ВТ_Предварительная.Характеристика
КОНЕЦ КАК Характеристика,
ВЫБОР
КОГДА ВТ_Предварительная.Номенклатура ЕСТЬ NULL
ТОГДА кпИнвентаризацияТоваровТовары.Назначение
ИНАЧЕ ВТ_Предварительная.Назначение
КОНЕЦ КАК Назначение,
ВЫБОР
КОГДА ВТ_Предварительная.Номенклатура ЕСТЬ NULL
ТОГДА кпИнвентаризацияТоваровТовары.СтатусУказанияСерий
ИНАЧЕ ВТ_Предварительная.СтатусУказанияСерий
КОНЕЦ КАК СтатусУказанияСерий,
ВЫБОР
КОГДА ВТ_Предварительная.Номенклатура ЕСТЬ NULL
ТОГДА кпИнвентаризацияТоваровТовары.Цена
ИНАЧЕ ВТ_Предварительная.Цена
КОНЕЦ КАК Цена,
ВЫБОР
КОГДА ВТ_Предварительная.Номенклатура ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ ВТ_Предварительная.Сумма
КОНЕЦ КАК Сумма,
ВЫБОР
КОГДА ВТ_Предварительная.Номенклатура ЕСТЬ NULL
ТОГДА кпИнвентаризацияТоваровТовары.КоличествоФакт
ИНАЧЕ ВТ_Предварительная.КоличествоФакт
КОНЕЦ КАК КоличествоФакт,
ВЫБОР
КОГДА ВТ_Предварительная.Номенклатура ЕСТЬ NULL
ТОГДА кпИнвентаризацияТоваровТовары.КоличествоУпаковокФакт
ИНАЧЕ ВТ_Предварительная.КоличествоУпаковокФакт
КОНЕЦ КАК КоличествоУпаковокФакт,
ВЫБОР
КОГДА ВТ_Предварительная.Номенклатура ЕСТЬ NULL
ТОГДА кпИнвентаризацияТоваровТовары.СуммаФакт
ИНАЧЕ ВТ_Предварительная.СуммаФакт
КОНЕЦ КАК СуммаФакт
ИЗ
ВТ_Предварительная КАК ВТ_Предварительная
ПОЛНОЕ СОЕДИНЕНИЕ Документ.кпИнвентаризацияТоваров.Товары КАК кпИнвентаризацияТоваровТовары
ПО ВТ_Предварительная.Номенклатура = кпИнвентаризацияТоваровТовары.Номенклатура
И ВТ_Предварительная.Характеристика = кпИнвентаризацияТоваровТовары.Характеристика
ГДЕ
кпИнвентаризацияТоваровТовары.Ссылка = &ТекущийДокумент
Показать
Пример получаемого запроса
ВЫБРАТЬ
ВЫБОР
КОГДА ВТ_Предварительная.Номенклатура ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ ВТ_Предварительная.Количество
КОНЕЦ КАК Количество,
ВЫБОР
КОГДА ВТ_Предварительная.Номенклатура ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ ВТ_Предварительная.КоличествоУпаковок
КОНЕЦ КАК КоличествоУпаковок,
ВЫБОР
КОГДА ВТ_Предварительная.Номенклатура ЕСТЬ NULL
ТОГДА кпИнвентаризацияТоваровТовары.Серия
ИНАЧЕ ВТ_Предварительная.Серия
КОНЕЦ КАК Серия,
ЕСТЬNULL(ВТ_Предварительная.Номенклатура, кпИнвентаризацияТоваровТовары.Номенклатура) КАК Номенклатура,
ВЫБОР
КОГДА ВТ_Предварительная.Номенклатура ЕСТЬ NULL
ТОГДА кпИнвентаризацияТоваровТовары.СтатусУказанияСерий
ИНАЧЕ ВТ_Предварительная.СтатусУказанияСерий
КОНЕЦ КАК СтатусУказанияСерий,
ВЫБОР
КОГДА ВТ_Предварительная.Номенклатура ЕСТЬ NULL
ТОГДА кпИнвентаризацияТоваровТовары.Цена
ИНАЧЕ ВТ_Предварительная.Цена
КОНЕЦ КАК Цена,
ВЫБОР
КОГДА ВТ_Предварительная.Номенклатура ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ ВТ_Предварительная.Сумма
КОНЕЦ КАК Сумма,
ВЫБОР
КОГДА ВТ_Предварительная.Номенклатура ЕСТЬ NULL
ТОГДА кпИнвентаризацияТоваровТовары.КоличествоФакт
ИНАЧЕ ВТ_Предварительная.КоличествоФакт
КОНЕЦ КАК КоличествоФакт,
ВЫБОР
КОГДА ВТ_Предварительная.Номенклатура ЕСТЬ NULL
ТОГДА кпИнвентаризацияТоваровТовары.КоличествоУпаковокФакт
ИНАЧЕ ВТ_Предварительная.КоличествоУпаковокФакт
КОНЕЦ КАК КоличествоУпаковокФакт,
ВЫБОР
КОГДА ВТ_Предварительная.Номенклатура ЕСТЬ NULL
ТОГДА кпИнвентаризацияТоваровТовары.СуммаФакт
ИНАЧЕ ВТ_Предварительная.СуммаФакт
КОНЕЦ КАК СуммаФакт,
(ЕСТЬNULL(ВТ_Предварительная.Номенклатура, кпИнвентаризацияТоваровТовары.Номенклатура)).Наименование КАК Поле1
ИЗ
ВТ_Предварительная КАК ВТ_Предварительная
ПОЛНОЕ СОЕДИНЕНИЕ Документ.кпИнвентаризацияТоваров.Товары КАК кпИнвентаризацияТоваровТовары
ПО ВТ_Предварительная.Номенклатура = кпИнвентаризацияТоваровТовары.Номенклатура
И ВТ_Предварительная.Характеристика = кпИнвентаризацияТоваровТовары.Характеристика
ГДЕ
кпИнвентаризацияТоваровТовары.Ссылка = &ТекущийДокумент
И ВЫБОР
КОГДА ВТ_Предварительная.Номенклатура ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ ВТ_Предварительная.Количество
КОНЕЦ <> &П
Показать
Появилось Поле1, левое условие и левый параметр. Откуда они могли взяться?
(1) "Поле1" вероятнее всего было добавлено для формирования представления номенклатуры. Возможно, наименование участвует в выражении представления.
Условие же могло появиться при наличии установленного отбора в настройках СКД по полю "Количество".
(1) "Поле1" вероятнее всего было добавлено для формирования представления номенклатуры. Возможно, наименование участвует в выражении представления.
Условие же могло появиться при наличии установленного отбора в настройках СКД по полю "Количество".
4.
SedovSU@mail.ru
29826.03.19 10:11 Сейчас в теме
(ЕСТЬNULL(ВТ_Предварительная.Номенклатура, кпИнвентаризацияТоваровТовары.Номенклатура)).Наименование КАК Поле1 Это поле возможно появилось ввиду того что вы добавили сортировку в настройках схемы, а левое условие и параметр, возможно что у вас для поля количество установлена роль на игнорирование пустых значений. Может из за этого все было дописано. Обратите на это внимание
5.
SedovSU@mail.ru
29826.03.19 10:13 Сейчас в теме
То есть дописание запроса в СКД связано с вашими какими то настройками в самой компоновке. Посмотрите например на количество, может где то для него что то установили дополнительно и про наименование так же