Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 янв 2023, 10:14

ОБМЕН ДАННЫМИ МЕЖДУ 1с Бухгалтерией на платформе - 8.13.1513 и 1C Аналитикой на платформе8.3.20

Автор VictorGamey, 06 сен 2022, 06:36

0 Пользователей и 1 гость просматривают эту тему.

VictorGamey

Уважаемы коллеги, доброго времени суток! Есть старая платформа 8.13.1513 - на ней работает 1С Бит Финанс и 1С УПП,
есть платформа 8.3.20.1674 - на ней работает 1С Аналитика. Как сделать доступным вывод данных в 1С Аналитика, которые мы должны получать в 1С Бухгалтерия и 1С УПП.
Проблема в том, что COM объекты не могут работать на разных платформах - есть какой универсальный переносчик информации, или объект / способ?
Буду очень признателен за любые наставления на путь истиный!

alexandr_ll

VictorGamey, А в чем сложность все конфигурации использовать на платформе 8.3.20.1674?

VictorGamey

alexandr_ll, Это конечно можно, но есть определенные моменты - из - за которых это невозможно. Большое предприятие - много завязано на старой платформе.

LexaK

VictorGamey,
ЦитироватьПроблема в том, что COM объекты не могут работать на разных платформах
вообще то, МОГУТ!
просто СОМобъект надо создавать той версии с платформой которой собираетесь соединяеться,
и второй вариант обмен через файлы, с помощью правил конвертации - тоже нормальный/рабочий вариант
если помогло нажмите: Спасибо!

VictorGamey

LexaK , то есть получается так: если мы данные берем из старой платформы 8.13.1513 и будем их визуализировать на новой 8.3.20 , то нужно создать COM объект новой платформы. Тогда возникает вопрос (возможно глупый - сильно не бейте B)  B)  B) ) - как тогда создать  COM для новой платформы - если он должен восприниматься и старой платформой - а она его просто не воспримет. Или не правильно рассуждаю? Подскажите пожалуйста еще примеры такой синхронизации, спасибо!  :zebzdr:

LexaK

вот пример, посмотрите

https://infostart.ru/public/610960/

COM соединения с базами 1С на различных версиях платформы "Без перерегистрации и СМС"

Идея интересная, но у меня имеет место быть проблема. Если создавать COM-объекты разных версий с некоторой паузой между этим созданиями, то всё хорошо, вроде бы.
А, вот, если эту паузу не выдерживать - то возможно возникновение двух ошибок (я так и не смог понять причины и следствия когда какая ошибка возникает, скорее всего сначала первая, а при повторной попытке уже вторая)
Запускалось всё под клиентом одной или второй версии (пробовал и так и так) - файловый вариант.
Основной COM-объект был версии 8.3.10.2252, но даже если к нему обращаться как к "v83.COMConnector" то это ничего не меняло
Последовательность создания COM-объектов не влияет, но если получить первую ошибку, переставить их местами - возникает вторая ошибка
Версия клиента 1С: Предприятие так же не влияет.
Запуск в новом сеансе 1С проблему не решает.

Выполняю такой алгоритм:

ком = новый COMОбъект("V83.COMConnector_8.3.10.2252");
ком.ConnectAgent("srv1");
ком = новый COMОбъект("v83.COMConnector_8.3.8.2054");
ком.ConnectAgent("srv2");

Возникает первая ошибка:

{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(13)}: Ошибка при вызове метода контекста (ConnectAgent)
ком.ConnectAgent("srv2");
по причине:
Неизвестная ошибка

При повторном запуске она повторяется

Переставляем местами создание COM-Объектов

ком = новый COMОбъект("v83.COMConnector_8.3.8.2054");
ком.ConnectAgent("srv2");
ком = новый COMОбъект("V83.COMConnector_8.3.10.2252");
ком.ConnectAgent("srv1");

И возникает вторая ошибка:

{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(12)}: Ошибка при вызове конструктора (COMОбъект)
ком = новый COMОбъект("V83.COMConnector_8.3.10.2252");
по причине:
-2147024769(0x8007007F): Не найдена указанная процедура.

При повторном запуске она повторяется

Далее - если снова переставить обратно - ошибка будет повторяться

{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(10)}: Ошибка при вызове конструктора (COMОбъект)
ком = новый COMОбъект("V83.COMConnector_8.3.10.2252");
по причине:
-2147024769(0x8007007F): Не найдена указанная процедура. [


Спустя минут 15-20 всё проходит - и начинается с начала (с учётом переставленных вызовов создания COM-объектов):

{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(13)}: Ошибка при вызове метода контекста (ConnectAgent)
ком.ConnectAgent("srv1");
по причине:
Неизвестная ошибка

Значит COM-объект где-то кешируется (платформой 1С? - мало вероятно - т.к. перезапуск клиента ничего не решает) и при попытке создать повторно (пусть и, в общем-то, другой COM-Объект) идёт обращение к старому и происходит какой-то конфликт версий.

Увы, это почти ставит крест на данной методике. Но, если одновременная (читай последовательная но в одно и то же время в пределах 20 минут) работа не требуется - описанный в статье метод будет работать.
Но, лично мне нужна была одновременная работа :-(
Надо попробовать выполнить те же обращения, но не из 1С - если проблемы не будет, то значит это 1С кеширует (и это можно обойти - но логику работы с COM-объектом придётся выносить за пределы 1С), а если будет.... то нужно что инове придумывать!

Попробовал так же с компонентами редакции 8.2:

ком = новый COMОбъект("v82.COMConnector_8.2.19.80");
ком.ConnectAgent("srv3");
ком = новый COMОбъект("V82.COMConnector_8.2.19.68");
ком.ConnectAgent("srv4");

В общем-то такая же ситуация, но ошибка всегда на ВТОРОЙ по счёту компоненте (не важно какой она версии!!!) и всегда такая:

{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(42)}: Ошибка при вызове метода контекста (ConnectAgent)
ком.ConnectAgent("srv4);
по причине:
Неизвестная ошибка

При этом если создавать и использовать их отдельно (посадил на разные кнопки)
То ситуация такая
1. Любую создаю - всё нормально
2. Создаю вторую - возникает ошибка
3. Создаю первую - ошибки нет
4. Создаю вторую - ошибка
5. Повторно создаю вторую - ошибки нет
6. Снова создаю вторую - ошибки нет
7. Создаю первую - ошибка
8. Создаю первую - ошибки нет
9. Создаю вторую - ошибка
10. Создаю вторую - ошибки нети

То есть первый раз создаётся нормально и если сразу создавать другой версии - будет ошибка - но при повторном создании - ошибки не будет - но она снова будет у первой, что при повторном создании так же ошибки не будет
Поэтому с v82 я написал вот так - и в общем-то оно работает

попытка
ком = новый COMОбъект("v82.COMConnector_8.2.19.80");
ком.ConnectAgent("srv3");
исключение
сообщить("v82.COMConnector_8.2.19.80: "+ОписаниеОшибки());
ком = новый COMОбъект("v82.COMConnector_8.2.19.80");
ком.ConnectAgent("srv3");
конецпопытки;
попытка
ком = новый COMОбъект("V82.COMConnector_8.2.19.68");
ком.ConnectAgent("srv4");
исключение
сообщить("v82.COMConnector_8.2.19.68: "+ОписаниеОшибки());
ком = новый COMОбъект("V82.COMConnector_8.2.19.68");
ком.ConnectAgent("srv4");
конецпопытки;

Показать

Значит компонента 8.2 не кэшируется, в отличии от 8.3 :-|

Попытка же написать так же для 8.3

попытка
ком = новый COMОбъект("V83.COMConnector_8.3.10.2252");
ком.ConnectAgent("srv1");
исключение
сообщить("V83.COMConnector_8.3.10.2252: "+ОписаниеОшибки());
ком = новый COMОбъект("V83.COMConnector_8.3.10.2252");
ком.ConnectAgent("srv1");
конецпопытки;
попытка
ком = новый COMОбъект("v83.COMConnector_8.3.8.2054");
ком.ConnectAgent("srv2");
исключение
сообщить("v83.COMConnector_8.3.8.2054: "+ОписаниеОшибки());
ком = новый COMОбъект("v83.COMConnector_8.3.8.2054");
ком.ConnectAgent("srv2");
конецпопытки;

Показать

первый раз отработало, но повторный запуск привёл к ошибке
V83.COMConnector_8.3.10.2252:

{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(38)}: Ошибка при вызове конструктора (COMОбъект): -2147024769(0x8007007F): Не найдена указанная процедура.


это самая первая строка в первой попытке - и эта ошибка дальше стабильно повторялась

Попробовал работать параллельно с компонентами V82 и v82

ком = новый COMОбъект("v82.COMConnector_8.2.19.80");
ком.ConnectAgent("srv3");
ком = новый COMОбъект("V83.COMConnector_8.3.10.2252");
ком.ConnectAgent("srv1");

Никаких ошибок не возникает!

Так что - как 1С (или windows) это всё обрабатывают, что возникает такой винегрет из разных ситуаций - непонятно....
Надо ещё разбираться и экспериментировать

Возможно эти проблемы чисто связаны с моей конфигурацией ОС - использую windows 8
А может дело в используемых релизах 1С: Предприятие, клиента и компонент (хотя на клиенте 8.2.19.80 я тоже попробовал - всё то же самое)

Может, у меня просто компоненты как-то неправильно установлены или какие-то заморочки с настройками COM+
Я, например, не нашёл типовых компонент в разделе COM+ как на картинках автора :-(
Хорошо бы кто-то ещё это всё проверил бы на своих конфигурациях платформ и компонент

если помогло нажмите: Спасибо!

VictorGamey


Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск