Вход | Регистрация

1С:Предприятие ::

Метки:

1C8 - групповой отбор в динамическом списке

Я
   Влад_Савин
 
14.06.17 - 18:46
В динамическом списке надо по одному из реквизитов поставить множественный отбор.
(если честно, раньше я этого не делал - простой отбор в ДС не раз а множественный не приходилось).
Строго по подсказке http://helpf.pro/faq/view/1743.html
вставляю:

Для Каждого ЭлементЗначОтбора Из СтруктОтбора Цикл
                
ЭлементОтбора = ЗаказыПокупателей.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

ЭлементОтбора.Родитель = ГруппаОтбора;

ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ЗаказыПокупателейСтатус");

ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.Представление = ЭлементЗначОтбора.Ключ;
ЭлементОтбора.ПравоеЗначение = СтруктОтбора.Получить(ЭлементЗначОтбора.Ключ);
                
КонецЦикла;

И вылет с сообщением что -

ПОЛЕ ОБЪЕКТА НЕДОСТУПНО ДЛЯ ЗАПИСИ (РОДИТЕЛЬ)

процедура - пробовал и на клиенте и на сервере без разницы.
Что делаю не так?
 
 
   Fragster
 
1 - 14.06.17 - 18:49
ГруппаОтбора.ЭлементыИликактамИх.Добавить()
   Влад_Савин
 
2 - 14.06.17 - 18:54
Так есть Группа- добавить!
Вот вся процедура целиком:

Процедура УстановитьОтборПоСтатусамСделок(СтруктОтбора)
    
    НашлиГруппу=Ложь;
    Для Каждого ЭлементОтбора Из ЗаказыПокупателей.Отбор.Элементы Цикл
        Если ЭлементОтбора.Представление="ГруппаОтбораСтатус" Тогда
            ГруппаОтбора=ЭлементОтбора;
            НашлиГруппу=Истина;
            Прервать;
        КонецЕсли;
    КонецЦикла;

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

                    ЭлементОтбора.Использование = Истина;
                    Сообщить("найден элемент отбора "+ЭлементОтбора.Представление+" = "+СтруктОтбора.Получить(ЭлементОтбора.Представление));
                    СтруктОтбора.Удалить(ЭлементОтбора.Представление);
                    Сообщить("удален - осталось "+СтруктОтбора.Количество()+" нераспределенных элементов");
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    
    Если СтруктОтбора<>Неопределено Тогда
        Если СтруктОтбора.Количество()>0 Тогда
            Для Каждого ЭлементЗначОтбора Из СтруктОтбора Цикл
                
                ЭлементОтбора = ЗаказыПокупателей.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
                ЭлементОтбора.Родитель = ГруппаОтбора;
                ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ЗаказыПокупателейСостояниеЗаказа");
                ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
                ЭлементОтбора.Использование = Истина;
                ЭлементОтбора.Представление = ЭлементЗначОтбора.Ключ;
                ЭлементОтбора.ПравоеЗначение = СтруктОтбора.Получить(ЭлементЗначОтбора.Ключ);
                Сообщить("создан элемент отбора "+ЭлементЗначОтбора.Ключ+" = "+СтруктОтбора.Получить(ЭлементЗначОтбора.Ключ));
            КонецЦикла;
        КонецЕсли;
    КонецЕсли;
                  
КонецПроцедуры
   Влад_Савин
 
3 - 14.06.17 - 18:57
Дело в том что она вызывается не единожды при открытии - а когда я меняю фильтр отбора (список с пометками) и тотчас же, обработчиком, должен измениться список.
Потому группа создается при первом обращении - а в дальнейшем ищется, нет ли ее уже.
   Влад_Савин
 
4 - 14.06.17 - 18:59
В отладчике - на момент когда я обращаюсь к Родитель - записать - эта ГруппаОтбора видна, и в ней все вроде норм.
   Влад_Савин
 
5 - 19.06.17 - 16:36
Вопрос снят, разобрался


Список тем форума
  Рекламное место пустует
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки - вот настоящая работа.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует