При оформлении продаж в рабочем месте кассира (РМК) конфигурации «1С:Розница 3.0» пользователи часто сталкиваются с ситуацией: при сканировании штрихкода товара на экран выводится сообщение «Не удалось подключиться к серверу лояльности, скидки не рассчитаны». При этом функциональная опция Использовать сервер лояльности в настройках программы отключена, а соответствующие константы очищены. Разберем природу этого поведения и подробно рассмотрим шаги по устранению неполадки.
Выясним причину такого системного поведения. В современных версиях конфигураций «1С:Розница 3.0» и «1С:УНФ 3.0» архитектура расчета скидок и маркетинговых акций построена на базе общей библиотеки. Расчет автоматических скидок выполняется через универсальный программный контур независимо от того, используется внешний сервер или локальная база.
Когда при сканировании позиции в РМК происходит любое исключение во время расчета цен, скидок или разбора штрихкода, срабатывает типовой перехватчик ошибок в блоке Попытка ... Исключение. В исходном коде конфигурации при возникновении сбоя часто подставляется стандартное системное оповещение:
ТекстОшибкиПоУмолчанию = НСтр("ru = 'Не удалось подключиться к серверу лояльности. Обратитесь к администратору'");
Таким образом, сообщение о сервере лояльности является маской. Реальная проблема кроется во внутренней программной ошибке, падении расчета скидок, конфликте прав доступа или сбое разбора штрихкода.
Проанализируем первопричину сбоя, сняв маскирующее сообщение. Сделать это можно двумя надежными путями:
Настройки — Обслуживание — Журнал регистрации. Установим отбор по важности «Ошибка» и пользователю-кассиру. В момент сканирования товара платформа фиксирует подробное описание исключения с полным стеком вызовов процедур и функций.Отладка — Настройка остановки по ошибке, активируем флаг остановки по всем исключениям (включая обрабатываемые) и запустим РМК. При сканировании товара отладчик мгновенно остановит выполнение кода именно в той строке, где происходит непредвиденный сбой, до того, как сработает блок Исключение.Чаще всего исключение провоцирует поврежденное или некорректно заполненное правило расчета автоматических скидок. Проверим справочники скидок:
Продажи — Цены и скидки — Скидки (наценки, ограничения).Глобальная константа отключает сервер лояльности для информационной базы в целом, однако в индивидуальных профилях касс могут сохраняться локальные параметры. Проверим настройки РМК:
Продажи — Настройки РМК и выберем карточку настройки, назначенную для текущего рабочего места.Нередко сбой возникает из-за нехватки прав у пользователя. Если кассиру назначена урезанная роль, при попытке системы прочитать вспомогательные регистры скидок или сегментов прав платформы оказывается недостаточно. Механизм перехватывает ошибку нарушения прав и выводит дефолтное предупреждение о сервере лояльности.
Базовые права сервера лояльности, а также прав на чтение маркетинговых условий, дисконтных карт и сегментов номенклатуры.Если проблема сохраняется, выполним регламентные технические операции:
%LocalAppData%\1C\1cv8 и %AppData%\1C\1cv8. При обновлении конфигурации поврежденные метаданные форм РМК могут искажать структуры параметров, передаваемых на сервер.Настройки — Обслуживание — Обновление программы — Исправления (патчи). Если ошибка проявилась сразу после установки автоматических исправлений к релизу 3.0.13, временно отключим патчи, относящиеся к РМК и подсистеме лояльности, чтобы исключить программную несовместимость с текущей версией сборки.