Недавно возникла задача отобрать данные из табличной части обработки по каким-либо критериям и полученную таблицу значений нужным образом обработать. Например, отобрать всех контрагентов - физиков, т.е. по Контрагент.Юр/физ.лицо = физ.лицо, свернуть эту таблицу и записать обратно в исходную. Первое, что пришло в голову - отобрать данные, используя построитель отчета. Построитель позволяет работать с внешним источником данных - в данном случае с таблицей значений. Но как выяснилось, у него есть существенное ограничение - в случае с внешним источником данных построитель не позволяет отбирать по подчиненным полям отбора.
Попробуем воспользоваться компоновкой. Создаем макет компоновки, создаем набор данных "Объект", указываем типы и запускаем обработку. Вот тут выясняется, что и компоновка данных не позволяет использовать подчиненные поля - при формировании запроса выдается сообщение "Поле Контрагент.Юр/физ.лицо не найдено". Копание на форуме 1С подсказало решение - нужно добавить еще один источник данных "Запрос" - запрос по контрагентам и объединить с набором данным "Объект" по контрагенту.
Дальше все просто - пример обработки прилагается. Кнопка "Заполнить" заполняет табличную часть данными. В качестве исходных данных был использован регистр "Взаиморасчеты с контрагентами", но можно использовать любой источник данных. Кнопка "Открыть отбор" открывает форму отбора. В форме отбора кнопка "Отобрать" заполняет таблицу значений, а кнопка "Выполнить" переносит таблицу в исходную форму.
Правда, возникли некоторые непонятки: если в макете компоновки определить ресурсы, то они не попадают в полученную таблицу отбора (это было в рабочей базе). В демонстрационной базе полученная таблица не имела заголовков, но сами числа в колонках были. Может проблема в разных версиях платформы - не проверял.
Вот такое скромное исследование. Может быть кому-нибудь и пригодится.