Имя: Пароль:
1C
1С v8
Запутался с настройками компоновщика динамического списка в форме
0 ИсчадиеADO
 
12.02.14
11:09
Суть вопроса: нужно открыть форму выбора справочника, передать в нее параметры, при создании на сервере формы параметры прочитать и установить отбор. Есть 2 элемента отбора, один из них должен быть недоступен для пользователя, другой должен быть доступен, и желательно даже в быстром отборе чтоб был. Если я устанавливаю отбор недоступный для пользователя, то проблем нет

МоеПолеКомпоновки = новый ПолеКомпоновкиДанных("МоеВычисляемоеПроизвольнымЗапросомПоле");

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

так настройки применяются и пользователь их не может изменить.

Если меняю РежимОтображения на быстрый доступ, то настройки не применяются.

Пытался решить через пользовательские настройки, но тоже то не применяются (если элемент польз. настроек был), то (если его  не было и пытаюсь добавить) выводит "коллекция пользовательских настроек не может изменять свой состав..."

Как победить?
1 ИсчадиеADO
 
12.02.14
11:13
не проснулись еще, что-ли? :)
2 ИсчадиеADO
 
12.02.14
11:24
апну что-ли
3 Defender aka LINN
 
12.02.14
11:27
А что, через Список.Отбор - батюшка запрещает?
4 ИсчадиеADO
 
12.02.14
11:28
(3) "это слишком просто" :) ща попробую
5 ИсчадиеADO
 
12.02.14
11:36
(3) "Параметры отбора, сортировки, группировки или список отображаемых полей заданы не верно"
6 ИсчадиеADO
 
12.02.14
11:43
а нет, извиняюсь, я левое значение для создаваемого элемента отбора не указал.

Но, настройки остаются недоступными для пользователя

ЭлементОтбораМойЭлемент = неопределено;
Для каждого ЭлементОтбора Из Список.Отбор.Элементы Цикл
    Если ЭлементОтбора.ЛевоеЗначение = МоеПолеКомпоновки;Тогда
        ЭлементОтбораМойЭлемент = ЭлементОтбора;
        прервать;
    Конецесли;
КонецЦикла;
Если ЭлементОтбораМойЭлемент = неопределено Тогда
    ЭлементОтбораМойЭлемент = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
КонецЕсли;
ЭлементОтбораМойЭлемент.ЛевоеЗначение = МоеПолеКомпоновки;
ЭлементОтбораМойЭлемент.ПравоеЗначение = Истина;
ЭлементОтбораМойЭлемент.Использование = Истина;
ЭлементОтбораМойЭлемент.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ;
7 ИсчадиеADO
 
12.02.14
11:45
при попытке изменить пользователем настройку выдает "невозможно применить фиксированные настройки. Пересекаются элементы отбора"
8 ИсчадиеADO
 
12.02.14
11:52
Defender выручай :)
9 Defender aka LINN
 
12.02.14
11:56
Удаляй элемент отбора и добавляй новый, очевидно же ж :)
10 ИсчадиеADO
 
12.02.14
11:57
(9) как я отловлю событие изменения отбора?
11 ИсчадиеADO
 
12.02.14
12:00
(9) ошибка возникает до события СписокПриОбновленииСоставаПользовательскихНастроекНаСервере
12 ИсчадиеADO
 
12.02.14
12:13
событие ПриОбновленииСоставаПользовательскихНастроекНаСервере отрабатывает, но ошибка возникает раньше, чем я остановом попадаю в нее. Другие события типа ПередЗагрузкойПользовательскихНастроекНаСервере не отрабатывают при установке пользователем воего отбора вообще. Следовательно отловить событие и удалить предопределенный отбор я не смогу :(

Блин, задачка то простая вроде
13 ИсчадиеADO
 
12.02.14
12:29
апну.  Решал кто-нибудь что-то подобное?