Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Nika gnome Member Откуда: Сообщений: 626 |
Как обычно идёт подключение к 1С? С помощью специально разработанных API функций (1С-никами) или с помощью прямого подключения к хранимкам/вьюхам на 1Сном SQL сервере? Заглянула на 1Сный SQL-сервер, так там жесть. Всё зашифровано, таблицы имеют формат "65GF_part2". 1Сники настаивают на создании API-функций, но при увеличении объёмов данных завалятся же. Какая есть практика? |
5 июл 19, 11:51 [21921481] Ответить | Цитировать Сообщить модератору |
Sergey Sizov Member Откуда: Сообщений: 1564 |
|
||
5 июл 19, 12:04 [21921493] Ответить | Цитировать Сообщить модератору |
court Member Откуда: Сообщений: 2253 |
1С-ник делал веб-сервис (в 8-е с этим просто), и всё "желающие" его дёргали |
||
5 июл 19, 12:14 [21921503] Ответить | Цитировать Сообщить модератору |
StarikNavy Member Откуда: Москва Сообщений: 2395 |
Nika gnome, 1) взять обработку у 1с которая показывает нормальные имена вместо сгенерированных (ищем то что нам нужно, пишем обычные запросы) 2) 1с создают(используя эту обработку) сервис, который создает на уровне SQL view с нормальными именами - и уже работаем с этими вью 3) веб сервис/апи 4) 1с создают выгрузку данных в шлюзовый сервер |
5 июл 19, 12:20 [21921510] Ответить | Цитировать Сообщить модератору |
a_voronin Member Откуда: Москва Сообщений: 4805 |
Nika gnome, У меня есть. Пишете запрос или просите специалистов по 1c вам его составить и напрямую пуляете в бд. Для отслеживания изменений использовали ROW_VERSION . А дальше в DataSource его как текст и во вьюху оберните. И далее в по цепочке в dataflow |
5 июл 19, 19:10 [21921800] Ответить | Цитировать Сообщить модератору |
vitkhv Member Откуда: Москва Сообщений: 940 |
Ничего там не зашифровано. 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] Ответить | Цитировать Сообщить модератору |
Nika gnome Member Откуда: Сообщений: 626 |
а как же эти самые "лицензии"? вот, например https://v8.1c.ru/predpriyatie/questions_licence.htm там есть пункт 65. Типа, запрещает лезть непосредственно в базу. Речь идёт именно про SSIS в SQL Server'е и о том SQL Server'е, на котором стоит 1С. В этом сервере нет функции ПолучитьСтруктуруХраненияБазыДанных. Использование этой функции - это уже не напрямую в базу или во вьюху в базе, а через какую-то 1с-ную прослойку. |
7 июл 19, 23:37 [21922356] Ответить | Цитировать Сообщить модератору |
Критик Member Откуда: Москва / Калуга Сообщений: 34757 Блог |
Nika gnome, Запрет чисто бумажный. Не слышал даже об одном случае каких-либо последствий для компании за его нарушение. Более того, если у вас крупная компания (вы покупаете много лицензий у 1с), то можно отдельно оговорить этот вопрос в доп соглашении. |
7 июл 19, 23:41 [21922359] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |