powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Как подключить к MS SQL Server 2008 R2 базу 1С в качестве LinkedServer ?
10 сообщений из 10, страница 1 из 1
Как подключить к MS SQL Server 2008 R2 базу 1С в качестве LinkedServer ?
    #39029387
DemiurgXXX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, подскажите можно ли подключить к MS SQL Server 2008 R2 базу 1С в качестве LinkedServer ?
Только не надо меня сразу кидать на костёр! Мне необходимо забирать данные из 1С на сторону MS SQL Server ТОЛЬКО средствами самого MS SQL Server и другого доступного выхода кроме как LinkedServer я не вижу.
Если таковое возможно, то с помощью какого провайдера надо настраивать LinkedServer? (может кто-то добрый ссылку на драйвер скинет? )
и очень бы хотелось пример строки подключения.

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
Как подключить к MS SQL Server 2008 R2 базу 1С в качестве LinkedServer ?
    #39029613
trew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DemiurgXXX,

Вам нужно создать пустую базу с одной тестовой таблице, на MS SQL Server 2008 R2, на том сервере где и 1с.
И тренируйтесь к ней подключаться. А сейчас забудьте о существовании базы 1с.
Как научитесь, укажите в строке подключения базу 1с.
...
Рейтинг: 0 / 0
Как подключить к MS SQL Server 2008 R2 базу 1С в качестве LinkedServer ?
    #39029673
DemiurgXXX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ох, если всё было бы так просто !
С описанным мною MS SQL сервером по технологии связанных серверов LinkedServer уже работает несколько других серверов с их базами данных, к которым я обращаюсь в SQL-запросах в сквозную, как к базам моего сервера, считывая из них необходимые данные и прочее. Не воспримите за бахвальство, однако тренировок в этом у меня уже хоть отбавляй.

Проблема же заключается в другом. Мне понадобилось считать определённые данные из базы 1С.

Вот я и стал искать решение, как это сделать также удобно как работаю с прочими базами.
Может есть возможность тоже присоединить сервер с 1С, как связанный сервер? Должен же быть способ двум СУБД напрямую общаться! Умеет же MS SQL Server по этой технологии вытягивать данные и из MySQL, и из Oracle, и из FoxPro, блин, да даже из Excel файла вытянуть так данные может !!!
Для того чтобы присоединить другой сервер как присоединённый Linked сервер нужно указать соответствующего провайдера данных, соответственно установив от него драйвер. Я такового пока не нашёл.
Возможно есть какой-то ODBC драйвер для Win2r8 r2 Enterprise x64 для общения с 1С ? Т.к среди провайдеров для присоединённого на своём MS SQL Server нашёл какой-то Microsoft OLE DB Provider for ODBC Drivers. Хотя в этом случае может и не туда копаю.
...
Рейтинг: 0 / 0
Как подключить к MS SQL Server 2008 R2 базу 1С в качестве LinkedServer ?
    #39029675
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
провайдера каких данных? база 1с физически обычно на таком же ms sql валяется

а вот если база 1с файловая - тогда увы вам
...
Рейтинг: 0 / 0
Как подключить к MS SQL Server 2008 R2 базу 1С в качестве LinkedServer ?
    #39029693
trew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DemiurgXXX,

авторВозможно есть какой-то ODBC драйвер для Win2r8 r2 Enterprise x64 для общения с 1С. Такого нет.

Вам можно помочь только в том случае, если вы в 1с разбираетесь, её структуре.
18012292

1. Из 1с смотрим как называется таблица в 1с и в ms sql и это выгружаем в xml.(ссылка выше, выгрузу в xml кажется нужно самому дописать)
2. В ms sql загружаем xml полученные на предыдущем шаге.
(теперь вы на стороне ms sql знаете как называется таблица 1с, которую вы видете как Ref... или Doc...)
3. Нужно знать как таблицы 1с связаны друг с другом т.е. нужно знать объекты 1с.
4. Если на 3-ем этапе сложностей не возникло, соединяйте таблицы (join) и получайте результат.

Фирма 1с запрещает работать с базой 1с на ms sql напрямую, только через интерфейс 1с Предприятия (можно ещё через сервис).
...
Рейтинг: 0 / 0
Как подключить к MS SQL Server 2008 R2 базу 1С в качестве LinkedServer ?
    #39029706
DemiurgXXX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощения, похоже не до конца описал всю вводную информацию.
Сервер 1С - отдельная машина с PostgreSQL и развёрнутой на нём 1С:Предприятите 8.
Сервер MS SQL - другая отдельная машина с СУБД MS SQL server 2008 r2 и развёрнутой на его основе БД не суть важно какой учётной системы.
Вот я и ищу решение как их объединить чтобы одновременно к ним обращаться в тексте SQL-запросов.
...
Рейтинг: 0 / 0
Как подключить к MS SQL Server 2008 R2 базу 1С в качестве LinkedServer ?
    #39029833
trew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DemiurgXXX,

В поисковике набери: ms sql postgresql linked server
и подключайся к базе 1с.(представь, что вместо 1с на сервере postgresql есть какая-то база к которой нужно подключиться)
авторобращаться в тексте SQL-запросов
а что это будет за общение, т.е. какая цель?

Если тебе будет не понятно, какая таблица что означает, смотри как их "расшифровать"
18019468
...
Рейтинг: 0 / 0
Как подключить к MS SQL Server 2008 R2 базу 1С в качестве LinkedServer ?
    #39029851
DemiurgXXX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за терпеливое отношение к проблеме.
Похоже на то что пообщался, рассказал о проблеме и сам понял что надо делать. Всё искал какой-то волшебный способ, а набрал в поисковике как сказали и первым же сообщением выискал вариант.

http://www.postgresonline.com/journal/archives/46-Setting-up-PostgreSQL-as-a-Linked-Server-in-Microsoft-SQL-Server-64-bit.html

Правильный или нет проверю уже в понедельник (у всех наблюдающих за постом и заинтересованных прошу прощения - уже сил нет как вымотало, чтобы проверять на выходных).

To trew: цель простая: без прослойки в виде консольного приложения, забирая интересующие справочные данные непосредственно из 1С, как из одной системы хранения данных и анализируя их, делать изменения в хранимых данных в совсем другой, отличной от неё по сути системе хранения данных, по результатам действия пользователей. Данные изменения будут производиться на основе срабатывания триггеров, черпающих справочную информацию о договорах контрагента из 1С, и действиях данного контрагента, учёт которых ведётся в системе на основе СУБД MS SQL (ту сразу попрошу воздержаться от комментариев о переведении данной учётной системы под 1С - этого не будет по очень многим соображениям).

Прошу на этом не бить меня сразу канделябрами по голове. К логике работы исходной системы на MS SQL доступа нет абсолютно никакого и все расширения логики действий в ней есть возможность внедрять только используя средства самой СУБД MS SQL (в частности такие как триггеры).
Р.S.Как показало время - достойный вызов для программиста. Есть где развернуться на пяточке :)
...
Рейтинг: 0 / 0
Как подключить к MS SQL Server 2008 R2 базу 1С в качестве LinkedServer ?
    #39030023
trew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DemiurgXXX,

В базе 1с имеет место, что все таблицы могут поменять своё название (на стороне PostgreSQL, в конфигураторе 1с наименования объектов будут прежние).
Такое возможно при обновлениях (кажется) платформы или версии конфигурации.
Если уверены, базу 1с не будете обновлять (обновления от 1с) или что в вашем решение можно будет быстро подправить везде названия таблиц 1с - тогда можно его реализовывать.

Вот альтернативный, тоже не простой вариант. Поднять веб-сервер и на 1с написать сервисы.
(это для случая, когда база 1с нетиповая т.е. можно менять код в конфигураторе)
http://v8.1c.ru/overview/Term_000000273.htm
http://www.cbr.ru/scripts/Root.asp?Prtid=DWS
...
Рейтинг: 0 / 0
Как подключить к MS SQL Server 2008 R2 базу 1С в качестве LinkedServer ?
    #39031751
DemiurgXXX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поборол !!!

Если кого интересует, то вот как:

Провайдер MSDASQL как оказалось входит в штатную поставку моего Windows 2008 Server (и как потом вычитал, но сам глазами не видел файла также входит в Vista 64 Bit ), так что ничего дополнительно связанного с ним делать не пришлось. Если у кого сервер предыдущей версии тому придётся озаботиться и его установкой http://www.microsoft.com/en-us/download/details.aspx?id=20065

а далее
1) Скачал ODBC драйвер для PostgreSQL с http://www.postgresql.org/ftp/odbc/versions/msi/ и установил его на сервере с MS SQL Server;
2) Далее на том же сервере через "панель администрирования" зашёл в источники данных ODBC и добавил системный DSN PostgreSQL35W по руководству из поста https://www.mssqltips.com/sqlservertip/3662/sql-server-and-postgresql-linked-server-configuration--part-2/
3) После этого через MS SQL Server Management Studio настроил LinkedServer со следующей строкой подключения, авторизации и опциями:

EXEC master.dbo.sp_addlinkedserver @server = N'POSTGRESQL', @srvproduct=N'PostgreSQL', @provider=N'MSDASQL', @datasrc=N'PostgreSQL35W'

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'POSTGRESQL',@useself=N'False',@locallogin=NULL,@rmtuser=N'postgres',@rmtpassword='########'
GO

EXEC master.dbo.sp_serveroption @server=N'POSTGRESQL', @optname=N'collation compatible', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server=N'POSTGRESQL', @optname=N'data access', @optvalue=N'true'
EXEC master.dbo.sp_serveroption @server=N'POSTGRESQL', @optname=N'dist', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server=N'POSTGRESQL', @optname=N'pub', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server=N'POSTGRESQL', @optname=N'rpc', @optvalue=N'true'
EXEC master.dbo.sp_serveroption @server=N'POSTGRESQL', @optname=N'rpc out', @optvalue=N'true'
EXEC master.dbo.sp_serveroption @server=N'POSTGRESQL', @optname=N'sub', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server=N'POSTGRESQL', @optname=N'connect timeout', @optvalue=N'0'
EXEC master.dbo.sp_serveroption @server=N'POSTGRESQL', @optname=N'collation name', @optvalue=null
EXEC master.dbo.sp_serveroption @server=N'POSTGRESQL', @optname=N'lazy schema validation', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server=N'POSTGRESQL', @optname=N'query timeout', @optvalue=N'0'
EXEC master.dbo.sp_serveroption @server=N'POSTGRESQL', @optname=N'use remote collation', @optvalue=N'true'
EXEC master.dbo.sp_serveroption @server=N'POSTGRESQL', @optname=N'remote proc transaction promotion', @optvalue=N'true'
GO
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Как подключить к MS SQL Server 2008 R2 базу 1С в качестве LinkedServer ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]