Консультация Беларусь
Консультация Россия
Блог

Срез последних в регистре сведений на каждую дату

Исходные данные:

1. Учебная конфигурация. Платформа 8.3.19.1150

2. Документ «Счет на оплату»



3. Регистр сведений «Учетная политика организаций»
Периодичность: в пределах года
Режим записи: независимый



Постановка задачи: необходимо в запросе получить список документов «Счет на оплату» и по каждому документу получить «Размер оптовой надбавки», которая хранится в регистре сведений «Учетная политика организаций» в разрезе организаций. Учетная политика может меняться раз в год.

Сложность заключается в том, что при получении среза последних в регистр сведений мы не можем передать список дат. Можно передать только одно значение.


Решение задачи:

Для решения будем использовать следующий запрос:


Пояснение:

1. Получаем список документов «Счет на оплату»

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


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


Ссылка для скачивания:

Скачать запрос можно по ссылке
Запросы