|
УФ: модуль не видит свою же процедуру | ☑ | ||
---|---|---|---|---|
0
OnePrg
25.07.22
✎
19:14
|
&НаКлиенте
Функция ПрочитатьРезультатыОбмена() ЭтоПользовательРегламентногоЗадания(); <-- при проверке модуля не выдаёт ошибку, а при выполнении: метод не обнаружен КонецФункции &НаСервере Функция ЭтоПользовательРегламентногоЗадания() .... КонецФункции Флажки модуля: Сервер, Клиент, ВызовСервера, ВнешнееСоединение |
|||
1
RomanYS
25.07.22
✎
20:48
|
Эти директивы только в формах работают. Внутри ОМ не будет перехода с клиента на сервер...
|
|||
2
OnePrg
25.07.22
✎
21:57
|
Сделал отдельный модуль для клиентских процедур, отдельный для серверных - работает.
|
|||
3
Hans
25.07.22
✎
22:00
|
А ты полностью путь поробуй прописать МойМодуль.ЭтоПользовательРегламентногоЗадания()
|
|||
4
Hans
25.07.22
✎
22:01
|
судя по всему директивы работают?
|
|||
5
OnePrg
25.07.22
✎
22:02
|
(3) не помогает
|
|||
6
vicof
25.07.22
✎
23:33
|
(2) Вот так и надо делать в большинстве случаев.
Зачем компилировать процедуры модуля в двух контекстах? Плюс еще модуль надо делать с вызовом сервера. |
|||
7
vicof
25.07.22
✎
23:34
|
Я понимаю, если бы один модуль использовало обычное приложение и управляемое одновременно. Но это скорей переходный период и костыли.
|
|||
8
palsergeich
25.07.22
✎
23:40
|
(7) Тогда зачем изобретать костыли?
Ставятся галки Сервер, внешнее соединение, толстый клиент (обычное приложение) и все работает. Это описано как в стандартах на ИТС так и подтверждается в УПП. Если тебе хочется в Общем модуле ставить директивы компиляции ты или не понимаешь что делаешь или просто устал. Сам являюсь сейчас ответственным за разработку в конфигурации где идет переход с ОФ на УФ, директивы в общих модулях не нужны) Иногда бывают нужны инструкции препроцессору, но таких ситуаций лучше избегать. |
|||
9
palsergeich
25.07.22
✎
23:44
|
(0) смены контекста внутри ОМ - не будет.
Для того что бы вызвать в твоем примере функцию &НаСервере Функция ЭтоПользовательРегламентногоЗадания() нужно из функции &НаКлиенте Функция ПрочитатьРезультатыОбмена() вызвать модуль с галкой выозв сервера, а из него уже серверную процедуру этого модуля. В общих модулях, в отличии от модулей форм - нет переключения контекста. |
|||
10
palsergeich
25.07.22
✎
23:46
|
(9) Единственный способ вызвать из ОМ в контексте клиента процедуру в этом же ОМ в контексте сервера - через посреднический ОМ с флажком Вызов сервера
|
|||
11
vicof
25.07.22
✎
23:46
|
(8) "Иногда бывают нужны инструкции препроцессору, но таких ситуаций лучше избегать."
Я про это же и пишу) "Если тебе хочется в Общем модуле ставить директивы компиляции ты или не понимаешь что делаешь или просто устал." Я не хочу, автор хочет проблему решить. А ему говорят, каким способами это можно сделать) Я тоже не про директивы пишу, а про инструкции препроцессору) #Если ТолстыйКлиентОбычноеПриложение. Надеюсь, мы друг друга поняли)) |
|||
12
palsergeich
25.07.22
✎
23:48
|
(11) Я наверное устал и не понял твой посыл с первой попытки.
Да теперь я понял твой посыл) |
|||
13
vicof
25.07.22
✎
23:50
|
(12) Надо выпить)))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |