Имя: Пароль:
1C
1С v8
УФ: модуль не видит свою же процедуру
,
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) Надо выпить)))