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

Хотел через параметры выбора сделать (устроило бы), но не работает.
1 TormozIT
 
гуру
20.08.20
09:57
ОбработкаВыбора
2 youalex
 
20.08.20
10:00
Напрашивается эмуляция списка видов документа.

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

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

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