@pofig2217

Как подключиться к базе 1C по сети (tcp-ip) через OLE либо COM?

Добрый день,

есть 2 разных базы 1С - 7.7 (файловая), 8.2 (sql). Базы расположены в пределах одной сети, сервера с базами маршрутизируемы по tcp/ip.
Как из одной базы подключиться к другой через OLE либо COM?
Ранее я подключался по OLE только в пределах одной машины, есть какие-то особенности при подключении к сетевой базе? возможно это?
  • Вопрос задан
  • 2145 просмотров
Решения вопроса 3
@asder117
//вытянем данные из базы
			 СистемнаяИнформация=Новый СистемнаяИнформация;
			 ВерсияПлатфомы=Лев(СистемнаяИнформация.ВерсияПриложения,3);
			 Если ВерсияПлатфомы="8.0" Тогда 
				 Коннектор=Новый COMОбъект("V8.COMConnector");
			 ИначеЕсли ВерсияПлатфомы="8.1" Тогда 
				 Коннектор=Новый COMОбъект("V81.COMConnector");
			 ИначеЕсли ВерсияПлатфомы="8.2" Тогда 
				 Коннектор=Новый COMОбъект("V82.COMConnector");
			 Иначе 
				 Предупреждение("Вы используете марсианскую версию программы. Эта обработка предназначена только для жителей Земли.");
				 //Возврат Ложь;	
			 КонецЕсли;	
			 Попытка
// Если подключаешься к файловой базе
				 глСоединениеСЦБ = Коннектор.Connect("file='"+ПутьКОсновнойБазе+"'; usr='"+ИмяПользователяБазы+"'; pwd='"+ПарольПользователяБазы+"';");
// если к скульной
глСоединениеСЦБ=Коннектор.Connect("Srvr='Имя сервака';Ref='База в нем'; usr='Пользователь'; pwd='пароль';");

			 Исключение
				 Сообщить(ОписаниеОшибки());
				 //Возврат Ложь;	
			 КонецПопытки;

И далее обрабатываем как хотим
Запрос ЗапросТоварыПоЧекам=глСоединениеСЦБ.NewObject("Запрос");

Только имей ввиду, что таким образом можно получить простые значения (Число, строка)
Т.е. в комовской базе получаешь наименование или код а далее в своей ищешь соответствие
СтрокаТаблицы2.Номенклатура=Справочники.Номенклатура.НайтиПоНаименованию(Выборка.Номенклатура.Description);
Ответ написан
Комментировать
@Dementor
программист, архитектор, аналитик
Ответ очевиден. На сервере той базы, которая хочет подключаться к иной, должна быть установлена технологическая поставка и от второй базы - что бы были зарегистрированы COM-объекты нужной версии. При этом не важно из какой базы вы будете подключаться - да хоть из Excel.
Ответ написан
Комментировать
@gunsmyth
Все несколько проще. Нет никакой разницы, где находятся базы и в каком виде они развернуты(файловые или sql). Неважно, где это реализовывать - на клиенте или на сервере. Важно только одно - возможность одновременного запуска обоих платформ и доступ к базам. Короче, все тоже самое, только указываете сетевой путь "\\1c_server\base" для файлового варианта и пару "1c_server base_name" для sql.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы