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

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

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

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

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

Поэтому вас и стали расспрашивать каким образом связаны этот самый модуль менеджера и общий модуль? Почему процедурам в общем модуле понадобились процедуры из модуля менеджера а тем в свою очередь флажок из формы? Идет какой-то перебор объектов? Или вся цепочка событий всё таки запускается из самой формы?
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Салехард
зарплата от 80 000 руб. до 200 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 100 000 руб.
Полный день


Программист 1С
Санкт-Петербург
Полный день

Программист 1С
Санкт-Петербург
Полный день