Вызов клиентской процедуры из серверной в общем модуле #751024


#0 by Aleksey1989
Добрый день. Знаю, что из сервера клиент вызвать никак не получится, но посоветуйте, пжл, что-нибудь. В общем модуле есть процедура с директивой компиляции &НаКлиенте. Необходимо обеспечить ее запуск время от времени. С помощью регламентного задания, насколько мне известно, эту проблему не решить, т.к. там можно указывать только процедуры с директивами компиляции &НаСервере. Подскажите, пжл, выход из ситуации?
#1 by Nuobu
&НаКлиентеНаСервереБезКонтекста
#2 by Aleksey1989
Не помогает, при попытке сохранить регламентное задание возникает ошибка "Метод задания не найден"
#3 by ДенисЧ
Перенести процедуру НаСервер
#4 by DexterMorgan
Знаю, что из сервера клиент вызвать никак не получится, но посоветуйте, пжл, что-нибудь Жж0шь
#5 by Aleksey1989
Проблема в том, что процедура, которая находится в общем модуле, запускает другую клиентскую процедуру. Эту самую другую клиентскую процедуру перенести не получится.
#6 by Nuobu
Чего не получится? ВнешняяОбработка?
#7 by Aleksey1989
Эта операция должна выполняться периодически, поэтому и сначала решил использовать регл. задания, пока не понял, что они работают только с серверными процедурами. Похоже, придется решить проблему через виндовый диспетчер заданий, другого пути не вижу.
#8 by Nuobu
А сделать серверную ф-ю никак?
#9 by Aleksey1989
нет, не получится - моя функция должна запускать другую, типовую клиентскую.
#10 by Nuobu
Так типовую переделай. Не обязательно переделывать именно эту типовую ф-ю. Можно ведь свою наваять. Точно такую же, только она будет делаться на сервере и сделать так, чтобы при обновлении она тоже "обновилась".
#11 by Дык ё
ПодключитьОбработчикОжидания ?
#12 by vvp91
В общем модуле доступны только две директивы компиляции &НаКлиенте и &НаСервере. Общие директивы для общих модулей не определены. Вариант следующий: * общий модуль должен иметь признаки "Клиент (управляемое приложение)", "Сервер", "Вызов сервера". * в этом общем модуле 3 метода - первый без директивы компиляции, второй с директивой &НаКлиенте, третий с директивой &НаСервере. * первый метод может быть вызван как из второго метода, так и из третьего; * вызов из клиентского метода формы через второй метод работает на клиенте; * вызов из серверного метода формы через третий метода работает на сервере; Таким образом имеем один метод (первый) как для серверного, так и для клиентского исполнения. В общем случае достаточно не указывать директивы компиляции в общем методе, и нет необходимости писать заглушки с директивами копиляции. "Вызов сервера" у модуля тоже не особенно нужен. Разницу поведения потрохов первого метода на клиенте и на сервере можно организовать через инструкции препроцессора. Проверено для форм, для регл.заданий тестируй сам.
#13 by Aleksey1989
Это не будет работать в общем модуле.
#14 by Aleksey1989
В общем, наиболее лучшим решением для себя я нашел следующее: 1. Создаю внешнюю обработку, в событии открытия формы которой добавляю строку кода запуска необходимой мне процедуры, которая выполняется НаКлиенте в общем модуле. После этого обработка закрывает 1С. 2. Создаю регламентное задание, в котором указываю запуск требуемой базы 1С с обязательным параметром Execute, в котором указываю путь к моей внешней обработке. ПодключитьОбработчикОжидания - этот способ не подойдет мне по той причине, что постоянно д.б. запущен сеанс 1С. П.с. База работает в клиент-серверном режиме.
#15 by vvp91
Что "это" не будет работать в общем модуле?
#16 by Aleksey1989
- описанная последовательность действий. Я создал общий модуль, проставил для него галки Клиент, Сервер, ВызовСервера, создал в нем 3 процедуры: Процедура1 без какой-либо директивы компиляции, Процедура2 с директивой компиляции НаСервере и Процедура3 с директивой компиляции НаКлиенте. Далее создаю регламентное задание, указываю для запуска Процедура2. Процедура2 вызывает Процедура1, а та, в свою очередь, должна вызвать Процедура3, но этого не происходит, т.к. Процедура1 не видит Процедура3. Если я понял , то предполагалась именно такая последовательность, разве не так?
#17 by ДенисЧ
я бы рекомендовал ТС написать заявление по собственному в связи с полным служебным несоответствием
#18 by vvp91
Не совсем так. В твоем случае - убери у процедуры, которую надо вызывать, директиву компиляции &НаКлиенте; - убедись, что общий модуль имеет признаки клиента и сервера.
#19 by hhhh
в общем модуле директивы эти не работают.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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