Имя: Пароль:
1C
1С v8
Ошибка регламентного задания в функции, которая в нем не используется
0 Антиквар
 
05.01.21
14:44
Всем привет!
В приложении на обычных формах есть регламентное задание, работает по расписанию, загружает данные (база на SQL-сервере).
Это задание вываливается с ошибкой на функции, в которой есть такой код:
<Если Вопрос("Текст вопроса?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Да Тогда>
Понятно, что интерактивные вызовы в регламентном задании не работают и "РежимДиалогаВопрос" вызовет ошибку. Но данная функция не используется регламентным заданием, оно в эту функцию не заходит ни при каких обстоятельствах, однако ошибка вылезает именно здесь.
Но эта функция находится в общем модуле, в котором есть другая функция, и последняя используется регламентным заданием.
Получается, что если регламентное задание вызывает какую-то функцию общего модуля, то во всём этом общем модуле, а точнее ни в какой другой функции этого модуля, не должно быть вызовов диалоговых окон?
1 fisher
 
05.01.21
14:49
Это ошибка не вызова функции, а компиляции модуля.
При первом обращении к модулю (в данном случае - к серверной версии модуля) выполняется его компиляция.
А он на сервере скомпилироваться не может, поскольку содержит недоступную на сервере функциональность.
2 fisher
 
05.01.21
14:51
На обычных формах это типовая ошибка. Поскольку в обычной ситуации разработчик сталкивается с выполнением на сервере почти исключительно в фоновых заданиях. В 99% весь код приложения на ОФ исполняется на клиенте.
3 fisher
 
05.01.21
14:53
Если одна такая проблемная функция и не хочется рефакторить, то можно быстро захачить - просто обрами ее директивами компилятора #Если Клиент Тогда
чтобы она не компилировалась на сервере.
4 ДенисЧ
 
05.01.21
15:10
Это ошибка погромиста.
Если в модуле есть функции, которые вызываются на сервере, то все диалоговые должны быть в препроцессоре #Если Клиент
5 Антиквар
 
05.01.21
15:20
"просто обрами ее директивами компилятора #Если Клиент Тогда"

Ага, я так и сделал, но я не знал, что есть такое требование, думал в функцию не заходит, значит и не сработает
6 ДенисЧ
 
05.01.21
15:58
(5) А то, что модуль компилируется целиком - ты даже не подозревал? Ты точно не с Чукотки? А то такой наивынй... _)))))
7 Asmody
 
05.01.21
18:30
(6) ты человеку сейчас мозг сломаешь тем, что в 1С что-то "компилируется".
8 ДенисЧ
 
05.01.21
18:37
(7) А... Не жалко. Через пару недель окунётся в прорубь и там видно будет ))
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс