Доступ к базе 1С из MariaDB

25.12.19

Интеграция - Внешние источники данных

Прямое соединение MariaDB с базой на сервере MSSQL. Получение доступа к актуальным данным 1С из сторонних программ.

Формируем запрос, который хотим публиковать в MariaDB.

 

 

В SQL Server Profiler смотрим получившийся запрос.

 

 

Смотрим подсказку https://mariadb.com/kb/en/library/connect-odbc-table-type-accessing-tables-from-another-dbms/

Полученный запрос используем в создании виртуальной таблицы на MariaDB

create table `TovarAvailable`
COLLATE='cp1251_bin'
engine=CONNECT
table_type=ODBC
CONNECTION='Driver=SQL Server Native Client 10.0;Server=localhost;Database=UT3;UID=UUU;PWD=PPP'
SRCDEF='SELECT T3._Description AS tovar, 
T4._Description AS characteristic, 
T5._Description AS warehouse, 
T1.Fld22666Balance_ AS available,
T1.Fld22667Balance_ AS shipment
FROM (SELECT _Fld22660RRef AS Fld22660RRef, 
_Fld22663RRef AS Fld22663RRef, 
_Fld22661RRef AS Fld22661RRef, 
CAST(SUM(_Fld22666) AS NUMERIC(32, 8)) AS Fld22666Balance_, 
CAST(SUM(_Fld22667) AS NUMERIC(32, 8)) AS Fld22667Balance_
FROM UT3.dbo._AccumRgT22669 AS T2
WHERE (_Fld954 = 0) AND (_Period = \'5999-11-01 00:00:00\') AND (_Fld22666 <> 0) AND (_Fld22666 <> 0) OR
(_Fld954 = 0) AND (_Period = \'5999-11-01 00:00:00\') AND (_Fld22666 <> 0) AND (_Fld22667 <> 0) OR
(_Fld954 = 0) AND (_Period = \'5999-11-01 00:00:00\') AND (_Fld22666 <> 0) AND (_Fld22667 <> 0) OR
(_Fld954 = 0) AND (_Period = \'5999-11-01 00:00:00\') AND (_Fld22667 <> 0) AND (_Fld22667 <> 0)
GROUP BY _Fld22660RRef, _Fld22663RRef, _Fld22661RRef
HAVING (CAST(SUM(_Fld22666) AS NUMERIC(32, 8)) <> 0.0) OR
(CAST(SUM(_Fld22667) AS NUMERIC(32, 8)) <> 0.0)) AS T1 LEFT OUTER JOIN
UT3.dbo._Reference169 AS T3 ON T1.Fld22660RRef = T3._IDRRef AND T3._Fld954 = 0 LEFT OUTER JOIN
UT3.dbo._Reference318 AS T4 ON T1.Fld22661RRef = T4._IDRRef AND T4._Fld954 = 0 LEFT OUTER JOIN
UT3.dbo._Reference267 AS T5 ON T1.Fld22663RRef = T5._IDRRef AND T5._Fld954 = 0';

Проверяем что получилось.

SELECT * FROM TovarAvailable

Можно на стороне MSSQL создать view на основе полученного запроса и предоставить доступ к нему. В этом случае мы не показываем параметры авторизации и структуру таблиц коллегам разработчикам.

Таким образом минимальными средствами выводим, например, справочник на сайте.  

 

В примере использовались:

Управление торговлей, редакция 11 (11.3.2.207)

1С:Предприятие 8.3 (8.3.9.2309)

Microsoft SQL Server Standard Edition (64-bit) 10.50.6529.0

MariaDB 10.4.8

Вступайте в нашу телеграмм-группу Инфостарт

MariaDB интеграция

См. также

Внешние источники данных Программист Бизнес-аналитик Пользователь 1С:Предприятие 8 1C:Бухгалтерия Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

28500 руб.

15.11.2022    30428    42    49    

46

Зарплата Внешние источники данных Бюджетный учет Перенос данных 1C Системный администратор Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

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

122000 руб.

19.08.2020    29090    27    3    

28

Розничная торговля Внешние источники данных Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Бухгалтерия 3.0 Фармацевтика, аптеки Россия Бухгалтерский учет Платные (руб)

Внешняя обработка загрузки данных из файла-выгрузки, сформированного в программе F3 TAIL версии 3.4 (и выше) или еФарма версии 2.1, в базу конфигурации 1С: Бухгалтерия предприятия 8, ред. 3.0 (Базовая, ПРОФ, КОРП, ФРЕШ (тонкий клиент)).

17080 руб.

19.12.2016    53445    120    107    

83

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

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

84000 руб.

05.10.2022    13031    14    8    

16

Внешние источники данных Программист Бизнес-аналитик 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Обработка для выгрузки данных из подготовленных СКД в фоновом режиме в базу ClickHouseDB, PostgreSQL, MySQL, в шину данных с поддержкой REST API (CSV, JSON. SQL), в локальные файлы (CSV, JSON, XLS, XLSX) или в Google Sheets. Это дополнительная подключаемая обработка.

18000 руб.

21.08.2024    8215    21    4    

18

Внешние источники данных Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Платные (руб)

Быстро и легко. Выгрузка всех элементов и групп номенклатуры (с их иерархией), кроме помеченных на удаление. Без использования COM-объектов.

4880 руб.

16.08.2023    3729    7    8    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Идальго 242 26.12.19 10:54 Сейчас в теме
Не совсем ясно зачем так делать. Хм, а коллеги разработчики не могут разве тоже самое сделать, или просто самостоятельно данные получить(запрос выполнить, sql консолью воспользоваться) и т.п.? Ну, а если это всё для сайта, то просто создать в БД сайта таблицу - наверное недостаточно, для полноценной интеграции (здесь наверное нужно какой0то ещё функционал доделать).
Для отправки сообщения требуется регистрация/авторизация