Динамический список, ограничить Отбором

1. user-z99999 68 24.05.23 11:11 Сейчас в теме
На форме динамический список.
Нужно, чтобы у всех пользователей он открывался с отбором (ограничить по Дате), который они могут изменить.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

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


	Список.КомпоновщикНастроек.ЗагрузитьНастройки(Список.КомпоновщикНастроек.Настройки);


Показать

Чего не хватает, почему не работает?
(нужно сделать как на скриншоте. пока пробую просто, Дата больше)
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Xershi 1491 24.05.23 19:47 Сейчас в теме
(1) стрелка не на отбор а на поиск.
Отбор у вас чуть выше.Судя по скриншоту должен появиться. Обновите кеш формы.
3. booksfill 25.05.23 09:52 Сейчас в теме +0.01 $m
Вот пример работающего кода, основное, про что надо не забывать, так это про уникальный идентификатор и про то, что пользовательская настройка - это условность, на самом деле - это просто настройка с установленным уникальным идентификатором, т.е. поле надо добавлять не к пользовательским настройкам, а к настройкам.

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

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

Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот