Внешнее соединение. Подключение к серверной базе УФ. Подписка на событие #717575


#0 by NastyMosk
Добрый день! Очень нужна помощь. Выполняю подключение через Com соединение из базы обычного приложения к серверной базе на управляемом. В серверной базе программно записываю элемент справочника. Срабатывает подписка на событие - процедура с директивой &НаСервере. А при записи из внешнего соединения, я так понимаю, я нахожусь на клиенте. Вылетает соответственно ошибка "Произошла исключительная ситуация (1C:Enterprise 8.3.5.1068): Ошибка при выполнении обработчика - 'ПриЗаписи' Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода ОбновлениеПредставлений .". Получается, что он с клиента на сервер в качестве источника пытается передать объект. Как можно обойти этот момент?
#1 by ДенисЧ
"при записи из внешнего соединения, я так понимаю, я нахожусь на клиенте" При записи из внешнего соединения ты находишься во внешнем соединении. Соответственно этому нужно править код
#2 by ИС-2
1) Нет ни какой разницы, что обычное приложение, что серверное 2) при ком соединении клиента нет. Возможен только сервер Если код написан нормально, то записывать в режиме обмена данными (ставим перед записью строку ОбменДанными.Загрузка = истина)
#3 by Defender aka LINN
"Возможен только сервер" - шта?
#4 by Defender aka LINN
Ну и про обмен данными хорошая шутка, годная
#5 by NastyMosk
то, что внешнее соединение это понятно. Я имею ввиду, что я данные с клиента на сервер передаю.
#6 by NastyMosk
различие есть. При подключении к файловой базе не возникает такой проблемы, всё отрабатывает
#7 by Defender aka LINN
Никера тебе не понятно. НЕТ у тебя никакого клиента.
#8 by NastyMosk
Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода ОбновлениеПредставлений . разве это сообщение системы мне не говорит о том, что я нахожусь на клиенте?
#9 by Defender aka LINN
В сообщении прямо так и говорится, "с клиента на сервер", rly?
#10 by NastyMosk
Так и говорится, как я написала, я скопировала сообщение системы
#11 by Сергиус
Для чего тебе нужен объект в ОбновлениеПредставлений? Может есть смысл переделать код..для Внешнего соединения..допустим передавать туда структуру.
#12 by ИС-2
если подключение идет через COM, то выполняется во внешнем соединении, оно уже может вызвать процедуру из сервера. А как оно породит клиента?
#13 by NastyMosk
Внешнее соединение и толстый клиент записывают объект в клиентском контексте, а все остальные клиенты в серверном. Вот и получается, что у меня объект в клиентском контексте, а подписка в серверном.
#14 by NastyMosk
Подписка эта типовая, я не понимаю как мне сделать так, чтобы он разграничивал и не пытался ее вызвать при внешнем соединении и как туда вклиниться, чтобы передать не объект, а структуру, я тоже не понимаю
#15 by Сергиус
ОбновлениеПредставлений у тебя прописано в качестве процедуры Подписки на события ПриЗаписиДокументов?
#16 by NastyMosk
при записи справочников и документов
#17 by Сергиус
У тебя есть возможность менять конфу в подключаемой базе? Если да, то можно в качестве эксперимента попробовать отключить документы из данной подписки и попробовать снова. По крайней мере будет понятно, в этом проблема или нет..
#18 by Сергиус
+А вообще конечно вполне может быть глюком связки через COM обычного и управляемого приложений..
#19 by NastyMosk
без подписки всё отрабатывает. Но мне нужно будет много разных объектов записывать в ту базу. Скорее всего внешнее соединение оставлю только для получения данных, а для выгрузки реализую другой способ
#20 by Defender aka LINN
Обычно подписку делают доступной в режиме внешнего соединения.
#21 by NastyMosk
при установке флага "Внешнее соединение" в модуле, где процедура подписки, он сразу спотыкается и не видит ее
#22 by NastyMosk
Переделала обработку под управляемое приложение и подключение выполняю из той базы, где подписки мне мешали
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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