Сравнительный анализ вариантов интеграции между системами

Публикация № 1489661 30.07.21

Интеграция и обмен данными - Файловые протоколы обмена (TXT, XML, DBF), FTP

На Infostart Meetup «Интеграционные решения для 1С» выступил Сергей Наумов – руководитель центра аналитики и консалтинга WiseAdvice. Сергей поделился с коллегами кейсами из собственной практики: какие интеграционные решения остаются актуальными до сих пор, а каких приемов стоит избегать – даже в безвыходных ситуациях.

О теме доклада

 

 

Расскажу про сравнительный анализ вариантов интеграции. Рассмотрим четыре кейса:

  • обмен данными из конфигурации 1С в базу SQL сайта через XML-файлы с помощью правил, написанных в КД2;

  • трансферная база данных на MySQL;

  • интеграция между «кучкой систем» через JSON и RabbitMQ;

  • интеграция 1С с сайтом через NoSQL базу данных MongoDB.

Все кейсы я выстроил по степени моей удовлетворенности работой этого варианта.

 

Первый кейс – КД2 в SQL

 

 

Первый кейс – обмен с помощью xml.

Суть этого кейса: туристические компании часто имеют сайты, где можно заказать билеты, подобрать тур, поездку или экскурсию. В начале карьеры я работал в такой туристической компании, и они хотели интегрировать свой сайт с самописной системой на 1С.

 

 

Тогда мне казалось, что требования меняются очень часто, поэтому я пошел по пути разработки конструктора. Чтобы сделать такой конструктор, я немного изменил «Конвертацию данных 2»:

  • Сделал так, чтобы источником или приемником могла быть не только база данных на 1С, но и некоторые SQL-базы данных в качестве объектов.

  • Добавил возможность выбора объекта «Таблица SQL».

С помощью измененной «Конвертации данных 2» настроил правила обмена между 1С и SQL-базой данных, которая используется сайтом.

И написал на С# веб-сервис, который получает данные от 1С и, опираясь на правила КД2, раскладывает эти данные в таблицу SQL.

 

 

Работа была интересной, мне было приятно этим заниматься. В этом решении были позитивные стороны:

  • изменения можно было вносить быстро;

  • с помощью КД2 я легко добавлял реквизиты, перенастраивал обработчики;

  • и в 1С это было легко отлаживать.

 

 

Но негативных сторон было больше:

  • получилось решение с высокой стоимостью владения, потому что исправлять сервис на C# – большая работа;

  • сложная отладка на стороне веб;

  • все это работало не очень быстро, потому что структура правил КД2 избыточная, а при каждом обращении к сервису они перечитывались;

  • получилось громоздкое решение, которое мы запускали очень долго: два месяца мы только его отлаживали.

Так я больше делать не буду, но кейс был интересным. Для себя я сделал такой вывод, что «Конвертацию данных» лучше не трогать: как ее поставляет вендор, так мы ее и используем.

 

ТБД MySQL

 

Следующий кейс – трансферная база данных на MySQL.

 

 

Вводные данные кейса: микрофинансовая организация, информационные системы активно развиваются. Система самописная, писалась много лет.

Задача – получать заявки с партнерской сети.

Фактически, нужно было автоматизировать основной бизнес-процесс компании. Партнерская сеть очень большая: десятки партнеров в каждом городе РФ, это сотни и даже тысячи пользователей сайта.

 

 

Когда я пришел в компанию, там была реализована первая версия обмена. В ней была куча проблем:

  • постоянная потеря данных;

  • сложно было искать ошибки, мы просто не понимали, что происходит – несмотря на то, что я был руководителем, мне приходилось самому ежедневно копаться в коде, выяснять, что произошло, почему так получилось;

  • в день у нас было до нескольких часов простоя. Еще раз подчеркну: это был основной бизнес-процесс компании, несколько часов простоя – просто недопустимо.

Первая версия обмена подразумевала, что 1С и сайт на Битриксе с двух сторон что-то пишут в трансферную базу данных, а параллельно в цикле опрашивают наличие записей и считывают, если что-то появилось.

Причем на тот момент в этой трансферной базе данных на MySQL была всего одна таблица. Ее структура представлена в левой части слайда. Там есть:

  • ID объекта;

  • тип объекта – например: новый клиент, предварительная заявка, постоянная заявка и т.д.;

  • колонки с полями для каждого типа объекта – некий аналог шахматной ведомости;

  • и набор флагов для обработки объектов – например, флаги «Заявка предварительная», «Заявка постоянная» и т.д.

Главная проблема первой версии обмена заключалась в том, что за то время, пока отрабатывает цикл опроса таблицы, пользователи сайта Битрикс могут несколько раз обновить данные по одной и той же заявке. Они проходят один экран, нажимают «Далее», и запись обновляется, потому что ID объекта одинаковый, появляется только новый флаг обработки. 1С еще предыдущую запись не прочла, а уже появилась следующая.

В итоге 1С читает запись, но у нее не хватает данных, которые должны были быть созданы на предыдущем этапе. Все падает, но мы не понимаем, почему упало.

Первая версия – провальное решение: на одной таблице никогда нельзя организовывать обмен.

 

 

Но сам кейс ТБД мне понравился – после того, как мы его корректно реализовали и переработали.

В чем суть переработки?

  • Мы разбили промежуточную базу данных так, чтобы на каждый объект приходилась своя таблица.

  • Сделали так, что сайт 1С и Битрикс работали с объектами через функции, а не через обращение к таблицам. Это было сделано для унификации и для того, чтобы логика работы была одинаковой. Для этого были добавлены транзакции и определенные механизмы для контроля версионности, чтобы проблем с версионностью не было – про это расскажу чуть позже.

  • Систематизировали всю работу с объектами в СППР – во-первых, потому что там есть весь перечень метаданных, во-вторых, это была наша основная учетная система на тот момент.

    • Добавили в СППР сопоставление некоторых реквизитов 1С с полями в базе данных Битрикс.

    • В СППР генерировались скрипты для создания таблиц в базе данных MySQL – мы перерабатывали обмен очень активно, раз в два дня обновляли правила обмена и трансферную базу данных.

    • Также в СППР генерировался модуль для 1С, который выгружал в трансферную базу данных некоторые данные.

  • Конечно, проработали вопрос с приоритетами.

  • Сделали пообъектное считывание и логирование. Не забывайте делать логирование при обменах.

 

 

Для взаимодействия с таблицами мы реализовали следующие функции:

  • Добавление объекта

  • Чтение объекта

  • Подтверждение чтения

Функции были одинаковыми для каждой таблицы. Так как СППР генерировала скрипт для создания таблиц в базе данных, это было не очень тяжело сделать.

Логика работы с таблицами строилась следующим образом:

  • когда 1С хотела отправить на сайт обновленную заявку или обновленного контрагента, она вызывала функцию добавления объекта;

  • а сайт в свою очередь – функцию чтения объекта;

  • и если прочитал успешно – функцию подтверждение чтения объекта.

 

 

Все было достаточно стройно и логично. Решение было позитивное, держало большую нагрузку, но было два НО.

  • Первое «но» – иногда зависали запросы, отправляющие бинарную информацию. Проблема была простой: сайт закидывает в базу бинарные данные с документами клиента, а 1С эти данные читает – и при чтении запрос зависал наглухо. Пытались решить правильно: перелопатили всю документацию по MySQL, перепробовали разные версии MySQL, разные дистрибутивы Linux – много времени угробили на то, чтобы разобраться, почему оно так зависает, но не нашли в чем проблема. Мы решили проблему по-простому: сделали сервис на сервере баз данных, который проверяет: если есть запрос выполняющийся больше 10 секунд, он его прибивал.

  • Вторая проблема – на сайте были пользователи, которых мы называли «машинистками». Они умудрялись так быстро вводить заявки и переводить их из одного этапа в другой, что складывалась ситуация, когда 1С еще не прочла данные объекта, а уже прилетела информация о его обновлении.

 

 

На схеме это выглядит так: объект добавился, 1С его прочитала, но в этот момент к объекту прилетает обновление, имеющаяся база 1С записывала не так уж быстро. Поэтому ситуация, когда 1С еще читает данные и проводит документ, а в это время уже прилетает обновление с сайта – иногда проявлялась.

 

 

Нам удалось решить эту ситуацию:

  • Когда объект добавляется, у него остается флаг «Прочитан» = Ложь.

  • В транзакции с максимальным уровнем изоляции 1С получает эти поля, начинает объект считывать, мы ставим флаг «Прочитан» = Истина.

  • Когда приходит обновление объекта, опять ставится флаг «Прочитан» = Ложь.

  • При подтверждении чтения удаление из таблицы происходит только при условии, что ID равен ID переданного объекта и флаг «Прочитан» = Истина.

Схема простая и эффективная, позволила решить проблему с обновлением объекта. Если у вас будет подобный кейс – пользуйтесь.

Выводы по этому кейсу:

  • Сама по себе схема обмена через трансферную базу данных – неплохая. Мы применили такой прием, потому что заказчик проекта настаивал на обмене через промежуточную базу данных.

  • Буду ли я повторять? После того как я познакомился с RabbitMQ и другими технологиями, я не уверен, что буду вкладывать опять такие трудозатраты в реализацию этого кейса. Но сам по себе кейс – неплохой.

 

JSON, Rabbit и «кучка систем»

 

 

Следующий кейс – об интеграции между «кучкой систем» через JSON и RabbitMQ.

Об этом кейсе я подробно рассказывал в докладе 2019-го года. Сегодня я не буду повторять рассказ о бизнесовой «обвеске», расскажу только то, что у этого кейса внутри.

Основная проблема «кучки систем» показана на картинке слева – здесь видно, что для того, чтобы заинтегрировать между собой 4 системы, нужно 6 интеграций. Поэтому было решено реализовать промежуточную BPM-систему, с которой будут обмениваться все остальные системы, чтобы делать не шесть интеграций, а каждую систему интегрировать с шиной данных.

 

 

BPM-система принимает сообщения от запрашивающей системы, производит маршрутизацию сообщения и направляет сообщение в систему, которая обеспечивает обработку запроса. После получения ответа BPM-система возвращает ответ запрашивающей системе. Все потоки сообщений BPM-системой обрабатываются через очереди «кролика».

BPM-система плюс «кролик» – по сути, ESB-система. С одной стороны, эта система гарантирует доставку сообщений, а с другой стороны – их маршрутизацию и, возможно, трансформацию. И в BPM системе реализована некоторая бизнес-логика.

 

 

Мы сделали BPM-систему на 1С, потому что это было быстро – мы не нашли интегратора, который подписался бы под сроками, которые нам были нужны. В нашей команде профильного опыта не было, поэтому сделали на 1С.

Как видите, функциональность по обработке сценариев данных получилась серьезная: BPM-система поддерживала сессии мобильного приложения (чтобы при повторном запуске приложения не спрашивать пароль, проверялись активные сессии), обслуживала сайт.

 

 

Самое интересное во всем этом – мы применили подход к тому, что форматы сообщений описываются внутри BPM-системы.

Все сообщения были записаны в JSON определенного формата. На вход сценария обработки данных идет сообщение в JSON – в сообщении должен быть написан ID сценария (допустим, это будет сценарий «Получить автомобили»). Сценарий производит обработку сообщения и выдает сообщение в описанном формате.

Мы применили интересный кейс: включили моделирование бизнес-сценариев в BPM-систему. Обратите внимание: на слайде стоят цифры, это из диаграммы классов UML, там есть нотация, которая обозначает, что:

  • бизнес-сценария может не быть, поэтому связь пронумерована как 0;

  • бизнес-сценарию соответствует «Сценарий обработки данных». Причем, для одного бизнес-сценария точно должен быть хотя бы один сценарий, таких сценариев обработки данных может быть несколько (в обозначениях 0..* и 1..* «звездочка» значит «многие ко многим»)

  • и внутри каждого сценария обработки данных точно должен быть «Этап обработки данных», иначе сценарий не заработает.

 

 

Что делает сценарий обработки данных?

  • На вход идет сообщение в JSON, там указан bpm_id – ID сценария, который должен обрабатываться.

  • Этапы обработки данных производят обмен сообщениями с другими системами,

  • И на выходе сценария – ответ запрашивающей системы.

Я опять же, сделал конструктор. Внутри этапа обработки данных можно писать кодом разные обработчики – программный код для обработки входящего сообщения, программный код обработки получения ответа.

Всего на это у меня ушло порядка месяца. Разработка не очень сложная, но возможностей дала много, мы интегрировали пять систем: мобильное приложение, сайт, CRM, АБС-система, личные кабинеты.

Такой подход позволил сократить время на настройку обмена – она сводилась к тому, что мы добавляем новый сценарий и настраиваем, к кому этот сценарий должен обращаться.

 

 

Вот так выглядит сценарий, в котором мобильное приложение запрашивает список автомобилей у CRM-системы. Сверху мы задаем его код – реквизит «Код (bpm_id)».

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

Справа внизу можно увидеть, что мы сделали для себя удобный сервис, что система генерит некоторые примеры значений. Для отладки это тоже было очень удобно.

 

 

На этом слайде показаны этапы обработки данных для сценария – тут видны условия выполнения, возможные разветвления, трансформация в основном коде этапа. Можно задать время ожидания.

Всю эту функциональность я «запилил» за месяц.

 

 

Самое интересное – для сценария и конкретного этапа обработки данных можно задать формат входящего и исходящего сообщения.

 

 

Что такое формат сообщений? Это простой иерархический справочник, который позволяет описать структуру JSON-сообщения. Когда приходит сообщение для сценария обработки данных, система проверяет, соответствует ли формат сообщения справочнику. Если не соответствует – возвращает ошибку.

На левом скриншоте – формат, описанный с помощью справочника 1С, справа – JSON, сгенерированный по этому формату (некоторый тестовый JSON, который мы использовали для тестирования системы).

 

 

Мы всю эту систему обложили тестами на Python, причем мы сделали мультипоточные тесты: на разных компьютерах запускали тестирование на много потоков.

Мой ноутбук, выдерживал всего 50 потоков тестирования. Мы арендовали виртуальные сервера для серьезного нагрузочного тестирования. Но так как это основная инфраструктурная система, это было оправданно.

 

 

Что получилось

  • По результатам тестов в нагруженном режиме система у нас тянула несколько сотен сообщений в секунду. Причем, ее очень легко масштабировать – можно открыть рядом вторую такую же BPM-базу или добавить ядер, потому что там многопоточная обработка, 1С по моему опыту примерно 1.5 процесса на ядро хорошо обрабатывает.

  • Система получилось расширяемая – новые системы подключить очень легко.

  • Полная аудируемость достигается за счет того, что каждое сообщение сохраняется в специальный регистр сведений. Когда сообщение приходит, оно тут же логируется. При этом мы сделали интересный кейс, когда количество сообщений в этом регистре сведений становится очень большим, мы перекладываем его в архивный регистр сведений. За счет этого в основном регистре сведений с данными сообщений всегда немного и всегда он быстро открывается, в нем всегда можно быстро найти нужное сообщение

  • Система показала себя устойчивой, время обработки запросов (время ответа на запрос сайта) когда система не очень загружена – 100-200 миллисекунд, но когда мы ее при тестах сильно загрузили, оно не поднималось выше 700 миллисекунд.

Хороший кейс, но в следующий раз, если я захочу повторить, то в центре поставлю промышленную ESB. Здесь из-за нехватки времени мы пошли простым путем, но при наличии разумных временных ресурсов я попробую поставить промышленную ESB для этой архитектуры. Но сама архитектура мне очень понравилась.

 

MongoDB

 

 

Следующий кейс – это интеграция через СУБД MongoDB, которая основана на JSON. Я не сразу понял, как с этой СУБД можно работать, но после того, как применил ее в последнем проекте, я в восторге от этой СУБД.

Не буду подробно рассказывать про формат JSON, который в ней используется, вкратце скажу, вместо таблиц в этой СУБД – коллекции.

Коллекции, в свою очередь, содержат документы. Документ – это аналог записи таблицы.

 

 

При этом каждый документ может иметь свой набор полей. Поле – как колонка таблицы.

Один документ – запись в.JSON.

 

 

Работа с MongoDB мне понравилась, потому что это удобно именно при интеграции с сайтами. Вы просто говорите вэб-программисту: «Я тебе эту таблицу в JSON раскладываю, и ты ее на главную страницу выводишь. Как я тебе положил, так же и выводишь». И с программистом просто найти общий язык, и выгружать просто.

 

 

Чтобы написать интеграцию с MongoDB на Python, мне потребовалось два часа.

В Python с MongoDB легко работать, например я применял методы – insert_many() и delete_many().

Делаете класс для обертки «питоновского» кода в COM-библиотеку и вызываете этот COMОбъект откуда хотите. Справа показан пример того, как я из 1С подключаюсь к MongoDB.

 

 

Было пару непонятных моментов, которые не испортили впечатление.

  • Почему-то, если держать открытым соединение, деградирует производительность. После 5-6 запросов нужно переподключаться к базе данных. Пробовали на двух серверах, ситуация воспроизводится.

  • И еще меня удивило, что добавление индекса в таблицы не повлияло на время удаления и записи для нашего случая. Когда мы индексы добавили, скорость чтения возросла в десятки раз. Но мы ожидали, что сильная индексация таблиц повлияет на запись и удаление – не повлияла, что очень понравилось.

 

 

Что еще понравилось:

  • База в MongoDB занимала 18 Гб (при том, что 1С-ная база была в районе 100 Гб). Выгрузка этих 18 Гб на сервер в интернете с контролем каждой записи у нас заняла 16 часов. Казалось бы, с современными скоростями интернета это много. Но сервер, на который выливались данные, имел совсем смешные характеристики (у нас на этапе разработки на стороне WEB стояла совсем легкая, арендованная виртуалка), и такие скорости меня приятно удивили.

  • Поиск в таблице – это миллисекунды, очень здорово. Обратите внимание, у нас в MongoDB все данные хранились всего в двух таблицах – т.е. примерно по 9 Гб на таблицу.

  • Очень легко было работать с веб-разработчиком. Говоришь ему: «Вот таблица, ты ее выводишь». Они JSON хорошо понимают. Я эти таблицы спроектировал и все было очень просто и понятно.

 

 

И, конечно, как вы поняли из предыдущих кейсов, я очень люблю пилить конструкторы, поэтому запилил конструктор по трансформации данных реляционной СУБД в нереляционную MongoDB, но расскажу вам об этом в следующий раз.

Кейсы 2-4 я реализовал вместе в Даниилом Коневым (DaGlob).

Надеюсь, вам было интересно.

 

*************

Данная статья написана по итогам доклада (видео), прочитанного на онлайн-митапе "Интеграционные решения в 1С". Больше статей можно прочитать здесь.

Приглашаем всех 11-12 ноября принять участие в INFOSTART EVENT 2021 в Москве: //infostart.ru/events/1451228/

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Steelvan 237 01.08.21 17:14 Сейчас в теме
Годные случаи сопряжения расписаны.

Однако думается мне, что всегда лучше выполнять сопряжения технологиями, которые находятся в стопке 1Сных технологий.
Ну или около 1Сных.

Случай 2

Этот случай сопряжения можно было сделать через промежуточную базу на postgresql.
Данная бд куда ближе 1Сной стопке технологий, чем MySQL.

Случай 3

Этот случай сопряжения можно было сделать через centrifugo, как вариант
На просторах инфостарта даже есть родная компонента, выполненная по родной технологи для 1С.

Случай 4

Вроде здесь тоже для сопряжения напрашивается применение postgresql.
В postgresql давно есть почти полноценная поддержка json.
А сам postgresql к стопке около 1Сных технологий куда ближе, чем Mongodb.

Хотя, лишь бы работало и купцы были довольны :)

---

Четвертую переделку этой же темы ждать ? ;)
На моей памяти это третья про эти случаи сопряжения :)
Оставьте свое сообщение

См. также

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions Промо

WEB-интеграция Облачные сервисы, хостинг Платформа 1С v8.3 Бесплатно (free)

"Я не могу просто взять и скопировать код с гитхаба", "у нас 1С микросервисами окружена", "возможностей мало" - частые фразы 1С разработчиков. которым не хватает возможностей платформы в современном мире. Faas, конечно, история не новая, но нас сдерживало 152ФЗ и задержки по пингам. Для того, чтобы действительно использовать в 1С код, к примеру, на Python, надо было приложить усилия. Теперь всё намного проще - берём и используем.

28.12.2020    11482    comol    31    

Как из 1С отдать миллионы строк в BI и успеть это сделать быстро

Консолидация данных Анализ и проектирование ИТ-систем WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

На онлайн-митапе «Бизнес-анализ по данным базы 1С. Интеграция c платформами BI» выступил ведущий разработчик WiseAdvice.tech Дмитрий Фурцев. Дмитрий рассказал о том, как отдать миллионы строк из 1С в платформу бизнес-аналитики и не потратить на это сутки.

14.02.2022    4043    Fudj1k    11    

Передача сообщений из 1С в MS Teams

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пример организации уведомлений в канал MS Teams.

09.02.2022    1719    Alex_YAM    3    

Работа с 1С через протокол OData

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

В данной статье мы будем рассматривать работу с данными информационной базы через протокол OData (далее OData).

17.12.2021    16595    ProgrammingStore    21    

.Net в 1С. На примере использования HTTPClient, AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция Промо

WEB-интеграция Платформа 1С v7.7 Платформа 1С v8.3 Бесплатно (free)

Часто приходится парсить сайты, в том числе с авторизацией, перескакивая со страницы на страницу по ссылкам. Тот, кто занимался вэб программированием, знает, как удобно использовать JQuery и CSS селекторы. На .Net написана очень удобная библиотека AngleSharp. Я покажу, как с её помощью можно значительно облегчить себе труд.

10.03.2016    67739    Serginio    33    

Подключение к HTTP-сервису с авторизацией посредством передачи клиентского SSL-сертификата

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

В статье хочу поделиться опытом настройки подключения 1С к стороннему HTTP-сервису, использующему авторизацию посредством передачи клиентского SSL-сертификата.

07.12.2021    7012    kholkin    12    

Тонкости и подводные камни работы типового модуля интеграции Битрикс24 и 1С (Часть 2)

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Это вторая часть цикла статей, посвящённых типовому модулю интеграции 1С Предприятия и Битрикс24. Цель данной части: рассмотреть тонкости, связанные с обменом товарами и сопутствующими сущностями (спойлер - единицы измерения и свойства товаров). Также затронем некоторые нюансы связи сущностей 1С и Б24 (относящиеся не только к товарам) и их побочное влияние при переносе данных из модуля в модуль (при смене конфигурации, переустановки или обновлении модуля).

27.11.2021    4647    freegman74    13    

Web консоль управления сеансами 1С

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Мы дали ему название adm1c, он позволяет посредством веб доступа удалять или смотреть на сеансы в 1С базах и при необходимости удалять их. Да и что тут такого, сказали бы, есть же консоль на win, с нее же это можно делать, и все верно, но есть пара но.

26.11.2021    2803    4ernuy    16    

Online телефонный справочник из 1С: Зарплата и управление персоналом Промо

WEB-интеграция Платформа 1С v8.3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

В интернете представлено много реализаций online телефонных справочников организаций. Есть справочники, которые использует для хранения информации базу Active Directory (LDAP), есть справочники, которые реализованы с использованием СУБД (например, MySQL). Но я не нашел справочника, который использует информацию из базы 1С. Далее я рассмотрю данную разработку.

10.03.2017    28284    ruha    21    

Немного про (кривые) кодировки XML

Файловые протоколы обмена (TXT, XML, DBF), FTP Платформа 1С v8.3 Бесплатно (free)

Парочка функций для правильного чтения строк из XML.

24.11.2021    1614    ImHunter    5    

Тонкости и подводные камни работы типового модуля интеграции Битрикс24 и 1С

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Цель статьи - указать на подводные камни и нюансы, о которых “не пишут на заборах” и которые встретились мне за время внедрения типового модуля интеграции 1С и Битрикс24. Будет интересна для людей, кто подумывает о том, чтобы настроить интеграцию, и хотят понять, с чем столкнутся. А также для тех, кто уже работает с подобным обменом, столкнулся с какими-то из описанных ситуаций и хочет понять, что пошло не так и “как жить дальше”. Постараюсь все описать “человеческим” языком с минимальной долей терминов, так как статья, надеюсь, будет полезна не только программистам.

07.11.2021    6865    freegman74    13    

Загрузка из EXCEL в 1С. Чтение файла XLSX средствами 1С. ПостроительDOM Промо

Универсальные обработки Загрузка и выгрузка в Excel Файловые протоколы обмена (TXT, XML, DBF), FTP Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

ПРАКТИЧЕСКОЕ ПОСОБИЕ РАЗРАБОТЧИКА: Метод "NativeXLSX" (ПостроительDOM). Обрабатываются данные EXCEL типов: "Строка", "Число", "Дата" ("Время"), "Булево", "Процент", а также изображения.

11.09.2014    83719    StepByStep    27    

Окей, Google

WEB-интеграция Платформа 1С v8.3 Россия Бесплатно (free)

Пример интеграции Google Ассистента с 1С. В основе которого лежит платформа Dialogflow CX для понимания естественного языка.

28.10.2021    1788    Soloist    6    

Повышение производительности веб-сервисов. Переиспользование сеансов

WEB-интеграция HighLoad оптимизация Платформа 1С v8.3 Бесплатно (free)

Повышение производительности веб-сервисов. Переиспользование сеансов. Практическая реализация.

20.10.2021    3584    sorter1    2    

WEB/HTTP сервисы. Базовые отличия и применение на практике

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Рассказываем о WEB и HTTP сервисах, их практическом применении, о шишках, которые мы набили, и о выводах, которые сделали. Спойлер: тех, кто дочитает статью до конца, ждет бонус от автора.

04.10.2021    18034    Neti    17    

Отладка правил обмена 7.7, 8 Промо

Обмен между базами 1C Файловые протоколы обмена (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Конвертация данных Бесплатно (free)

Отладка правил обмена всегда была для меня больной темой, пока наконец-то не разобрался. В интернете мало тем, посвященных этому, поэтому решил написать небольшую инструкцию по этому поводу. Очень надеюсь, что она будет кому-то полезна. С радостью выслушаю недочеты.

29.10.2013    53586    pyrkin_vanya    71    

Интеграция 1С с ГИИС ДМДК

WEB-интеграция Файловые протоколы обмена (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 Ювелирная промышленность и торговля Россия Бесплатно (free)

ГИИС ДМДК - единая информационная платформа для взаимодействия участников рынка драгоценных металлов и драгоценных камней. с 01.09.21 стартовал обязательный обмен данными с Федеральной пробирной палатой (ФПП) исключительно через ГИИС. А постепенно - с 01.01.2022 и с 01.03.2022 - все данные о продаже драгоценных металлов и камней должны быть интегрированы с ГИИС. У многих пользователей возникает вопрос как автоматизировать обмен между программой 1С и ГИИС ДМДК. В настоящей статье ВЦ Раздолье поделится своим опытом о реализации такого обмена. Автор статьи - Мордовин Антон - архитектор систем на базе 1С Внедренческого центра "Раздолье".

30.09.2021    31267    1СERP    157    

Быстрое чтение составных http сообщений multipart/form-data

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Алгоритм быстрого разбора составного http сообщения multipart/form-data.

26.09.2021    2479    cherkasovvitalik    3    

Интеграция 1С с Битрикс24 через вебхуки

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Пример получения токена и http запрос к API битрикса.

15.09.2021    6084    TyurinArt    8    

Кэширование COM-соединения. Три способа Промо

Внешние источники данных WEB-интеграция Обмен между базами 1C Платформа 1С v8.3 Россия Бесплатно (free)

Статья о трех способах кэширования COM-соединения в 1С:Предприятии 8.x.

11.04.2013    44175    Infostart    42    

Обмен с HTTP сервисом файлами по формату multipart/form-data

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Потребовалось отправить картинку в теле запроса в HTTP сервис методом POST, куча реализаций, но есть маленькие нюансы, если хотя бы кому-то поможет, то уже это было не напрасно.

07.09.2021    7257    ix5s    25    

Разработка гибридного web-приложения на 1С, возможности и ограничения

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Все чаще разработчики склоняются к использованию 1C в качестве бэкенда при разработке веб-приложений. Но благодаря встраиванию веб-клиента 1С в сайт можно получить еще больше готовой функциональности. О том, как реализовать гибридное приложение за счет связки 1С с другими веб-технологиями, рассказал разработчик компании Neti Эльдар Мингалиев.

06.09.2021    4368    Бэнни    11    

Работа с WEB-сервисами под HTTPS на примере прямого обмена между базами (1С – 1С) 

WEB-интеграция Платформа 1С v8.3 Россия Бесплатно (free)

Использование веб-сервисов 1С при обмене 1С – 1С позволяет быстро передавать достаточно большие объемы данных из базы-источника в базу-приемник в объектах языка 1С. Данный метод обмена может применяться при бесшовной интеграции между двумя базами 1С, но требует определенной серверной инфраструктуры (установленного и настроенного WEB-сервера).

03.09.2021    9583    UltraUnion2005    9    

Обмен по расписанию типовыми средствами. Промо

Обмен между базами 1C Файловые протоколы обмена (TXT, XML, DBF), FTP Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Часто перед интеграторами стоит задача организовать автообмен (по расписанию или при наступлении какого-либо события) данными между различными конфигурациями. В этой статье я попробую изложить простую инструкцию, как это можно сделать средствами, заложенными в типовые конфигурации 1С (ЗУП, БП, УПП и т.д.). Для обмена используется подсистема "Обмен данными" из БСП

20.06.2012    107492    kser87    52    

Взаимодействие с api Честный знак (Молочная продукция)

WEB-интеграция Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Обзор основных примеров взаимодействия с Честным знаком по api для нетиповых конфигураций.

30.08.2021    8929    user5300    59    

Умная маршрутизация: о сложностях интеграции с 1С (часть 2)

WEB-интеграция Платформа 1С v8.3 1С:Управление торговлей 11 Бесплатно (free)

В статье будет много примеров кода с комментариями работы расширения для обмена данными УТ11.4 с Яндекс.Маршрутизацией через выгрузку/загрузку EXCEL файла.

27.08.2021    2492    greencactus    6    

Встраивание форм 1С на страницы сайта

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В платформе 8.3.16 появилась возможность выводить на страницах сайта информацию из веб-клиента 1С так, что пользователь даже не заметит, что работает с платформой. Руководитель компании Айтон Михаил Пинягин на онлайн-митапе «Web-клиенты для 1С» рассказал о том, какие особенности нужно учесть при настройке встраиваемого веб-клиента, и какие возможности он дает.

27.08.2021    6015    mikepin    9    

Гарри Поттер и подкапотное пространство веб-клиента

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

При разработке сайтов, интегрированных с 1С через HTTP-сервисы, приходится бороться с кодировками, искать производительные интерфейсные решения и задумываться над безопасностью. В ходе онлайн-митапа «Web-клиенты для 1С» Юрий Лазаренко показал на практике, как работает магия самодельного веб-клиента и как решать проблемы, возникающие при интеграции.

20.08.2021    4461    TitanLuchs    19    

Умная маршрутизация: кейс интеграции с 1С (часть 1)

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Как мы решали проблемы с доставкой в нашем интернет-магазине, внедрили новый бизнес-процесс за 3 месяца и научились меньшим количеством машин привозить больше заказов клиентам.

18.08.2021    5608    greencactus    42    

Новичок новичку: как выгрузить/загрузить XML данные

Файловые протоколы обмена (TXT, XML, DBF), FTP Платформа 1С v8.3 Россия Бесплатно (free)

Рассказываю на примере, как с помощью xml файлов выгружать/загружать метаданные (документы, справочники, регистры). Рассматривается клиент-серверный вариант. Вариант передачи файла на сервер. Вариант загрузки файла без создания временных файлов.

04.06.2021    21455    user1312100    14    

Альтернативные способы работы с XML. Часть 2: Введение в xPath или запросы к XML Промо

Математика и алгоритмы Файловые протоколы обмена (TXT, XML, DBF), FTP Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В предыдущей статье "Введение в DOM или объектная модель документа" было описано понятие объектной модели документа (DOM), раскрыты плюсы и минусы использования модели при разборе файлов XML, приведено сравнение с построчным последовательным разбором. Были представлены варианты выборки данных с помощью объекта 1С ДокументDOM. Теперь настало время познакомить читателей с самым, на мой взгляд, интересным способом извлечения данных из XML - при помощи языка запросов xPath.

09.08.2012    43982    1cspecialist    13    

Как вносить изменения в новое ЭДО от 1С в БП 3? Июнь 2021, БП 3.0.93.20

Документооборот и делопроизводство Файловые протоколы обмена (TXT, XML, DBF), FTP Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Бесплатно (free)

Обновились на 3.0.93.20, и все мои расширения под ЭДО перестали работать. Разберем, где вообще искать код, который выводит данные электронного документа в XML, где вмешиваться в ход этого вывода?

03.06.2021    9675    fixin    34    

Пример организации HTTP сервиса на 1С: Документооборот. Источник 1С: ЕРП => Приемник 1С: Документооборот

WEB-интеграция Платформа 1С v8.3 1С:Документооборот Бесплатно (free)

Статья - пример для разработчика, как можно, не используя подсистему Интеграция с Документооборотом, управлять процессами, а именно на нашем примере прерывать выполнение процессов в 1С: Документооборот. Используя данный пример, можно организовать http-сервис в любой конфигурации 1С, которая поддерживает механизм HTTP сервисов.

13.05.2021    3698    Flover    0    

Настраиваем авторизацию пользователей 1С через Okta

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Чем больше в компании различных конфигураций и сервисов, тем актуальнее становится проблема единой системы авторизации single Sign-On. Его лидером практически безоговорочно считается Okta. Но на просторах интернета очень мало информации про интеграцию 1С с Okta через протокол OpenID Connect. Что ж, настало время восполнить недостающие пробелы и перевернуть эту печальную страницу в вашей истории

30.04.2021    5432    ripreal1    16    

Необычно-экономное использование 1С:Предприятие 8 на Asp.Net-хостинге для реализации Интернет-магазина Промо

WEB-интеграция Анализ и проектирование ИТ-систем Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Статья описывает, как можно сэкономить на реализации Интернет-магазина предприятия, в который данные поступают из 1С:Предприятие 8. Данные размещаются в базе данных MSSql удаленно у хостинг-провайдера. Предлагается практический опыт гармоничной интеграции 1С:Предприятие и Asp.Net через LINQ и прямой доступ к информационной базе 1С. Строится простейшее решение, с одной стороны имеющее веб-интерфейс, а с другой стороны построенное как desktop-приложение. Тем самым достигается эффективность в наполнении веб-сайта контентом. Максимальный эффект достигается, когда Интернет-магазин проектируется «с нуля» с уникальной для предприятия структурой.

12.11.2010    43624    Elisy    13    

Правила обмена больше не нужны

Внешние источники данных Обмен между базами 1C WEB-интеграция Файловые протоколы обмена (TXT, XML, DBF), FTP Платформа 1С v8.3 Бесплатно (free)

Есть несколько общепринятых подходов к написанию обмена между 1С-системами, каждый из которых упирается в длительное изучение технологии, мучительную отладку правил конвертации и написание большого количества сервисного кода, в котором потом тяжело разобраться. О принципах работы универсального фреймворка liteExchange, который реализует быстрые обмены между 1С и внешними системами, и берет на себя всю техническую обвязку по стандартному преобразованию данных, на INFOSTART MEETUP Saint Petersburg.Online рассказал Николай Крылов.

17.03.2021    16769    Nikola23    40    

Интеграция с API WB (Wildberries). Создание карточки товара (спецификации)

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 ИТ-компания Россия Бесплатно (free)

Опыт интеграции с API WB (Wildberries), опыт создания карточки товара, получение токенов API WB.

18.01.2021    53806    jenyavp    67    

HTML редактор/editor (Wysiwyg) для WebKit 1С (CMS, B2B), альтернатива TinyMCE и стандартному ФорматированныйДокумент

WEB-интеграция Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Бесплатно (free)

Suneditor - отличная замена HTML редактору TinyMCE (бесплатному), в публикации с открытым кодом подключим его в 1С с WebKit, скачать HTMLeditor обработку можно бесплатно.

28.12.2020    5932    SizovE    27    

Как сделать интеграцию (обмен) с интернет-магазином? Пошаговый план действий (Часть 1)

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Бесплатно (free)

C 2011 года я занимаюсь интеграцией с интернет-магазинами и за это время, наверное, повидал все. Делал интеграцию как «культурными», так и «экзотическими» способами. Количество магазинов исчисляется сотнями. В этой серии статей я буду делиться своим опытом, а также выкладывать какие-то полезные наработки.

19.11.2020    12916    markbraer    14    

Анализ HTTP API, документирование в OpenAPI и переиспользование в Postman

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В статье опишу порядок работы с описанием HTTP API на примере подсистемы "Получение обновлений программы" из БСП 3.

02.11.2020    3315    malikov_pro    12    

Отладка модуля ДиадокПро

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В обработке ДиадокПро все дополнительные модули встроены во внешние обработки, которые хранятся в макетах. Это усложняет процесс самостоятельной интеграции, так как теряется возможность попасть в них в режиме отладки. Но не всё так страшно, поэтому ниже инструкция)

30.10.2020    8060    Максим-777    33    

Обмен с сайтом посредством Post-запроса, json

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Задача - передавать на сайт объекты с наименованием и уникальным идентификатором (УИ), которые изменяются в 1С. Также нужно сохранять историю отправленных пакетов.

29.10.2020    7385    John_d    26    

Организация HTTP публикации каталога товаров используя PostgREST

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В статье опишу порядок установки настройки и использования PostgREST на примере организации каталога товаров.

05.10.2020    2534    malikov_pro    2    

Интеграционная прослойка(middleware) на Golang. Часть 5 - Обмен с 1С через HTTP-сервисы платформы

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

В этой статье научим прослойку отправлять данные в 1С, для этого используем HTTP-сервисы платформы. Обменяемся данными с новым справочником Клиенты. Но главное создадим HTTP-сервис для получения сообщений из очереди RabbitMQ.

28.09.2020    3947    dmitry-irk38    4    

Отладка http сервиса

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

При разработке http сервиса возникает ситуация, а как протестировать http сервис? Создали мы сервис, настроили шаблоны, передали, если нужно параметры, открываем браузер заполняем строку подключения и БАХ, ошибка. Что делать?

23.09.2020    10337    hpi    13    

Учимся создавать http сервисы (часть вторая). Передача параметра в http сервис

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пошаговое руководство по созданию http-сервиса (часть вторая). Передача параметра в http сервис.

22.09.2020    12988    hpi    10