Имя: Пароль:
1C
 
установить отбор динамического списка с выводом на форму
0 Dimarik_1
 
01.07.19
13:23
Необходимо установить отбор динамического списка с выводом на форму.
Попробовал так:
Отбор = Форма.Список.Отбор;
НовыйЭлементОтбора = Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
            НовыйЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("птСтатусЗаказа");
            НовыйЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
            НовыйЭлементОтбора.использование = Истина;
            
            НовыйЭлементОтбора.ПравоеЗначение = Перечисления.птСтатусыЗаказовНаВнутреннееПотребление.НаСогласовании;
            НовыйЭлементОтбора.Режимотображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ;
            НовыйЭлементОтбора.ИдентификаторПользовательскойНастройки = СтрЗаменить(Строка(ТекущаяДата()) + Строка(ПараметрыСеанса.ТекущийПользователь),":","");

В результате отбор применился, но не выводится. Мне надо чтобы он сверху выводился, как это пользователь сам делает при создании пользовательских настроек.
1 Dimarik_1
 
01.07.19
13:27
так тоже не работает
Элемент = Форма.Элементы.Добавить("птСтатусЗаказа", Тип("ПолеФормы"), Форма.Элементы.Список);
        Элемент.Вид = ВидПоляФормы.ПолеНадписи;
        Элемент.ПутьКДанным = "Список.Ссылка.птСтатусЗаказа";
        
        ПользовательскиеНастройки = Форма.Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы;
        Для Каждого Строка Из ПользовательскиеНастройки Цикл
            
            Если Типзнч(Строка) = Тип("ОтборКомпоновкиДанных") Тогда
                Отбор = Строка;
                Прервать;
            КонецЕсли;
            
        КонецЦикла;
        
        Если Отбор = Неопределено Тогда
            Отбор =  ПользовательскиеНастройки.Добавить(Тип("ОтборКомпоновкиДанных"));
        КонецЕсли;
        ////
                //ОтборЭлементы = Форма.Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(Форма.Список.КомпоновщикНастроек.Настройки.Отбор.ИдентификаторПользовательскойНастройки).Элементы;
        //
        
        ЕстьЭлементптСтатусЗаказа = Ложь;
        Для Каждого Строка Из Отбор.Элементы Цикл
            Если Строка.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("птСтатусЗаказа") Тогда
                ЕстьЭлементптСтатусЗаказа = Истина;
                Прервать;
            КонецЕсли;
            
        КонецЦикла;

        Если ЕстьЭлементптСтатусЗаказа = Ложь Тогда
            
            НовыйЭлементОтбора = Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
            НовыйЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("птСтатусЗаказа");
            НовыйЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
            НовыйЭлементОтбора.использование = Истина;
            
            НовыйЭлементОтбора.ПравоеЗначение = Перечисления.птСтатусыЗаказовНаВнутреннееПотребление.НаСогласовании;
            НовыйЭлементОтбора.Режимотображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ;
            НовыйЭлементОтбора.ИдентификаторПользовательскойНастройки = СтрЗаменить(Строка(ТекущаяДата()) + Строка(ПараметрыСеанса.ТекущийПользователь),":","");
            
        Конецесли;
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший