Имя: Пароль:
1C
1С v8
Форма списка отбор в управляемой форме?
0 AugustBlack
 
20.07.12
09:54
Сабж, подскажите как правильно сделать:
Как в управлямом режиме реализовать подобное?
Процедура ПриОткрытии(Отказ)
   Если Отбор.Найти("Испольнитель") = Неопределено Тогда
       Отбор.Добавить("Испольнитель");
   КонецЕсли;
   Отбор["Испольнитель"].Использование = Истина;
   Отбор["Испольнитель"].Значение      = ВернутьТекущегоПользователя();
   Отбор["Испольнитель"].ВидСравнения  = ВидСравнения.Равно);    
КонецПроцедуры
1 Агент Инфостарта
 
20.07.12
10:01
Как-то так

   ЭлементОтбора = ОбщегоНазначенияУТКлиентСервер.ДобавитьОтбор(Элементы.Список.Отбор,
                       "Дата",
                       НачалоДня(Дата),
                       ВидСравненияКомпоновкиДанных.МеньшеИлиРавно,
                       Истина);
2 Агент Инфостарта
 
20.07.12
10:11
3 AugustBlack
 
20.07.12
12:53
сделал так:
Список.Отбор.Элементы.Очистить();
   ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Контрагент");
   ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
   ЭлементОтбора.Использование = Истина;
   ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
   ЭлементОтбора.ПравоеЗначение = ВернутьЭлементСправочника("000000005");
Элементы.Список.Обновить();

теперь как мне найти элемент отбора Контрагент и заменить у него???
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
на
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НЕВИерархии;
4 AugustBlack
 
20.07.12
13:11
up
5 AugustBlack
 
20.07.12
13:51
сделал, мб кому пригодицо
&НаКлиенте
Процедура УстановитьОтборПоКолонке(ПолеОтбора, ВидСравнения,КодСпр)
   ПолеКонтрагент = Новый ПолеКомпоновкиДанных(ПолеОтбора);
   ЭлементыОтбора = Список.Отбор.Элементы;
   Найден = Ложь;
   Если ЭлементыОтбора.Количество() > 0 Тогда
       Для Каждого СтрокаОтбора Из ЭлементыОтбора Цикл
           Если СтрокаОтбора.ЛевоеЗначение = ПолеКонтрагент Тогда
               СтрокаОтбора.ВидСравнения = ВидСравнения;
               Найден = Истина;
           КонецЕсли;
       КонецЦикла;
       
       Если НЕ Найден Тогда
           ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
           ЭлементОтбора.ЛевоеЗначение = ПолеКонтрагент;
           ЭлементОтбора.ВидСравнения = ВидСравнения;
           ЭлементОтбора.Использование = Истина;
           ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
           ЭлементОтбора.ПравоеЗначение = ВернутьКонтрагента(КодСпр);
       КонецЕсли;
   Иначе
       ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
       ЭлементОтбора.ЛевоеЗначение = ПолеКонтрагент;
       ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
       ЭлементОтбора.Использование = Истина;
       ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
       ЭлементОтбора.ПравоеЗначение = ВернутьКонтрагента(КодСпр);
   КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ОтборРНУчет(Команда)
   УстановитьОтборПоКолонке("Контрагент", ВидСравненияКомпоновкиДанных.ВИерархии,"000000005");
КонецПроцедуры

&НаКлиенте
Процедура ОтборВнешЗаказчики(Команда)
   УстановитьОтборПоКолонке("Контрагент", ВидСравненияКомпоновкиДанных.НеВИерархии,"000000005");
КонецПроцедуры
6 Агент Инфостарта
 
20.07.12
21:09
(5) Феерично. А воспользоваться готовой из типовой понты не позволили?
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.