Имя: Пароль:
1C
1С v8
Внешнее соединение. Подключение к серверной базе УФ. Подписка на событие
,
0 NastyMosk
 
19.08.14
07:53
Добрый день!
Очень нужна помощь. Выполняю подключение через Com соединение из базы обычного приложения к серверной базе на управляемом. В серверной базе программно записываю элемент справочника. Срабатывает подписка на событие - процедура с директивой &НаСервере. А при записи из внешнего соединения, я так понимаю, я нахожусь на клиенте. Вылетает соответственно ошибка "Произошла исключительная ситуация (1C:Enterprise 8.3.5.1068): Ошибка при выполнении обработчика - 'ПриЗаписи'
Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода ОбновлениеПредставлений ().". Получается, что он с клиента на сервер в качестве источника пытается передать объект. Как можно обойти этот момент?
1 ДенисЧ
 
19.08.14
07:57
"при записи из внешнего соединения, я так понимаю, я нахожусь на клиенте"

При записи из внешнего соединения ты находишься во внешнем соединении.

Соответственно этому нужно править код
2 ИС-2
 
naïve
19.08.14
08:11
1) Нет ни какой разницы, что обычное приложение, что серверное
2) при ком соединении клиента нет. Возможен только сервер

Если код написан нормально, то записывать в режиме обмена данными (ставим перед записью строку ОбменДанными.Загрузка = истина)
3 Defender aka LINN
 
19.08.14
08:31
(2) "Возможен только сервер" - шта?
4 Defender aka LINN
 
19.08.14
08:31
(2) Ну и про обмен данными хорошая шутка, годная
5 NastyMosk
 
19.08.14
08:55
(1) то, что внешнее соединение это понятно. Я имею ввиду, что я данные с клиента на сервер передаю.
6 NastyMosk
 
19.08.14
09:01
(2) различие есть. При подключении к файловой базе не возникает такой проблемы, всё отрабатывает
7 Defender aka LINN
 
19.08.14
09:06
(5) Никера тебе не понятно. НЕТ у тебя никакого клиента.
8 NastyMosk
 
19.08.14
09:10
(7) Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода ОбновлениеПредставлений (). разве это сообщение системы мне не говорит о том, что я нахожусь на клиенте?
9 Defender aka LINN
 
19.08.14
09:15
(8) В сообщении прямо так и говорится, "с клиента на сервер", rly?
10 NastyMosk
 
19.08.14
09:16
(9) Так и говорится, как я написала, я скопировала сообщение системы
11 Сергиус
 
19.08.14
09:32
(0) Для чего тебе нужен объект в ОбновлениеПредставлений()?

Может есть смысл переделать код..для Внешнего соединения..допустим передавать туда структуру.
12 ИС-2
 
naïve
19.08.14
09:43
(3) если подключение идет через COM, то выполняется во внешнем соединении, оно уже может вызвать процедуру из сервера. А как оно породит клиента?
13 NastyMosk
 
19.08.14
09:49
(12) Внешнее соединение и толстый клиент записывают объект в клиентском контексте, а все остальные клиенты в серверном. Вот и получается, что у меня объект в клиентском контексте, а подписка в серверном.
14 NastyMosk
 
19.08.14
09:50
(11) Подписка эта типовая, я не понимаю как мне сделать так, чтобы он разграничивал и не пытался ее вызвать при внешнем соединении и как туда вклиниться, чтобы передать не объект, а структуру, я тоже не понимаю
15 Сергиус
 
19.08.14
09:55
(14) ОбновлениеПредставлений() у тебя прописано в качестве процедуры Подписки на события ПриЗаписиДокументов?
16 NastyMosk
 
19.08.14
09:57
(15) при записи справочников и документов
17 Сергиус
 
19.08.14
10:00
(16) У тебя есть возможность менять конфу в подключаемой базе? Если да, то можно в качестве эксперимента попробовать отключить документы из данной подписки и попробовать снова. По крайней мере будет понятно, в этом проблема или нет..
18 Сергиус
 
19.08.14
10:06
+(17)А вообще конечно вполне может быть глюком связки через COM обычного и управляемого приложений..
19 NastyMosk
 
19.08.14
10:08
(17) без подписки всё отрабатывает. Но мне нужно будет много разных объектов записывать в ту базу. Скорее всего внешнее соединение оставлю только для получения данных, а для выгрузки реализую другой способ
20 Defender aka LINN
 
19.08.14
11:10
(14) Обычно подписку делают доступной в режиме внешнего соединения.
21 NastyMosk
 
19.08.14
11:15
(20) при установке флага "Внешнее соединение" в модуле, где процедура подписки, он сразу спотыкается и не видит ее
22 NastyMosk
 
19.08.14
11:28
Переделала обработку под управляемое приложение и подключение выполняю из той базы, где подписки мне мешали
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.