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

Откуда:
Сообщений: 353
Добрый день!

Связка
1С -> SQL Server -> система отчёта.

Пользователь вводит инфу в 1С, обновляет отчёт - и видит результат.
Чтобы это реализовать, надо подписаться как-то на изменения в 1С -т.е. поступают изменения, срабатывает триггер.
Какая существует практика таких "онлайн" обновлений? ETL сам по себе, в общем-то, предназначен для обновления по таймеру. Или я что-то о нём не знаю?
5 ноя 19, 15:20    [22010006]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - как подписаться на веб-сервис 1С? Или это вообще не для SSIS?  [new]
L_argo
Member

Откуда:
Сообщений: 1013
В одну из 1С-таблиц записывать дату подготовки отчета.
Внешняя система зачитывает дату и если она стала новее, то забирать данные.
5 ноя 19, 15:39    [22010031]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - как подписаться на веб-сервис 1С? Или это вообще не для SSIS?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29587
хорошо я согласен
Пользователь вводит инфу в 1С, обновляет отчёт - и видит результат.
Чтобы это реализовать, надо подписаться как-то на изменения в 1С -т.е. поступают изменения, срабатывает триггер.
Первый вариант - классический, то есть когда пользователь "обновляет отчёт", этот отчёт создаётся из актуальных данных.

Второй вариант - триггер, при изменении данных, отмечает отчёт как устаревший, и при нажатии "обновить отчёт" он заново строится.

Но второй вариант сделать намного сложнее, потому что нужно точно определить все таблицы, и все условия, которые определяют подмножество данных, влияющих на отчёт.
По сути, триггер получается таким же по сложности, как и сам отчёт.
5 ноя 19, 15:48    [22010040]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - как подписаться на веб-сервис 1С? Или это вообще не для SSIS?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29587
L_argo
В одну из 1С-таблиц записывать дату подготовки отчета.
Вопрос топика, как я его понял: когда, в какой момент, нужно подготовить новый отчёт, то есть, когда данные устарели?

Например, отчёт "список сотрудников компании".
Кадровик добавил нового сотрудника, и отчёт должен заново "подготовиться". Как система подготовки отчётов понимает, что нельзя отгружать пользователю готовый, сохранённый отчёт, а нужно сделать его заново?
5 ноя 19, 15:52    [22010043]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - как подписаться на веб-сервис 1С? Или это вообще не для SSIS?  [new]
хорошо я согласен
Member

Откуда:
Сообщений: 353
1C-ники говорят, что как раз работают над таким триггером. Сам я не работал ни разу с таковыми.

И как я себе представляю, пакет должен висеть в памяти "вечно" и мониторить изменение этого триггера, что больше похоже на работу ESB (коего у нас нет).

Поэтому вопрос - какая есть практика такого чтения подобных триггеров из SSIS... чтобы понимать, могу ли я работать с ним. Или сказать им "не пойдёт, отменяю заказ, делайте даты". Но в этом случае придётся каждые несколько секунд опрашивать - опять-таки, SSIS будет вечно крутиться и грузить сервер 1С своими опросами и каждый раз получать пустую таблицу по фильтру "за последние 5 секунд".
5 ноя 19, 15:59    [22010049]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - как подписаться на веб-сервис 1С? Или это вообще не для SSIS?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 6955
хорошо я согласен,

емнип, в Enterprise редакции подписки отчетов сами могут следить за изменением данных, но если не Enterprise, то надо самому что-то делать.

ETL может работать по расписанию, для этого создают джоб и в одном из шагов настраивают тип шага - SSIS пакет.
5 ноя 19, 18:38    [22010193]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - как подписаться на веб-сервис 1С? Или это вообще не для SSIS?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29587
хорошо я согласен
И как я себе представляю, пакет должен висеть в памяти "вечно" и мониторить изменение этого триггера, что больше похоже на работу ESB (коего у нас нет).
Нет, такой подход не сработает. Потому что будут тысячи перестроений отчёта, без единого запроса на его просмотр.

хорошо я согласен
Поэтому вопрос - какая есть практика такого чтения подобных триггеров из SSIS...
Триггер - это код. Его можно прочитать в Visual Studio, или в SSMS
Поэтому вопрос непонятен, что то наподобие "какая есть практика такого чтения подобных DLL из SSIS"?
Владислав Колосов
емнип, в Enterprise редакции подписки отчетов сами могут следить за изменением данных
Что вы имеете в виду? Если у меня есть прога построения отчёта, написанная на дельфи или питоне, то покупка какой либо лицензии на MSSQL заставит их отслеживать изменения данных?
5 ноя 19, 23:23    [22010291]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - как подписаться на веб-сервис 1С? Или это вообще не для SSIS?  [new]
Remind
Member

Откуда: UK
Сообщений: 457
Сама 1С на какой субд крутится?
6 ноя 19, 01:40    [22010329]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - как подписаться на веб-сервис 1С? Или это вообще не для SSIS?  [new]
PsyMisha
Member

Откуда: другая столица
Сообщений: 486
хорошо я согласен,

а "система отчета" - это что?
Если SSRS - то сразу такой сценарий вспомнился из прошлого - когда отчетность смотрела в операционный источник данных напрямую, без прослойки в виде еще одной аналитической БД или DWH - в отчетах самих есть функционал автообновления страницы, что под капотом влекло за собой и повторное выполнение запроса и всех DataSet'ов отчета - таким образом - оперативно отображались изменения.

В целом сюжет был таков, что для сотрудников отдела мониторинга делал отчетность, и она показывала списки со статусами инфраструктурных сервисов - heart beat'ы в режиме 3х цветного светофора. Внешний процесс опрашивал источники данных, составлял карту сети, писал в базу, а DataSet отчета просто кверил эту готовую базу и рисовал светофоры.
Далее - сотрудники просто с утра открывали этот мой дашборд, и в течении рабочего дня оно висело на мониторах у них и автообновлялось раз в минуту

Показалось похожим на ваш сценарий, нет?
6 ноя 19, 09:00    [22010402]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - как подписаться на веб-сервис 1С? Или это вообще не для SSIS?  [new]
PsyMisha
Member

Откуда: другая столица
Сообщений: 486
PsyMisha,

Чуть дополню - пользователь вносит изменения в 1С, - так изменения сохраняются там в Справочниках, в Регистрах, в Документах. SQL-запрос в системе отчетности периодически раз в n-минут нужным образом выхватывает изменения и результирующий набор уже отправляется наверх, потребителю.

Если все так - то я бы вообще не стал заморачиваться с триггерами и прочим барахлом.
Триггер в СУБД - это зачастую замедление производительности, лишняя волокита, которую нужно сопровождать, лишние ограничения в будущем - к примеру - захотите перейти на последние технологии - in memory, temporal tables, да тот же ChangeDataTracking - и триггер станет шоустоппером, - а вы уже на него завязались полностью, и теперь вот надо думать, как избавляться

Тсс - я заметил - если произнести на датабазном форуме слово "in memory" - рядом где-то сразу появится гражданин Воронин :)
6 ноя 19, 09:08    [22010410]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - как подписаться на веб-сервис 1С? Или это вообще не для SSIS?  [new]
ShIgor
Member

Откуда: Нижний Новгород
Сообщений: 2235
(наболело выскажу свое мнение). Чем дольше работаю с подобной же тематикой (с 2011 года), тем больше прихожу к выводу, что 1С сама должна класть все изменения в заранее обговоренном формате в необходимое место по согласованному регламенту. Скорее всего, что следующим этапом и будет некое подобие шины данных с API, а в обязанностях разработчиков на 1С у нас, надеюсь, появится пункт о написании процедур доставки данных.
Я за это время прошел все варианты доставки данных из 1С в хранилище, кроме триггеров, которые даже никогда не рассматривались.
Последней реализацией стала связка change tracking + service broker.
Главные из минусов такого подхода: невозможность настройки отслеживания некоторых изменений по причине "вот такая у нас конфигурация", излишние срабатывания CT на обновления не нужные системе отчетности, необходимость постоянного контроля за метаданными (1С-ники у нас любят накатывать новые релизы без предупреждения), необходимость написания специальных процедур в ситуациях обрезки/переливки данных.
Если мне удастся продвинуть свою идею, то все проблемы этого плана уйдут, т.к. только разработчику 1С известен тот момент когда и какие данные готовы попасть в хранилище и ко мне, как ответственному за систему отчетности предприятия, больше не будет претензий по поводу нет данных или не оттуда взял. ответ будет один - "не положили".
6 ноя 19, 10:09    [22010490]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - как подписаться на веб-сервис 1С? Или это вообще не для SSIS?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 6955
alexeyvg,

Для энтерпрайз в репортинг сервисах появляется опция настройки отгрузки отчета по изменению данных. Но точно не скажу, если ли такое в стандарте. По-моему - нет.
6 ноя 19, 11:25    [22010580]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - как подписаться на веб-сервис 1С? Или это вообще не для SSIS?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 6955
Имеются в виду подписки. Для стандарта возможность подписки ограничена. Есть управляемые данными подписки и управляемые расписанием.
6 ноя 19, 11:27    [22010586]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - как подписаться на веб-сервис 1С? Или это вообще не для SSIS?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29587
Владислав Колосов
Для энтерпрайз в репортинг сервисах появляется опция настройки отгрузки отчета по изменению данных. Но точно не скажу, если ли такое в стандарте. По-моему - нет.
При чём тут "репортинг сервис"???

ТС про него не писал.
6 ноя 19, 11:34    [22010600]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - как подписаться на веб-сервис 1С? Или это вообще не для SSIS?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 6955
alexeyvg,

а как Вы трактуете фразу "система отчета" в контексте форума SQL Server? Без указания это, конечно же, Reporting Services.
6 ноя 19, 12:04    [22010645]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - как подписаться на веб-сервис 1С? Или это вообще не для SSIS?  [new]
PsyMisha
Member

Откуда: другая столица
Сообщений: 486
Да-да, пусть ТС и обозначит уже весь стек, нормально.
А то без него уже куча гипотез, а сам автор имеет честь не явиться на собрание.

P.S. - главное - не переусложнить вариант предложенного решения. Мне кажется все сильно проще, чем пишут и уже предлагают.
6 ноя 19, 12:52    [22010679]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - как подписаться на веб-сервис 1С? Или это вообще не для SSIS?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 6955
PsyMisha,

Согласен, как правило, делают так, как уже писали - 1С выгружает данные в файловый каталог, сервер забирает по расписанию (и наоборот). Всё очень просто.
6 ноя 19, 13:11    [22010699]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - как подписаться на веб-сервис 1С? Или это вообще не для SSIS?  [new]
PsyMisha
Member

Откуда: другая столица
Сообщений: 486
Владислав Колосов,

Дак можно же вообще бесшовную интеграцию - прямые запросы в его БД и все
Даже файлы мне кажется - лишнее

И сиквелу и репортингу же все равно, с чем работать - с каким DataSource - CSV, Query, etc...
6 ноя 19, 13:47    [22010726]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - как подписаться на веб-сервис 1С? Или это вообще не для SSIS?  [new]
Remind
Member

Откуда: UK
Сообщений: 457
Владислав Колосов,

Как-то по древнему. А что там насчет интеграции 1C и Kafka?
6 ноя 19, 13:53    [22010729]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - как подписаться на веб-сервис 1С? Или это вообще не для SSIS?  [new]
PsyMisha
Member

Откуда: другая столица
Сообщений: 486
Remind
Владислав Колосов,

Как-то по древнему. А что там насчет интеграции 1C и Kafka?


Да нету у ТС Кафки
У него простое окружение, и теоретические размышления о том, как там оно в идеальном абстрактном мире - ему не нужно. Нужно лишь в его реалиях сделать что-то из максимально коробочных средств
6 ноя 19, 14:51    [22010803]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - как подписаться на веб-сервис 1С? Или это вообще не для SSIS?  [new]
ShIgor
Member

Откуда: Нижний Новгород
Сообщений: 2235
PsyMisha,

использование максимально коробочных средств кстати, ограничено лицензионным соглашением
+ Ответы на типовые вопросы по лицензированию "1С:Предприятия 8". Вопрос 65.

отсюда
Лицензионное соглашение не позволяет использовать недокументированные фирмой "1С" средства для построения решений на платформе "1С:Предприятие". Это означает, что средства СУБД (или любые другие внесистемные средства) можно использовать только в том случае, если документация по продуктам линейки "1С:Предприятие" (включая 1С:ИТС) содержит явную рекомендацию использовать данное средство для решения данной задачи.

Во всех остальных случаях лицензионное соглашение позволяет использовать для построения решений только штатные средства платформы. В частности, можно обращаться к данным информационной базы только при помощи объектов "1С:Предприятия", специально предназначенных для работы с данными (запросы, справочники, документы и т. д.). Нельзя обращаться к данным информационной базы напрямую, минуя уровень объектов работы с данными "1С:Предприятия", например при помощи средств СУБД или при помощи внешних компонент, которые реализуют прямой доступ к СУБД. Это ограничение распространяется на любые действия с данными, в том числе на изменение их структуры, а так же на чтение или изменение самих данных информационной базы или служебных данных "1С:Предприятия".

Данное ограничение необходимо для обеспечения стабильности работы механизмов системы, осуществления поддержки и возможности перехода на новые версии "1С:Предприятия".
6 ноя 19, 16:03    [22010878]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - как подписаться на веб-сервис 1С? Или это вообще не для SSIS?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 6955
PsyMisha,

прямые запросы не гарантируют повторяемость результата. Например, пришло очередной обновление.
6 ноя 19, 16:43    [22010922]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - как подписаться на веб-сервис 1С? Или это вообще не для SSIS?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29587
Владислав Колосов
alexeyvg,

а как Вы трактуете фразу "система отчета" в контексте форума SQL Server? Без указания это, конечно же, Reporting Services.
Написано, отчёт делается в SSIS

То есть запускается DTS пакет, который создаёт выгрузку, например, Excel-файл.

Может, имеется в виду SSRS, а не SSIS, просто автор несколько раз опечатался, в нескольких постах?
6 ноя 19, 16:45    [22010923]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - как подписаться на веб-сервис 1С? Или это вообще не для SSIS?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 6955
alexeyvg,

я понял, что SSIS используется для 1С -> SQL Server, т.к. речь идет о триггере изменения данных.
6 ноя 19, 16:50    [22010927]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - как подписаться на веб-сервис 1С? Или это вообще не для SSIS?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29587
Владислав Колосов
alexeyvg,

я понял, что SSIS используется для 1С -> SQL Server, т.к. речь идет о триггере изменения данных.
А я понял, что триггер изменения данных - это триггеры на таблицах с данными, а SSIS должен увидеть, что триггер сработал, и запустить перестроение отчёта.

хорошо я согласен
Поэтому вопрос - какая есть практика такого чтения подобных триггеров из SSIS... чтобы понимать, могу ли я работать с ним. Или сказать им "не пойдёт, отменяю заказ, делайте даты". Но в этом случае придётся каждые несколько секунд опрашивать - опять-таки, SSIS будет вечно крутиться и грузить сервер 1С своими опросами и каждый раз получать пустую таблицу по фильтру "за последние 5 секунд".
6 ноя 19, 16:56    [22010936]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить