Имя: Пароль:
1C
1С v8
Выборка строк динамического списка
0 apdate by
 
21.09.21
09:46
Всем Привет.

Управляемые формы

в обработке на форме добавил в разделе реквизиты. Динамический список  "ГруппыДляВыборкиДанных"

в нем запрос

ВЫБРАТЬ
    Номенклатура.Ссылка КАК Ссылка,
    Номенклатура.Ссылка В (&ВыбраннаяНоменклатура) КАК Пометка
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    Номенклатура.ЭтоГруппа = &ЭтоГруппа

В при открытии метод

&НаКлиенте
Перем ВыбраннаяНоменклатура; //Массив, хранящий отмеченную галочками номенклатуру для отображения в списке

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    
    //Инициализация массива
    ВыбраннаяНоменклатура = Новый Массив;
    //Без параметра, даже пустого, список выдаст ошибку и будет прав
    ГруппыДляВыборкиДанных.Параметры.УстановитьЗначениеПараметра("ВыбраннаяНоменклатура", ВыбраннаяНоменклатура);
    ГруппыДляВыборкиДанных.Параметры.УстановитьЗначениеПараметра("ЭтоГруппа", Истина);
КонецПроцедуры


В методе таблицы на форме "Выбор"

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

&НаКлиенте
Процедура СнятьПометку(Номенклатура)
    Индекс = ВыбраннаяНоменклатура.Найти(Номенклатура);
    Если Индекс >= 0 Тогда
        ВыбраннаяНоменклатура.Удалить(Индекс);
    КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ПоставитьПометку(Номенклатура)
    Индекс = ВыбраннаяНоменклатура.Найти(Номенклатура);
    Если Индекс = Неопределено Тогда
        ВыбраннаяНоменклатура.Добавить(Номенклатура);
    КонецЕсли;
КонецПроцедуры


далее теперь мне необходимо обойти строки которые помечены флагом

как это сделать?
1 aka MIK
 
21.09.21
09:49
Зачем? У тебя же есть

//Массив, хранящий отмеченную галочками номенклатуру для отображения в списке
2 apdate by
 
21.09.21
09:54
&НаКлиенте
Перем ВыбраннаяНоменклатура; //Массив, хранящий отмеченную галочками номенклатуру для отображения в списке

тупанул )
3 apdate by
 
21.09.21
09:56
Спасибо!