При построении распределенной торговой сети часто возникает задача синхронизации маркетинговых акций между центральным офисом, работающим в 1С:Управление торговлей (УТ 11), и кассовыми узлами под управлением 1С:Розница. Одной из самых востребованных функций является накопительная система скидок: например, при покупке на 1000 рублей выдается карта с 3%, при достижении порога 30 000 рублей скидка увеличивается до 4%, а при 50 000 рублей — до 5%.
Рассмотрим подробнее, почему стандартная синхронизация УТ и Розницы часто дает сбои при передаче таких скидок, и разберем наиболее эффективные пути решения этой задачи.
Проанализируем ситуацию: в 1С:Управление торговлей блок маркетинга спроектирован с упором на оптовую торговлю и типовые соглашения. В то же время в 1С:Розница реализован гораздо более мощный функционал для работы с физическими лицами: бонусные программы, подарки, скидки «N+1» и сложные условия накопления.
При обмене данными через стандартный формат EnterpriseData (ED) многие поля, специфичные для Розницы (например, условия по накопленным суммам на конкретной дисконтной карте), просто не имеют аналогов в УТ. В результате при переносе настройки скидки из УТ в Розницу «теряются» ключевые условия, и скидка перестает срабатывать автоматически.
Как показывает практика внедрений, наиболее стабильным вариантом является изменение архитектуры обмена. Вместо прямой связи «УТ — Магазин», мы внедрим промежуточное звено — Центральную Розницу. Разберем эту схему по шагам:
1С:Розница, которая будет выполнять роль «Мастера маркетинга».В этой конфигурации УТ получает от Розницы только итоговые данные о продажах (через документы Отчет о розничных продажах), что избавляет от необходимости дорабатывать сложные правила обмена скидками.
Одной из главных проблем накопительных скидок является задержка в обновлении данных. Если клиент совершил покупку в Магазине №1, информация о его накоплениях попадет в Магазин №2 только после полного цикла обмена через центр, что может занять значительное время.
Выясним причину, как этого избежать. В современных версиях 1С:Розница (начиная с версии 2.3) предусмотрен механизм Сервера лояльности. Проанализируем принцип его работы:
Сервер лояльности — это режим, при котором кассовый узел в момент сканирования карты клиента не ищет данные в локальной базе, а обращается по HTTP-протоколу к центральной базе данных. Посмотрим на алгоритм работы системы:
Важно: Для работы этой схемы требуется стабильное интернет-соединение. Если связь пропадет, Розница перейдет в офлайн-режим и будет использовать последние известные данные из локальной базы.
Если архитектура с Центральной Розницей по каким-то причинам невозможна, остается путь кастомизации. Рассмотрим, что именно придется доработать программисту:
Во-первых, необходимо расширить состав передаваемых данных в плане обмена. В УТ нужно создать дополнительные реквизиты для объектов, отвечающих за скидки, чтобы хранить условия накопления. Во-вторых, потребуется изменить правила конвертации объектов СкидкаНаценка.
Пример программного обращения к накоплениям по карте (фрагмент кода для логики сервера лояльности или кастомного отчета):
// Пример получения суммы накоплений по дисконтной карте
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СУММА(ПродажиПоДисконтнымКартамОбороты.СуммаОборота) КАК ВсегоНакоплено
|ИЗ
| РегистрНакопления.ПродажиПоДисконтнымКартам.Обороты(, , , ДисконтнаяКарта = &ДисконтнаяКарта) КАК ПродажиПоДисконтнымКартамОбороты";
Запрос.УстановитьПараметр("ДисконтнаяКарта", СсылкаНаКарту);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Если Выборка.Следующий() Тогда
СуммаНакоплений = Выборка.ВсегоНакоплено;
КонецЕсли;
Однако, стоит помнить, что любая модификация правил обмена EnterpriseData — это трудозатратный процесс, который придется поддерживать при каждом обновлении конфигурации.
Подведем итог нашего анализа. Если ваша задача — запустить работающую накопительную систему без постоянных ошибок синхронизации, рекомендуем придерживаться следующей стратегии:
1С:Розница лучше приспособлена для работы с бонусными счетами, чем с прогрессивным процентом скидки. Бонусы психологически сильнее удерживают клиента и легче администрируются через Сервер лояльности.Таким образом, разделение зон ответственности между программами (УТ — склад и финансы, Розница — торговый зал и лояльность) является наиболее надежным техническим решением.