Для подключения из 1С82 к 1С77 через OLE необходим путь к базе 1С77. Данный путь можно получить разными способами, как правило, заводится реквизит на форме, где администратор и прописывает данную настройку. Но можно пойти другим путем… Дать пользователю самому выбрать к какой из баз 1С77 подключиться. Базы пользователя 1С77 хранятся в реестре. Если процедуру подключения выполнять на клиенте, то мы получим список баз 1С77 с которыми работает текущий пользователь на локальном компьютере, если же процедуру выполнять в контексте сервера, то мы получим список баз 1С77 которые зарегистрированы у той учетной записи, под которой выполняется служба 1С:Сервер предприятий. Ниже пример кода получения списка баз 1С77 и организация выбора нужной базы.
&НаСервере
Функция ПолучитьСписокБазНаСервере()
Перем Параметры, Значения, Значение;
HKCU = 2147483649;
ПутьКлюча = «Software1C1Cv77.7Titles»;
Reg = ПолучитьCOMОбъект(«winmgmts:{impersonationLevel=impersonate}!\» +
ИмяКомпьютера() + »
ootdefault:StdRegProv»);
Reg.EnumValues(HKCU, ПутьКлюча, Параметры, Значения);
Базы1С = Новый Массив;
Для Каждого Параметр Из Параметры Цикл
Reg.GetStringValue(HKCU, ПутьКлюча, Параметр, Значение);
База1С = Новый Массив;
База1С.Добавить(Параметр);
База1С.Добавить(Значение);
Базы1С.Добавить(База1С);
КонецЦикла;
Возврат Базы1С;
КонецФункции
&НаКлиенте
Процедура База1СНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
Базы1С = ПолучитьСписокБазНаСервере();
Элемент.СписокВыбора.Очистить();
Для Каждого База1С Из Базы1С Цикл
Элемент.СписокВыбора.Добавить(База1С[0], База1С[1]);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура База1СОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Эл = Элемент.СписокВыбора.НайтиПоЗначению(ВыбранноеЗначение);
Объект.База1С = Эл.Представление;
Объект.База1С_Путь = Эл.Значение;
СтандартнаяОбработка = Ложь;
КонецПроцедуры
А вот еще способ получения списка баз от разработчиков 1с
Показать
Это тоже самое, только весь код получения завернут в VBS и возвращается строка с разделителями