Почему с клиентской функции не вызывается серверная? #603338


#0 by D_Pavel
&НаСервере Функция ПодключитьВнешнююОбработку(Знач стрАдрес) Выдается ошибка: {ОбщийМодуль.УниверсальныеМеханизмы.Модуль(790,11)}: Процедура или функция с указанным именем не определена (ПодключитьВнешнююОбработку)
#1 by Omskdizel
Попробуй ее выше клиентской процедуры воткнуть.
#2 by Omskdizel
А кстати, в каком модуле у тебя этот код?
#3 by D_Pavel
В общем модуле. Галочки в свойствах стоят 4 штуки.
#4 by D_Pavel
Поменял местами, то же самое
#5 by D_Pavel
Управляемое приложение
#6 by Defender aka LINN
Разноси по разным модулям.
#7 by spock
и вновь продолжается бой..
#8 by D_Pavel
разносил. Не работает. Метод не обнаружен пишет.
#9 by ShoGUN
Галка "вызов сервера" стоит в свойствах модуля?
#10 by vicof
Экспорт писал?
#11 by D_Pavel
Поставил, никакой разницы Писал: &НаСервере Функция ПодключитьВнешнююОбработку(Знач стрАдрес) Экспорт &НаКлиенте Ошибка: Метод объекта не обнаружен (ПодключитьВнешнююОбработку)
#12 by bake
&НаСервере Функция ПодключитьВнешнююОбработку(Знач стрАдрес) Экспорт КонецФункции В отдельный модуль с галками Сервер и Вызов с севрера
#13 by Stepa86
директивы компиляции работают только в модуле формы и в модуле команды (в СП написано, что и в общем модуле, но у меня ни разу нормально не получилось заюзать их и не вижу смысла их там использовать). Если нужно разделить работу методов на клиентские и на серверные, то надо или юзать инструкции препроцессору или (что правильнее) разнести по разным модулям
#14 by D_Pavel
Спасибо.
#15 by Ненавижу 1С
потому что архитекторы 1С такие
#16 by ll13
Не ври. А ты читай документацию внимательно и вдумчиво. Если у общего модуля стоят галки и "клиент" и "сервер", то будет скомпилировано 2(!) экземпляра этого модуля - один на стороне сервера, другой на стороне клиента. - В серверный экземпляр попадут все процедуры и функции объявленные с директивой &НаСервере, а так же без дериктив(что равнозначно &НаСервере) - В клиентский - те что объявлены &НаКлиенте. Если при этом у модуля стоит галка "вызов сервера", то вызов процедур серверного модуля доступен с клиента. При вызове процедуры, работает правило "ближнего вызова", т.е. если вызов идет с клиента то вызывается процедура из КЛИЕНТСКОГО экземпляра модуля, если с сервера - то СЕРВЕРНОГО. Улавливаешь в чем твоя ошибка ? &НаКлиенте Это вызов функции из КЛИЕНТСКОГО экземпляра модуля(!), а её там нет )) Потому что она объявлена с директивой &НаСервере и находится разумеется в СЕРВЕРНОМ экземпляре модуля.
#17 by Stepa86
хде?
#18 by D_Pavel
И что? Есть возможность вызвать серверный экземпляр модуля из клиентского экземпляра того же модуля?
#19 by D_Pavel
А? А то пришлось сделать копию общего модуля с другим именем.
#20 by ll13
(18, 19) Нет, нельзя. Но ты можешь вызвать метод серверного модуля из формы Пример: // В общем клиент-серверном модуле с галкой вызов сервера
#21 by D_Pavel
С формами понятно.
#22 by ll13
+ точнее процедура объявленная без директив &наклиенте или &насервере будет скомпилирована и тат и там
#23 by AlexNew
А сервер то есть? Или ты пытаешься отладить на локальной?
#24 by vmv
чиать - думать. хватит переливать их пустого в порожнее, думал уже все поменяли психологию со времен корявой 7.7
#25 by D_Pavel
Конечно есть. На локальном бы такой проблемы не возникало. это ты кому?
#26 by 5 Элемент
в общих модулях нельзя использовать директивы, учи матчасть студент
#27 by D_Pavel
Проверка синтаксиса однако звисит от директив в общих модулях!
#28 by ll13
Вот блин... Ты это разработчикам типовых расскажи, и тем кто документацию пишет, а то они видимо не в курсе ...
#29 by 5 Элемент
где ты в типовых это видел?
#30 by ll13
УТ 11
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С