При обновлении конфигурации 1С:Розница до версии 2.3.11 и выше многие пользователи сталкиваются с неприятной ситуацией: после включения опции "Использовать новое РМК" перестают применяться автоматические и управляемые скидки. При этом в старом интерфейсе кассира все маркетинговые акции продолжают работать корректно. Рассмотрим подробнее, с чем связано такое поведение системы и какие шаги необходимо предпринять для восстановления функционала.
Для начала проанализируем ситуацию с технической точки зрения. Новое РМК — это не просто обновленный интерфейс, а попытка компании 1С создать универсальный модуль (библиотеку), который будет работать одинаково во всех решениях: Розница, УНФ, ERP и УТ. В старом РМК расчет скидок происходил непосредственно в коде формы или модулях конфигурации, жестко привязанных к объектам базы данных.
В новом РМК реализована иная модель. Для расчета сложных скидок, бонусов и подарков программа обращается к специальному механизму — Серверу лояльности. Это HTTP-сервис, который выступает посредником между кассовым интерфейсом и маркетинговым движком базы данных. Если этот сервис не опубликован или не настроен, новое РМК просто "не знает", как рассчитать скидку, даже если дисконтная карта успешно считана и добавлена в чек.
Выясним основную причину: для работы скидок в новом интерфейсе необходимо, чтобы база данных могла отвечать на запросы по протоколу HTTP. Это актуально даже в том случае, если вы работаете в файловом варианте на одном компьютере. Разберем по шагам процесс настройки:
LoyaltyService (Сервер лояльности).Без этой настройки новое РМК будет работать в "упрощенном" режиме, игнорируя большинство автоматических скидок, так как оно не получает ответа от расчетного модуля базы.
Проанализируем настройки внутри самой программы. В новом интерфейсе появились специфические триггеры, которые определяют момент расчета. Например, можно настроить проверку дисконтной карты при оплате. Посмотрим на важные параметры в справочнике "Настройки РМК":
Рассмотрим ситуацию, когда сумма в чеке уменьшается (скидка вроде бы применилась), но в самом документе ЧекККМ табличная часть СкидкиНаценки остается пустой. Это известная проблема версий 2.3.11 и 2.3.12. В новом РМК данные передаются в упрощенном виде, и при записи документа стандартные механизмы "Розницы" не всегда подхватывают детализацию наценок.
Если для вашей отчетности критично видеть детализацию скидок в каждом чеке, проанализируем возможные решения:
СкидкиНаценки при проведении чека, созданного через новое РМК.В новом интерфейсе изменен алгоритм поиска дисконтных карт. Если в старом РМК поиск шел по всем доступным полям (телефон, штрихкод, магнитный код), то в новом РМК важно правильно настроить "Шаблоны штрихкодов". Выясним причину: если штрихкод карты не попадает под настроенный шаблон "Дисконтная карта", система может воспринять его как обычный текст или товар. Карта при этом отобразится в интерфейсе как информационная панель, но условия лояльности, привязанные к Владельцу карты, не подтянутся.
Для программистов важно понимать, как система инициализирует расчет. В новом РМК вызов происходит примерно по следующей схеме (упрощенно):
Процедура РассчитатьСкидкиНаСервере(ДанныеЧека)
// РМК формирует JSON-запрос к LoyaltyService
Запрос = Новый HTTPЗапрос("/hs/LoyaltyService/calculate");
Запрос.УстановитьТелоИзСтроки(ПреобразоватьВJSON(ДанныеЧека));
Ответ = HTTPСоединение.ОтправитьЗапрос(Запрос);
Если Ответ.КодСостояния = 200 Тогда
// Применяем полученные скидки к табличной части РМК
ОбновитьДанныеКорзины(Ответ.ПолучитьТелоКакСтроку());
КонецЕсли;
КонецПроцедуры
Если при отладке вы видите, что HTTPСоединение возвращает ошибку или пустой результат, значит, проблема именно в публикации сервиса лояльности.
Несмотря на современный дизайн и удобство работы "в одном окне", новое РМК на текущий момент имеет ряд ограничений, которые могут быть критичны для розничной торговли:
Рекомендация: Если ваша маркетинговая система построена на сложных условиях, бонусах и требует интерактивного взаимодействия кассира со скидками, на текущем этапе (редакция 2.3) более стабильным решением остается использование старого РМК. Отключить новый интерфейс можно, сняв галочку "Использовать новое РМК" в настройках продаж.
Таким образом, мы разобрали основные причины неработоспособности скидок. Главный ключ к решению проблемы — публикация HTTP-сервиса и проверка версии конфигурации на наличие патчей, исправляющих запись данных о скидках в документы.