Имя: Пароль:
1C
1С v8
Внешние обработки. Какой-то странный глюк
0 LazyCamel
 
21.10.14
13:29
Написал обработку. В модуле следующий код

&НаСервере
Процедура ЗагрузитьДоговор()  
//текст процедуры
КонецПроцедуры

&НаКлиенте
Процедура ImportProcDoc() Экспорт
    //некоторые действия...
    ЗагрузитьДоговор();
    
    //еще какие-то действия
КонецПроцедуры

При открытии обработки в режиме предприятия (Управление проектной организацией, 1.3.56.1/3.1.29.6; 1с версии 8.2.19.90) имеем следующую ошибку.

{ВнешняяОбработка.Import.МодульОбъекта(112,2)}: Процедура или функция с указанным именем не определена (ЗагрузитьДоговор)
    <<?>>ЗагрузитьДоговор();

В чем дело может быть?

ЗЫ
Те же действия на ЗУП 2.5.77.2 прекрасно проходят.
1 НафНаф
 
21.10.14
13:30
В модуле чего ты это написал?
2 LazyCamel
 
21.10.14
13:55
В модуле обработки
3 LazyCamel
 
21.10.14
17:54
Ну что никто не знает?
4 Любопытная
 
21.10.14
17:57
никто не знает зачем ты директивы компиляции в модуле объекта писал.
Ну и как бы... Скорее всего ты чего-то не договариваешь.
5 mikecool
 
21.10.14
17:57
&НаСервере
Процедура ЗагрузитьДоговор() ЭКСПОРТ блеать
//текст процедуры

КонецПроцедуры
6 LazyCamel
 
21.10.14
18:22
(4) Например вот за этим

{ВнешняяОбработка.Import.МодульОбъекта(12,2)}: Процедура или функция с указанным именем не определена (ЗавершитьРаботуСистемы)
    <<?>>ЗавершитьРаботуСистемы(Ложь); (Проверка: Сервер)

Это я убрал директивы

(5) ни фига не угадал
7 Classic
 
21.10.14
18:26
Ты модуль обработки и модуль формы не путаешь?
8 LazyCamel
 
21.10.14
18:27
Нет, не путаю
9 Chameleon1980
 
21.10.14
18:31
экспорт
10 LazyCamel
 
21.10.14
18:34
Да не помогает экспорт. Я сам прежде всего на это подумал. И потом процедуры в одном модуле расположены.
11 LazyCamel
 
21.10.14
18:35
(4) Не договорил я только то, что разрабатывалась эта байда под 8.3, а на боевом серваке стоит 8.2. Неужели это может влиять?
12 Любопытная
 
21.10.14
18:42
(11) У тебя клиент-сервер?
13 Любопытная
 
21.10.14
18:44
(6)
Глобальный контекст (Global context)
ЗавершитьРаботуСистемы (Exit)

Доступность:

Тонкий клиент, веб-клиент, толстый клиент.

Что ты хочешь завершать на стороне сервера?
14 LazyCamel
 
21.10.14
18:49
(12) толстый клиент. Насколько помню, там все по умолчанию работает на стороне клиента.
(13) Именно поэтому и разделил
15 alextom81
 
21.10.14
18:51
Можено потроллить ???

Пытаться вызывать методы, процедуры и функции сервера на клиенте - моветон. Используй другие директивы препроцессора при задании экспортной процедуры, если хочешь использовать её и на клиенте, и на сервере.
Было в СП что-то вроде &НаСервереИКлиенте, не помню точно, разрабатывал года два назад в УФ.

А во во втором случае - аналогично, вызывать методы клиента на сервере ЗАПРЕЩЕНО =)

Если УПО работает в режиме К-С, а ЗУП в файловом, тогда понятно, почему в первом случае вызов не работает, а во втором работает.
16 alextom81
 
21.10.14
18:53
(14)Надо очень тонко рулить в данном случае с #Если клиент тогда, и, соответственно, Если Сервер тогда, иначе читай СП.
17 Любопытная
 
21.10.14
18:53
(14) "Насколько помню, там все по умолчанию работает на стороне клиента. " Авотфих. Пару раз уже утыкалась на толстом клиенте на отсутсвие отладки в некоторых местах из-за того, что сервер не в режиме отладки включен. Впрочем, там общие модули были, там может по-другому.
А если толстый клиент, то на кой черт вообще директивы расставлять?
В общем, имхо -ты чего не договариваешь :) Я бы взялась на обработку посмотреть, но уже завтра. Сегодня спать пора :)
18 LazyCamel
 
21.10.14
18:57
(15)(16) Дык вопрос не в том, что что-то не отрабатывает. А в том, что обработка в принципе не открывается.
19 LazyCamel
 
21.10.14
18:58
(17) Завтра так завтра:)
20 alextom81
 
21.10.14
19:15
(18) модуль обработки (по крайней мере, та часть, которую ты обозначил) компилируется при вызове обработки и ломается. Такое можно предположить в 1С. И неважно, где он находится. При открытии обработки отрабатывает не открыть(), а создать(), после чего происходит компиляция модуля вызываемой сущности.
21 st-max
 
21.10.14
22:15
Размести процедуру в модуле формы
&НаКлиенте
Процедура ImportProcDoc()

В управляемом приложении на сервере киентский код не видит!
22 Любопытная
 
22.10.14
05:38
(19) Ну что, решили проблему?
Программист всегда исправляет последнюю ошибку.