Преамбула, по собственному опыту я понимаю что использование условий отбора внутри параметра виртуальной таблицы эффективнее, чем отбор наложенный "сверху" результата.
Ну т.е.
РегистрСведений.СрезПоследних(<Дата>,Измерение1 В СписокИзмерений1)
лучше, чем
РегистрСведений.СрезПоследних(<Дата>) ГДЕ Измерение1 В СписокИзмерений1
ну или
РегистрСведений.СрезПоследних(<Дата>)
ВНУТРЕННЕЕ СОЕДИНЕНИЕ СписокИзмерений1 ПО Измерение1 = СписокИзмерений1.Измерение1)
Но сталкиваясь с кодом написаным 1С в своих операциях я нахожу обратное явление. Ну например в "1С Бух. 2.0" при начислении амортизации список ОС которые подлежат амортизации по НУ считывается во врем. таблицу и потом срезы всех регистров соединяются с этим списком внутренним соединением.
Собственно думая над вопросом, а переделать или нет на условие в параметре, я задумался над другим вопросом, а где этих ОС будет больше, в списке амортизируемых или (например) в регистре местонахождения. Однозначного ответа не нашел.
Отсюда я задумался, а стоит ли переделывать запрос. Кое-какие аргументы в защиту 1С крутятся.
Ну например, в регистре сведений может быть много строк (за разные периоды), срез последних на дату вернет только таблицу актуальных записей которых будет меньше чем амортизируемых ОС, и внутреннее соединение этой таблицы со списком возможно будет эффективнее чем условие IN в параметре.
К сожалению на реальных объемах тест будет только в сентябре, счас остается только "думать и догадываться".
Пы.сы. а буквально парой процедур ниже, в методе РассчитатьАмортизациюНМА сбор данных уже идет с применением условия в качестве параметра ВТ.

Если я несу чушь, и вы сомневаетесь в моем психическом и умственном здоровье - высказывайтесь. Но меня больше интересует вопрос, а стоит ли переделать.