Имя: Пароль:
1C
1С v8
проблема с объектом com соединении
0 zippygrill
 
01.03.13
17:08
привет.
с недавних пор обработка УниверсальныйОбменДаннымиXML стала выдавать ошибку. в поисковике нашел v8: Не соединяеться по COM у обработке УниверсальнаяЗагрузкаДанныхXML и с точно такой ж проблемой. При инициализации обмена база вылетает на этой строчке:

РаботаВозможна = мОбработкаДляЗагрузкиДанных.ВыполнитьДействияПередЧтениемДанных(ТекущаяСтрокаДляЗаписи)

где "мОбработкаДляЗагрузкиДанных" это объект COMОбъекта "УниверсальныйОбменДаннымиXML" на стороне приемника, а "ВыполнитьДействияПередЧтениемДанных(ТекущаяСтрокаДляЗаписи)" - экспортная функция.
1 zippygrill
 
01.03.13
17:19
наверное уже все свалили ))
2 Михаил Козлов
 
01.03.13
17:25
В обработке в приемнике есть эта экспортная функция (в модуле обработки)?
3 zippygrill
 
01.03.13
17:27
естественно.
4 Михаил Козлов
 
01.03.13
17:37
(3) Можно попробовать не COM-коннектор, а приложение.
5 zippygrill
 
01.03.13
19:07
даже не знаю
6 zippygrill
 
03.03.13
15:02
..
7 Худой
 
03.03.13
18:08
У меня такое обработка выдает на сервере, установленном на Linux.
8 zippygrill
 
03.03.13
18:19
Ровно в этом месте да?
9 zippygrill
 
04.03.13
09:20
апну.
10 zippygrill
 
04.03.13
09:45
...
11 zippygrill
 
04.03.13
09:55
получается что из обработки приемника УниверсальныйОбменДаннымиXML по COM вызывается обработка УниверсальныйОбменДаннымиXML получателя и пытается обратится к ее методам. есть какая-та лажа при вызове объекта по COM или как?
12 zippygrill
 
04.03.13
10:22
обновил обработки в обе базы до версии 2.1.5 но всеравно вылетает 1с на той ж строке.
13 zippygrill
 
04.03.13
10:46
.
14 zippygrill
 
04.03.13
11:42
c ИТС обновил до 2.1.6. результат ноль!
15 zippygrill
 
04.03.13
12:11
up
16 Худой
 
04.03.13
22:51
я обновил до 2.1.7. результат тоже ноль
17 hhhh
 
04.03.13
23:05
(15) а что в ТекущаяСтрокаДляЗаписи передаете? Наверняка какая-нибудь лабуда из этой базы, а не из той.
18 zippygrill
 
06.03.13
10:38
(17) строка передается. там содержание из xml файла.
19 zippygrill
 
06.03.13
11:51
!
20 zippygrill
 
06.03.13
16:48
апну. зачетный монолог.
21 zippygrill
 
06.03.13
17:25
в приемнике заменил на внешнюю обработку, ошибка не исчезла (:
22 KAO111
 
07.03.13
09:12
У меня на платформе 8.2.17.169 вообще вылетает любое com-соединение.
23 zippygrill
 
07.03.13
12:48
апну а.
24 Kvestin
 
07.03.13
23:48
Могу сказать одно. Должно работать точно. Сам использую и загрузку и выгрузку через COM и эти обработки. Посмотрите есть ли у вас в "мОбработкаДляЗагрузкиДанных" действительно обработка приемника. Проще всего это проверить получив, например, "мОбработкаДляЗагрузкиДанных.ЗагружатьДанныеВРежимеОбмена".
25 Kvestin
 
07.03.13
23:52
Особенностей в вызове ВСТРОЕННЫХ обработок и их методов через COM нет (кроме обычных заморочек COM-а по передаче значений только примитивных типов). Создаешь, потом можешь устанавливать реквизиты, экспортные переменные модуля обработки, вызывать экспортные процедуры и функции.
26 zippygrill
 
09.03.13
15:40
(24) целый год на ура вот так работало а сейчас один писец.
Спасибо за подсказку, попробую. Конечно если я обмениваюсь через файл то все четко, а вот напрямую фигня.
27 zippygrill
 
10.03.13
00:24
(24) мОбработкаДляЗагрузкиДанных.ЗагружатьДанныеВРежимеОбмена равна Истина. обработка встроенная в конфигурации приемника по вроде.
28 zippygrill
 
11.03.13
14:25
Апну еще
29 zippygrill
 
11.03.13
21:16
Ребята подкиньте еще идеи или что еще проверить в связь с этой ошибкой.
Обработки обновил, пробовал через внешние. Что еще.
30 KAO111
 
11.03.13
23:23
а какая версия платформы?
31 zippygrill
 
12.03.13
08:48
1С:Предприятие 8.2 (8.2.17.169)
32 KAO111
 
12.03.13
09:16
У нас на 8.2.17.169 перестали работать com сединения в принципе, не только эта обработка.
На 16 релизе, и даже на  8.2.17.157 работает.
33 zippygrill
 
12.03.13
09:31
(32) ндааа похоже так. даже базы перенес на другой сервер, мало ли, для отладки. такая ж история.
ну тогда спишем на ошибку платформы.
34 zippygrill
 
12.03.13
09:37
кстати УниверсальныйОбменДаннымиXML на диске ИТС не нашел. ее там есть вообще или как?
35 zippygrill
 
12.03.13
09:37
под УФ
36 qeos
 
12.03.13
09:38
А мы только собрались обновляться.
Скажите а на 157 много косяков?
37 zippygrill
 
12.03.13
09:41
мне этот встретился.
38 Kvestin
 
20.03.13
21:11
Вызов обработок через COM соединение работает!
После обновления на 8.2.17.169 у меня они (конктретно Универсальный обмен данными через XML) тоже перестали работать.
Потратил 4 часа пока через ТЖ докопался, что 1С переписала что-то касательно Сообщить();
Теперь если в коде который вы вызываете через COM есть Сообщить();, то платформа (у меня процесс на сервере) просто вылетает без объяснения причин.
Лечится обрамлением этой конструкции в
#Если Клиент Тогда
#КонецЕсли
39 zippygrill
 
20.03.13
21:41
(38) ндаа встретил на форуме темы с проблемой "Сообщить()" на сервере.
буду завтра пробовать пробовать твое замечание.
40 zippygrill
 
20.03.13
21:41
также спасибо!
41 Kvestin
 
20.03.13
21:56
В крайнем случае, врубай ТЖ и смотри на какой конкретно строчке вылетает.
42 zippygrill
 
20.03.13
22:02
тж?
43 Kvestin
 
20.03.13
22:22
Технологический журнал
44 Kvestin
 
20.03.13
22:37
Лови в помощь https://dl.dropbox.com/u/12008200/SomeFiles.7z
я использовал logcfg.xml тот, что в архиве (только log location на тот путь к логам, который тебе нужен).

Можешь свой создать с помощью обработки из архива.
Кидаешь его в ..\Program Files\1cv82\conf\
и смотришь, что платформа тебе написала в логи по указанному тобой log location в пути.

Только не забудь его (logcfg.xml) потом удалить или переименовать.
45 zippygrill
 
20.03.13
23:04
Не разу не использовал.спасибо.
46 zippygrill
 
21.03.13
09:31
(44) с помощью ТЖ записал ошибку в логах. смотрю этот лог и немножко непонятно почему не исчезла ошибка даже если я оформил ее через #Если Клиент ...

вот что в логе:

20:32.4081-0,EXCPCNTX,0,ClientComputerName=ZD-IT7,ServerComputerName=ZD-IT7,UserName=Булига,ConnectString='Srvr="zd-it7";Ref="UPPDeveloper1";',Context='
Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта : 12297 : ЗаписатьВПротоколВыполнения("Начало загрузки:   " + ТекущаяДатаСеанса(), , Ложь, , , Истина);
   Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта : 1526 : СообщитьПользователю(ИтоговаяСтрокаДляЗаписи);
       Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта : 14200 : Сообщение.Сообщить();'
20:32.4220-141,EXCPCNTX,0,SrcName=SCALL,OSThread=6932,process=1CV8,Usr=Булига,ClientID=8,Interface=90b77326-8e4a-4195-b980-d758277d1f03,Method=0,Context='
Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта : 12297 : ЗаписатьВПротоколВыполнения("Начало загрузки:   " + ТекущаяДатаСеанса(), , Ложь, , , Истина);
   Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта : 1526 : СообщитьПользователю(ИтоговаяСтрокаДляЗаписи);
       Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта : 14200 : Сообщение.Сообщить();

в строке 1526 есть процедура "СообщитьПользователю(ИтоговаяСтрокаДляЗаписи);" я ее оформил

#Если Клиент Тогда
       СообщитьПользователю(ИтоговаяСтрокаДляЗаписи);
#КонецЕсли
47 Kvestin
 
21.03.13
11:35
Ошибка в строке 14200 судя по логу.
Обрамлять надо все содержимое процедуры СообщитьПользователю(..), а не ее вызов.
48 Kvestin
 
21.03.13
11:39
Должно быть вот так:
<code>
Процедура СообщитьПользователю(ТекстСообщенияПользователю) Экспорт
   
   #Если Клиент Тогда
       Сообщение = Новый СообщениеПользователю;
       Сообщение.Текст = ТекстСообщенияПользователю;
       Сообщение.Сообщить();
   #КонецЕсли
</code>
КонецПроцедуры
49 Kvestin
 
21.03.13
11:40
Промахнулся с <code> ))
50 zippygrill
 
21.03.13
11:58
(48) а я саму процедуру "СообщитьПользователю(ТекстСообщенияПользователю)" поместил в #если Клиент .... ))
51 zippygrill
 
21.03.13
11:58
в место где идет обращение к ней :)
52 Kvestin
 
21.03.13
13:11
Так проблема решилась?
53 zippygrill
 
21.03.13
14:59
(52) ближе у вечеру изменю конфигурацию и отпишусь уже окончательно.
54 mokak
 
03.04.13
13:17
У меня та же проблема. Как решили то? Чем все закончилось?
55 Kvestin
 
05.04.13
22:02
(48) Чем не устаивает?
56 mokak
 
09.04.13
09:46
(55) Вам это помогло? Мне нет.
57 zippygrill
 
16.04.13
11:11
в общем сегодня добавил кусок кода в модуле объекта "УниверсальныйОбменДанныхВXML" как в (48) но не помогло.
58 rayden
 
19.04.13
00:04
А как на счет размера правил.... Тут не может быть косяка в момент передачи???
59 rayden
 
19.04.13
00:05
Просто я обновил с 8.2.16 до 8.2.18 и полный алиас.... Как бы не пришлось правила переписывать....
60 zippygrill
 
13.05.13
10:23
(58) сильно сомневаюсь. из 2 простых причин:
1. данное правило работала до обновление
2. в правило настроен обмен только одного вида документа.

(59) что значит полный алиас?
61 zippygrill
 
13.05.13
12:26
обновил на тестовый сервер релиз платформы до .18 и ошибка подключении по COM в процессе обмена исчезла! :)
62 zladenuw
 
13.05.13
12:27
(61) проблема в платформе именно с объектом сообщение пользователю, просто замени на сообщить.
63 zippygrill
 
13.05.13
13:00
зачем менять конфу?
64 zippygrill
 
13.05.13
13:00
когда можно обновить платформу.
Программист всегда исправляет последнюю ошибку.