Программирую внешнюю печатную форму. Смысл в том, чтобы учитывать расход по номенклатуре. Но не просто за период, а за определенные даты за период. Т.е. есть период в месяц, за этот месяц, предположим, 10 отпусков товаров. Т.е. поле расход "размножается" по количеству таких дат (отпусков товара) за месяц. "Размножение" шапки я благополучно сделал (скрин "Реестры").
Далее необходимо заполнить тело таблицы. Формирую запрос, который выводит мне итоговый результат по каждой номенклатуре, а во второй группе находит те даты, за которые по данной номенклатуре был отпуск. Скрин "Результат запроса".
Теперь, если я буду заполнять параметр области с реестрами (пустая область на первом скрине) предположим для номенклатуры из скриншота, то при обходе результатов второй группировки будет добавлено 3 ячейки подряд, не сопоставимые с датами в шапке таблицы.

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

Сам запрос:

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

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

СГРУППИРОВАТЬ ПО
 втРегистр.Период,
 втРегистр.АналитикаУчетаНоменклатурыНоменклатура,
 Номенклатура.Наименование

УПОРЯДОЧИТЬ ПО
 Наименование
ИТОГИ ПО
 Наименование

Заранее спасибо за ответы. PS программирую недавно)
---
Похоже, топик-стартеру нужен кросс-отчёт. Тогда нужно читать про ОбходРезультатаЗапроса.ПоГруппировкам.
---
Не очень понятно, что надо.
Но если я правильно понял, то просто добавить в Итоги поле Период и при обходе второй группировки присоединять

П.с: В первом запросе лучше добавить условие не в конце, а в параметры виртуальной таблицы.
И получать остатки можно в первом запросе
---
Спасибо! С оптимизацией и параметрами виртуальной таблицы разберусь попозже)

Что нужно:
У макета есть шапка таблицы и тело таблицы. Есть область с реестрами (на первом скриншоте видно, что у этой области заполняется шапка таблицы, а тело пустое. В шапке под ячейкой "Расход (№ реестра, дата)" - "размножаются" ячейки в таком количестве, когда был отпуск товара в отделение (т.е. если посмотреть на скриншот отпуск был 5, 7, 8, 11, 12 и 15 числа).
Переходим к заполнению тела. Здесь во втором скриншоте пример номенклатуры и видно, что отпуск этой номенклатуры был 5, 12 и 15 числа. А остальных значащих дат нет. 7, 8 и 11 число не заполнится. Отсюда вопрос, как привести результат запроса к виду, как на 3 скриншоте?

Есть запрос, благодаря которому я получаю все значащие даты за период и заполняю шапку области с Расходом:

```1c
    ВЫБРАТЬ
    НАЧАЛОПЕРИОДА(ОтпускТоваровВОтделение.Дата, ДЕНЬ) КАК Дата
    ИЗ
    Документ.ОтпускТоваровВОтделение КАК ОтпускТоваровВОтделение
    ГДЕ
    ОтпускТоваровВОтделение.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания

    СГРУППИРОВАТЬ ПО
    НАЧАЛОПЕРИОДА(ОтпускТоваровВОтделение.Дата, ДЕНЬ)
```

Его результат - все даты, когда были отпуски в отделение, т.е. 5,7,8,11,12,15 числа.

Пробовал левым соединением приклеить к нему результат прошлого запроса, все даты все равно не выводятся
---
ОтпускТоваровВОтделение является регистратором себестоимости?
---
является регистратором
Да
---
тогда в первом запросе у Вас уже есть данные регистратору

В первом запросе получить поле Регистратор тогда, проверить на тип документа
Во втором запросе добавить в Итоги Регистратор

Обход запроса делать по группировкам:
Сначала по номенклатуре, потом по регистратору (при обходе по регистратору, присоединять к табличному документу колонки)
---
Потрясающий талант. Написать заголовок про ВПФ, а в теле сообщения написать про недостаток работы с макетами.. .
---
2. FatPanzer 15 19.10.21 10:44 Сейчас в теме
Потрясающий талант. Написать заголовок про ВПФ, а в теле сообщения написать про недостаток работы с макетами.. .

Научите как правильно, я обязательно исправлю. Главное, чтобы не нашелся следующий, кого не устроит ваш заголовок ;)
---
Правильно так:
Заголовок: Строю дом
Сообщение: Какой нож купить для правильной нарезки линолеума?
---
акой нож купить для правильной нарезки линолеум
Ок, людей с чувством юмора я уважаю!) А по существу есть что ответить?)
---
Я честно говорят так и не понял что надо, два раза перечитал)
Предлагаю автору на картинке показать что есть в таблице и что хотим видеть в отчете и что получается
---
но говорят так и не понял что надо, два раза перечитал)
Предлагаю автору на картинке показать что есть в таблице и что хотим видет
У макета есть шапка таблицы и тело таблицы. Есть область с реестрами (на первом скриншоте видно, что у этой области заполняется шапка таблицы, а тело пустое. В шапке под ячейкой "Расход (№ реестра, дата)" - "размножаются" ячейки в таком количестве, когда был отпуск товара в отделение (т.е. если посмотреть на скриншот отпуск был 5, 7, 8, 11, 12 и 15 числа).
Переходим к заполнению тела. Здесь во втором скриншоте пример номенклатуры и видно, что отпуск этой номенклатуры был 5, 12 и 15 числа. А остальных значащих дат нет. 7, 8 и 11 число не заполнится. Отсюда вопрос, как привести результат запроса к виду, как на 3 скриншоте?
---
Вот есть результат запроса (скрин 1)
Есть макет с областью, который сейчас заполнится вот так (скрин 2)
А надо вот так (скрин 3)
---
1. Пользуйтесь тегами для кода.
2. Вам нужен вывод по всей номенклатуре, что есть в справочнике? Вот прям по всей? И с помеченными на удаление тоже?
3. Выбираем обороты по регистратору, а потом приводим периоды к началу дня и группируем. В чём смысл регистратора?
4. Ну и не нужно выводить значения куда придётся, нужно индекс присоединяемой колонки учитывать для заполнения корректного значения. Соответствие, к примеру, в помощь.
5. Как вариант перестроить запрос, для первой полученной таблицы (которая втРегистр) сделать полное соединение самой на себя с выборкой по двум полям Период и Номенклатура и флагом Различные (чтоб без группировки). Потом полученную таблицу еще раз соединить левым соединением с первичной таблицей. Будут все даты с привязкой ко всей номенклатуре в первой таблице. (Оптимизация: полное соединение делать после выборки различных по Период и Номенклатура).
---
Я тебя могу однозначна сказать, надо переделывать все.
Скорее всего ты взял за основу имеющийся отчет, но его конструкция вывода тебе вряд ли подойдет.
---
Похоже, топик-стартеру нужен кросс-отчёт. Тогда нужно читать про ОбходРезультатаЗапроса.ПоГруппировкам.