Элексир, работать будет, но для 8.Х это идеологически неправильный метод, т.к. перебор будет на стороне клиента (если специально не сделать общий модуль с серверной обработкой), а 8.Х клиент-серверная и правильно ресурсоемкие задачи выполнять на сервере.
Gunslinger, ИМХО нагляднее всего (не в ущерб правильности решения) сделать запросом. Получится что-то вроде:
ТекстЗапроса=
	"ВЫБРАТЬ
	|	НазваниеСправочника.Ссылка,
	|	НазваниеСправочника.Реквизит1,
	|	НазваниеСправочника.Реквизит2,
	|	НазваниеСправочника.Реквизит3
	|ИЗ
	|	Справочник.НазваниеСправочника КАК НазваниеСправочника
	|ГДЕ
	|	(НазваниеСправочника.Реквизит4 = &Параметр4)
	|	И (НазваниеСправочника.Реквизит5 = &Параметр5)
	|
	|СГРУППИРОВАТЬ ПО
	|	НазваниеСправочника.Ссылка,
	|	НазваниеСправочника.Реквизит1,
	|	НазваниеСправочника.Реквизит2,
	|	НазваниеСправочника.Реквизит3
	|";
Запрос=Новый Запрос(ТекстЗапроса);
Запрос.Параметры.Вставить("Параметр4", РеквизитДокумента4);
Запрос.Параметры.Вставить("Параметр5", РеквизитДокумента5);
Выборка=Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
	// Заполняем табличную часть
	Стр=ТабличнаяЧастьДокумента.Добавить();
	Стр.Реквизит1=Выборка.Реквизит1;
	// ...
КонецЦикла;
Не забудь заменить заглушки на реальные названия справочника и реквизитов