Я считаю, что стоит. Решения в этой ветке не смотрел, но в ветке 3.2 есть мое решение, в котором используется запрос, решающий эту проблему.
Code
ВЫБРАТЬ
НачислениеЗарплатыОсновныеНачисления.Сотрудник,
НачислениеЗарплатыОсновныеНачисления.Подразделение,
НачислениеЗарплатыОсновн ыеНачисления.ВидРасчета,
НачислениеЗарплатыОсновныеНачисления.ДатаНачала,
КОНЕЦПЕРИОДА(НачислениеЗарплатыОсновныеНачисления.ДатаОкончани я, ДЕНЬ) КАК ДатаОкончания,
НачислениеЗарплатыОсновныеНачисления.График
ПОМЕСТИТЬ Начисления
ИЗ
Документ.НачислениеЗарплаты.ОсновныеНачисления КАК НачислениеЗарплатыОсновныеНачисления
ГДЕ
НачислениеЗарплатыОсновныеНачисления.Ссылка = &Ссылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВложенныйЗапрос.Сотрудник,
ВложенныйЗапрос.Подразделение,
ВложенныйЗапрос.Оклад,
ВложенныйЗапрос.Период
ПОМЕСТИТЬ Оклады
ИЗ
(ВЫБРАТЬ
СведенияОСотрудникахСрезПоследних.Сотрудник КАК Сотрудник,
СведенияОСотрудникахСрезПоследних.Подразделение КАК Подразделение,
СведенияОСотрудникахСрезПоследних.Оклад КАК Оклад,
&ПериодРегистрации КАК Период
ИЗ
РегистрСведений.СведенияОСотрудниках.СрезПоследних(
&ПериодРегистрации,
(Сотрудник, Подразделение) В
(ВЫБРАТЬ РАЗЛИЧНЫЕ
т.Сотрудник,
т.Подразделение
ИЗ
начисления КАК т
ГДЕ
т.ВидРасчета = ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисления.Оклад))) КАК СведенияОСотрудникахСрезПоследних
ОБЪЕДИНИТЬ
ВЫБРАТЬ ПЕРВЫЕ 1
СведенияОСотрудниках.Сотрудник,
СведенияОСотрудниках.Подразделение,
СведенияОСотрудниках.Оклад,
СведенияОСотрудниках.Период
И З
РегистрСведений.СведенияОСотрудниках КАК СведенияОСотрудниках
ГДЕ
СведенияОСотрудниках.Период > &ПериодРегистрации
И СведенияОСотрудниках.Период <= &КонецПериода) КАК ВложенныйЗапрос
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Начисления.Сотрудник,
Начисления.Подразделение,
Начисления.ВидРасчета,
Начисления.ДатаНачала,
Начисления.ДатаОкончания,
О клады.Оклад,
Оклады.Период КАК Период
ПОМЕСТИТЬ НачисленияСОкладами
ИЗ
Начисления КАК Начисления
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Оклады КАК Оклады
ПО Начисления.Сотрудник = Оклады.Сотрудник
И Начисления.Подразделение = Оклады.Подразделение
И (Начисления.ВидРасчета = ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисления.Оклад))
И (Оклады.Период МЕЖДУ Начисления.ДатаНачала И Начисления.ДатаОкончания)
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
НачисленияСОкладами.Сотрудник,
НачисленияСОкладами.Подразделение,
НачисленияСОкладами.ВидРасчета,
НачисленияСОкладами.Пери од КАК ДатаНачала,
ВЫБОР
КОГДА НачисленияСОкладами1.Период ЕСТЬ NULL
ТОГДА НачисленияСОкладами.ДатаОкончания
ИНАЧЕ ДОБАВИТЬКДАТЕ(НачисленияСОкладами1.Период, СЕКУНДА, -1)
КОНЕЦ КАК ДатаОкончания,
НачисленияСОкладами.Оклад
ПОМЕСТИТЬ ПериодыДействияОкладов
ИЗ
НачисленияСОкладами КАК НачисленияСОкладами
ЛЕВОЕ СОЕДИНЕНИЕ НачисленияСОкладами КАК НачисленияСОкладами1
ПО НачисленияСОкладами.Сотрудник = НачисленияСОкладами1.Сотрудник
И НачисленияСОкладами.Подразделение = НачисленияСОкладами1.Подразделение
И НачисленияСОкладами.ВидРасчета = НачисленияСОкладами1.ВидРасчета
И НачисленияСОкладами.Период < НачисленияСОкладами1.Период
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Начисления.Сотрудник,
Начисления.Подразделение,
Начисления.ВидРасчета,
ВЫБОР
КОГДА Начисления.ДатаНачала > ЕСТЬNULL(ПериодыДействияОкладов.ДатаНачала, ДАТАВРЕМЯ(1, 1, 1))
ТОГДА Начисления.ДатаНачала
ИНАЧЕ ПериодыДействияОкладов.ДатаНачала
КОНЕЦ КАК ПериодДействияНачало,
ВЫБОР
КОГДА Начисления.ДатаОкончания < ЕСТЬNULL(ПериодыДействияОкладов.ДатаОкончания, ДАТАВРЕМЯ(3999, 11, 1))
ТОГДА Начисления.ДатаОкончания
ИНАЧЕ ПериодыДействияОкладов.ДатаОкончания
КОНЕЦ КАК ПериодДействияКонец,
Начисления.График,
ПериодыДействияОкладов.Оклад,
ПроцентПремииСрезПоследних.Процент
ИЗ
Начисления КАК Начисления
ЛЕВОЕ СОЕДИНЕНИЕ ПериодыДействияОкладов КАК ПериодыДействияОкладов
ПО Начисления.Сотрудник = ПериодыДействияОкладов.Сотрудник
И Начисления.Подразделение = ПериодыДействияОкладов.Подразделение
И Начисления.ВидРасчета = ПериодыДействияОкладов.ВидРасчета
И (ПериодыДействияОкладов.ДатаНачала >= Начисления.ДатаНачала
И ПериодыДействияОкладов.ДатаНачала <= Начисления.ДатаОкончания
ИЛИ ПериодыДействияОкладов.ДатаОкончания >= Начисления.ДатаНачала
И ПериодыДействияОкладов.ДатаОкончания <= Начисления.ДатаОкончания),
РегистрСведений.ПроцентПремии.СрезПоследних(&ПериодРегистрации, ) КАК ПроцентПремииСрезПоследних