Имя: Пароль:
1C
1С v8
Опять про мутабельные значения, помогайте!
,
0 Vetal_978
 
05.08.11
20:43
Всем привет!
Прошу отвечать по теме и то если знаете:
Исходные данные
Платформа 8.2.13
Тонкий клиент, толстый клиент обычное приложение
Есть подписка на событие ПриЗаписи - СправочникОбъект.Номенклатура (модуль: сервер, вызов сервера)
Что делаю:
1. В модуле менеджера некой обработки создаю обработку УниверсальныйОбменДаннымиXML, с помощью ее по нехитрым правилам выгружаю номенклатуру (из других источников данных) и загружаю ее по СОМ в эту же базу. Получаю ошибку передачи мутабельного значения с клиента на сервер в первом параметре подписки на событие (т. е. Источник) при записи объекта.
2. Программно создаю объект, загрузка = истина, и записываю его. С подпиской на событие проблем нет, отрабатывает.
Вопрос:
Не вызывается подписка на событие. Верней не может вызваться!
Почему возникает такого рода ошибка, ведь с клиента на сервер ничего не передается, все происходит в модуле менеджера и объекта обработок???
Почему программное создание объекта с загрузка =истина (так я и в УнивОбменXML гружу) из самописной обработки ошибок не возникает!

Плюс заметил что первый объект какой то странный, те поля, которые в ПКО не описаны имеют значение Null. Второй и последующие объекты - пустое значение определенного типа. Но даже и второй объект такую ошибку выдает. Что за проблемы с мутабельностью?! Есть тут опытные мутаторы?
1 Vetal_978
 
05.08.11
20:46
Извиняюсь за ошибки
2 MikleV
 
05.08.11
20:49
а флаг внешнее соединение у модуля стоит?
3 Stim213
 
05.08.11
21:34
Дочитал до "Есть тут опытные мутаторы?", пролил кофе на штаны..
4 MikleV
 
05.08.11
21:48
(3)попытка употребления мутабельного кофе вызвала исключение)
5 Vetal_978
 
05.08.11
23:44
(2) Нет, не стоит. Но и не используя внешнее соединение та же ошибка.
6 Господин ПЖ
 
05.08.11
23:46
мутатор мыть надо...
7 БалбесВ1с
 
05.08.11
23:48
(0)Если навести курсор на твой ник то он становится красным.Ты мутатор?
8 Икогнито
 
05.08.11
23:50
гормон уже болит
9 Vetal_978
 
06.08.11
00:12
Ну так что? Все слили, да?
10 AlexNew
 
06.08.11
00:14
Не насторожило . Получаю ошибку передачи мутабельного значения с клиента на сервер в первом параметре подписки на событие (т. е. Источник) при записи объекта?
11 AlexNew
 
06.08.11
00:15
(2) Садись. 5-3.
12 Vetal_978
 
06.08.11
00:32
(10) Что спросить то хотите?
13 Vetal_978
 
06.08.11
00:39
Плюс еще, вот такая нехитрая функция глобального модуля иногда (то есть не всегда :)) намертво вешает конфигуратор, если посмотреть ее значение


// Где я?
//
Функция ГдеЯ() Экспорт
   
   Перем Значение;
   
   Значение = "";
   
   #Если Сервер Тогда
       Значение = "Сервер";
       
   #ИначеЕсли ТолстыйКлиентОбычноеПриложение Тогда
       Значение = "ТолстыйКлиентОбычноеПриложение";
       
   #ИначеЕсли ТолстыйКлиентУправляемоеПриложение  Тогда
       Значение = "ТолстыйКлиентУправляемоеПриложение";
       
   #ИначеЕсли ВнешнееСоединение Тогда
       Значение = "ВнешнееСоединение";
       
   #ИначеЕсли ТонкийКлиент Тогда
       Значение = "ТонкийКлиент";
       
   #ИначеЕсли ВебКлиент Тогда
       Значение = "ВебКлиент";
       
   #Иначе
       Значение = "Не знаю!";
       
   #КонецЕсли
   
   Возврат Значение;
   
КонецФункции // ГдеЯ()
14 kiruha
 
06.08.11
00:45
(13)
Сомнительный код - использование директив препроцессора
как функции
15 kiruha
 
06.08.11
00:46
И что есть глобальный модуль в 8.2 ?
16 Vetal_978
 
06.08.11
00:49
(14) Че эта? Где это запрещено?
(15) неужели настолько не шаришь? :) Есть специальная галка.
17 MikleV
 
06.08.11
11:37
(11)аргументы?
18 acsent
 
06.08.11
11:53
у тебя кривая конфа приемник не кмеет работать в режиме внешнего соединения
19 acsent
 
06.08.11
11:54
модуля с подписками должны имкть все галки
20 Vetal_978
 
07.08.11
16:12
(18)(19) см (5) + установка всех галок ничего не решает.
21 Axel2009
 
07.08.11
16:25
ну ты хоть отладчиком то глянул, что передается мутабельного?
22 Vetal_978
 
07.08.11
16:37
(21) ну а что немутабельного может быть в подписке на событие? СправочникОбъект конечно!
23 Vetal_978
 
07.08.11
16:37
вот он и передается. Только вот понять не могу причем тут передача с клиента когда все действия на сервере делаю.
24 Axel2009
 
07.08.11
16:46
и как это выглядит?
25 Jolly Roger
 
07.08.11
16:52
(0) >Есть подписка на событие ПриЗаписи - СправочникОбъект.Номенклатура (модуль: сервер, вызов сервера)
я правильно понял, что это означает, что номенклатуру можно записать только на сервере?
26 Vetal_978
 
07.08.11
16:53
(25) на клиенте ничего записывать нельзя. Все действия происходят на сервере.
27 Vetal_978
 
07.08.11
16:54
(24) что именно?
28 Axel2009
 
07.08.11
17:00
запись как выглядит не хитрая?
29 Jolly Roger
 
07.08.11
17:03
(26) но тогда и в ком-соединении записать не получится, поскольку оно является разновидностью толстого клиента...
30 Vetal_978
 
07.08.11
17:18
(28) Загрузка = Истина, потом Объект.Записать(). Все это делается средствами обработки УниверсальныйОбменДаннымиXML
31 Vetal_978
 
07.08.11
17:27
(29) верно, толстого или тонкого (V82c.Application). Но в данном случае это толстый. А в толстом метод Записать() определен.
32 Axel2009
 
07.08.11
17:45
(30) т.е. вариант 2 отрабатывает, когда в обработке (на клиенте) создал объект и его записал?
33 Vetal_978
 
07.08.11
17:48
(32) в модуле обработки (на сервере) - да.
34 Axel2009
 
07.08.11
17:49
(33) ну так а "В модуле менеджера некой обработки создаю обработку УниверсальныйОбменДаннымиXML" где выполняется?
35 Vetal_978
 
07.08.11
17:51
(34) а модуль менеджера где выполняется? на сервере
36 Axel2009
 
07.08.11
17:51
(35) какой модуль какого менеджера?
37 Vetal_978
 
07.08.11
17:54
(36) издеваешься? :)
Есть обработка, в ее модуле менеджера прописаны действия по загрузке данных посредством обработки УниверсальныйОбменДаннымиXML. В этом модуле создаю обработку Обработки.УниверсальныйОбменДаннымиXML.Создать() и поехали данные грузить...
38 Axel2009
 
07.08.11
18:04
(37) чудес не бывает. чтото создается на клиенте.
39 Vetal_978
 
07.08.11
18:06
(38) не бывает. но не пойму где я косячу.
40 Axel2009
 
07.08.11
18:11
ну создай в обработке универсальныйобменданнымиXML процедуру, в которой вызывай процедуру с сервера. и передай туда Объект чегонибудь. глянешь, где выполняется твоя обработка.
41 Jolly Roger
 
07.08.11
18:13
(31) но этого мало. подписка-то тоже должна быть там же, а у тебя она только на сервере...
42 Vetal_978
 
07.08.11
20:52
(41) Баалин, все верно! Провафлил галку "Клиент обычное приложение" у модуля, была скрыта в интерфейсе.

Всем спасибо, мои косяки.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший