COM соединения к базам 1С на различных версиях платформы

07.05.14

Интеграция - Обмен между базами 1C

Долгое время искал возможность подключаться через COM соединение к серверным БД 1С, расположенных на разных серверах (с разными версиями платформ). Перечитал множество публикаций на эту тему, но однозначного для себя ответа не находил. Хочу поделиться своим скромным опытом в решении этой задачи. Может кому и пригодится...

Для создания COM соединения с рабочей станции необходимо наличие в составе установки библиотеки comcntr.dllДумаю об этом лишний раз напоминать не нужно.

Соответственно, для соединения с БД на различных серверных платформах необходимо иметь в комплекте библиотеки всех нужных версий. 

Предполагается, что клиентские платформы установлены в стандартных каталогах и добраться до библиотек можно по пути типа: C:\Program Files (x86)\1cv82\8.2.18.61\bin\comcntr.dll

Для начала создадим для коннектора обертку COM+, чтобы вызовы происходили не в контексте 1cv8.exe (1cv8c.exe), а в контексте dllhost.exe

В интернете достаточно публикаций на тему как это сделать... Для начала можно указать comcntr любой имеющейся версии.

При регистрации comcntr.dll в реестре делается запись: 

HKEY_CLASSES_ROOT\CLSID\{2B0C1632-A199-4350-AA2D-2AEE3D2D573A}\InprocServer32 для 32 битной ОС

или HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{2B0C1632-A199-4350-AA2D-2AEE3D2D573A}\InprocServer32 для 64 битной ОС

значение по умолчанию которой указывает на расположение загружаемой библиотеки: C:\Program Files (x86)\1cv82\8.2.18.61\bin\comcntr.dll

Этим значением мы и будем оперировать. Перед установкой соединения читаем реестр, проверяем текущую версию коннектора и при необходимости заменяем ее на требуемую. После установки соединения в память загружается dllhost.exe, в контексте которого и работает коннектор. Для инициализации соединения к другой базе (с отличающейся версией платформы), ранее отработавшую библиотеку нужно выгрузить из памяти. К сожалению, у меня не получилось сделать это более цивилизованно, чем taskkill.exe /f /im dllhost.exe. Наверняка можно что-то покрасивее придумать...

Ну и самое главное: не забываем, что работать это будет только при запуске 1С с административными правами. Иначе взлетит исключение.

В итоге получаем примерно такой код:


 

Функция ОбновитьКлючРеестра(знач Ключ, знач ТребуемаяВерсия)
	WshShell = Новый COMОбъект("WScript.Shell");	
	Значение = WshShell.RegRead(Ключ);
	Значение1= СтрЗаменить(Значение, "\", Символы.ПС);
	ВерсияОпределена = ложь;
	Для ТекНомер=1 По СтрЧислоСтрок(Значение1) Цикл
		ТекущаяВерсия = СтрПолучитьСтроку(Значение1, ТекНомер);
		Если Лев(ТекущаяВерсия,2)="8." Тогда
			ВерсияОпределена = истина;
			прервать;
		КонецЕсли; 
	КонецЦикла; 
	Если ВерсияОпределена и ТекущаяВерсия<>ТребуемаяВерсия Тогда
		Значение = СтрЗаменить(Значение, ТекущаяВерсия, ТребуемаяВерсия);
		WshShell.RegWrite(Ключ, Значение);
		Возврат Истина;
	иначе 
		Возврат ложь;
	КонецЕсли; 
КонецФункции

Процедура НастроитьКоннектор(знач ТребуемаяВерсия)
	Обновлен = ОбновитьКлючРеестра("HKEY_CLASSES_ROOT\CLSID\{2B0C1632-A199-4350-AA2D-2AEE3D2D573A}\InprocServer32\", ТребуемаяВерсия);
	Если Обновлен Тогда
		ЗапуститьПриложение("taskkill.exe /f /im dllhost.exe",,Истина);
	КонецЕсли; 
КонецПроцедуры

 


Сам вызов осуществляю примерно так:

Для каждого СтрокаТЧ Из СписокБаз Цикл
    НастроитьКоннектор(СтрокаТЧ.Платформа);
    V8 = Новый COMObject ("V82.COMConnector");

    ............

КонецЦикла

Если два последовательных соединения требуют коннектора одной и той же версии, то модификации реестра не происходит и библиотека из памяти не выгружается, что несколько сокращает "накладные расходы"... 

 Опробовано на COM соединениях из толстого клиента к серверным базам на платформах 8.2.x.x

COMConnector COM соединение v82.comconnector

См. также

SALE! 10%

Перенос данных из УПП 1.3 в ERP 2 / УТ 11 / КА 2. Переносятся документы, справочная информация и остатки

Обмен между базами 1C Платформа 1С v8.3 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Обработка позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию. Переносятся документы, а также начальные остатки и справочная информация. Есть фильтр по организации и множество других опциональных параметров выгрузки. Наши правила переноса в продаже с 2015 года, постоянно работаем над их развитием. Более 360 предприятий выполнили переход с использованием этого продукта. Оказываем техническую поддержку по всем вопросам проекта переноса данных из УПП 1.3.

50722 45650 руб.

04.08.2015    159277    363    266    

345

SALE! 10%

[ED3] Обмен для ERP 2.5, КА 2.5, УТ 11.5 БП 3.0, Розница, УНФ и других с EnterpriseData (универсальный формат обмена), правила обмена

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

25080 руб.

12.06.2017    134609    718    291    

387

Перенос данных из УПП 1.3 в БП 3.0. Переносятся документы (обороты за период), справочная информация и остатки

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.223.x) и БП 3.0 (3.0.149.x). Правила подходят для версии ПРОФ и КОРП.

28000 руб.

15.12.2021    20091    132    38    

90

SALE! 10%

Перенос данных из БП 3.0 в УТ 11 / КА 2 / ERP 2

Обмен между базами 1C Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Переносятся документы за выбранный период, нормативно-справочная информация и остатки по счетам бухгалтерского учета из программы "1С:БП 3.0" в "1С:УТ 11" или "1С:КА. 2" или "1С:ERP Управление предприятием, ред. 2".

50722 руб.

31.10.2014    231097    124    326    

295

SALE! 10%

Перенос данных из ERP 2 / КА 2 в ЗУП 3

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Управленческий учет Платные (руб)

Обработка позволяет не только перенести все документы, справочную информацию и начальные остатки из ERP 2 или КА 2 в ЗУП 3, но и организовать регулярный перенос данных между программами 1С:ERP 2 / КА 2 и 1С:ЗУП 3. Вы можете выбрать период отбора данных и установить фильтр по организациям, чтобы выгружать только необходимую информацию. Более того, перенос оперативно обновляется при выходе новых релизов программы 1С, так что вы всегда будете иметь самую актуальную версию обработки.

48278 43450 руб.

03.12.2020    34036    80    57    

78

SALE! 10%

Перенос данных из ERP 2 / КА 2 / УТ 11 в БП 3.0

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос позволяет настроить собственный обмен данными между указанными программами, альтернативный предлагаемому фирмой 1С. Перенос данных осуществляется из 1С:ERP 2 / 1С:КА 2 / 1С:УТ 11 в 1С:БП 3.0. Правила обмена оперативно обновляются при выходе новых релизов программы 1С, так что вы всегда будете иметь самую актуальную версию обработки.

38500 34650 руб.

15.04.2019    68201    176    136    

108

Перенос данных из Парус 10 в ЗГУ ред.3

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Обмен между базами 1C Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 10 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

60000 руб.

05.10.2022    9156    9    8    

10

Перенос данных из УТ 10.3 в УТ 11.5. Переносятся документы (обороты за период), справочная информация и остатки

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.87.x) и УТ 11.5 (11.5.16.x).

28000 руб.

23.07.2020    46023    194    64    

153
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. fancy 35 08.05.14 07:01 Сейчас в теме
А если убьете "чужой" dllhost?
ЗапуститьПриложение("taskkill.exe /f /im dllhost.exe",,Истина);
2. JusteRU 08.05.14 08:02 Сейчас в теме
Про административные права немного не понял. Т.е. требуется запускать сервер приложений с административными правами?
3. kapustinag 10.05.14 16:09 Сейчас в теме
(2) JusteRU, Административные права нужны не серверу приложений, а клиентскому процессу 1С-Предприятие, из которого будут выполняться перенастройки ключа реестра, в котором содержится путь к comcntr.dll.
4. amon_ra 54 14.05.14 10:15 Сейчас в теме
способ отличный, но вот только права админа все омрачают(((
5. mmch 129 14.05.14 10:24 Сейчас в теме
Недавно столкнулся с похожей проблемой при переходе на 8.3, КОМ соединение вызывалось именно &НаСеревере
в итоге была ОШИБКА ПРИ СОЗДАНИИ COMОбъект Интерфейс не поддерживается.

После этого выработал инструкцию по установке платформы 1с для работы с COM-соединением, может кому пригодится...

Переустановка платформы 1с, установка сервера:

*Ставим серверную версию из дистрибутива \\Платформа\X.X.XX.XX\windows64.rar на все рабочие сервера 1с
*обязательно ставим возможность подключения через COM-соединение
*обязательно ставим возможность подключения через WEB-соединение
*Ставим клиентскую часть на все компьютеры в сети из дистрибутива \\Платформа\X.X.XX.XX\windows.rar
*Обязательно ставим клиентскую часть на сервера, т.к. без этого не будут работать подключения через COM-объект
*обязательно ставим возможность подключения через WEB-соединение
*ОШИБКА ПРИ СОЗДАНИИ COMОбъект Интерфейс не поддерживается при всех выполненных действиях:
*Например при запуске на сервере 83, COMОбъект 82, тогда необходимо пользователя USR1CV8 добавить в группу Локальные Администраторы (Диспетчер сервера - Конфигурация - Локальные пользователи - группы - Администраторы)

тогда подключение работает в контексте 1cv8.exe...
* правда администраторам придется поступиться безопасностью...
6. EvgeniuXP 14.05.14 18:15 Сейчас в теме
По-моему с 8.х нет проблем соединяться и получать и отправлять данные по COM-соединению... а вот как сделать для 7.7 - тоже кучу нарыл, но так еще не сделал - либо простые способы, где ТЗ не знаешь как передать, либо - сложно - какие-то dll, как их к веб-сервису прикрутить и потом в 1С-ке "получить" OLE и передать параметром ТЗ, а в 7.7 на основании этой ТЗ создать элементы справочника. Только нашел как вызывать глобальные функции, да примитивные типы передавать... с ТЗ подружить не могу пока что...
8. Созинов 15.05.14 10:09 Сейчас в теме
(6) EvgeniuXP, проблемы возникают из-за разных релизов на сервере. Бывают ситуации когда приходится держать разные версии серверов (у нас допустим это 8.2.15.319, 8.2.18.61, 8.2.19.90 и 8.1 и 8.3.3.721) и если стоит задача получать данные со всех серверов - то это трудновато через COM.
Автору +
winterspring; pt_olga; +2 Ответить
7. EvgeniuXP 14.05.14 18:20 Сейчас в теме
хотя уже на всё плюнул 8.3 (отправка ТЗ) -> веб-сервис -> 7.7 (получение ТЗ и создание элементов в справочнике)

и начал изучать основательно С#.
9. kiruha 388 04.06.14 10:25 Сейчас в теме
Мы обычно делаем банально
regsvr32 "C:\Program Files (x86)\1cv82\8.2.18.61\bin\comcntr.dll" (для 8.2.18.61 из сабжа например)
Зачем нужна обертка ? И чем плох такой простой метод ?
22. M_Volkov 5 02.08.17 07:29 Сейчас в теме
(9)
regsvr32 "C:\Program Files (x86)\1cv82\8.2.18.61\bin\comcntr.dll" чем плох такой простой метод ?

Права админа нужны. А нужно, чтобы Com-соединение устанавливалось под любым пользователем 1С.
10. DoctorRoza 04.06.14 15:35 Сейчас в теме
ИМХО, все как в России, когда полы грязные, не ноги отряхиваем, а щетку апгрейдим! Когда в it-экосистеме предприятия стоят разные версии 8.x, тогда нужно давать по рукам админу! А за статью плюс! :)
bomber99544; +1 4 Ответить
11. servs 65 06.06.14 13:16 Сейчас в теме
(10) бывают фирмы, которые обслуживают базы клиентов на своем сервере, у каждого клиента должна быть своя версия. (это я Вам для расширения кругозора объяснил)
18. selig 27.04.15 09:31 Сейчас в теме
(11) servs, а еще бывают конфигурации от горячо любимых разработчиков, которые тупят на новых версиях платформы
16. besica 11.12.14 23:44 Сейчас в теме
(10) DoctorRoza, 1С бух не хочет работать на платформах ниже 8.3.5.... А не типовая база на 100+ пользователей произвольно виснет у различных пользователей на 8.3.5. платформе, при этом на 8.3.4 все отлично работает. А базы друг с другом общаться должны по чуть чуть и по запросу, но в течении дня.
Автору огромный +)))
12. Serg3141 11 30.06.14 11:54 Сейчас в теме
супер, мне помогло - на двух серверах разные версии 1С, необходимо было сделать передачу, а приводить версии в соответствие не дает начальник из-за загруженности на более старом сервере 1С и из-за принципа "не трожь, все и так работает"
13. zakiap 14.10.14 03:43 Сейчас в теме
А не проще ли сделать алиасы на COM объекты в нужном виде и использовать их потом так:

В8 = Новый COMОбъект("V8.2.19.83.COMConnector");
В8 = Новый COMОбъект("V8.3.5.1119.COMConnector");
Прикрепленные файлы:
14. leonid_kirienko 127 15.10.14 18:51 Сейчас в теме
(13) zakiap, для разных версий (8.2, 8.3) применение алиасов может и пройдет, но для разных сборок одной версии платформы - нет. UID коннектора один и тот же - вот беда.
25. M_Volkov 5 20.07.19 17:34 Сейчас в теме
(14)
для разных версий (8.2, 8.3) применение алиасов может и пройдет, но для разных сборок одной версии платформы - нет. UID коннектора один и тот же - вот беда.
Беда не в этом: пробовал по COM соединения с базами 1С на различных версиях платформы "Без перерегистрации и СМС", но беда в том, что создается только COM соединение V83.COMConnector с ограниченными возможностями, запускается небольшая серверная часть. Для моих задач нужно OLE соединение V83.Application. По Вашей методике (и вообще) это возможно?
Прикрепленные файлы:
32. buganov 200 19.11.20 10:21 Сейчас в теме
(25) Можете уточнить, какие именно преимущество даст Application перед ComConnector?
15. Tolpinski 65 16.10.14 09:27 Сейчас в теме
Через "regsvr32 "C:\Program Files (x86)\1cv82\8.2." срабатывает как то странно, с задержкой, видно как и пишется из за "dllhost.exe"
В общем спасибо, работает!
17. jobkostya1c_ERP 100 17.12.14 20:11 Сейчас в теме
Тоже хороший материал для создания универсальных обработок, которые должны работать "где попало и подцепляться куда попало". Поставил плюс чтоб запомнить.
19. e.kogan 1892 19.03.16 21:46 Сейчас в теме
Ветки реестра нет :(
Tolpinski; +1 Ответить
20. XelOla 17 10.10.16 16:46 Сейчас в теме
Здравствуйте! Подскажите пожалуйста, как чтобы версии были одинаковые? В ограничениях ISAPI и CGI задала разрешение 1C Web-service Extension на версию платформы 8.3.8.2054. Что еще надо сделать? Или установка платформы была неправильная? (ставила не я)
Прикрепленные файлы:
21. Sanario 26 05.06.17 10:31 Сейчас в теме
HKEY_CLASSES_ROOT\CLSID\{2B0C1632-A199-4350-AA2D-2AEE3D2D573A}\InprocServer32\ - а CLSID ветки всегда будет именно такой?
romulanin; hexhoc; +2 Ответить
23. M_Volkov 5 02.08.17 08:53 Сейчас в теме
Статья хорошая, нужная, не плохо бы ее обновить. Может появились возможности Com-обмена без админских прав под любым пользователем 1С.
24. avgyr77 01.04.18 14:35 Сейчас в теме
в увс 1с без адмиснких конектит
26. M_Volkov 5 19.01.20 10:10 Сейчас в теме
При регистрации comcntr.dll в реестре делается запись:
HKEY_CLASSES_ROOT\CLSID\{2B0C1632-A199-4350-AA2D-2AEE3D2D573A}\InprocServer32 для 32 битной ОС
или HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{2B0C1632-A199-4350-AA2D-2AEE3D2D573A}\InprocServer32 для 64 битной ОС
значение по умолчанию которой указывает на расположение загружаемой библиотеки: C:\Program Files (x86)\1cv82\8.2.18.61\bin\comcntr.dll

У меня 2 платформы на сервере: "8.3.10.2466" и "8.3.14.1779", последняя только для КА2, ее имя PatrERP. Для смены платформы нашел ключ: "HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{181E893D-73A4-4722-B61D-D604B3D67D47}\InprocServer32\" в регистре по C:\Program Files (x86)\1cv8\8.3.10.2466\bin\comcntr.dll, меняю в нем значение платформы с 8.3.10.2466 на 8.3.14.1779, и выполняю: taskkill.exe /f /im dllhost.exe под своими админскими правами:
Процедура СменитьВерсиюПлатформы(СтруктураПодключения, СтрокаПодключения, ВерсияПриложения)
    Если Найти(СтрокаПодключения, "PatrERP") > 0 Тогда
        СтрокаПодключения = СтрЗаменить(СтрокаПодключения, СтруктураПодключения.ИмяСервера, СтруктураПодключения.ИмяСервера + ":1640");
    КонецЕсли;
    ТребуемаяВерсия = ?(Найти(СтрокаПодключения, "PatrERP") = 0, "8.3.10.2466", "8.3.14.1779");
    Ключ = "HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{181E893D-73A4-4722-B61D-D604B3D67D47}\InprocServer32\";
    WshShell = Новый COMОбъект("WScript.Shell");    
    Значение = WshShell.RegRead(Ключ);
    Если Найти(Значение, ТребуемаяВерсия) > 0 Тогда
        ВерсияПриложения = ТребуемаяВерсия;
        Возврат;
    КонецЕсли;
    СисИнфо = Новый СистемнаяИнформация;
    Значение = СтрЗаменить(Значение, СисИнфо.ВерсияПриложения, ТребуемаяВерсия);
    WshShell.RegWrite(Ключ, Значение);
    ЗапуститьПриложение("taskkill.exe /f /im dllhost.exe",, Истина);
КонецПроцедуры // СменитьВерсиюПлатформы()
Показать
Но клиентская часть платформы не меняется, выдает ошибку: "Несоответствие версий клиента и сервера 1С:Предприятия". Может я с ключом ошибся? Вижу, что значение платформы в нем меняется, но не сама платформа.
27. M_Volkov 5 19.01.20 14:01 Сейчас в теме
(26) Кажется понял в чем смысл в изменении ссылки ключа: должна быть задействована библиотека comcntr.dll не старой версии 8.3.10.2466, а новой 8.3.14.1779. А C:\Program Files (x86)\1cv8\8.3.14.1779\bin\comcntr.dll нет, есть только C:\Program Files\1cv8\8.3.14.1779\bin\comcntr.dll. 8.3.14.1779 устанавливалась с Технологическая платформа 1С:Предприятия (64-bit) для Windows. Внес поправки в свой алгоритм:
	Если ТребуемаяВерсия = "8.3.14.1779" Тогда
		Значение = СтрЗаменить(Значение, " (x86)\1cv8\8.3.10.2466", "\1cv8\8.3.14.1779");
	Иначе
		Значение = СтрЗаменить(Значение, "\1cv8\8.3.14.1779", " (x86)\1cv8\8.3.10.2466");
	КонецЕсли;
Но это не помогло, та же ошибка: "Несоответствие версий клиента и сервера 1С:Предприятия". Что ни так сделал, чего не учел, чтобы изменить версию платформы для Com-соединения?
28. M_Volkov 5 24.01.20 14:10 Сейчас в теме
Для начала создадим для коннектора обертку COM+, чтобы вызовы происходили не в контексте 1cv8.exe (1cv8c.exe), а в контексте dllhost.exe. В интернете достаточно публикаций на тему как это сделать...
А можно поподробнее что нужно сделать?
Прикрепленные файлы:
29. M_Volkov 5 01.02.20 07:39 Сейчас в теме
(28)
В интернете достаточно публикаций на тему как это сделать...
Например?
30. leka1st 25.03.20 12:52 Сейчас в теме
Спасибо, огромное!!!! Плюс за статью, переделала малость по-своему и все заработало!!!
31. buganov 200 19.11.20 10:19 Сейчас в теме
Мне вот интересно, а почему нельзя зарегистрировать комы разных версий под разными именами? Винда, вроде, это умеет делать, и я даже статью читал по этому поводу.
33. q2w3e5 14.09.22 15:44 Сейчас в теме
Задача: подключиться через com из базы на версии 8.3.20 к базе на версии 8.3.16

Для этого создаем на сервере 1С версии 8.3.20 новую базу "База_16_1_на_8.3.20", а в строке "имя базы sql" (сервер SQL тоже может быть другой) указываем базу, которая работает на 8.3.16. Таким образом у нас будет два подключения к одной базе но с разных версий.
т.е. работая в "База_20_1_на_8.3.20" в параметрах com пишем
"Srvr="Srv 8.3.20";Ref="База_16_1_на_8.3.20";Usr="";Pwd="";
и наступит счастье.

Но есть момент: все будет прекрасно для чтения, а вот при записи документов и справочников возникнет "не уникальность номера или кода", т.к. похоже за нумерацией следит сервер 1С и один сервер не будет знать что творит другой. Возможно это устранится командой ОбновитьНумерациюОбъектов(); тут не могу сказать, объекты так не создавал.
Прикрепленные файлы:
Оставьте свое сообщение