Имя: Пароль:
1C
1С v8
Как подменить форму выбора у элемента, сохранив флаг СтандартнаяОбработка?
,
0 Bigbro
 
15.02.24
10:07
Подскажите новичку
вот такая проблема
есть элемент программно добавленный на форму, ему привязана Процедура ЭлементНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

в которой я хочу открыть другую форму, не ту что по умолчанию.
но если я ставлю
СтандартнаяОбработка = Ложь;
и ОткрытьФорму(Справочник.Справочник.МойСправочник.Форма.МояФормаДляВыбра, ПараметрыФормы, Элемент);

то у меня отрубаются программно навешенные на элемент связи параметров выбора - я вижу весь список

а если не сбрасываю СтандартнаяОбработка
то открывается 2 формы разумеется, и в стандартной правильные отборы по связям.

как сделать чтобы отборы были по связям но форма моя?
или не получится?
1 Ёпрст
 
15.02.24
10:09
(0)  в параметры формы передай эти все связи
2 Bigbro
 
15.02.24
10:11
это понятно, а больше никак?
3 Ёпрст
 
15.02.24
10:12
(2) уф, оф ?
4 Bigbro
 
15.02.24
10:14
УФ
5 Ёпрст
 
15.02.24
10:14
да и всё равно кодом открываешь, в чем проблема написать

ОткрытьФорму(Справочник.Справочник.МойСправочник.Форма.МояФормаДляВыбра, Новый Структура("Отбор",Новый Структура ("Вася","Лошпед")), Элемент);
6 Bigbro
 
15.02.24
10:18
да нет проблемы написать, оно в целом уже и написано
я в принципе понять хочу
сохранить стандартную обработку связей подменив форму никак не получится?
7 Ёпрст
 
15.02.24
10:19
(6) разве что в модуле менеджера, только тогда оно везде поменяется на твою
8 lodger
 
15.02.24
10:19
СправочникМенеджер.<Имя справочника> (CatalogManager.<Catalog name>)

ОбработкаПолученияФормы(<ВидФормы>, <Параметры>, <ВыбраннаяФорма>, <ДополнительнаяИнформация>, <СтандартнаяОбработка>)

Описание:
Обработчик события вызывается на сервере при получении стандартной формы клиентского приложения.
Если требуется переопределить выбор открываемой формы, необходимо установить в параметре <ВыбраннаяФорма> другое имя формы или объект метаданных формы, которую требуется открыть, и в параметре <СтандартнаяОбработка> установить значение Ложь.
9 Ёпрст
 
15.02.24
10:21
+7 в ОбработкаПолученияФормы
,но, там приддётся ставить условия на видформы, как минимум, а то и для списков тоже поменяется
10 Bigbro
 
15.02.24
10:21
в модуль менеджера я же смогу параметр передать/считать и форму подменить по нему?
11 Bigbro
 
15.02.24
10:23
сейчас попробую.
ох чую оторвут мне руки потом за такое
12 Ёпрст
 
15.02.24
10:23
(10) да

Полезная штука с подменой, спасает для мобильного клиента, где подменяешь на свои, специфические формы, а не как платформа рисует для обычного клиента
13 Ёпрст
 
15.02.24
10:25
Так, например:

Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)
    
Если ПараметрыСеанса.МобильныйКлиент Тогда
    СтандартнаяОбработка = Ложь;
    Если ВидФормы = "ФормаСписка" ИЛИ ВидФормы = "ФормаВыбора" Тогда
        ВыбраннаяФорма = Метаданные.Справочники.Номенклатура.Формы.ФормаСпискаМобильноеПриложение;
    ИначеЕсли ВидФормы = "ФормаОбъекта" Тогда
        ВыбраннаяФорма = Метаданные.Справочники.Номенклатура.Формы.ФормаЭлементаМобильноеПриложение;
    КонецЕсли;
КонецЕсли;
14 Bigbro
 
15.02.24
11:04
только в Параметры я не могу передать ничего, почему то..
а форму подменять надо не в любом случае..
15 Bigbro
 
15.02.24
11:34
хотя отбой,я без параметров могу проверить.
все вроде получилось, спасибо!