УФ. Как из клиентской процедуры вызвать серверную функцию? #781116


#0 by megabax
Добрый день. У меня в УФ есть общий модуль, у него стоят галочки "Клиент", "Сервер", "Вызов сервера". В нем есть клиентская процедура, которая вызывает серверную функцию: И почему то ругается синтаксический контроль, что  ПолучитьДатуСреза не обнаружена. Подскажите пожалуйста, как лечить? Очень надо из клиентской процедуры вызвать серверную функцию.
#1 by Nuobu
Экспорт.
#2 by megabax
НЕ помогло
#3 by Nuobu
функция ПолучитьДатуСреза экспорт
#4 by butterbean
кэш почисти
#5 by aleks_default
вначале должно идти название общего модуля потом название фуннкции этого модуля
#6 by megabax
Так и сделал   Это как?
#7 by Timon1405
Имямодуля.ПолучитьДатуСреза
#8 by aleks_default
через точку
#9 by megabax
В одном и том же модуле процедура и функция
#10 by Nuobu
А, вот оно че. Ну, раз в одном и том же, то работать не будут. Разноси по разным модулям.
#11 by sitex
что то мне кажется ты для общего модуля дофига галок поставил)
#12 by jsmith
+1
#13 by sitex
+1
#14 by megabax
Сначала было меньше, думал, мало поставил поэтому не работает, поставил побольше... все равно не работает
#15 by megabax
Разнес по разным модулям, теперь говорит: {ОбщийМодуль.шапСобытияКлиент.Модуль}: Метод объекта не обнаружен (шапПриНачалеРаботыСистемы)     шапСобытия.шапПриНачалеРаботыСистемы;
#16 by jsmith
#17 by jsmith
В данном случае будет скомпилировано два экземпляра этого общего модуля, один на сервере, один на клиенте. Все процедуры и функции, объявленные с директивой компиляции &НаСервере, попадут в серверный экземпляр модуля, соответственно все процедуры и функции, объявленные с директивой компиляции &НаКлиенте, попадут в клиентский экземпляр модуля. Все процедуры и функции, объявленные без директив компиляции попадут и в клиентский, и в серверный экземпляры модуля.
#18 by gitotuta
в общем модуле никак. Вообще клиент сервер в общем модуле рекомендуется использовать только для общих процедур для сервера и клиента
#19 by sitex
Дели по общим модулям короче. +1
#20 by jsmith
Ну можно в одном как в
#21 by megabax
А если надо, тогда как быть? Как мне на клиенте получить значение константы?
#22 by gitotuta
вызвать серверный модуль
#23 by gitotuta
Сделай 2 модуля: шапКлиент и шапСервер
#24 by gitotuta
и шапВызовСервера еще
#25 by Nuobu
У тебя есть какой-то модуль: РасчетКонстант. Он делается на клиенте, значит должен называться: РасчетКонстантНаКлиенте. Тебе из него нужно получать данные с сервера, тогда нужно создавать еще один модуль: РасчетКонстантСервер.
#26 by megabax
Если я из модуля шапСобытия убираю от процедур шапПриНачалеРаботыСистемы и ПолучитьДатуСреза опять ругается, что нету такой функции ) Дык я так и делаю. А он ругается, что такая функция не обнаружена.
#27 by megabax
То есть выдается сообщение как в
#28 by sitex
прочти , + процедуры то сделай экспортные и обращайся к ним с учетом своих названий.
#29 by DrZombi
Убери Команды компелятору
#30 by jsmith
Короче, такая байда будет работать только в режиме толстого клиента. В тонком клиенте другой расклад. Делай 2 модуля.
#31 by megabax
Дык так и сделал. В клеинтсокм модуле: В модуле шапСобытияСервер: &НаСервере не работает убираю, после этого не проходит синтаксический контроль
#32 by gitotuta
вызов сервера стоит?
#33 by megabax
в модуле шапСобытияСервер стоит
#34 by elCust
>>> Все процедуры и функции, объявленные без директив компиляции попадут и в клиентский, и в серверный экземпляры модуля. Хотел поинтересоваться. Откуда в вас такие сведения? Без указания директивы всегда выполнялось на сервере вроде? P.S Мне для общего развития.
#35 by gitotuta
а еще какие галки стоят?
#36 by megabax
Клиент и Сервер
#37 by sitex
Каждый модуль для своих целей в так и описал. Галки также расставь соответственно правильно, для клиентских "Клиент" , которые на сервере выполняются "Сервер".
#38 by megabax
Дык я уже всяко пробовал. И ставил галки и выключал. Помогло только когда я из модуля управляемого приложения перенес вызов в модуль сеанса. Непонятно, почему из ПриНачалеРаботы системы невозможно вызвать процедуру серверного модуля???
#39 by aleks_default
ты вызов сервера на серверном общем модуле не поставил
#40 by sitex
В проц-е ПриНачалеРаботыСистемы  можно вызывать и проц-ы и функции.
#41 by sitex
+модуля управляемого приложения
#42 by aleks_default
+ Или влез в директиву компиляции #Если Клиент Тогда
#43 by aleks_default
т.е. инструкции препроцессора
#44 by Мыш
Если у общего модуля установлено свойство Сервер и еще какое-либо свойство, то это означает, что общий модуль будет доступен одновременно на сервере и в выбранном клиенте. При этом необходимо понимать, что фактически это будет несколько вариантов скомпилированного кода (по числу выбранных клиентов и собственно для сервера). При этом если метод, расположенный в таком общем модуле, вызывается со стороны клиента, то будет использована клиентская копия общего модуля, а если с сервера – серверная.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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