Запрос
Заявки и договоры находятся в одной таблице — Справочник.ДокументыПредприятия и связаны между собой через таблицу РегистрСведений.СвязиОбъектов.
Кроме того, для заявок и договоров подтягиваются некоторые допреквизиты из Справочник.ДокументыПредприятия.ДополнительныеРеквизиты. Реализовал это с использованием трех промежуточных таблиц тДОПРЕКВИЗИТЫзаявки, тДОПРЕКВИЗИТЫдоговора, тДОГОВОРсДОПРЕКВИЗИТАМИ.
Рецепт транспонирования таблицы допреквизитов подглядел здесь https://infostart.ru/1c/articles/1342853
ВЫБРАТЬ
ДополнительныеРеквизиты.Ссылка,
МАКСИМУМ(
ВЫБОР
КОГДА ДополнительныеРеквизиты.Свойство.Наименование = "ИФО"
ТОГДА ДополнительныеРеквизиты.Значение
ИНАЧЕ NULL
КОНЕЦ
) КАК ИФО,
МАКСИМУМ(
ВЫБОР
КОГДА ДополнительныеРеквизиты.Свойство.Наименование = "Тема ГЗ"
ТОГДА ДополнительныеРеквизиты.Значение
ИНАЧЕ NULL
КОНЕЦ
) КАК ТемаГЗ,
МАКСИМУМ(
ВЫБОР
КОГДА ДополнительныеРеквизиты.Свойство.Наименование = "КОСГУ расширенное"
ТОГДА ДополнительныеРеквизиты.Значение
ИНАЧЕ NULL
КОНЕЦ
) КАК КОСГУрасширенное
ПОМЕСТИТЬ тДОПРЕКВИЗИТЫзаявки
ИЗ
Справочник.ДокументыПредприятия.ДополнительныеРеквизиты КАК ДополнительныеРеквизиты
ГДЕ ДополнительныеРеквизиты.Свойство.Наименование В
(
"ИФО",
"Тема ГЗ",
"КОСГУ расширенное"
)
СГРУППИРОВАТЬ ПО
ДополнительныеРеквизиты.Ссылка;
ВЫБРАТЬ
ДополнительныеРеквизиты.Ссылка,
МАКСИМУМ(
ВЫБОР
КОГДА ДополнительныеРеквизиты.Свойство.Наименование = "Порядок оплаты"
ТОГДА ДополнительныеРеквизиты.Значение
ИНАЧЕ NULL
КОНЕЦ
) КАК ПорядокОплаты,
МАКСИМУМ(
ВЫБОР
КОГДА ДополнительныеРеквизиты.Свойство.Наименование = "Номер извещения"
ТОГДА ДополнительныеРеквизиты.Значение
ИНАЧЕ NULL
КОНЕЦ
) КАК НомерИзвещения
ПОМЕСТИТЬ тДОПРЕКВИЗИТЫдоговора
ИЗ
Справочник.ДокументыПредприятия.ДополнительныеРеквизиты КАК ДополнительныеРеквизиты
ГДЕ ДополнительныеРеквизиты.Свойство.Наименование В
(
"Порядок оплаты",
"Номер извещения"
)
СГРУППИРОВАТЬ ПО
ДополнительныеРеквизиты.Ссылка;
ВЫБРАТЬ
ДоговорНаЗакупку.Ссылка КАК СсылкаНаДоговор,
ДоговорНаЗакупку.ДатаРегистрации КАК ДатаРегистрацииДоговора,
ДоговорНаЗакупку.РегистрационныйНомер КАК РегистрационныйНомерДоговора,
ДоговорНаЗакупку.Наименование КАК НаименованиеДоговора,
тДОПРЕКВИЗИТЫдоговора.ПорядокОплаты КАК ПорядокОплаты,
тДОПРЕКВИЗИТЫдоговора.НомерИзвещения КАК НомерИзвещения
ПОМЕСТИТЬ
тДОГОВОРсДОПРЕКВИЗИТАМИ
ИЗ
тДОПРЕКВИЗИТЫдоговора КАК тДОПРЕКВИЗИТЫдоговора
ПРАВОЕ СОЕДИНЕНИЕ Справочник.ДокументыПредприятия КАК ДоговорНаЗакупку
ПО (тДОПРЕКВИЗИТЫдоговора.Ссылка = ДоговорНаЗакупку.Ссылка)
ГДЕ
ДоговорНаЗакупку.ВидДокумента.Наименование = "СТАРЫЙ Договор на закупку";
ВЫБРАТЬ
ЗаявкиНаЗакупку.Ссылка КАК СсылкаНаЗаявку,
ЗаявкиНаЗакупку.Наименование КАК НаименованиеЗаявки,
ЗаявкиНаЗакупку.Подготовил КАК ПодготовилЗаявку,
ЗаявкиНаЗакупку.ДатаРегистрации КАК ДатаРегистрацииЗаявки,
ЗаявкиНаЗакупку.РегистрационныйНомер КАК РегистрационныйНомерЗаявки,
тДОПРЕКВИЗИТЫзаявки.ИФО,
тДОПРЕКВИЗИТЫзаявки.ТемаГЗ,
тДОПРЕКВИЗИТЫзаявки.КОСГУрасширенное КАК КОСГУ,
Договор.СсылкаНаДоговор КАК СсылкаНаДоговор,
Договор.ДатаРегистрацииДоговора КАК ДатаРегистрацииДоговора,
Договор.РегистрационныйНомерДоговора КАК РегистрационныйНомерДоговора,
Договор.НаименованиеДоговора КАК НаименованиеДоговора,
Договор.НомерИзвещения КАК НомерИзвещения,
Договор.ПорядокОплаты КАК ПорядокОплаты
ИЗ
тДОПРЕКВИЗИТЫзаявки КАК тДОПРЕКВИЗИТЫзаявки
ПРАВОЕ СОЕДИНЕНИЕ Справочник.ДокументыПредприятия КАК ЗаявкиНаЗакупку
ПО (тДОПРЕКВИЗИТЫзаявки.Ссылка = ЗаявкиНаЗакупку.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СвязиОбъектов КАК СвязиОбъектов
ПО (ЗаявкиНаЗакупку.Ссылка = СвязиОбъектов.Объект)
ЛЕВОЕ СОЕДИНЕНИЕ тДОГОВОРсДОПРЕКВИЗИТАМИ КАК Договор
ПО (СвязиОбъектов.СвязанныйОбъект = Договор.СсылкаНаДоговор)
ГДЕ
ЗаявкиНаЗакупку.ВидДокумента.Наименование = "Заявка на закупку" И
ЗаявкиНаЗакупку.ДатаРегистрации МЕЖДУ &ДатаНачала И &ДатаОкончания
Группировка
Для создания иерархии «Заявка->Список связанных договоров» в настройках добавил группировку без иерархии по полю СсылкаНаЗаявку. А для того, чтобы заявки выводились в хронологическом порядке, в группировку добавил еще и поле ДатаРегистрацииЗаявки (с типом без дополнения).
Сортировка
Сортировка по дате сгруппированных по заявкам записей может работать только если в группировку добавлено поле, по которому делается сортировка. Поэтому в группировку добавил поле ДатаРегистрацииЗаявки (с типом без дополнения). Во вкладке Сортировка настроек добавил поле ДатаРегистрацииЗаявки.
Период
Как установить период в отчете смотрел здесь — https://its.1c.ru/db/metod8dev/content/1555/hdoc, но материала в этой статье недостаточно, чтобы я смог реализовать функционал. Недостающую информацию брал здесь: https://hzit.ru/index.php/k2-categories/1c/item/257-dobavleniya-otbora-parametra-daty-v-otchet-skd?ysclid=lwefvjpqg8151093046
Форматирование
Чтобы не отображалось поле даты в строке группировки я в нижней части настроек переключил группу вкладок с «Отчет» на «СсылкаНаЗаявку, ДатаРегистрацииЗаявки». Во вкладке «Выбранные поля» отключил «Авто» и добавил «Ссылка на заявку».
В вкладке «Условное форматирование» настройки «Отчет» настроил шрифт для «СсылкаНаЗаявку.Заполнено».
Отформатировал дату регистрации договора. Вкладка «наборы данных», в колонке «выражение представления» написал Формат(ДатаРегистрацииДоговора, «ДФ=dd.MM.yyyy»)
В перспективе надо бы объединить одинаковые ячейки договоров по рецепту из https://www.youtube.com/watch?v=dIv-i9ejn04