Имя: Пароль:
1C
1С v8
Программное добавление элемента отбора в пользовательские настройки СКД.
0 Март_1c
 
02.02.16
19:15
Добрый день. Как программно сделать так , что бы новый элемент отбора появился в пользовательских настройках (равносильно флагу "Включать в пользовательские настройки") ?

Создаю элемент отбора
НовыйЭлементОтбора = СписокНоменклатура.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

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

        НовыйЭлементОтбора.ЛевоеЗначение  = ПолеОтбора;
        НовыйЭлементОтбора.Использование  = Истина;
        НовыйЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;
        НовыйЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ;

А что дальше ???
2 Март_1c
 
02.02.16
21:32
(1) Скиньте пример, пожалуйста.
3 Март_1c
 
02.02.16
21:49
(1) Голословный пользователь, все не тривиально.
4 Cyberhawk
 
02.02.16
21:51
"Как программно сделать так , что бы новый элемент отбора появился в пользовательских настройках" // Для этого нужно программно добавить элемент в пользовательские настройки
5 Март_1c
 
02.02.16
21:55
(4) Программно не получится, только руками  ?
6 Cyberhawk
 
02.02.16
22:01
(5) Шта?
7 Defender aka LINN
 
02.02.16
22:09
(3) Неумениие читать - это тривиально. Не льсти себе.
8 Март_1c
 
02.02.16
22:20
Скиньте пример!!! Один "флуд".
9 fimanich
 
02.02.16
22:31
Желательно уметь читать СП, без этого сложновато. Лови пример, там правда не добавление, а установка параметра. Не отчет, форма списка... Так что не простым копированием, поотладить придется...
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // Определим идентификатор отбора по периоду
    ИдентификаторПользовательскойНастройки = "";
    ПолеПериод = Новый ПолеКомпоновкиДанных("Период");
    Для каждого ЭлементОтбора Из Список.КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл
        Если ТипЗнч(ЭлементОтбора) <> Тип("ЭлементОтбораКомпоновкиДанных") Тогда
            Продолжить;
        КонецЕсли;     
        Если ЭлементОтбора.ЛевоеЗначение = ПолеПериод Тогда
            ИдентификаторПользовательскойНастройки = ЭлементОтбора.ИдентификаторПользовательскойНастройки;
        КонецЕсли;
    КонецЦикла;
    
        
КонецПроцедуры

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

КонецПроцедуры
10 fimanich
 
02.02.16
22:32
+(9)ИдентификаторПользовательскойНастройки - реквизит формы
11 Март_1c
 
02.02.16
22:34
(9) Спасибо.
12 Март_1c
 
02.02.16
22:37
Может есть пример по созданию, с заполнением я сталкивался.
13 fimanich
 
02.02.16
22:46
а еще можно пользоваться поиском...
тут есть: v8: СКД, ПользовательскиеНастройки. Объясните раз и навсегда, плиз...
14 Март_1c
 
02.02.16
22:51
(13) Спасибо добрый человек!!! "Гуглил" но увы.
15 Март_1c
 
03.02.16
11:25
Не могу добиться отображения в пользовательских настройках отбора (равносильно флагу "Включать в пользовательские настройки"). Не отображается на форме.

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

Элементы.КомпоновщикНастроекПользовательскиеНастройки.Обновить();
16 Andrey2C
 
03.02.16
11:42
(15) А табличное поле компановщика настроек добавил на форму? Или чего ты хочешь сделать то?
Ну как то так чтоли надо тебе:
НачалоПериода = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра( Новый ПараметрКомпоновкиДанных("НачалоПериода") );
    НачалоПериода.Значение = ТекущаяДата();
    
    НачалоПериода.Использование = Истина;
17 Март_1c
 
03.02.16
11:51
(16) Элементы.КомпоновщикНастроекПользовательскиеНастройки
18 Март_1c
 
03.02.16
11:52
Если зайти через Все действия->Настроить список->Отбор  и на этом отборе установить в истину "Включать в пользовательские настройки"  ,  он появляется на форме. Как это сделать программно ?
19 Март_1c
 
03.02.16
13:16
Есть мысли у кого нибудь как это сделать ???
20 Март_1c
 
03.02.16
21:55
помогите жеж !
21 Март_1c
 
04.02.16
10:08
Вопрос закрыт всем спасибо , дело было в идентификаторе.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.