Битрикс24
April 21, 2022

Тот, кто умеет — делает, а тот, кто не умеет — не верит тем, кто делает

Сегодня будет история о том, как подружить 1С:Управление Торговлей и Битрикс24.

История стара как мир. Клиент хочет из сделки открывать форму заказа в 1С. И всем, вроде как, известно решение. Берем стандартное расширение для Битрикс24 от вендора Бэкофис 2.0 и ставим в 1С. Затем ставим в сам Битрикс24 приложение и производим настройку. Все хорошо и все счастливы.

Но этого кейса тут не было бы, если бы все было так просто.

У нас 1Ска не простая, а полностью перепиленная и не обновлявшаяся уже много-много лет. Для того, чтобы подружить стандартное расширение по обмену между 1С и Битрикс24 контрагентами, товарами и сделками понадобились дополнительные часы разработчика 1С (и это несколько десятков часов)

Что коллегам из 1С пришлось сделать?

1) Создать HTTPS запрос для принятия и обработки данных:

USER_ID - ID пользователя в Битрикс24

DOC_ID - ID сделки в Битрикс24

Эти данные 1С:УТ сохраняет у себя в хранилище на сервере.

Далее на клиенте периодически, раз в 5 секунд (есть отдельная настройка периода), происходит опрос хранилища на сервере и, если есть данные для этого пользователя, то происходит открытие документа с номером DOC_ID в 1С.

Так же, раз в сутки ночью происходит очистка хранилища.

Для того чтобы форма в 1С открылась, должны быть выполнены следующие условия:

1. Проверяем, когда пришел запрос на открытие, и если прошло больше минуты (также настраиваемый период), то такие документы не открываем, открываем последний документ за минуту.

2. У пользователя должен быть включен «Опрос хранилища на сервере 1С на предмет открытия документов». Для этого добавили настройку Вкл/Выкл в карточке пользователя.

Дополнительно сделали проверку на случай отправки нескольких запросов за короткое время, например, если пользователь нажал кнопку в Битрикс24 несколько раз подряд.

Битиркс24 - это не просто кнопка

Со стороны портала были проведены следующие работы:

Так как у нас уже был модуль, который передавал данные в 1С через веб-сервис, то мы просто его расширили и добавили к нему дополнительные настройки

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

1) Пользователь - может быть тот, кто нажал на кнопку, или взять пользователя из поля в карточке сделки

2) ID сделки в Б24 - список полей с типом целое число или строка. Тут мы можем выбрать источник для параметра DOC_ID. В случае если нам надо будет отправлять не ID сделки, а, например, код заказа из 1С, мы сможем просто в настройках модуля указать поле, в котором хранится данное значение и нам не потребуется дополнительные доработки

После того, как все настройки сделаны и обмен указан как активный, в карточке сделки появляется кнопка "1С" (как и при подключении Бэкофис 2.0)

И также можем отправить данные из списка сделок

В случае, если пользователь нажимает кнопку, и 1С возвращает нам ошибку, то сразу появляется модное-красивое уведомление:

Если все хорошо, и пользователь может перейти в 1С, то будет сообщение следующего вида:

Небольшие доработки в двух системах очень сильно упростили жизнь нескольким десяткам человек.