Имя: Пароль:
1C
1С v8
Выполнение на сервере и на клиенте, ошибки в невызываемых процедурах
0 CMblCL
 
21.07.16
13:38
8.2.19.130
Режим совместимости с 8.1

Есть некая процедура, которая написана в обработке и при открытии обработки при нажатии по кнопке выполняется (получается на клиенте).
В этой процедуре вызывается другая (вот это запомнить) которая лежит в общем модуле ("Модуль1") (галки сервер, клиент(об. прил.), внешнее соединение). Процедура в обработке исполняется как надо, без ошибок.

Я беру эту процедуру и хочу сделать из нее регламентное задание. Для этого копирую ее в общий модуль ("Модуль2") (галка сервер) вызываю эту процедуру для теста и получаю массу ошибок. При переходе к месту ошибок я определяю, что ошибки содержатся в процедурах "Модуля1", вот только ни одной из них я не вызывал.

Что я делаю не так? Ошибки, как я понимаю, происходят из-за того, что выполнение идет на сервере, где недоступны клиентские конструкции. Но почему эти процедуры "Модуля1" вообще принимаются в расчет? Я же их не вызывал.
1 hhhh
 
21.07.16
13:42
(0) ты думашь синтаксический контроль модуля конкретно для твоей отдельной любимой процедуры запускается? синтаксический контроль берет модуль. И ошибки выдает, которые в модуле. Целиком модуль анализирует.
2 lodger
 
21.07.16
13:49
из Модуль2 надо убрать вообще всё что не требуется для выполнения задачи.
проще очистить его и поштучно перенести то, что надо.
3 CMblCL
 
21.07.16
13:50
(2) В Модуль2 все хорошо, Из Модуль2 вызывается процедура Модуля1.
4 CMblCL
 
21.07.16
13:52
(1) Если это так работает, как ты сказал то это полный бред.
5 hhhh
 
21.07.16
13:54
(4) почему бред? Это всегда так было. И так всегда будет. Когда модуль загружается в память, сразу происходит его контроль.
6 Defender aka LINN
 
21.07.16
13:54
(4) Модуль компилируется (а в твоем случае НЕ компилируется) в момент вызова. Можешь считать это хоть бредом, хоть сахарной ватой, хоть вторником.
7 CMblCL
 
21.07.16
13:56
(6) (5) То есть любой клиентский общий модуль, содержащий клиентские конструкции не может быть использован при серверном вызове при любом раскладе?
8 MM
 
21.07.16
14:00
(7) Для этого существуют директивы и инструкции препроцессора, они определяют, где и что компилировать.
9 CMblCL
 
21.07.16
14:05
(8) Если директива не стоит, то компиляция происходит в любом случае?
10 CMblCL
 
21.07.16
14:10
Поставил директивы, ошибки ушли.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой