Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 у кого есть практика создания SSIS пакета, выгружающего данные из 1С в SQL?  [new]
Nika gnome
Member

Откуда:
Сообщений: 563
Как обычно идёт подключение к 1С?
С помощью специально разработанных API функций (1С-никами) или с помощью прямого подключения к хранимкам/вьюхам на 1Сном SQL сервере?

Заглянула на 1Сный SQL-сервер, так там жесть. Всё зашифровано, таблицы имеют формат "65GF_part2". 1Сники настаивают на создании API-функций, но при увеличении объёмов данных завалятся же.

Какая есть практика?
5 июл 19, 11:51    [21921481]     Ответить | Цитировать Сообщить модератору
 Re: у кого есть практика создания SSIS пакета, выгружающего данные из 1С в SQL?  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1448
Nika gnome
Как обычно идёт подключение к 1С?
Документированными способами и отнюдь не напрямую к базе. Ковыряние напрямую в 1с-ской базе запрещено лицензией.
5 июл 19, 12:04    [21921493]     Ответить | Цитировать Сообщить модератору
 Re: у кого есть практика создания SSIS пакета, выгружающего данные из 1С в SQL?  [new]
court
Member

Откуда:
Сообщений: 1829
Nika gnome
Как обычно идёт подключение к 1С?

1С-ник делал веб-сервис (в 8-е с этим просто), и всё "желающие" его дёргали
5 июл 19, 12:14    [21921503]     Ответить | Цитировать Сообщить модератору
 Re: у кого есть практика создания SSIS пакета, выгружающего данные из 1С в SQL?  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2265
Nika gnome,

1) взять обработку у 1с которая показывает нормальные имена вместо сгенерированных (ищем то что нам нужно, пишем обычные запросы)
2) 1с создают(используя эту обработку) сервис, который создает на уровне SQL view с нормальными именами - и уже работаем с этими вью
3) веб сервис/апи
4) 1с создают выгрузку данных в шлюзовый сервер
5 июл 19, 12:20    [21921510]     Ответить | Цитировать Сообщить модератору
 Re: у кого есть практика создания SSIS пакета, выгружающего данные из 1С в SQL?  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 3994
Nika gnome,

У меня есть. Пишете запрос или просите специалистов по 1c вам его составить и напрямую пуляете в бд.

Для отслеживания изменений использовали ROW_VERSION .

А дальше в DataSource его как текст и во вьюху оберните. И далее в по цепочке в dataflow
5 июл 19, 19:10    [21921800]     Ответить | Цитировать Сообщить модератору
 Re: у кого есть практика создания SSIS пакета, выгружающего данные из 1С в SQL?  [new]
vitkhv
Member

Откуда: Москва
Сообщений: 943
Nika gnome
Всё зашифровано, таблицы имеют формат "65GF_part2"


Ничего там не зашифровано.
ID имеют формат varbinary(16).

Имена таблиц и полей в человеческом виде получаем через функцию ПолучитьСтруктуруХраненияБазыДанных(,Истина) и с ее помощью создаем views, как уже сказал StarikNavy .

Проблемы будут со составными полями и перечислениями.

Для перечислений создаем отдельную таблицу где храним Имя перечисления,Значение перечисления,GUID. Пишем функцию которая возращает GUID перечисления. В качестве параметра функция принимает Имя перечисления+Значение перечисления. В запросах для получения GUID перечисления я пишу так dbo.ЗНАЧЕНИЕ('Перечисление.СтавкиНДС.НДС20').

С составными полями уже сложнее потому, как для ссылочного типа данных для составного поля в таблице БД используются три поля: 1)Тип (_Fldxxx_TYPE) bynary(1)
2) Номер таблицы (_Fldxxx_RTRef) bynary(4)
3) Ссылка (_Fldxxx_RRRef) bynary(16).

- тип это Справочник, Документ, Перечисление и т.д., в числовом виде. Тип 8 например это справочник.
- номер таблицы это номер таблицы в БД т.к. все таблицы 1С в БД после префикса имеют уникальный номер.
- Ссылка это собственно GUID значения справочника, документа или любого другого ссылочного объекта БД. т.е. его ID.

Если в составного поле указывается тип Дата, Строка, Число или Булево, то создаются еще дополнительные поля в БД и соответственно в поле тип указывается номер типа данных. Строка это номер 5, Число это номер 3 и т.д.

Кстати т.к. поле Тип это bynary(1), то для его нормального восприятия нет необходимости его конвертить т.к. 0x02 это 2, 0x05 это 5 и т.д.

В принципе для составного поле во view можно использовать и sql_variant, но тогда нельзя будет использовать стандартные индексы от 1С. Придется материлизовать view.


По типу составных полей хранятся данные в таблицах значений субконто, констант и т.д.
5 июл 19, 21:03    [21921826]     Ответить | Цитировать Сообщить модератору
 Re: у кого есть практика создания SSIS пакета, выгружающего данные из 1С в SQL?  [new]
Nika gnome
Member

Откуда:
Сообщений: 563
а как же эти самые "лицензии"?
вот, например
https://v8.1c.ru/predpriyatie/questions_licence.htm
там есть пункт 65. Типа, запрещает лезть непосредственно в базу.

Речь идёт именно про SSIS в SQL Server'е и о том SQL Server'е, на котором стоит 1С. В этом сервере нет функции ПолучитьСтруктуруХраненияБазыДанных. Использование этой функции - это уже не напрямую в базу или во вьюху в базе, а через какую-то 1с-ную прослойку.
7 июл 19, 23:37    [21922356]     Ответить | Цитировать Сообщить модератору
 Re: у кого есть практика создания SSIS пакета, выгружающего данные из 1С в SQL?  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 32448
Блог
Nika gnome,

Запрет чисто бумажный. Не слышал даже об одном случае каких-либо последствий для компании за его нарушение. Более того, если у вас крупная компания (вы покупаете много лицензий у 1с), то можно отдельно оговорить этот вопрос в доп соглашении.
7 июл 19, 23:41    [21922359]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить