Здравствуйте, уважаемые пользователи и партнеры 1С-Битрикс! Вас приветствует компания Сотбит.
Мы продолжаем новый цикл полезных статей от наших технических специалистов. В рамках этих материалов мы помогаем клиентам и пользователям разобраться в наиболее сложных и злободневных вопросах при работе с 1С-Битрикс и Битрикс24 на примере конкретных кейсов, с которыми сталкивается наша команда.
Первая статья цикла была посвящена проблеме выгрузки кратности товара из 1С. Если пропустили её, обязательно ознакомьтесь.
В этот раз мы рассмотрим другой актуальный вопрос: как правильно реализовать передачу документов между учётной программой и Битрикс?
И так, начинаем.
Клиенты, ведущие онлайн продажи, пользуются программами учёта товаров, цен и остатков, в которых работают их менеджеры. Наиболее популярные — 1С-Предприятие и его конфигурации для различных видов деятельности, а также МойСклад.
Передача информации из учётной системы в Битрикс осуществляется за счёт типовых модулей обмена. Однако у них есть существенный недостаток: с помощью модулей нельзя наладить документооборот между системами.
Поэтому мы решили помочь клиентам и пользователям Битрикс и поделиться нашим мнением о том, как грамотно организовать документооборот на Битрикс. В рамках материала рассмотрим 3 способа реализации:
-
Использование REST API;
-
Использование встроенного механизма Битрикс24 генерации документов;
-
Генерация документа с использованием решения Сотбит: Счёт на почту в PDF.
Рассмотрим их на примере документа «Счёт на оплату» и нашего решения Сотбит: B2B кабинет. Начнём по порядку.
Использование REST API
Наиболее универсальный способ, который может быть реализован для любой версии учётной программы и для любой лицензии Битрикс. Также он подходит для передачи как небольших, так и объёмных файлов.
Документы размеров до 10 мегабайт можно передавать сразу в теле API запроса. В параметрах такого запроса указываются:
-
Данные для авторизации (логин и пароль) для исключения возможности чужого подключения;
-
Номер заказа.
Важно отметить, что очень часто номер одного и того же заказа в учётной программе и Битрикс отличаются, поэтому следует передавать номер заказа, указанный в Битрикс.
Перед передачей документа его нужно преобразовать по коду base64. При получении API запроса на стороне 1С-Битрикс документ собирается в файл и добавляется в свойство заказа или, на примере решения Сотбит: B2B кабинет, в раздел «Документы».
При передачи больших файлов рекомендуется использовать FTP-сервер. В таком случае в параметрах запроса передаются:
-
Данные для авторизации;
-
Номер заказа, указанный в Битрикс;
-
Путь к файлу на FTP-сервере.
Преимущества использования REST API:
-
Исключение вероятности возникновения ошибок, связанных с неактуальностью данных из-за периодичности обмена;
-
Документ будет содержать данные, которые есть в учётной системе, но отсутствуют в Битрикс;
Недостатки использования REST API:
-
Необходимость наличия 1С- и PHP-разработчиков для создания API запроса;
-
Необходимость создания FTP-сервера, что влечёт дополнительные затраты.
Использование встроенного механизма Битрикс24 генерации документов
Этот способ подходит для владельцев лицензий Битрикс24 Интернет-магазин + CRM и выше.
Созданные документы отображаются только в CRM-системе. Для того, чтобы выводить их на сайте, необходимо создать бизнес-процесс.
Бизнес-процессы привязываются к статусу заказа. Администратор сам выбирает, для какого статуса заказа генерировать документ, поскольку у каждого бизнеса всё индивидуально. Например, при использовании дополнительных продаж выставлять счёт до звонка менеджера бессмысленно. Если же работа с заказом идёт без обработки менеджером, счёт на оплату выставляется сразу после оформления заказа.
Чтобы лучше разобраться в реализации способа, рассмотрим 2 варианта создания бизнес-процесса для статуса заказа «Оплата» и их схемы.
Первый вариант, создание документа и его добавление в свойство заказа, подходит для любого шаблона.
Для начала проводится «подготовительный» этап, на котором для бизнес-процесса создаются переменные:
-
paySystemCode (Tип строка) — переменная, куда записывается символьный код платежной системы заказа;
-
FILE (Тип файл) — переменная, в которой хранится сгенерированный документ.
Затем переходим к основному этапу — построению схемы бизнес-процесса. Для этого необходимо добавить следующие блоки:
1. PHP код, который определяет символьный код способа оплаты заказа и записывает значение в переменную paySystemCode. Код выглядит таким образом:use Bitrix\Main\Loader; $rootActivity = $this->GetRootActivity(); \CModule::IncludeModule("sale"); $id = '{{ID}}'; $paySystemId = CSaleOrder::GetByID($id)['PAY_SYSTEM_ID']; $paySystemObj = CSalePaySystem::GetByID($paySystemId); $paySystemCode = $paySystemObj['CODE']; $rootActivity->SetVariable("paySystemCode",$paySystemCode);
2. Условие, которое сравнивает значение переменной с символьными кодами в платежных системах. Таким образом устанавливается, какой способ оплаты выбран в заказе;
3. Действие «Создание документа CRM» — добавляется для каждой ветви условия. В нём указывается, какой шаблон документа генерируется для каждой ветки.
4. Действие «Изменение переменной» записывает сгенерированный документ в переменную FILE для дальнейшего использования.
5. Действие «Изменение документа» добавляет сгенерированный документ в свойство заказа типа «Файл».
6. Действие «Почтовое сообщение» отправляет клиенту письмо с вложенным документом, который берётся из переменной FILE.
Второй вариант доступен пользователям нашего решения Сотбит: B2B кабинет. Он заключается в создании документа и добавлении его в раздел «Документы».
Для реализации предварительно понадобится создать списки через объекты Битрикс «Группы» или «Проекты».
Списки подключаются к B2B кабинету через настройки в административной части решения.
Схема бизнес-процесса во многом схожа с первым вариантом, однако имеются отличия, на которые важно обратить внимание:
Вначале проводим уже знакомый нам «подготовительный» этап и создаём переменные для бизнес-процесса:
-
paySystemCode (Tип строка) — переменная, куда записывается символьный код платежной системы заказа.
-
FILE (Тип файл) — переменная, в которой хранится сгенерированный документ.
Далее переходим к добавлению блоков, из которых состоит бизнес-процесс:
1. PHP код, который определяет символьный код способа оплаты для выбранного заказа и записывает значение в переменную. Пример кода приведён выше;
2. Условие, которое сравнивает значение переменной с символьными кодами в платежных системах. Таким образом устанавливается, какой способ оплаты выбран для заказа;
3. Действие «Создание документа CRM» добавляется для каждой ветви условия. В нём указывается, какой шаблон генерируется для каждой ветви.
4. Действие «Изменение переменной» записывает сгенерированный документ в переменную FILE для дальнейшего использования.
5. Блок «Создание элемента списка». В нём как раз и заключается ключевое различие. В настройках блока настраивается создание элемента списка . В свою очередь, в элементе указываются такие данные, как название, ID заказа, ИНН организации, файл и ID пользователя.
6. Действие «Почтовое сообщение» отправляет клиенту письмо с вложенным документом, который берётся из переменной FILE.
Но как же быть с актуальностью данных и данными, которые не передаются в 1С-Битрикс при обмене?
Для этого необходимо реализовать следующие пункты:
-
Двусторонний обмен между учетной программой и 1С-Битрикс;
-
Максимально наименьший период запуска обмена между учетной программой и 1С-Битрикс;
-
Передача необходимой для генерации документа информации через свойства заказа.
Преимущества использования механизма генерации документов Битрикс24:
-
Отсутствие необходимости в найме разработчиков — реализацию можно настроить самостоятельно;
-
Финансовые затраты на реализацию ниже, чем при использовании REST API;
Недостатки использования механизма генерации документов Битрикс24:
-
Возможность реализации только для лицензии Битрикс24 Интернет-магазин + CRM и выше;
-
Вероятность потери актуальности данных из-за периодичности обмена;
-
Невозможность передачи данных на сторону Битрикс в полном объёме;
-
Потеря актуальности документа при изменениях на стороне Битрикс или учётной программы
Генерация документа с использованием решения Сотбит: Счёт на почту в PDF
При таком способе шаблон счёта создаётся с помощью программы Microsoft Word. В документ добавляются макросы — набор команд для автоматического выполнения определённых действий.
Чтобы система понимала, что в тексте присутствуют макросы, они обязательно прописываются внутри фигурных скобок — {Text}.
С помощью макросов система автоматически подставляет данные клиента в поля документа.
Документ сохраняется в формате .htm или .html и загружается в административную часть. При загрузке шаблона модуль выведет все указанные в документе макросы. Пользователю лишь нужно сопоставить их с полями в системе Битрикс.
Как показано на предыдущем скриншоте, мы добавили разделение по вкладкам для отдельных типов плательщиков. Теперь с помощью модуля Сотбит: Счёт на почту в PDF без проблем можно создать свой шаблон для каждой группы плательщиков.
Что касается вопроса актуальности данных, которые не передаются в 1С-Битрикс через модули обмена, то здесь всё аналогично с использованием механизма генерации документов Битрикс24.
Понадобиться реализовать уже знакомые Вам пункты:
-
Двусторонний обмен между учетной программой и 1С-Битрикс;
-
Максимально наименьший период запуска обмена между учетной программой и 1С-Битрикс;
-
Передача необходимой для генерации документа информации через свойства заказа.
Обратите внимание, что модуль интегрирован с решением Сотбит: B2B кабинет. Для вывода документа на других решениях понадобится произвести доработки.
Преимущества использования модуля Сотбит: Счёт на почту в PDF:
-
Отсутствие необходимости в найме разработчиков — реализацию можно настроить самостоятельно;
-
Финансовые затраты ограничиваются ценой модуля — 4990 руб.
-
Актуальность данных на момент последнего обмена, поскольку генерация документа по запросу клиента
Недостатки использования модуля Сотбит: Счёт на почту в PDF:
-
Вероятность потери актуальности данных из-за периодичности обмена;
-
Невозможность передачи данных на сторону Битрикс в полном объёме;
-
Невозможность вывода сгенерированного документа в свойства заказа или в раздел «Документы» B2B кабинета.
Резюме
Таким образом, мы максимально подробно рассмотрели все способы реализации документооборота между учётными системами и Битрикс. Вам остаётся лишь взвесить все «за» и «против» и определить наиболее удобный.
Если необходимо более подробное разъяснение по каждому из описанных способов, свяжитесь с нами любым удобным способом — мы с радостью проконсультируем Вас.
Теперь, когда ещё одним вопросом стало меньше, специалисты Сотбит готовы поделиться своим опытом в решении не менее злободневных задач. За девятилетний опыт работы мы накопили огромное количество кейсов, о которых будем рады рассказать в грядущих статьях. Оставайтесь на связи, чтобы ничего не пропустить!
И помните, дорогие друзья: если у Вас возникли вопросы и трудности при работе с платформой Битрикс, смело обращайтесь в компанию Сотбит — и мы Вам обязательно поможем!
Последние новости
Все новостиЗимняя акция со скидками 25% на продукты Сотбит и до 35% на Битрикс и Битрикс24!
Сотбит поздравляет Вас с первыми днями зимы! Впереди время чудес, тепла и радости, а вместе с ними — традиционная зимняя акция.
Сотбит: Розница — эталон скорости для интернет-магазинов на 1С-Битрикс
В этой статье мы расскажем, почему скорость имеет значение и как Сотбит: Розница достигла лидерства по этому параметру.