Ускоряем работу с интернет-заказами в 1С:ERP: нетиповые статусы заказа покупателя и автоматическое обновление
В прошлом году к нам обратилась компания — производитель телекоммуникационного промышленного оборудования. Заказчик запустил интернет-магазин для реализации своей продукции. Учетная система, в которой компания ведет производственную и торговую деятельность, — 1С: ERP.
Заказчик поставил задачу: организовать синхронизацию данных 1С:ERP и интернет-магазина.
Интеграция 1С и интернет-магазина нужна для оперативного обмена товарами и заказами между двумя системами. На самом деле в обмене участвует гораздо больше данных, чем просто информация о товаре и сделанном заказе. Например, остатки товаров на складах, цены товаров для разных категорий покупателей, информация о покупателе, об оплате и доставке, а также статусы заказа.
Особое внимание заказчик уделял корректности и актуальности информации о статусах заказа на сайте и в 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С:Предприятие.