Реквизит формы в модуле менеджера

1. Johney20 11.07.18 15:00 Сейчас в теме
На форме есть реквизит (флаг), от которого зависит выполнение определенной процедуры (в модуле объекта), вызывается эта процедура из формы, я передаю свой флаг параметром, все отлично. НО, кроме этого, данная процедура вызывается так же и из модуля менеджера. И вот как мне передать значение своего флага в модуль менеджера??
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. spacecraft 11.07.18 15:27 Сейчас в теме
(1) а процедура из модуля менеджера откуда вызывается? В цепочке вызовов есть нужная форма?
+
7. Johney20 11.07.18 15:29 Сейчас в теме
(6) Вот нет, проц из модуля менеджера вызывается в другой процедуре модуля менеджера (экспортной), а эта экспортная вызывается из общего модуля уже.
+
8. harmer 1 11.07.18 15:30 Сейчас в теме
(7) а тогда с каким значение флага модуль менеджера должен вызвать процедуру модуля объекта?
+
9. Johney20 11.07.18 15:31 Сейчас в теме
(8) Вообще, который будет указан пользователем в форме, ноо.. я даже ума не приложу, как это значение передать.
+
10. spacecraft 11.07.18 15:32 Сейчас в теме
(7) так какое значение реквизита формы собираетесь передавать, если и формы нет?
Это как: дома есть ключ от сейфа в банке. Когда иду в банк из дома, то ключ беру - открываю. Когда иду из офиса, то как открыть сейф в банке? Ключ только дома.
Смените маршрут бизнес логики.
Plotks2017; YaroslavHolovatiy; harmer; +3
2. user774630 11.07.18 15:13 Сейчас в теме
Как параметр процедуры модуля менеджера. Представьте себе, что модуль менеджера - это как будто общий модуль. Про конкретный экземпляр объекта и он ничего не знает.
+
3. Johney20 11.07.18 15:14 Сейчас в теме
(2) Да, я понимаю это. Но в том то и проблема, как я его передам параметром, если у меня процедура модуля менеджера не вызывается из формы.
+
4. harmer 1 11.07.18 15:19 Сейчас в теме
(3) Вызываемая процедура экспортная?
+
5. Johney20 11.07.18 15:23 Сейчас в теме
(4) Да, вызываемая процедура, которая в модуле объекта, экспортная. А процедура из модуля менеджера, в которой вызов экспортной процедуры, - нет.
+
11. harmer 1 11.07.18 15:35 Сейчас в теме
(9) Но модуль менеджера не видит эту форму)
В таком случае можно из форму передать значение в общий модуль, из общего модуля передать в экспортную процедуру модуля менеджера, из экспортной процедуры модуля менеджера передать в неэкспортную процедуру модуля менеджера, из которого Вы уже вызываете процедуру модуля объекта с нужным флагом).
Не проще ли сделать этот реквизит - реквизитом объекта?
+
12. YanTsys 12 11.07.18 20:42 Сейчас в теме
Как вы сказали у вас:
проц из модуля менеджера вызывается в другой процедуре модуля менеджера (экспортной), а эта экспортная вызывается из общего модуля уже.

Откуда вы знаете что в момент вызова процедуры из общего модуля, форма вообще находится в открытом состоянии может её еще никто не открывал?

И про какие объекты вообще идет речь а то сложно общаться настолько абстрактно, речь идет про форму объекта например элемента справочника? Тогда откуда вы знаете что этот элемент справочника и соответственно его форма не открыты в пяти экземплярах?

Если допустить что у вас форма всегда гарантировано открыта в одном экземпляре и вы можете отслеживать программно каждое изменение флажка, то можно пойти экстремальным путем, при каждом изменении флажка
ПоместитьВоВременноеХранилище(ЗначениеФлажка, "АдресФлажкаИзЗаКоторогоМнеЛеньПравильноПерестроитьПрограмму­");
а в модуле менеджера считать значение флажка из хранилища
ЗначениеФлажка=ПолучитьИзВременногоХранилища("АдресФлажкаИзЗаКоторогоМнеЛеньПравильноПерестроитьПрограмму­");
но это из серии "Мсье знает толк в извращениях"

Подумайте над тем фактом что модуль менеджера и предназначен для тех процедур которые не привязаны к конкретному объекту, которые можно исполнять для всех объектов данного типа. Если модуль менеджера хочет брать флажки именно из форм объектов данного типа и они еще не открыты то он сам должен открыть для каждого объекта форму, считать значение флажка и закрыть форму. Если форма уже открыта то та программа которая открывала форму и должна передать в модуль менеджера все ссылки на открытые формы. Если форма открывается руками и попадание в общий модуль является уже следствием открытия формы то форма должна где то регистрировать или ссылку на себя или на флажок вплоть до экстремального варианта указанного выше...

Поэтому вас и стали расспрашивать каким образом связаны этот самый модуль менеджера и общий модуль? Почему процедурам в общем модуле понадобились процедуры из модуля менеджера а тем в свою очередь флажок из формы? Идет какой-то перебор объектов? Или вся цепочка событий всё таки запускается из самой формы?
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот