Почему не видится функция глобального общего модуля с модуля управляемой формы
Здравствуйте, возможно банальный вопрос, но столкнулся впервые...
В релизе 8.3.8.2167 (может и в более свежих также, не проверял) столкнулся с тем, что при попытке компиляции модуля управляемой формы, где присутствует вызов функции или процедуры общего модуля, у которого стоит галка Глобальный выходит ошибка, что такая процедура или функция не найдена.
Т.е. еще раз, есть к примеру общий модуль "Тест", в нем стоит галка "Глобальный" и галки "Сервер" и "Вызов сервера". В этом модуле есть какая-то процедура. Так вот эта процедура как оказалось не видна с модуля формы и лечится только если снять галку "Глобальный" с модуля и обращаться к процудере через точку, т.к. вида Тест.ПроцедураТакаяТо(). Просьба пояснить почему так? Это такая особенность УФ, или баг платформы?
В релизе 8.3.8.2167 (может и в более свежих также, не проверял) столкнулся с тем, что при попытке компиляции модуля управляемой формы, где присутствует вызов функции или процедуры общего модуля, у которого стоит галка Глобальный выходит ошибка, что такая процедура или функция не найдена.
Т.е. еще раз, есть к примеру общий модуль "Тест", в нем стоит галка "Глобальный" и галки "Сервер" и "Вызов сервера". В этом модуле есть какая-то процедура. Так вот эта процедура как оказалось не видна с модуля формы и лечится только если снять галку "Глобальный" с модуля и обращаться к процудере через точку, т.к. вида Тест.ПроцедураТакаяТо(). Просьба пояснить почему так? Это такая особенность УФ, или баг платформы?
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(5)
Глобальный — если флаг установлен, функции и процедуры из этого модуля становятся доступны в глобальном контексте. Т.е. их можно вызвать в любом месте конфигурации, обращаясь без названия общего модуля. Однако добавляется условие — название процедур и функций в этом общем модуле должны быть уникальны в рамках глобального контекста.
Сервер — процедуры и функции данного общего модуля могут быть выполнены на сервере.
Внешнее соединение — программные коды данного общего модуля могут быть выполнены при подключении внешним источником (например, COM).
Клиент (управляемое приложение) — процедуры и функции данного общего модуля могут быть использованы в толстом клиенте в режиме управляемого приложения.
Клиент (обычное приложение) — программные коды данного общего модуля могут быть использованы в толстом клиенте в режиме обычного приложения.
Вызов сервера — флаг, разрешающий на клиенте использовать процедуры и функции из этого общего модуля.
Привилегированный — если установлена Истина, в этом общем модуле будет отключена проверка прав доступа.
Повторное использование — определяет настройки возвращаемых значений, если опция включена, то после первого выполнения система запомнит значение для данных входных параметров и будет возвращать уже готовое значение. Может принимать следующие значения: не используется — отключение, на время вызова — на время выполнения определенной процедуры, на время сеанса — пока пользователь не закрыл сеанс (программу).
Сервер — процедуры и функции данного общего модуля могут быть выполнены на сервере.
Внешнее соединение — программные коды данного общего модуля могут быть выполнены при подключении внешним источником (например, COM).
Клиент (управляемое приложение) — процедуры и функции данного общего модуля могут быть использованы в толстом клиенте в режиме управляемого приложения.
Клиент (обычное приложение) — программные коды данного общего модуля могут быть использованы в толстом клиенте в режиме обычного приложения.
Вызов сервера — флаг, разрешающий на клиенте использовать процедуры и функции из этого общего модуля.
Привилегированный — если установлена Истина, в этом общем модуле будет отключена проверка прав доступа.
Повторное использование — определяет настройки возвращаемых значений, если опция включена, то после первого выполнения система запомнит значение для данных входных параметров и будет возвращать уже готовое значение. Может принимать следующие значения: не используется — отключение, на время вызова — на время выполнения определенной процедуры, на время сеанса — пока пользователь не закрыл сеанс (программу).
Ага, тоже всю голову сломал.
"ВызовСервера" для глобального модуля не дает доступность его методов с клиента...
Если надо, то или модуль делать неглобальным,
или вызывать из обертки серверной типа
&НаКлиенте
процедура НужнаяОбработка()
НужнаяОбработкаСервер();
КонецПроцедуры
//без директивы - значит "&НаСервере"
Процедура НужнаяОбработкаСервер()
//Вызов процедуры с сервера
КонецПроцедуры
Ну или делать отдельный модуль клиентский, если можно обойтись без серверного контекста для решения задачки... +
(Очень локально сам пошел по третьему пути, заменив обращения к перечислениям на "ПредопределенноеЗначение...")
"ВызовСервера" для глобального модуля не дает доступность его методов с клиента...
Если надо, то или модуль делать неглобальным,
или вызывать из обертки серверной типа
&НаКлиенте
процедура НужнаяОбработка()
НужнаяОбработкаСервер();
КонецПроцедуры
//без директивы - значит "&НаСервере"
Процедура НужнаяОбработкаСервер()
//Вызов процедуры с сервера
КонецПроцедуры
Ну или делать отдельный модуль клиентский, если можно обойтись без серверного контекста для решения задачки... +
(Очень локально сам пошел по третьему пути, заменив обращения к перечислениям на "ПредопределенноеЗначение...")
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот