Имя: Пароль:
1C
1С v8
Отбор в динамическом списке
0 Wobland
 
06.03.13
09:10
Исходная задача: подсунуть юзеру список справочника с отбором по организации. Путём медитирования над СП написал следующее:

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

вопросы: всё верно сделал? нет ли более другого способа? что-то типа Установить() у отбора не нашёл
1 jsmith82
 
06.03.13
09:13
Процедура ИзменитьЭлементОтбораСписка(Список, ИмяПоля, ПравоеЗначение = Неопределено, Установить = Ложь, ВидСравнения = Неопределено) Экспорт
   
   УдалитьЭлементОтбораСписка(Список, ИмяПоля);
   
   Если Установить Тогда
       УстановитьЭлементОтбораСписка(Список, ИмяПоля, ПравоеЗначение, ВидСравнения);
   КонецЕсли;
   
КонецПроцедуры

Процедура УстановитьЭлементОтбораСписка(Список, ИмяПоля, ПравоеЗначение, ВидСравнения = Неопределено, Представление = "") Экспорт
   
   ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   ЭлементОтбора.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных(ИмяПоля);    
   ЭлементОтбора.ВидСравнения   = ?(ВидСравнения = Неопределено, ВидСравненияКомпоновкиДанных.Равно, ВидСравнения);
   ЭлементОтбора.Использование  = Истина;
   ЭлементОтбора.ПравоеЗначение = ПравоеЗначение;
   ЭлементОтбора.Представление  = Представление;
   
КонецПроцедуры
2 Wobland
 
06.03.13
09:34
(1) ну то же самое, в общем. спасибо, успокоил. и процедура такая у меня есть
3 Defender aka LINN
 
06.03.13
09:42
Ответ=ОткрытьФормуМодально("Справочник.СпособыОтраженияРасходовПоАмортизации.ФормаВыбора", Новый Структура("Отбор", Новый Структура("Организация", Объект.Организация)));
4 vicof
 
06.03.13
09:45
(3) Офф, Дефендер, глянь, пожалуйста v8: СКД, отбор по вычисляемому полю
5 Wobland
 
06.03.13
09:49
(3) от же ж, плин, я уже обновился ;) спасибо, учту, применю
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.