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