Можно ли использовать технологию OLE, если базы на разных компьютерах?

1. pentanom 25 29.03.21 14:53 Сейчас в теме
Написана обработка, которая связывает данные двух баз с помощью OLE. Изначально базы находились на одном компьютере, и никаких проблем не было. Потом по неким причинам оказалось, что необходимо расположить на разных компьютера. Можно ли использовать технологию OLE, если базы на разных компьютерах? Если можно, то как?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 76 29.03.21 14:54 Сейчас в теме
(1)ЭЭЭ....создаете 2 подключения к двум разным машинам вместо 1-го, далее все как работало.
4. pentanom 25 29.03.21 14:58 Сейчас в теме
(2)
ЭЭЭ....создаете 2 подключения к двум разным машинам вместо 1-го, далее все как работало.
А поподробнее можно?
6. nomad_irk 76 29.03.21 14:59 Сейчас в теме
(4)показывайте код, чтобы было подробнее.
8. pentanom 25 29.03.21 15:08 Сейчас в теме
(6)
показывайте код, чтобы было подробнее.
А обработка прекрасно работает, если базы на одном компьютере.
ИмяCOM=УправлениеСоединениямиИБ.ИмяCOMСоединителя();
	Состояние("База проверка ...");
	Пользователь=СокрЛП(Пользователь);
	Пароль=СокрЛП(Пароль);
	
// Создается объект-коннектор
	БД = Новый COMObject(ИмяCOM);
	СоединениеБД = БД.Connect("File="+СокрЛП(Каталог)+";Usr="+Пользователь+";pwd=" + Пароль + ";");


Что должно быть записано в "Каталог"?
9. nomad_irk 76 29.03.21 15:19 Сейчас в теме
(8) Общий сетевой ресурс, доступный пользователю, под которым запущен сервис 1С, на котором вы запускаете обработку.
Если все базы файловые, то путь к файлу базы вида \\MachineName\ShareName
10. pentanom 25 29.03.21 15:28 Сейчас в теме
(9)
Общий сетевой ресурс, доступный пользователю, под которым запущен сервис 1С, на котором вы запускаете обработку.
Если все базы файловые, то путь к файлу базы вида \\MachineName\ShareName
А в этом случае компьютеры должны быть в локальной сети? В нашем случае компьютере находятся в разных городах.
11. nomad_irk 76 29.03.21 15:31 Сейчас в теме
(10)Конечно, компьютеры должны быть объединены в единую локальную сеть.
Если этого нет, то только по web/http-сервису, с помощью почты/внешнего хранилища файлов возможно реализовать обмен данными.
12. pentanom 25 29.03.21 15:41 Сейчас в теме
(11)
(10)Конечно, компьютеры должны быть объединены в единую локальную сеть.
Если этого нет, то только по web/http-сервису, с помощью почты/внешнего хранилища файлов возможно реализовать обмен данными.
Печально. Т.е. OLE работает только в локальной сети?
В нашем случае через файлы не получается. С помощью обработки в базу-приемник нужно перенести только недостающие данный. При формировании файла в базе-источнике не известно чего не хватает в базе-приемнике. Получается, что нужно практически сформировать файл по всей базе, а в базе-приемнике уже отбирать данные.
13. user856012 13 29.03.21 15:47 Сейчас в теме
(12)
Т.е. OLE работает только в локальной сети?
OLE работает примерно так, на пальцах: на вашем компьютере скрыто запускается 1С (еще одна), она подключается к указанной базе и читает/пишет в нее данные.

То есть, вторая база должна быть доступна для вашего компьютера.
14. pentanom 25 29.03.21 15:53 Сейчас в теме
(13)
То есть, вторая база должна быть доступна для вашего компьютера.
Вот я и хотел узнать как можно организовать этот доступ.
16. user856012 13 29.03.21 16:06 Сейчас в теме
(14)
я и хотел узнать как можно организовать этот доступ
VPN, если ваши техусловия позволяют.

Но работа с файловой базой через Интернет - это будут сплошные слезы... особенно в случае повреждения удаленной базы.
svetanik; +1 Ответить
15. Dmitry888 41 29.03.21 16:05 Сейчас в теме
(2)У меня так не вышло сделать
3. sssss_aaaaa_2011 29.03.21 14:56 Сейчас в теме
(1)И какое отношение технология имеет к расположению баз? Базы-то файловые?
18. uk09 31.03.21 11:06 Сейчас в теме
(1) У нас базы - на разных серверах. Те, соответственно, в разных ЦОДах. ЦОДы с клиентскими ПК соединены через поток интернета. Всё - работает. Конечно , желательно, чтобы базы были не файловые, а клиент-серверные, устойчивость выше.
Но, при разумных размерах файловых баз , можно использовать и такие. Формируя данные по OLE, внимательно оценивайте возможный объем данных - соединение довольно медленное, предрасположено к закрытию сокета при сбоях и сложно диагностировать потерю связи в процессе . Поэтому, надежнее, использовать COM-объекты ADODB. Мы используем единые базы на MySQL, прекрасно работает при запросах из разных регионов
7. user5300 1042 29.03.21 15:03 Сейчас в теме
V8 = Новый COMОбъект("V83.ComConnector"); 
//Открытие = "file='" + КаталогБазыДанных + "'; usr='" + Пользователь + "'; pwd='" + Пароль + "';";       
Открытие= "srvr='" + Сервер + "'; ref='" + БазаДанных + "'; usr='" + Пользователь + "'; pwd='" + Пароль + "';";	///Каталог 1 базы
БАЗА1= V8.Connect(Открытие);	

V8 = Новый COMОбъект("V83.ComConnector"); 
//Открытие = "file='" + КаталогБазыДанных + "'; usr='" + Пользователь + "'; pwd='" + Пароль + "';";       
Открытие= "srvr='" + Сервер + "'; ref='" + БазаДанных + "'; usr='" + Пользователь + "'; pwd='" + Пароль + "';";	///Каталог 2 базы
БАЗА2= V8.Connect(Открытие);	

Показать
17. pentanom 25 29.03.21 18:16 Сейчас в теме
Получается, что лучше всего скопировать базу, запустить обработку и удалить базу. Благо, что такую операцию нужно делать не часто.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот