Имя: Пароль:
1C
1С v8
Пересекаются элементы отбора УФ
0 iva77ru
 
23.12.14
13:17
Доброго дня! Нужна помощь: Открываю форму с динамическим списком с основной таблицей "Справочник.Ф". При создании на сервере задаю отбор:
    ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Организация");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ПравоеЗначение = Параметры.Организация;    

Отбор работает. Но, пользователю этот отбор не виден и недоступен. То есть он о нем ни ведает. И, если попытается установить свой, то получает ошибку:

"Невозможно применить фиксированные настройки. Пересекаются элементы отбора".

И, наоборот, если применять настройку программно на ранее сохраненную настройку пользователя, то получим аналогичную ошибку.

Пожалуйста, подскажите можно ли проверить наличие пользовательской настройки и сбросить ее, до того как применять свою? Как сделать видимой пользователь отбор заданный из кода?
1 Бубка Гоп
 
23.12.14
13:19
Список.Отбор.Элементы.Очистить()
потом делаешь свой
2 Бубка Гоп
 
23.12.14
13:21
ОтборКомпоновкиДанных.ДоступныеПоляОтбора (DataCompositionFilter.FilterAvailableFields)
ОтборКомпоновкиДанных (DataCompositionFilter)
ДоступныеПоляОтбора (FilterAvailableFields)
Использование:

Только чтение.
Описание:

Тип: ДоступныеПоляКомпоновкиДанных.
Содержит доступные поля для редактирования отбора.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
3 Бубка Гоп
 
23.12.14
13:26
РежимОтображенияЭлементаНастройкиКомпоновкиДанных (DataCompositionSettingsItemViewMode)
Значения

Авто (Auto)
БыстрыйДоступ (QuickAccess)
Недоступный (Inaccessible)
Обычный (Normal)

Описание:

Содержит режимы отображения элемента настройки компоновки данных.
4 Адский плющ
 
23.12.14
14:09
5 iva77ru
 
23.12.14
14:58
Посмотрел, спасибо. Задал пользовательскую настройку: отбор по организации. При открытии форму отбор срабатывает. Пытаюсь посмотреть отбор:
ПользовательскийОтбор = Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(Список.КомпоновщикНастроек.Настройки.Отбор.ИдентификаторПользовательскойНастройки);
Заданные настройки пользователем не видны, то есть и очистить нечегою Поскажите, пожалуйста, что не так?
6 Адский плющ
 
23.12.14
15:27
(5) Отбор, который виден пользователю по-умолчанию сидит как пользовательская настройка ВСЕГО отбора.

А пользовательская настройка для ЭЛЕМЕНТА отбора это другое. Смотри, короче, все пользовательские настройки отладчиком, там будет всё ясно.
7 iva77ru
 
23.12.14
16:47
Прошу прощения за свою несообразительность, но излазил отладчиком в процедуре ПриСозданииНаСервере():
1)Список.КомпоновщикНастроек.Настройки.Отбор.Элементы
2)Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы ---> Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[0].Элементы

3)Список.КомпоновщикНастроек.ФиксированныеНастройки.Отбор.Элементы
4)список.Отбор.Элементы

Коллекции Элементы пустые. Еще, что можно посмотреть?
8 Адский плющ
 
23.12.14
16:51
(7) Пользовательские настройки могут сохранятся.

Восстанавливаются уже после ПриСозданииНаСервере.


Смотри событие списка: СписокПередЗагрузкойПользовательскихНастроекНаСервере(Элемент, Настройки)
9 Адский плющ
 
23.12.14
16:54
+(8) Нужно взять параметр Настройки и аккуратно вырезать оттуда всё что решаем безусловно устанавливать в ПриСоздании.

Конечно, можно тупо отключить сохранение пользовательских настроек, но цывильнее оставить максимум возможностей.
10 iva77ru
 
23.12.14
17:40
Благодарю! Увидел настройки, далее буду редактировать.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс