Имя: Пароль:
1C
1С v8
8.2 ФормаВыбора: выбор своей формы выбора при условии
,
0 News
 
14.05.12
11:43
Доброго времени суток.
Кто нибудь сталкивался с такой проблемой:
При условии необходимо выбирать свою форму выбора (не та которая по умолчанию). Делаю так:

&НаСервере
Процедура УстановитьФормыВыбора()
Если ЗначениеЗаполнено(Объект.Условие) тогда
Элементы.Номенклатура.ФормаВыбора = "Справочник.Номенклатура.Форма.ФормаВыбораДоп";
Иначе
Элементы.Номенклатура.ФормаВыбора = "Справочник.Номенклатура.Форма.ФораВыбора";
Конецесли
КонецПроцедуры

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

При начале выбора первый раз открывается всегда форма выбора по умолчанию. Когда второй раз нажимаю, то открывается правильная форма выбора, заданная по условию.
1 experimentator76
 
14.05.12
11:47
"ФораВыбора" ?
2 experimentator76
 
14.05.12
11:48
или туда не попадает ?
3 News
 
14.05.12
12:00
ой , "ФормаВыбора", пардон
4 vmv
 
14.05.12
12:02
клиент не "видит" измерений на сервере пока серверная и клиентская формы не будут синхронизированы, делай выводы
5 News
 
14.05.12
12:02
при первом нажатии открывается "ФормаВыбора" всегда (она по умолчанию), хотя условие срабатывает..это видимо из за того что на Сервере меняю форму выбора, может нужно что то на клиенте сделать?
6 vmv
 
14.05.12
12:02
не видит модификаций формы
7 vmv
 
14.05.12
12:05
Примечание:

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

задумайся зачем я это написал, сделай вывод и реализуй правильно. Помни, если ты допер и сделал сам - ты спец, если тебе все выложили - ты ничто
8 News
 
14.05.12
12:06
(7) спасибо, допер
9 5 Элемент
 
14.05.12
12:18
В 8.2 есть нормальный механизм для открытия нужной формы выбора
Использовать нужно событие ОбработкаПолученияФормы
10 News
 
14.05.12
12:48
(9) Сделал через эту обработку, получилось. Спасибо 5 Элемент)

Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)
   Если ВидФормы = "ФормаВыбора" Тогда
       Если Параметры.Отбор.Свойство("Условие") Тогда
           СтандартнаяОбработка = Ложь;
           ВыбраннаяФорма = "Справочник.Номенклатура.Форма.ФормаВыбораДоп";
       КонецЕсли;    
   КонецЕсли;
КонецПроцедуры