В 1С нет агрегирующей функции для строки? Типа list в firebird? Чтоб не писать обработку запроса, а сразу из запроса получить строку через запятую.
// Выборка всех текущих ответственных
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| Номенклатура.ОтветственныйМенеджерЗаПокупки
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Ссылка В ИЕРАРХИИ(&Группа)
| И НЕ Номенклатура.Ссылка.ЭтоГруппа
| И Номенклатура.ОтветственныйМенеджерЗаПокупки <> ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)";
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если СписокТекущихОтветственных <> "" Тогда
СписокТекущихОтветственных = СписокТекущихОтветственных + ",";
КонецЕсли;
СписокТекущихОтветственных = СписокТекущихОтветственных +
ВыборкаДетальныеЗаписи.ОтветственныйМенеджерЗаПокупки.Наименование;
КонецЦикла;
(0) СтрСоединить
Наименование в запросе получают, а не через ссылку.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший