Тот, кто умеет — делает, а тот, кто не умеет — не верит тем, кто делает
Сегодня будет история о том, как подружить 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С, то будет сообщение следующего вида:
Небольшие доработки в двух системах очень сильно упростили жизнь нескольким десяткам человек.