Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 00:11

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

Автор Березин, 25 июн 2012, 19:19

0 Пользователей и 1 гость просматривают эту тему.

Березин

Есть работающие три строчки кода, записывающие элемент в справочник.
Чтобы разобраться с контекстом исполнения различных модулей объекта, оформляю эти строчки  в процедуру. Процедуру помещаю в модуль менеджера Справочника «Номенклатура». Пишу ей «Экспорт».
В модуле другого объекта (обработки , в моем примере)– как я понял – я не могу просто указать ее имя, чтобы вызвать. Я должен «создать контекст». То есть код: «Справочники.Номенклатура.СоздЭл();», где» СоздЭл» имя процедуры. Но тогда  я получаю сообщение об ошибке, что «переменная не определена».
То есть, когда » СоздЭл» вызывается из того же модуля,  где она и находится, то все работает.
И для меня «Справочники.Номенклатура.СоздЭл()» это просто имя процедуры с уточнением, где она находится.  Причем здесь «переменная».
И если я все не так понял, то как надо вызывать процедуру из модуля другого объекта?

Березин

Проблему решил так.
Создал процедуру выполняемую на сервере. Ее вызов поместил в модуль обработки (который обращается к модулю справочника), исполняемый на клиенте. Строку Справочники.Номенклатура.СоздЭл() поместил в эту новую процедуру. И нет больше сообщений об ошибки и все работает.
Это единственный выход?

Gunner

Поместите процедуру в общий модуль и вызывайте откуда хотите

cska-fanat-kz

Не совсем понятно со всеми этими клиент-серверами...
Скажу одно - процедуры модуля менеджера выполняются только на стороне сервера.
Процедуры модуля формы (обработчики событий и команд) выполняются на клиенте и только там.
Чтобы вызвать в них процедуру из ММ надо "переходить на сервер", т.е. создавать отдельную серверную процедуру.
А обращение к процедуре из ММ - правильное и никак иначе.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск