Имя: Пароль:
1C
 
Обработка выбора с отбором по списку значений в УФ
0 nemoxp
 
22.09.15
15:53
Как реализовать в УФ в событии НачалоВыбора выбор значений из справочника с отбором по списку значений?
1 Апош
 
22.09.15
15:54
открыть форму с правильными параметрами
2 nemoxp
 
22.09.15
16:03
Например:

В обработчик НачалоВыбора вставляем:

Мне нужно сравнение "В Списке". Пробую и нифига:

СтандартнаяОбработка = Ложь;
    
    СписокВидовКонтейнеров = Новый Структура;
    Для Каждого Стр Из Объект.Контейнеры Цикл
        СписокВидовКонтейнеров.Вставить("Ссылка", Стр.ВидКонтейнера);
    КонецЦикла;

    ПараметрыВыбора = Новый Структура;

    ПараметрыВыбора.Вставить("Ссылка", СписокВидовКонтейнеров);
    ПараметрыВыбора.Вставить("ЗакрыватьПриВыборе", Истина);

    ОткрытьФорму("Справочник.ВидыКонтейнеров.ФормаВыбора", ПараметрыВыбора);
3 nemoxp
 
22.09.15
16:04
Там опечатка должно быть:
СписокВидовКонтейнеров = Новый СписокЗначений;

Выдает ошибку "Ошибка при вызове метода контекста (Вставить)
        СписокВидовКонтейнеров.Вставить("Ссылка", Стр.ВидКонтейнера);
по причине:
Несоответствие типов (параметр номер '1')"
4 VikingKosmo
 
22.09.15
16:04
а ПриСозданииНаСервере у открываемой формы ты отбор свой применить не хочешь?
5 VikingKosmo
 
22.09.15
16:05
+ (4) и вообще СписокВидовКонтейнеров сделай СписокЗначений, который передашь форме, а дальше устанавливай отбор.
6 nemoxp
 
22.09.15
16:06
Блин. херня. Вот так пишу.

СтандартнаяОбработка = Ложь;
    
    СписокВидовКонтейнеров = Новый СписокЗначений;
    Для Каждого Стр Из Объект.Контейнеры Цикл
        СписокВидовКонтейнеров.Добавить(Стр.ВидКонтейнера);
    КонецЦикла;

    ПараметрыВыбора = Новый Структура;

    ПараметрыВыбора.Вставить("Ссылка", СписокВидовКонтейнеров);
    ПараметрыВыбора.Вставить("ЗакрыватьПриВыборе", Истина);

    ОткрытьФорму("Справочник.ВидыКонтейнеров.ФормаВыбора", ПараметрыВыбора);
7 Апош
 
22.09.15
16:07
8 nemoxp
 
22.09.15
16:07
(4) Он каждый раз свой будет. А при создании на сервере формы выбора справочника, я так понимаю, можно что-то фиксированное задать?
9 nemoxp
 
22.09.15
16:15
(7) КРУТЯК! Работает:

СтандартнаяОбработка = Ложь;
    
    СписокВидовКонтейнеров = Новый СписокЗначений;
    Для Каждого Стр Из Объект.Контейнеры Цикл
        СписокВидовКонтейнеров.Добавить(Стр.ВидКонтейнера);
    КонецЦикла;

    Форма=ПолучитьФорму("Справочник.ВидыКонтейнеров.ФормаВыбора");
    ЭО=Форма.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭО.ВидСравнения=ВидСравненияКомпоновкиДанных.ВСписке;
    ЭО.ЛевоеЗначение=Новый ПолеКомпоновкиДанных("Ссылка");
    ЭО.ПравоеЗначение=СписокВидовКонтейнеров;
    ЭО.Использование=Истина;
    Форма.Открыть();
10 VikingKosmo
 
22.09.15
16:18
(9) за  
Форма=ПолучитьФорму("Справочник.ВидыКонтейнеров.ФормаВыбора");
  Форма.Открыть();

в УФ принято простреливать колени...
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn