|   |   | 
| 
 | УФ: модуль не видит свою же процедуру | ☑ | ||
|---|---|---|---|---|
| 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) Надо выпить)))     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |