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

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

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


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


Показать

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

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

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

Показать
Оставьте свое сообщение
Вакансии
Ведущий консультант 1С:ERP
Москва
зарплата от 200 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 150 000 руб. до 200 000 руб.
Полный день

Инженер-программист
Самара
зарплата от 180 000 руб.
Полный день

Программист 1С
Екатеринбург
зарплата от 150 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день