Модуль обмена битрикс24 с 1с

Обновлено: 02.07.2024

В жизни так бывает, причём бывает чаще чем хотелось бы, хоть в целом и довольно редко – надо интегрировать Битрикс24 с ЗУП. Сими дружественными компаниями заявлена штатная интеграция (но только для коробки Б24), которая осуществляется по следующей принципиальной схеме:

Обмен инициирует всегда 1С. Это либо штатный, либо устанавливаемый самостоятельно и доступный модуль обмена, который посылает запросы.

На стороне Б24 имеем в качестве точки обмена скрипт, если быть точнее скрипты (но об этом будет ниже), в одном из которых вызов метода IncludeComponent, который подключает контроллер. Он и таит в себе логику обмена.

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

Пролог

Нам же это скучно, поэтому ввязываемся в авантюру по интеграции ЗУП с Б24 Enterprise, а чтобы было интереснее – берем закрытый объект, почти совсем не бизнес даже, а учреждение с многоуровневой и чудно ветвленой системой безопасности.

В общем, на руках бэкап Б24 с обезличенными данными и обезличенный же XML-файл обмена из ЗУП.

Итак, сама задача… Хотя, нет. До самой задачи ещё далеко – не помешало бы сначала наладить тестовый механизм для того, чтобы по заверениям работающий штатный алгоритм проверить.

Виртуальная машина VMBitrix – 1 шт.

1С-Битрикс24 (копия для разработки) – 1 шт.

Файл обмена, выгруженный предположительно штатным модулем обмена 1С – 1 шт.

VS Code + SSH FS плагин на будущее – 1 комплект.

Виртуальная машина VMBitrix

По правде говоря, это никакая не виртуальная и даже не машина, а CentOS 7 (ну, или 6) со всеми вытекающими. Можно из чистой центоси сделать своеобразный и уже сконфигурированный LAMP+ для Битрикс несколькими командами.

Для дотошных читателей следует рассказать, что виртуальная машина в реальности всё же существует. На клиентском сайте вендора в разделе скачать. Образы уже сконфигурированных ОС под популярные виртуализации выложены и в корне сайта по умолчанию уже лежит скрипт установки демо и скрипт восстановления. Именно скрипт восстановления был использован для создания локальной копии портала.

Следует ещё отметить, что VMBitrix не единственное, но самое быстро-разворачиваемое универсальное окружение для Б24.

1С-Битрикс24 Enterprise

Не буду много распространяться про то, что отличает Энтерпрайз от других коробок. Наверное, в данном повествовании хватит акцента на цене и уровне ответственности. Тем более, модули связанные с масштабированием не используются. Впрочем, как и многосайтовость.

Файл обмена из 1С ЗУП

Если вы хоть раз занимались интеграцией двух систем, будучи ответственным только на одном продукте, то вам знакомо как велик соблазн спихнуть на ту сторону любую мелочь, которую лень проверять на своей стороне. Этот недуг поражает даже самых ответственных людей, выступающих в любой роли и с любым уровнем погружения. Поддавался недугу и я.

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

VS Code + SSH FS плагин

Итак, вооружившись доступом к файловой системе проекта, мы начинаем свое путешествие в увлекательный мир не задокументированных интеграций.

Не зря в самом начале статьи была реплика про то, что «Обмен инициирует всегда 1С». Для понимания архитектуры это был первый шаг, в модуле обмена на стороне 1С прописан адрес скрипта, выступающего узлом обмена в Б24 – по умолчанию это /bitrix/admin/1c_intranet.php.

В нем, согласно правилам системы ничего не хранится. Подключается один из служебных скриптов системного модуля Интранет(intranet) /bitrix/modules/intranet/tools/1c_intranet.php.

Именно этот модуль нам дает программный интерфейс для организации работы с сотрудниками и структурой на портале. Модули в BitrixFramework занимают место модели в архитектуре MVC.

Postman

При упоминании должности почтальона в наших широтах перед глазами встает образ скорее Печкина из Простоквашино, нежели герой Кевина Костнера из одноименного заокеанского фильма.

Эпилог

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

Что важно знать про обмен:

Протокол обмена – GET

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

Если файл выгрузки 1С ЗУП в архиве, то нужно использовать галочку «Использовать сжатие zip, если доступно» в настройках модуля Интранет в админке. И наоборот – если XML без архивной оболочки – галочку нужно снять.

Первый запрос, авторизация по логину и паролю:

Возвращает PHPSESSID. Его необходимо в последующем передавать с каждым запросом.

Подготавливает/вычищает папку для загрузки файла. Возвращает что-то вроде zip=no

file_limit=204800 , если всё отработало.

В случае успешной передачи и записи файла на сервер возвращает success. Будьте бдительны – нужно передать в Body сам файл бинарно, и указать его название в GET-параметре filename.

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

Временные таблицы удалены.

Временные таблицы созданы.

Файл импорта прочитан.

Временные таблицы проиндексированы.

Проверка структуры успешно пройдена.

Метаданные импортированы успешно.

Обработано 2 из 2 пользователей.

Загрузка пользователей завершена.

Обработано 11 из 11 записей графика отсутствий.

Загрузка графика отсутствий завершена.

Импорт успешно завершен.

Постскриптум

Наверняка, кто-то из комментаторов укажет на другие инструменты, или сможет поделиться похожим опытом. Возможно, кто-то проведет параллели с импортом каталога из УТ в БУС.

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

Перед началом работы с модулем обмена необходимо выполнить несколько простых действий.

В статье мы описываем работу модуля на примере 1С:"Управление нашей фирмой".

Настроить подключение к Битрикс24

Для связи портала Битрикс24 и базы 1С используется специальный ключ.

В Битрикс24 откроем приложение 1С + CRM Битрикс24 и скопируем ключ.

Ключ.jpg

Теперь на стороне 1С перейдём в раздел Синхронизация с Битрикс24 - Настройки синхронизации и нажмём Создать подключение.

Создать%20подключение.jpg

Подробнее о всех возможностях раздела Синхронизация с Битрикс24 читайте в статье Раздел 1С-Битрикс

Укажем произвольное название и вставим скопированный ключ.

Вставить%20ключ.jpg

После заполнения поля Ключ модуль автоматически определит адрес вашего портала.

Готово! Теперь наш портал Битрикс24 и 1С связаны между собой.

Заполнить таблицы соответствий

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

Связь шаблонов реквизитов и типов контрагентов

Определим, какие реквизиты использовать для каждого типа клиентов.

Например, для юридических лиц использовать шаблон "Организация". И наоборот - при поступлении такого шаблона из Битрикс24 создавать юридическое лицо.

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

Сопоставление%20типов%20контрагентов.jpg

Нажмём кнопку Загрузить шаблоны - 1С добавит в таблицу все шаблоны реквизитов из Битрикс24.

Теперь для каждого шаблона выберем из списка тип контрагента.

ИП.jpg

Сопоставление пользователей

Теперь свяжем сотрудников Битрикс24 с пользователями на стороне 1С. Это необходимо для правильной установки ответственных для документов и клиентов.

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

Сопоставление%20пользователей.jpg

Нажмём кнопку Загрузить пользователей - 1С добавит в таблицу сотрудников из Битрикс24.

Для каждого ФИО выберем соответствующего пользователя 1С.

Абдулов.jpg

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

Порядок выполнения синхронизации

Выберем какая сторона обмена будет основной. По умолчанию, главными будут данные из Битрикс24.

Порядок%20выполнения.jpg

Выполнить полную синхронизацию

На этом этапе мы хотим синхронизировать все данные в Битрикс24 и 1С. Затем мы сможем работать только в режиме изменений.

Перейдем в раздел Настройки синхронизации с Битрикс24, откроем меню Еще и выберем пункт Выполнить полную синхронизацию.

Выполнить%20полную%20синхронизацию.jpg

Выбрать режим синхронизации

Обмен между 1С и Битрикс24 может происходить в трёх режимах:

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

Выберем нужный режим на странице Настройка синхронизации. По умолчанию, это ручной режим.

Часто при разговорах с клиентами мы спрашиваем, как они ведут учет различных данных и используют ли они CRM-систему? Популярный ответ — мы работаем с Excel-файлами, а потом их отправляем друг другу по почте, либо с помощью мессенджеров. Примеры получше — использование CRM и 1С. Но поскольку эти системы довольно сложные, то руководители организации смутно представляют, что можно реализовать с помощью встроенного функционала. Вполне стандартная ситуация, когда сотрудники клиента продолжают пользоваться системами 1С и CRM по отдельности, не настраивая синхронизацию данных 1С с внедренной системой Битрикс24. Мы хотим рассказать, как можно синхронизировать сделки в Битрикс24 и сделки с клиентами в 1С:Управление торговлей. Обмен между этими системами необходим для того, чтобы хранить все данные в одном месте, что в итоге приводит к экономии рабочих и финансовых ресурсов.

Для настройки обмена данными между 1С и Битрикс24 преимущественно для интеграции систем мы используем существующий модуль обмена.

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

Модуль позволяет синхронизировать основные объекты между системами, но его базовые возможности ограничены. Когда клиенты впервые разбираются с возможностями типового модуля обмена, то часто ошибаются, думая что синхронизация сделок 1С и Битрикс24 уже есть и для её работоспособности достаточно поставить «‎галочку‎». Однако, таким способом настроить полноценную синхронизацию не получится. Существующая синхронизация позволяет обмениваться сделками со стороны Битрикс24 с заказами клиента в 1С, но не сделками с клиентами. После активации нужного режима синхронизации (см. скриншот) все сделки из Б24 будут видны в списке заказов 1С, и наоборот.

В 1С «‎Сделка с клиентом»‎ — это справочник, в котором фиксируется вся информация о работе с клиентом: взаимодействия, документы по сделке, прикрепленные файлы, заметки и задачи. На изображении состав документов, которые привязаны к сделке:

Включить возможность работы со сделками можно в разделе «‎CRM и маркетинг»‎:

Какой может быть синхронизация сделок 1С и Битрикс24 ?

Работы с клиентом в Битрикс24 начинаются с создании карточки Лида. Если лид качественный и проработан в соответствии с целями, то произойдет переход лида в следующую стадию — Сделка. Именно с ней в дальнейшем ведется основная работа.

Цель синхронизации: Информацию о сделке, созданной в Битрикс24, нужно оперативно отобразить в справочнике «Сделка с клиентом‎»‎ в 1С. Это поможет поддерживать целостность и единообразие данных в обеих системах, т.к. дальнейшую работу с документами потребуется вести в 1С. В 1С более расширенные возможности для работы с различными видами информации (см. скриншоты выше).

Направление обмена данными в описываемой задаче должно происходить следующим образом:

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

Кратко о способах реализации:

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

  • Синхронизация выполняется в режиме real-time
  • Процессы можно адаптировать под требования бизнеса:
  • Есть возможность добавить обмен множественными полями, например, поле «‎Чем интересовались‎»‎Можно сделать обмен данными по себестоимости и по оплатеСделать сложный обмен статусами сделок и заказов в зависимости от воронок и направлений в Б24

Как это будет работать:

При создании сделки в Битрикс24, в 1С создается сделка с клиентом, в которой есть вся необходимая информация из Битрикс24. Создание в 1С может происходить автоматически в режиме реального времени или при нажатии кнопки в Битрикс24.

При изменении синхронизированных данных в 1С или Битрикс24, изменения автоматически передаются в связанную сделку в другой системе.

В 1С будет возможность увидеть информацию, которая отсутствует в типовой конфигурации «‎Управление торговлей 11.4‎»‎, например: чем интересовался клиент, затраты, доп. информация по возможному клиенту, roistat и т.д. Эти данные можно менять в 1С, они также изменятся в сделке Битрикс24.

Синхронизация статусов сделок предоставляет дополнительные возможности для организации логики обмена данными. Например, до определенного статуса сделка Битрикс24 - выполняется синхронизация со сделкой клиента 1С, после того как сделка в Битрикс24 получает этот статус - выполняется синхронизация с заказом клиента 1С.

2. Доработка режима обмена сделками в существующем модуле обмена

Нужно установить модуль обмена и включить режим обмена сделками со стороны Битрикс24 и заказами клиента в 1С.

  • Синхронизация в режиме real-time или по расписанию
  • Есть некоторые ограничения по сравнению с первым вариантом

Как это будет работать:Доработка модуля обмена позволит осуществлять синхронизацию также, как описано в первом варианте.

Все доработки возможно реализовать на стороне 1С. Из-за уже заложенной в модуль обмена логики возможны некоторые ограничения на процессы обмена.

Применение данного варианта целесообразно при выполнении обмена средней сложности

3. Упрощенный вариант. Дорабатываем не модуль обмена, а расширяем возможности конфигурации 1С.

Необходимо установить модуль обмена и включить режим обмена сделками со стороны Битрикс24 и заказами клиента в 1С. Сам модуль дорабатывать не требуется. Потребуется доработка документов в 1С. Для этого даже необязательно снимать с поддержки конфигурацию 1С.

  • Синхронизация в режиме реального времени или по расписанию
  • Сделка в 1С создается вместе с заказом
  • Может работать с облачном Б24

Как это будет работать:

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

С помощью вышеописанного решения вы получаете современную систему обмена данных, которая помогает сохранить ценные ресурсы и потратить их на модернизацию своего бизнеса в других направлениях. Мы производим синхронизацию процессов и в почасовом формате работы, и по фикс-прайсу — зависит от вашего желания и сложности проекта. Если потребуется — то научим пользоваться новыми внедрениями.Внедрили систему Битрикс24, но документацию продолжаете отправлять электронной почтой? Мы работаем с 2003 года в качестве веб-интегратора и готовы предложить решение для большинства направлений бизнеса. ИНТЕРВОЛГА готова решить любые задачи, связанные с внедрением, настройкой и доработкой систем 1С и Битрикс24. Заполните форму обратной связи в конце страницы, и мы поможем найти решение ваших проблем.

Читайте также: