|
Обработка выбора с отбором по списку значений в УФ |
☑ |
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) за
Форма=ПолучитьФорму("Справочник.ВидыКонтейнеров.ФормаВыбора");
Форма.Открыть();
в УФ принято простреливать колени...
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший