Имя: Пароль:
1C
1С v8
Соединение с COM-сервером
,
0 Худой
 
22.03.13
05:26
База лежит в PostgreSQL на Linux.
Сделал нормальный обмен данными через файл обмена.
Все работает. Но достало все руками делать.
Решил напрямую из базы в базу.
В общем, если база под Windows(MS SQL или файловая), то обмен без промежуточного файла
работает замечательно.

А вот если Linux, то выдается сообщение
"Ошибка при создании COM-объекта Msxml2.DOMDocument"

и затем, при попытке соединения с базой, выдантся сообщение -

"При попытке соединения с COM-сервером произошла следующая ошибка:
{ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(13796)}: Ошибка при вызове конструктора (COMОбъект): COM-объекты поддерживается только в операционных системах Windows"

Есть решение этой проблемы?
1 Капитан О
 
22.03.13
06:10
есть, но "только в операционных системах Windows"
2 Худой
 
22.03.13
06:13
(1) Это я вижу. Остальное не может быть? Например, под 8.3 что-нибудь, изменили?
3 hhhh
 
22.03.13
07:31
(2) Вроде через файл обмена всё автоматом делается. Почему руками?
4 Худой
 
22.03.13
08:34
(3)Ситуация такая.
База 17 гигабайт. Если через файл обмена делать, то полностью не получается. Файл обмена очень огромный и сваливается по ошибке. Если порциями выгружать, то получается ручками по 2-4 дня. А база почти три года.
5 Худой
 
22.03.13
12:45
Интересно, как выглядят в файле выгрузки PDF файлы, которые находятся в базе.
6 ДенисЧ
 
22.03.13
12:50
откуда в линухе КОМ?
7 Serginio1
 
22.03.13
12:57
(5) В виде Base64. Я бы посоветовал обмен через ФабрикуXDTO.
Ссам так делаю. Вообще 1С с этим обменом давно могла генерить схему и выгружать и загружать данные согласно схеме
8 Худой
 
22.03.13
13:04
(6) Конечно, ниоткуда его там нет. Просто, получается, что не универсальная схема обмена "УниверсальныйОбменДаннымиXML".
(7) А много возни по реализации "обмен через ФабрикуXDTO"?
9 Serginio1
 
22.03.13
13:36
(8) Смотря, что переносить. Я в свое время и за 2 дня написал. Если базы близкие, то По сути занимаешься копированием из одного объектаXdto в другой. За исключением реквизитов с множественнвм типом.
10 Худой
 
22.03.13
13:49
(9)Для начала, базы абсолютно одинаковые.
"За исключением реквизитов с множественнвм типом" - и что с ними делать?
11 Serginio1
 
22.03.13
14:31
Если базы одинаковые то там вообще все значительно проще через ЗаписатьXML прочитатьXML

Если ТекОбъект.Owner<>Неопределено Тогда
Тип=СериализаторXDTO.XMLТипЗнч(ТекОбъект.Owner);
Объект.Owner=Фабрика.Создать(Фабрика.Тип(Тип.URIПространстваИмен, Тип.ИмяТипа),XMLСтрока(ТекОбъект.Owner));
Иначе
Объект.Owner=СсылкаNull
КонецЕсли;


ТипNull=ФабрикаДляКомплексной.Тип("http://www.w3.org/2001/XMLSchema","anySimpleType");
       СсылкаNull=ФабрикаДляКомплексной.Создать(ТипNull);
12 Худой
 
22.03.13
14:48
(11) То есть, это все работает и под Linux?
13 sapphire
 
22.03.13
14:49
(0) Переписать код под встроенные средства 1С работы с XML.
14 Худой
 
22.03.13
14:55
(13) Спасибо, друг.
А что-нибудь, менее категоричное?
15 Serginio1
 
22.03.13
14:57
(12) Вообще посмотри код обмена данными
http://help1c.com/faq82/view/431.html
16 Худой
 
22.03.13
15:00
(15) Мне надо без промежуточных файлов из одной базы в другую
17 К_Дач
 
22.03.13
15:09
Не знаток Линукса... но одно знаю точно, отличие "универсального обмена" через файл от НЕ через файл только в том, что в случае "не через файл" - файл все равно создается, а точнее не файл а ЗаписьXML, и его чтение запускается в базе-приемнике, которую в свою очередь получают по КОМУ... COMConnector

Чтение в приемнике производит аналогичная обработка УниверсальныйОбмен, только в режиме загрузки. Так что тебе нужна dll-ка, которая позволит в Линуксе сделать ComConnect. Если такие есть - подключить ее и немного дописать код обработок в обеих базах...
18 Serginio1
 
22.03.13
15:12
А чем файлы не нравятся?
Я отвечал тебе на (4). Линукс не поддерживает КОМ.
Но можно наваять ВК, которая по TCP\IP будет принимать файлы, отвечать на сообщения

Или Если хочешь автоматизации запускай регламентное задание и проверяй наличие файлов.
19 Худой
 
22.03.13
15:17
(17) Ну я примерно, такое и предполагаю. Даже, вроде, видел какую-то разработку для такого рода вещей под линукс. Но тогда просто прошел мимо, не задумываясь
(18)На изучение всех этих вопросов и, тем более, написание  просто не хватает времени.
Может быть, "регламентное задание" спасет. Но, опять же, этим еще не пробовал заниматься.
20 Serginio1
 
22.03.13
15:25
(19) Век живи и век учись.