Задача
Получить курс валюты на дату каждого документа «Поступление товаров и услуг» из указанного периода.
Решение
Необходимые данные будем получать в запросе при помощи ТЕТА-соединения, действия в запросе прокомментированы.
// Получим таблицу ВТ_ПТиУ с полями "Ссылка", "Дата", "ДатаЗаписи" за указанный период // где: // "ДатаЗаписи" это дата документа на начало дня ВЫБРАТЬ РАЗРЕШЕННЫЕ ПоступлениеТоваровУслуг.Ссылка КАК Ссылка, ПоступлениеТоваровУслуг.Дата, НАЧАЛОПЕРИОДА(ПоступлениеТоваровУслуг.Дата, ДЕНЬ) КАК ДатаЗаписи ПОМЕСТИТЬ ВТ_ПТиУ ИЗ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг ГДЕ ПоступлениеТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода И ПоступлениеТоваровУслуг.Проведен И НЕ ПоступлениеТоваровУслуг.ПометкаУдаления ; //////////////////////////////////////////////////////////////////////////////// // Получим таблицу ВТ_ЗаписиРегистра левым соединением РС.КурсыВалют и ВТ_ПТиУ // по условию ВТ_ПТиУ.ДатаЗаписи >= КурсыВалют.Период и отбором по указанной валюте // с полями "ДатаЗаписи", "Период", "Валюта" // где: // "Период" это максимум поля "Период" из РС.КурсыВалют // // Для получения уникальных записей и получения максимальной даты // группируем таблицу по полям "ДатаЗаписи" И "Валюта" ВЫБРАТЬ ВТ_ПТиУ.ДатаЗаписи, МАКСИМУМ(КурсыВалют.Период) КАК Период, КурсыВалют.Валюта ПОМЕСТИТЬ ВТ_ЗаписиРегистра ИЗ ВТ_ПТиУ КАК ВТ_ПТиУ ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют ПО ВТ_ПТиУ.ДатаЗаписи >= КурсыВалют.Период И (КурсыВалют.Валюта = &Валюта) СГРУППИРОВАТЬ ПО ВТ_ПТиУ.ДатаЗаписи, КурсыВалют.Валюта ; //////////////////////////////////////////////////////////////////////////////// // Получим итоговую таблицу соединением РС.КурсыВалют и ВТ_ЗаписиРегистра по периоду и валюте // с полями "ДатаЗаписи", "Валюта", "Курс" ВЫБРАТЬ ВТ_ЗаписиРегистра.ДатаЗаписи КАК ДатаЗаписи, КурсыВалют.Валюта, КурсыВалют.Курс ИЗ ВТ_ЗаписиРегистра КАК ВТ_ЗаписиРегистра ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют ПО ВТ_ЗаписиРегистра.Период = КурсыВалют.Период И ВТ_ЗаписиРегистра.Валюта = КурсыВалют.Валюта УПОРЯДОЧИТЬ ПО ДатаЗаписи
Спасибо, быстрый и правильный ответ.