3. Регистр сведений «Учетная политика организаций» Периодичность: в пределах года Режим записи: независимый
Постановка задачи: необходимо в запросе получить список документов «Счет на оплату» и по каждому документу получить «Размер оптовой надбавки», которая хранится в регистре сведений «Учетная политика организаций» в разрезе организаций. Учетная политика может меняться раз в год.
Сложность заключается в том, что при получении среза последних в регистр сведений мы не можем передать список дат. Можно передать только одно значение.
Решение задачи:
Для решения будем использовать следующий запрос:
Пояснение:
1. Получаем список документов «Счет на оплату»
2. Для каждого документа «Счет на оплату» делаем левое соединение с регистром сведений «Учетная политика организаций». При этом в регистре сведений ищем все записи с датой, меньшей или равной дате документа, и организацией, равной организации в документе. Таким образом получаем несколько записей по регистру сведений. Дальше группируем результат и берем максимальную запись по периоду в регистре. Таким образом эмулируем срез последних. На дату каждого документа получаем самую последнюю запись в регистре сведений и помещаем результат во временную таблицу «ВТ_СрезПоследнихНаКаждуюДату_1»:
3. Дальше выбираем данные из временной таблицы «ВТ_СрезПоследнихНаКаждуюДату_1» и снова делаем левое соединение с регистром сведений «Учетная политика организаций» по организации и по периоду, который мы получили во временной таблице «ВТ_СрезПоследнихНаКаждуюДату_1». Таким образом в одном запросе получаем срез последних на каждую дату документа: