Имя: Пароль:
1C
1С v8
Открытие формы выбора группы
0 Aleksey1989
 
24.05.12
08:09
Добрый день. Подскажите, пжл, как мне быть в следующей ситуации:

Мне надо получить ссылку на группу номенклатуры, для этого я создал реквизит формы с типом СправочникСсылка.Номенклатура, развестил его на форме. Далее, открываю обработку в режиме предприятия, нажимаю кнопку выбора - открывается форма выбора элемента, а не группы. Форма выбора группы создана. Пытаюсь использовать следующий код:

&НаКлиенте
Процедура ГруппаНоменклатурыНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
   ПолучитьФормуВыбораГруппы();    
КонецПроцедуры


&НаСервере
Процедура ПолучитьФормуВыбораГруппы()
   Справочники.Номенклатура.ПолучитьФорму("Справочник.Номенклатура.ФормаВыбораГруппы");
КонецПроцедуры

Но все равно, открывается форма выбора элемента, а не группы. В чем я ошибся?
1 Wobland
 
24.05.12
08:11
ну получаешь форму. она сама догадается открыться? и СтандартнаяОбработка=Ложь тогда
2 Aleksey1989
 
24.05.12
08:13
(1) Про стандартнаяОбработка = Ложь - я только что сам догадался, но форма по-прежнему не открывается. Вот, что пишет СП:
Примечание:

В обработчике данного события нельзя использовать серверные методы формы с директивой компиляции &НаСервере.

И как быть тогда в такой ситуации?
3 Wobland
 
24.05.12
08:16
ничего из (0) не понял. в обычных формах у поля ввода есть свойство про выбор групп или элементов
4 Aleksey1989
 
24.05.12
08:16
Сейчас переделал код, но все равно не открывается:

&НаКлиенте
Процедура ГруппаНоменклатурыНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
   СтандартнаяОбработка = Ложь;
   ПолучитьФормуВыбораГруппы();    
КонецПроцедуры


&НаСервереБезКонтекста
Процедура ПолучитьФормуВыбораГруппы()
   Форма = Справочники.Номенклатура.ПолучитьФорму("Справочник.Номенклатура.ФормаВыбораГруппы");
   Форма.Открыть();
   
КонецПроцедуры
5 butterbean
 
24.05.12
08:17
даже на УФ вроде есть свойство у поля ввода ВыборГруппИЭлементов, юзай его, нафиг этот гемор
6 butterbean
 
24.05.12
08:18
(5)+ а, вот в (3) уже подсказали
7 Aleksey1989
 
24.05.12
08:18
(3) (5) Спасибо, действительно работает. Но все равно, почему мой код не работал?
8 butterbean
 
24.05.12
08:20
(7) надо было написать что-то типа
СтандартнаяОбработка = Ложь;
ОткрытьФорму("Справочник.Номенклатура.ФормаВыбораГруппы",,Элемент);
9 Wobland
 
24.05.12
08:21
(7) потому что открывал &НаСервереБезКонтекста, не?
10 Любопытная
 
24.05.12
08:23
Зачем на сервере открывать форму?
11 Aleksey1989
 
24.05.12
08:23
(8) А разве можно использовать метод ОткрытьФорму на клиенте в управляемом приложении?

(9) М.б. и из-за этого, но как еще получить доступ к форме справочника?
12 Любопытная
 
24.05.12
08:24
Форма выбора группы основная назначена?
13 Любопытная
 
24.05.12
08:24
(11) А где еще открывать форму как не на клиенте?
14 Wobland
 
24.05.12
08:25
(12) у него уже взлетело
15 Aleksey1989
 
24.05.12
08:25
(13) Все, внимательно прочитал СП, разобрался.
16 Любопытная
 
24.05.12
08:26
(14) Ну вот и здесь уже мешаю.
17 Wobland
 
24.05.12
08:26
(16) откуда ты это придумала?