Доброго времени суток!
Дано: Форма списка. Основной реквизит - СПИСОК - Динамический список.
Произвольный запрос. В "Настройке списка" - "Настройки" - "Отбор" добавлен НовыйОтбор с "включать в настройки пользователя" и режим редактирования "быстрый доступ"
Т.е. данный отбор виден и доступен пользователю в форме Списка
ВОПРОС: Как его (этот отбор) заполнить программно при открытии формы Списка
AnryMc @ Вчера, 17:02
,
Ап!!!
Если делать так:
Список.Отбор.Элементы.Очистить();
текНастройка = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
// //текНастройка = Элементы.Список.ПолучитьИсполняемыеНастройкиКомпоновкиДанных().Отбор.Элементы[0];
// //текНастройка = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы[0];
// //текНастройка = Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[0];
отбор надо не добавлять, а найти и установить
вообще в БСп есть процедура
ОбщегоНазначенияКлиентСервер. УстановитьЭлементОтбораДинамическогоСписка(ДинамическийСписок, ИмяПоля,
ПравоеЗначение = Неопределено,
ВидСравнения = Неопределено,
Представление = Неопределено,
Использование = Неопределено,
РежимОтображения = Неопределено,
ИдентификаторПользовательскойНастройки = Неопределено) Экспорт
Вы хотя-бы смотрели процедуру ?
Если РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный Тогда
ОтборДинамическогоСписка = ДинамическийСписок.КомпоновщикНастроек.ФиксированныеНастройки.Отбор;
Иначе
ОтборДинамическогоСписка = ДинамическийСписок.КомпоновщикНастроек.Настройки.Отбор;
КонецЕсли;
может, определиться когда его устанавливать?
ОбщийМодульКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "КлючевыеСлова.КлючевоеСлово", СписокКлючевыхСлов, ВидСравненияКомпоновкиДанных.Равно,, ИСТИНА,,"2bfdf78c-437f-4a3e-9c4b-0561e4543a8b");
ОбщийМодульКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "КлючевыеСлова.КлючевоеСлово", СписокКлючевыхСлов, ВидСравненияКомпоновкиДанных.Равно,, ИСТИНА, [b]РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ[/b] ,"2bfdf78c-437f-4a3e-9c4b-0561e4543a8b");
- отбор не срабатывает элементы на форме тоже пусты
Посмотрите на ПриЗагрузкеПользовательскихНастроек - вроде так называется
Так получилось добавить в отбор (по кнопке "Ещё" - настройка списка)
Но в "быстрый доступ" на форме не отображается...
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
НужныйКонтрагент = Константы.Константа1.Получить(); //Реквизит формы - ссылка клиент
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ВидСравненияФ = ВидСравненияКомпоновкиДанных.Равно;
ИмяПоляФ = "Контрагент";
ЗначениеОтбораФ = НужныйКонтрагент;
Для Каждого ЭлементОтбора Из Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы Цикл
Если ТипЗнч(ЭлементОтбора) = Тип("ОтборКомпоновкиДанных") Тогда
ПользовательскийОтбор = ЭлементОтбора.Элементы;
НовыйЭлементОтбора = Неопределено;
Для Каждого СуществующийЭлементОтбора Из ПользовательскийОтбор Цикл
Если СуществующийЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоляФ) Тогда
НовыйЭлементОтбора = СуществующийЭлементОтбора;
Прервать;
КонецЕсли;
КонецЦикла;
Если СуществующийЭлементОтбора = Неопределено Тогда
НовыйЭлементОтбора = ПользовательскийОтбор.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
НовыйЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоляФ);
КонецЕсли;
НовыйЭлементОтбора.ВидСравнения = ВидСравненияФ;
НовыйЭлементОтбора.Использование = Истина;
НовыйЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ;
НовыйЭлементОтбора.ПравоеЗначение = ЗначениеОтбораФ;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua