Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Выборка строк динамического списка

Выборка строк динамического списка
Я
   apdate by
 
21.09.21 - 09:46
Всем Привет.

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

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

в нем запрос

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

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

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

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


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

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

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

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


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

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

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


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

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.