Вход | Регистрация
 

Как перехватить в ОФ начало выбора у поля неоределенного вида?

Как перехватить в ОФ начало выбора у поля неоределенного вида?
Я
   toypaul
 
20.08.20 - 09:45
Обычная форма, поле типа документ (любого вида). В начало выбора заходит перед выбором вида документа. После выбора вида документа уже на заходит в начало выбора и открывается стандартная форма выбора. А нужно открыть форму с отбором. Куда можно вклиниться? Кроме как рисовать свой диалог выбора вида документа...

Хотел через параметры выбора сделать (устроило бы), но не работает.
   TormozIT
 
1 - 20.08.20 - 09:57
ОбработкаВыбора
   youalex
 
2 - 20.08.20 - 10:00
Напрашивается эмуляция списка видов документа.
Т.е. СтандартнаяОбработка = Ложь;//безусловно
Потом, если в значении поля Неопределено - формируешь список возможных видов (из метаданных, если реквизит мд, или из ТипЗначения элемента, если реквизит формы)
И дальше, от выбора - уже получаешь и открываешь соответствующую форму.
   toypaul
 
3 - 20.08.20 - 10:05
(2) ну это единственное что пока в голову пришел
(1) что ОбработкаВыбора?
   toypaul
 
4 - 20.08.20 - 10:21
(1) понял. спасибо. получилось так

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.