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

Вызов процедуры одной формы из другой.

Вызов процедуры одной формы из другой.
Я
   Креатив
 
13.04.21 - 17:05
Предположим есть у меня две формы. Похожие друг на друга.
И хочу я вызвать процедуру, написанную в модуле второй формы, при работе первой формы с контекстом первой формы.
Есть такая возможность?
   Kondarat
 
1 - 13.04.21 - 17:07
(0) ПолучитьФорму(), вызвать экспортную процедуру
   vicof
 
2 - 13.04.21 - 17:09
Но лучше пересмотреть архитектуру решения.
   Fedor-1971
 
3 - 13.04.21 - 17:12
(0) Помещаешь процедуру в общий модуль типа так ТвояНужнаяПроцедура(контФормы) Экспорт, 
дальше, выполняешь контекстный вызов сервера и вызываешь общМодуль.ТвояНужнаяПроцедура(ЭтаФорма)

Просто задумайся, что будет, если в Форме1 исправят алгоритм работы процедуры, а в Форме2 будет расчёт на старый
   Fedor-1971
 
4 - 13.04.21 - 17:13
(1) контекст Фрормы2 в ПолучитьФорму практически не получится
   Kondarat
 
5 - 13.04.21 - 17:15
(4) Если вызвать клиентскую процедуру, то получится.
   Fedor-1971
 
6 - 13.04.21 - 17:15
4+ Хотя, для ОФ может прокатить
   Kondarat
 
7 - 13.04.21 - 17:16
+5 и передать в нее параметрами вызывющую форму
   Fedor-1971
 
8 - 13.04.21 - 17:20
(7) не факт, полный контекст формы есть только НаСервере.
То, что есть НаКлиенте - мало пригодно к работе процедур. Кроме того, ТС может захотеть обработать ТЧ по алгоритму "как в другой форме"

Поэтому, самый корректный способ - положить такую процедуру в общий модуль и отдать ей контекст формы с сервера
   Kondarat
 
9 - 13.04.21 - 17:21
(8) Согласен. Конечно с ограничениями.
   Креатив
 
10 - 13.04.21 - 17:22
(3)В форме1 такой процедуры не будет.
Уточнение: формы управляемые.
   Fedor-1971
 
11 - 13.04.21 - 17:26
(10) тебе в (3) изложили схему "как можно сделать вызов процедуры с контекстом формы" - процедура будет одна и вызывай её где тебе нужно
   Креатив
 
12 - 13.04.21 - 17:28
Или даже более интересный вопрос. Могу ли я добавить процедуры в модуль формы программно? ПриСозданииНаСервере, например.
   Креатив
 
13 - 13.04.21 - 17:33
(12)+команды с их обработчиками?
   Fedor-1971
 
14 - 13.04.21 - 17:34
(12) Посмотри в типовых как реализована кнопка Печать в документах
   Fedor-1971
 
15 - 13.04.21 - 17:36
14+ саму кнопку пришпандорить не проблема, 
проблема в том, что обработчику нужен контекст формы + код нужно скомпилировать не на один раз
   Креатив
 
16 - 13.04.21 - 17:36
(14)Как-то недавно долго искал, как это всё реализовано. Надо будет ещё посмотреть. Правда опять искать придётся.
   Fedor-1971
 
17 - 13.04.21 - 17:39
(16) там что-то типа Подключаемый_.... у процедуры + она в самом модуле формы
   Rovan
 
18 - 13.04.21 - 17:49
(0) Фирма Контур так делает...не знаю какие чудаки там программируют обработку 1С, но в ней условно 30 форм и 25 из них служебные (пользователю не отображаются)
   polosov
 
19 - 13.04.21 - 18:14
(18) Вполне себе нормальная архитектура заточенная на совместную разработку и допиливание. Поначалу немного смущает, правда.
   Kassern
 
20 - 13.04.21 - 18:15
(18) ага и куча макетов, в которых хранятся еще обработки)

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