Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Управляемые формы. УП. Как переключаться между разными формами внешней обработки?

Управляемые формы. УП. Как переключаться между разными формами внешней обработки?
Я
   Родом из детства
 
15.07.21 - 18:51
Ранее не почти не имел дела с управляемыми формами. Имеется внешняя обработка. В ней несколько форм. По нажатию на кнопку на форме нужно открыть другую форму. Но как это сделать я не понимаю.
Пробовал так:
ОткрытьФорму("ИмяФормы", Параметры);
Возвращает ошибку. Видимо поиск сначала идет не внутри обработки. Заранее спасибо за ответы
   ДенисЧ
 
1 - 15.07.21 - 18:53
ОткрытьФорму("ВнешняяОбработка.ТвояОбработка.Форма.Форма"...);
   Родом из детства
 
2 - 15.07.21 - 18:56
(1) А нужно добавлять её для этого во внешние обработки?
   Родом из детства
 
3 - 15.07.21 - 18:58
Имя обработки: ЖурналЗаказов
Имя формы в обработке: РулоннаяМашина
Вызываю так:
ОткрытьФорму("ВнешняяОбработка.ЖурналЗаказов.РулоннаяМашина");
Падает в ошибку(
   Кулибин
 
4 - 15.07.21 - 19:14
Форму забыл перед Рулонными
   ДедМорроз
 
5 - 16.07.21 - 00:41
Потом еще будет неожиданность,что у каждой формы своя версия обработки,и данные из одной формы в другую не попадают.
   Родом из детства
 
6 - 16.07.21 - 10:24
(5) Вот и получается все как-то неочень. Может, поделитесь правильным алгоритмом работы с формами и обменом данными между ними во внешних обработках? В нете, обычно, гайды о том, как добавить внешнюю обработку(
   Родом из детства
 
7 - 16.07.21 - 10:25
Если брать внешнюю обработку, как экземпляр класса. То нужно обращаться к формам этого экземпляра, а не создавать новые. Однако, не могу понять, в каком месте я могу к этому экземпляру обратиться
   ДенисЧ
 
8 - 16.07.21 - 10:32
Не надо тянуть в 1с оопшные привычки...
   Родом из детства
 
9 - 16.07.21 - 10:34
Или кейс, когда у меня нет реквизитов форм. То есть они обращаются к реквизитам обработки. Тогда, при открытии новой формы, она будет обращаться к реквизитам не моей обработки, а к только что созданной. Получается, при открытии формы, нужно сначала передавать ей необходимые реквизиты с обработки-владельца. Затем, в обработчике создания формы назначать эти параметры реквизитам новой обработки и к ним обращаться? как-то непонятно
   Родом из детства
 
10 - 16.07.21 - 10:35
(8) Да из ООПшных привычек у меня вуз только:) Могу и в таких утверждениях ошибаться. Просто не могу понять механику
   ptiz
 
11 - 16.07.21 - 10:37
(0) С УФ не работаю , но 5 миинут хватило, чтобы разобраться.
    ИмяФормыДляОткрытия = СтрЗаменить(ЭтаФорма.ИмяФормы, "Форма1", "Форма2");
    ОткрытьФорму(ИмяФормыДляОткрытия);
   Родом из детства
 
12 - 16.07.21 - 10:37
Да и откуда вообще 1сина узнает, какую внешнюю обработку я хочу открыть. Если я открываю их через файл-открыть(без добавления). Логичнее было тогда прописывать в путь открытия формы (ОткрытьФорму(путь)) полный адрес расположения файла. Вдруг у меня есть две одноименные обработки
   ptiz
 
13 - 16.07.21 - 10:42
Кстати, зря они ЭтаФорма сделали устаревшим. Каким еще образом можно все свойства формы посмотреть в отладчике?
   lodger
 
14 - 16.07.21 - 10:48
(13) ЭтотОбъект?
   ptiz
 
15 - 16.07.21 - 10:54
(14) Действительно. То же самое выдаёт.
   lodger
 
16 - 16.07.21 - 11:07
(15) унификация обращения к текущему объекту же.
   ДедМорроз
 
17 - 16.07.21 - 22:28
Так они ЭтаФорма переименовали в ЭтотОбъект.

Ну и еще,если очень хочется обмена между формами,то в клиентской переменной сохраняется указатель,полученный через открыть форму,а в самой форме экспортная процедура и ее можно вызывать через указатель. Плюс этого метода в том,что все на клиенте,и сервер не дергается вообще.
   МимохожийОднако
 
18 - 17.07.21 - 00:04
Проще всё сделать в одной форме со сменой видимости страниц или групп по необходимости

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