Дисконтный сервер в «1С:Розница 2.1»

О чем эта статья

В сети магазинов настроена распределенная информационная база (РИБ) по магазинам. Периодичность обменов – 1 раз в сутки. Используются дисконтные и бонусные карты. Возникают ситуации, когда покупатели между сеансами обмена успевают посетить несколько магазинов сети.

При этом данные о продажах по дисконтным картам еще не синхронизировались и расчет скидок происходит некорректно. Подобная ситуация особо остро возникает для семейных дисконтных карт. Требуется настроить более оперативный способ обмена данными о продажах.

В конфигурации “1С:Розница” ред. 2.1 появился новый механизм дисконтного сервера.

Рассмотрим стандартную схему РИБ, состоящую из четырех узлов: Центральный узел и три удаленных подчиненных узла. По стандартной схеме данные о продажах передаются посредством стандартного обмена, производимого один раз в сутки.

Механизм дисконтного сервера добавляет еще одно средство обмена удаленных магазинов с центральным магазином, который и будет выполнять роль дисконтного сервера.

Схема распределенной информационной базы

Для увеличения нажмите на изображение.

Благодаря новому on-line обмену данными о продажах через механизм Web-сервисов магазины смогут, не дожидаясь стандартного обмена, отправить данные о продажах в дисконтный сервер.

В момент, когда им потребуются данные о продажах для расчета скидок, они смогут сделать запрос в дисконтный сервер и получить самые актуальные данные о накоплениях по итогам работы всех магазинов сети.

В этой статье разберем особенности работы с дисконтным сервером:

Применимость

Статья написана для редакции 1С:Розница 2.1. Если вы используете эту редакцию, отлично – прочтите статью и внедряйте рассмотренный функционал.

Если же вы планируете начать внедрение 1С:Розница, то скорее всего будет использоваться более свежая редакция. Интерфейсы и её функционал могут отличаться.

Поэтому, мы рекомендуем пройти курс 1С:Розница 2 для автоматизации магазинов и сервисных компаний, это поможет вам избежать ошибок и потери времени / репутации.

Настройка дисконтного сервера

Публикация web-сервиса дисконтного сервера

Прежде всего необходимо опубликовать сервис дисконтного сервера в главном узле РИБ. Именно к нему будут обращаться удаленные магазины.

Публиковать Web-сервер будем на стандартном WIndows Web сервере IIS. Его установку рассматривать не будем. Считаем, что он уже установлен и успешно работает.

Отметим только, что во избежание проблем с доступом, базу центрального узла не рекомендуется размещать на диске С. Публикация будет производиться из конфигуратора. При этом важно, чтобы запуск программы 1С производился от имени администратора вычислительной системы.

Для этого можно, установив мышку на ярлыке 1С:Предприятия, вызвать контекстное меню и выбрать пункт Запуск от имени администратора.

Запуск 1С:Предприятие от имени администратора

В окне запуска 1С:Предприятия выбираем базу центрального магазина и нажимаем на кнопку Конфигуратор.

Запуск конфигуратора

Выбранному пользователю должен быть включен в группу доступа “Администраторы”.

Доступ: администратор

В Конфигураторе для публикации Web-сервиса нужно в меню Администрирование выбрать пункт Публикация на веб-сервере.

Публикация Web-сервиса

Откроется окно “Публикация на веб-сервере”.

Можно переопределить автоматически сформированное имя на более понятное, например, “Discount”. При этом каталог публикации изменится в соответствии с изменившимся именем.

Остается определить список тех Web-сервисов, которые мы планируем опубликовать для данной базы. Нас интересует только Web-сервис “ДисконтныйСервер”.

Публикация Web-сервисов

После установки нужного флага следует нажать на кнопку Опубликовать. Система сообщает, что публикация выполнена и предлагает перезапустить Web-сервер.

Публикация веб-клиента

Перезапуск веб-сервиса

Соглашаемся с перезапуском.

Настройка подключения к дисконтному серверу

В базе центрального узла создадим нового пользователя «Admin». Чтобы заведомо не возникало проблем с правами доступа, данного пользователя включим в группу доступа «Администраторы». Определим для пользователя простой пароль «123».

Настроим подключение к дисконтному серверу в подчиненных узлах.

В разделе Администрирование выберем команду Маркетинг. Откроется специальная форма настроек, из которой можно управлять настройками цен, скидок и наценок.

Здесь же присутствует и группа опций по управлению работой с дисконтным сервером.

Администрирование 1С

Для увеличения нажмите на изображение.

Основной является опция Подключаться к дисконтному серверу. При выборе данной опции становится доступной Настройка подключения к дисконтному серверу.

В настройке подключения необходимо указать Адрес дисконтного сервера, при этом, чтобы получить формат для заполнения адреса, можно воспользоваться предлагаемым шаблоном.

http://ИмяСервера/ИмяСервиса/ws/DiscountService.1cws?wsdl

Поскольку все действия для примера производятся на одном компьютере, то в качестве параметра ИмяСервера можно использовать localhost. ИмяСервиса – имя публикации базы центрального узла Discount.

Остальные составляющие электронного адреса оставляем без изменения, как в подсказке:

http://localhost/Discount/ws/DiscountService.1cws?wsdl

В форме настройки подключения укажем имя ранее созданного пользователя и пароль.

Настройка подключения к дисконтному серверу
Нажатием на кнопку Проверить проверим подключение к Web-сервису.

Удостовериться, что Web-сервис успешно работает, можно обратившись к нему через обычный Web-браузер.

В строке адреса браузера укажем путь к Web-сервису, который ранее указывали в настройках подключения к дисконтному серверу.

Доступ к веб-сервису через браузер

После аутентификации в браузере успешно отобразится описание созданного Web-сервиса.

Описание веб-сервиса

Для увеличения нажмите на изображение.

Передача продаж по дисконтным картам в дисконтный сервер

Рассмотрим передачу информации о продажах из подчиненного узла в дисконтный сервер.

Сначала проверим показатели продаж по дисконтным картам в центральной базе. В разделе Продажи выберем команду Отчеты по продажам и сформируем отчет “Продажи по дисконтным картам” без указания периода.

Показатели продаж в центральной базе

Из отчета видно, что некоторые накопления по дисконтным картам уже есть. Выберем одну из карт, запомним ее номер и сумму продаж.

Отразим продажу по этой карте в подчиненном узле. В базе магазина на Октябрьском создаем новый документ “Реализация товаров” (раздел Продажи команда Реализация товаров из группы Создать).

В качестве дисконтной карты укажем выбранную ранее карту из отчета.

Отражаем продажу по карте в базе магазина

Для увеличения нажмите на изображение.

Проводим реализацию. Теперь необходимо проверить, что информация в дисконтный сервер успешно передалась.

Вернемся к настройкам дисконтного сервера (раздел Администрирование команда Маркетинг).

1С Администрирование - Маркетинг

Здесь размещена команда по открытию протокола передачи продаж дисконтному серверу. В протоколе нет никакой информации.

Если обратиться к справке, то из описания данной формы следует, что это регистр сведений, и в нем должна храниться информация обо всех документах, которые были отправлены или ожидают отправки дисконтному серверу. Но мы видим, что это не так.

Регистр сведений

Для увеличения нажмите на изображение.

Вернемся в базу центрального магазина и переформируем отчет “Продажи по дисконтным картам”.

Отчет Продажи по дисконтным картам

Сумма продаж по выбранной нами дисконтной карте заметно выросла. Расшифруем данный показатель до документа регистратора и увидим, что для суммы 3948 рублей указано, что объект не найден.

В скобках указано значение ссылки. Это значит, что регистратор действительно записан, но ссылка для данной информационной базы пока не понятна – в системе просто пока нет связанного с ней объекта.

И это совершенно нормальная ситуация: обычный обмен данными с подчиненным узлом еще не выполнялся, и документ реализации на данную сумму в центральный узел еще не поступил.

Обмен данными не выполнен

Выполним стандартный обмен между узлами РИБ. Сначала выгрузим данные из подчиненного узла в центральный узел (раздел Органайзер команда Синхронизация данных, выбираем нужный обмен и пользуемся командой Синхронизировать).

Затем повторим аналогичные действия в базе центрального магазина – выполним обмен данными с магазином на Октябрьском.

Убедимся, что документ реализации действительно появился в расшифровке отчета “Продажи по дисконтным картам”. Для этого переформируем расшифровку командой Сформировать.

Корректное отображение документа движения

Теперь документ движения отображается корректно. По префиксу документа понятно, что он создан в магазине на Октябрьском.

Получение продаж по дисконтным картам из дисконтного сервера

Посмотрим, как подчиненный узел будет получать информацию о продажах по дисконтным картам из дисконтного сервера.

В базе магазина на Октябрьском в разделе Продажи выберем команду Отчеты по продажам и в открывшейся форме выберем отчет “Продажи по дисконтным картам”. Формируем его без указания периода.

Обмен мы произвели, и в подчиненном узле теперь отображается полная сумма продаж по выбранной нами дисконтной карте.

Данные из дисконтного сервера

В аналогичном отчете в центральной базе сумма та же.

Теперь создадим реализацию в центральной базе.

Центральная база

Для увеличения нажмите на изображение.

Проведем данный документ и проверим как изменился отчет “Продажи по дисконтным картам” в центральном магазине.

Продажи по дисконтным картам в центральной базе

Сумма продаж в центральной базе увеличилась. Не выполняя никакого обмена данными перейдем в базу магазина на Октябрьском. Формируем в ней еще раз отчет “Продажи по дисконтным картам”.

В подчиненном узле информация в отчете не обновилась, так как обмена мы не выполняли, а отчет строится именно по данным текущей базы. Информацию от дисконтного сервера он не получает.

Для того, чтобы узнать какие накопления по дисконтной карте подчиненный узел увидит именно при обращении к дисконтному серверу, создадим новый Чек ККМ и воспользуемся командой просмотра накоплений по дисконтной карте.

В форме Чека ККМ указываем интересующую нас дисконтную карту. Справа от поля Дисконтная карта станет активной команда Просмотр накоплений.

Воспользовавшись ею, видим, что сумма накоплений меньше чем в отчете центральной базы. Но это данные на дату документа, а при создании она установилась на начало текущих суток. Документа реализации на тот момент еще не было.

Сумма накоплений в форме чека ККМ

Если мы установим текущее время в дате документа, то по команде увидим сумму равную информации в отчете базы центрального магазина.

Установка текущего времени в чеке ККМ

Потеря связи с дисконтным сервером

Воспроизведем ситуацию потери связи с дисконтным сервером. Для этого просто остановим Web-сервер. Перейдем в панель управления компьютера (Пуск – Панель управления).

Откроем раздел Администрирование и выберем Диспетчер служб IIS.

Диспетчер служб IIS

Для увеличения нажмите на изображение.

В диспетчере служб IIS воспользуемся командой остановки Web-сервера Остановить.

Остановить веб-сервера

Для увеличения нажмите на изображение.

После остановки Web-сервера связь с дисконтным сервером в подчиненном узле должна быть потеряна.

Удостоверимся в этом, и проанализируем, как поведет себя система. Запросим из чека ККМ информацию о накоплениях по указанной дисконтной карте.

Запрос без связи с веб-сервером

Для увеличения нажмите на изображение.

Система показывает, что накопленная сумма продаж равна нулю. Информация о том, что нет связи с дисконтным сервером, отсутствует.

Попробуем в подчиненном узле отобразить еще один документ “Реализация товаров” и выберем все ту же дисконтную карту.

Реализация товаров без связи с веб-сервером

Для увеличения нажмите на изображение.

При проведении документа система выводит сообщение о том, что при обновлении накоплений в дисконтном сервере возникли ошибки.

Сообщение об ошибке в дисконтном сервере

Посмотрим информацию, содержащуюся в журнале регистрации (Администрирование – Поддержка и обслуживание – Журнал регистрации)

1С Администрирование - Журнал регистрации

В комментарии к возникшей ошибке система 1С:Розница сообщает, что не может обновить данные дисконтного сервера о продажах, так как не может установить соединение.

Обратимся к протоколу передачи данных в дисконтный сервер (Администрирование – Маркетинг – Протокол передачи продаж дисконтному серверу).

В протоколе указан тот самый документ, при проведении которого из-за разрыва соединения данные в дисконтный сервер отправлены не были.

Также указывается номер дисконтной карты, сумма продажи и дата последней выгрузки (где указано, что данные ожидают отправки).

Протокол передачи документов дисконтному серверу

Для увеличения нажмите на изображение.

Возобновим работу Web-сервера и восстановим связь с дисконтным сервером (команда Начало в управлении Web-сервером).

Возобновление работы веб-сервера

Для увеличения нажмите на изображение.

В базе магазина на Октябрьском вновь воспользуемся командой просмотра накоплений и убедимся, что информация из дисконтного сервера поступает.

Но возникает вопрос: как быть с не отправленной ранее информацией по документу “Реализация товаров”?

Рассмотрим возможность отправки данных подчиненного узла не сразу по факту продажи, а с помощью специальной очереди передачи в дисконтный сервер.

В базе магазина на Октябрьском в группе настроек Дисконтный сервер (раздел Администрирование – Маркетинг) можно установить опцию Использовать очередь передачи дисконтному серверу.

1С Администрирование - Дисконтный центр

Для увеличения нажмите на изображение.

При этом информация о продажах передаваться в дисконтный сервер будет не сразу при проведении соответствующего документа, а с периодичностью, которую мы установим в специальном регламентном задании Обновление продаж в дисконтном сервере.

Выполняя это регламентное задание система также будет повторять неудачные отправки данных о продажах по дисконтным картам.

Настроим регламентное задание в разделе Администрирование по команде Поддержка и обслуживание – Регламентные и фоновые задания. Откроется список регламентных и фоновых заданий.

Нас интересует регламентное задание Обновление продаж в дисконтном сервере. Оно используется и для отправки данных о продажах по очереди и для повтора неудачных отправлений.

Если задание в списке отсутствует, его необходимо добавить, воспользовавшись командой Добавить новый элемент.

Регламентное задание Обновление продаж

Для увеличения нажмите на изображение.

Появится форма выбора шаблона регламентного задания, из которой следует выбрать задание Обновление продаж в дисконтном сервере.

Создание регламентного задания Обновление продаж в дисконтном центре

Переведем данное задание в состояние Включено и запишем его (при желании можно настроить расписание его регулярного выполнения).

Обновив список, увидим в нем и новое задание.

Список регламентных и фоновых заданий

Выберем данное регламентное задание, выполним по команде Выполнить сейчас, и обратимся к Протоколу передачи данных в дисконтном сервере.

Через меню Все действия выберем пункт Обновить и убедимся, что данные отправлены в дисконтный сервер.

Отправка данных в дисконтный центр

Для увеличения нажмите на изображение.

Проверим, что эти данные были благополучно доставлены в дисконтный сервер. В базе центрального магазина переформируем отчет “Продажи по дисконтным картам”.

Отчет Продажи по дисконтным картам

Продажи по дисконтной карте увеличились на сумму, указанную в переданном документе “Реализация товаров”.

В базе магазина на Октябрьском в новом Чеке ККМ запросим информацию о накоплениях по данной карте и убедимся, что накопления по дисконтной карте также увеличились на ту же сумму.

Информация о накоплениях по карте

Для увеличения нажмите на изображение.

Передача данных о накоплении бонусов

Удостоверимся, что информация о накоплении бонусов тоже будет успешно передаваться между центральным и подчиненным узлами.

В справочнике “Скидки (наценки, ограничения)” ранее была создана настройка для начисления бонусных баллов при продаже.

Начисление производится в размере 5% от суммы продажи по бонусной программе “Семейная”, без всяких условий. Бонусные баллы начинают действовать сразу после начисления.

Выберем для эксперимента одну из бонусных карт и в базе подчиненного узла из нового Чека ККМ запросим информацию по бонусам данной карты.

Бонусы на карте

Для увеличения нажмите на изображение.

Теперь в базе центрального узла создадим новый документ “Реализация товаров”.

Документ Реализация товаров

Для увеличения нажмите на изображение.

После проведения в документе отобразится количество начисленных бонусов. Перейдем в базу магазина на Октябрьском и вновь проверим накопления бонусов для соответствующей карты.

Отражение бонусов из дисконтного сервера

Для увеличения нажмите на изображение.

Видим, что произошли изменения. К прежнему остатку были добавлены только что начисленные баллы. То есть информация о бонусах тоже была успешно получена из дисконтного сервера.

Скидки процентом от суммы предыдущей покупки

Проверим работу скидки процентом от суммы предыдущей покупки.
Ранее в справочнике “Скидки (наценки, ограничения)” такая скидка была предварительно создана. Размер скидки 5% и действует она при сумме продажи не менее 1000 рублей для вида дисконтной карты “Специальная”.

В базе центрального узла создадим новый документ “Реализация товаров”, в котором в качестве дисконтной карты выберем карту с видом “Специальная”.

Оформим продажу товаров на сумму 10000 рублей. При этом скидка на очередную покупку должна составить 5% от данной суммы, т.е. 500 рублей.

Оформим реализацию товаров на 10000

Для увеличения нажмите на изображение.

Переходим в базу подчиненного узла и оформляем продажу. В качестве дисконтной карты указываем ранее выбранную карту. После заполнения товаров в командной панели табличной части из меню Скидки (наценки) выберем команду Рассчитать скидки (наценки).

Рассчитать скидки

Отображение в чеке ККМ

Для увеличения нажмите на изображение.

Система 1С:Розница рассчитала скидку в размере 500 рублей. На закладке Скидки видно, что это действительно скидка “5% от суммы предыдущей покупки”.
Проверка работы скидки

Для увеличения нажмите на изображение.

Игорь Сапрыгин,
г. Кемерово

Если Вас заинтересовала эта тема

Не пропустите наш курс по 1С:Рознице!

Описание курса и видео-материалы

PDF-версия статьи для участников группы ВКонтакте

Мы ведем группу ВКонтакте – http://vk.com/kursypo1c.

Если Вы еще не вступили в группу – сделайте это сейчас и в блоке ниже (на этой странице) появятся ссылка на скачивание материалов.


Статья по Платформе 1С 8 - в PDF-формате

Статья в PDF-формате

Вы можете скачать эту статью в формате PDF по следующей ссылке:

Ссылка доступна для зарегистрированных пользователей)


Ссылка доступна для зарегистрированных пользователей)
Ссылка доступна для зарегистрированных пользователей)
Ссылка доступна для зарегистрированных пользователей)

Если Вы уже участник группы – нужно просто повторно авторизоваться в ВКонтакте, чтобы скрипт Вас узнал. В случае проблем решение стандартное: очистить кеш браузера или подписаться через другой браузер.

Комментарии / обсуждение (4):

  1. Валерий

    Игорь, добрый день. Подскажите, не могу разобраться как настроить подключение, если центр.розница(выделенный сервер WIN 2019 MS SQL) и удаленные магазины(розница) не в одной локальной сети? И можете помочь в этом вопросе?

    • Игорь Сапрыгин

      Добрый день. Или рдп сервер, и работа на нем. Или веб сервер с публикацией на нем базы, и работа через тонкие клиенты из магазинов.
      Если коротко, то так.
      Если проблема более конкретная – сформулируйте более конкретный вопрос :)

  2. Каро

    Скажите пожалуйста дисконтный сервер в базовой версии Розницы 2.2 можно использовать?

    • Игорь Сапрыгин

      Добрый день!
      Для нормального полного функционирования дисконтного сервера используется в том числе и механизм распределенных информационных баз. Он используется для обмена основными данными (справочники клиентов, дисконтных карт, документы начисления и списания бонусов и т.п.).
      В базовых версиях РИБ не поддерживается, поэтому потребуются ПРОФ версии.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вход на сайт

Зарегистрироваться

Подтверждение регистрации будет отправлено на указанный e-mail.

Я подтверждаю, что ознакомлен(а) с Пользовательским соглашением, принимаю его условия и даю свое согласие на обработку моих персональных данных.

Восстановить доступ

E-mail или логин

Ссылка на создание нового пароля будет отправлена на указанный e-mail.