В прошлом году к нам обратилась компания — производитель телекоммуникационного промышленного оборудования. Заказчик запустил интернет-магазин для реализации своей продукции. Учетная система, в которой компания ведет производственную и торговую деятельность, — 1С: ERP.
Заказчик поставил задачу: организовать синхронизацию данных 1С:ERP и интернет-магазина.
Интеграция 1С и интернет-магазина нужна для оперативного обмена товарами и заказами между двумя системами. На самом деле в обмене участвует гораздо больше данных, чем просто информация о товаре и сделанном заказе. Например, остатки товаров на складах, цены товаров для разных категорий покупателей, информация о покупателе, об оплате и доставке, а также статусы заказа.
Особое внимание заказчик уделял корректности и актуальности информации о статусах заказа на сайте и в 1С. Список статусов был предоставлен заказчиком и отражал все возможные этапы работы с заказом.
Сложность задачи в том, что Заказчик использует множество нетиповых статусов заказа покупателя. Мы должны придумать и организовать хранение и взаимодействие этих статусов с сайтом на 1С-Битрикс.
Решаемые задачи
Главная — актуальность информации о статусе заказа на сайте. Клиентам нашего Заказчика важно оперативно понимать, что происходит с их заказом, все ли в порядке, и когда он будет отгружен.
После передачи заказа с сайта в 1С с ним продолжается работа в учетной системе. В процессе работы с заказом изменяется статус заказа: “обработан”, “оплачен на сайте”, “частично оплачен, не отгружен”, и т.д.
Актуальный статус заказа на сайте нужен для решения нескольких задач:
- Предоставить руководителю продаж правильный инструмент для контроля воронки продаж.
- Снять нагрузку с менеджера, уменьшить количество звонков и сообщений от клиентов с вопросами по статусу заказа;
- Предоставить менеджерам актуальный статус по оплатам, чтобы контролировать просроченные оплаты;
- Снизить ошибки менеджеров за счет автоматизации смены статусов заказа в процессе работы с документами в 1С и устранения ручного переключения.
Почему нельзя использовать Модуль обмена с сайтом
В типовом модуле обмена 1С с сайтом под управлением Битрикс предусмотрена возможность синхронизации статуса заказа на сайте с тремя источниками со стороны 1С:
- статус заказа,
- состояние заказа
- дополнительный реквизит.
Каждый из этих вариантов имеет недостатки:
Ни один из имеющихся вариантов не удовлетворяет требованиям автоматической синхронизации статусов заказа с сайта. Мы решили разработать собственный механизм обмена статусами заказа между Битриксом и ERP.
Функциональные требования
- Есть 12 вариантов состояния заказа на сайте и в 1С.
- После доработки конфигурация должна остаться обновляемой.
- Действия с документами в 1С должны влиять на автоматическое изменение статуса заказа:
a. Проведение документа “Поступление безналичных денежных средств”
b. Отмена проведения документа “Поступление безналичных денежных средств”;
c. Проведение документа “Эквайринговая операция”;
d. Отмена проведения документа “Эквайринговая операция”;
e. Проведение документа “Приходный кассовый ордер”;
f. Отмена проведения документа “Приходный кассовый ордер”;
g. Проведение документа “Реализация товаров и услуг”;
h. Отмена проведения документа “Реализация товаров и услуг”.
Расскажем, как решили задачу с минимальными изменениями 1С.
Идея
Взглянем на поле, которое называется “Состояние заказа” (выделено на рис. ниже).
Оно хоть и отображено на форме, но частью документа не является. Значение состояния хранится отдельно от заказа, и при его изменении не нужно перепроводить документ. Подобная архитектура позволяет легко изменять состояние заказа при работе с любым документом 1С, связанным с заказом.
Механизм изменений состояний заказа был взят за основу нашего решения.
Идея состоит в том, чтобы повторить и адаптировать механизм работы с состоянием заказа под нетиповой набор статусов заказов.
В результате мы получим синхронизацию статусов заказов в 1С и на сайте на основе индивидуального набора статусов. Статусы автоматически изменяются в процессе работы в 1С. Набор статусов может быть изменен или расширен и требует для этого минимальных доработок.
Техническое решение
Создадим расширение конфигурации. Все доработки выполняем в расширении.
Для определения новых состояний, создадим объект конфигурации, в котором укажем все необходимые статусы.
Состояние заказа хранится в регистре сведений СостоянияЗаказовКлиентов, при открытии формы подтягивается значение из этого регистра и подставляется на форму.
Для хранения собственных состояний мы выносим этот регистр в расширение и добавляем новый реквизит с типом нового перечисления. Там мы будем хранить новые состояния.
Важно: после прописания логики необходимо зарегистрировать изменение заказа клиента для выгрузки его нового состояния на сайт.
Для визуального просмотра состояния вынесем в расширение форму документа, создадим новый элемент формы и пропишем логику его визуального отображения.
В результате проделанных работ мы получаем новое состояние для документа, которое можно использовать не только для обмена с сайтом, но и для визуального отображения собственного состояния документа без изменения типовой конфигурации. Это решение может быть само по себе полезным.
Добавим в расширение форму УстановкаСоответствийСтатусовЗаказов. В реквизитах формы изменим в таблице значений СоответствияСостоянийЗаказа тип колонки Статус, на тип нового состояния заказов.
В модуле выгрузки в процедуре СформироватьВременныеТаблицыПоДокументам в запросе поменять выбор старого состояния на новое:
В любом случае изменения не касаются типовой конфигурации, поэтому при ее обновлении никаких проблем не будет. При обновлении модуля обмена придется проверять, изменили ли в новых версиях процедуру формирования таблиц, но при внимательном сопоставлении доработанного модуля с новой версией, это также не доставит хлопот.
Подведем итоги
В результате проделанных работ мы получим полностью автоматизированный расчет состояния заказа и выгрузки его на сайт.
Реализация данного метода занимает относительно немного времени, не требует изменения заказа, что положительно сказывается на скорости работы и обеспечивает стабильную работу, так как мы полностью подстраиваемся под возможности типового обмена.
В чем польза для Бизнеса клиента
В результате опытной эксплуатации нашего расширения Заказчик отметил изменения в лучшую сторону в процессе работы менеджеров по продажам:
- клиенты Заказчика стали автономно отслеживать статусы заказов в личном кабинете на сайте;
- снизилась дебиторская задолженность за счет своевременного выставления счетов менеджерами;
- у менеджеров Заказчика высвободилось время для решения задач по развитию клиентов и поиску новых;
- руководитель отдела продаж отметил скорость подготовки отчетов по заказам клиентов и оперативность ежедневных сводок по отгрузкам.
ИНТЕРВОЛГА профессионально помогает производителям и другим бизнесам решать задачи по автоматизации процессов. Обращайтесь за решением сложных задач в вашей ERP-системе или других программах семейства 1С:Предприятие.
Источник: блог ИНТЕРВОЛГИ.
Полезные ссылки:
• Разработка и доработка проектов на 1С-Битрикс.
• Настройка интеграции с 1С любой сложности.