О чем эта статья
В сети магазинов настроена распределенная информационная база (РИБ) по магазинам. Периодичность обменов – 1 раз в сутки. Используются дисконтные и бонусные карты. Возникают ситуации, когда покупатели между сеансами обмена успевают посетить несколько магазинов сети.
При этом данные о продажах по дисконтным картам еще не синхронизировались и расчет скидок происходит некорректно. Подобная ситуация особо остро возникает для семейных дисконтных карт. Требуется настроить более оперативный способ обмена данными о продажах.
В конфигурации “1С:Розница” ред. 2.1 появился новый механизм дисконтного сервера.
Рассмотрим стандартную схему РИБ, состоящую из четырех узлов: Центральный узел и три удаленных подчиненных узла. По стандартной схеме данные о продажах передаются посредством стандартного обмена, производимого один раз в сутки.
Механизм дисконтного сервера добавляет еще одно средство обмена удаленных магазинов с центральным магазином, который и будет выполнять роль дисконтного сервера.
Для увеличения нажмите на изображение.
Благодаря новому on-line обмену данными о продажах через механизм Web-сервисов магазины смогут, не дожидаясь стандартного обмена, отправить данные о продажах в дисконтный сервер.
В момент, когда им потребуются данные о продажах для расчета скидок, они смогут сделать запрос в дисконтный сервер и получить самые актуальные данные о накоплениях по итогам работы всех магазинов сети.
В этой статье разберем особенности работы с дисконтным сервером:
- Настройку дисконтного сервера
- Передачу продаж по дисконтным картам в дисконтный сервер
- Получение продаж по дисконтным картам из дисконтного сервера
- Действия в случае потери связи с дисконтным сервером
- Передачу данных о накоплении бонусов
- Скидки процентом от суммы предыдущей покупки
Применимость
Статья написана для редакции 1С:Розница 2.1. Если вы используете эту редакцию, отлично – прочтите статью и внедряйте рассмотренный функционал.
Если же вы планируете начать внедрение 1С:Розница, то скорее всего будет использоваться более свежая редакция. Интерфейсы и её функционал могут отличаться.
Поэтому, мы рекомендуем пройти курс 1С:Розница 2 для автоматизации магазинов и сервисных компаний, это поможет вам избежать ошибок и потери времени / репутации.
Настройка дисконтного сервера
Публикация web-сервиса дисконтного сервера
Прежде всего необходимо опубликовать сервис дисконтного сервера в главном узле РИБ. Именно к нему будут обращаться удаленные магазины.
Публиковать Web-сервер будем на стандартном WIndows Web сервере IIS. Его установку рассматривать не будем. Считаем, что он уже установлен и успешно работает.
Отметим только, что во избежание проблем с доступом, базу центрального узла не рекомендуется размещать на диске С. Публикация будет производиться из конфигуратора. При этом важно, чтобы запуск программы 1С производился от имени администратора вычислительной системы.
Для этого можно, установив мышку на ярлыке 1С:Предприятия, вызвать контекстное меню и выбрать пункт Запуск от имени администратора.
В окне запуска 1С:Предприятия выбираем базу центрального магазина и нажимаем на кнопку Конфигуратор.
Выбранному пользователю должен быть включен в группу доступа “Администраторы”.
В Конфигураторе для публикации Web-сервиса нужно в меню Администрирование выбрать пункт Публикация на веб-сервере.
Откроется окно “Публикация на веб-сервере”.
Можно переопределить автоматически сформированное имя на более понятное, например, “Discount”. При этом каталог публикации изменится в соответствии с изменившимся именем.
Остается определить список тех Web-сервисов, которые мы планируем опубликовать для данной базы. Нас интересует только Web-сервис “ДисконтныйСервер”.
После установки нужного флага следует нажать на кнопку Опубликовать. Система сообщает, что публикация выполнена и предлагает перезапустить Web-сервер.
Соглашаемся с перезапуском.
Настройка подключения к дисконтному серверу
В базе центрального узла создадим нового пользователя «Admin». Чтобы заведомо не возникало проблем с правами доступа, данного пользователя включим в группу доступа «Администраторы». Определим для пользователя простой пароль «123».
Настроим подключение к дисконтному серверу в подчиненных узлах.
В разделе Администрирование выберем команду Маркетинг. Откроется специальная форма настроек, из которой можно управлять настройками цен, скидок и наценок.
Здесь же присутствует и группа опций по управлению работой с дисконтным сервером.
Для увеличения нажмите на изображение.
Основной является опция Подключаться к дисконтному серверу. При выборе данной опции становится доступной Настройка подключения к дисконтному серверу.
В настройке подключения необходимо указать Адрес дисконтного сервера, при этом, чтобы получить формат для заполнения адреса, можно воспользоваться предлагаемым шаблоном.
http://ИмяСервера/ИмяСервиса/ws/DiscountService.1cws?wsdl
Поскольку все действия для примера производятся на одном компьютере, то в качестве параметра ИмяСервера можно использовать localhost. ИмяСервиса – имя публикации базы центрального узла Discount.
Остальные составляющие электронного адреса оставляем без изменения, как в подсказке:
http://localhost/Discount/ws/DiscountService.1cws?wsdl
В форме настройки подключения укажем имя ранее созданного пользователя и пароль.
Нажатием на кнопку Проверить проверим подключение к Web-сервису.
Удостовериться, что Web-сервис успешно работает, можно обратившись к нему через обычный Web-браузер.
В строке адреса браузера укажем путь к Web-сервису, который ранее указывали в настройках подключения к дисконтному серверу.
После аутентификации в браузере успешно отобразится описание созданного Web-сервиса.
Для увеличения нажмите на изображение.
Передача продаж по дисконтным картам в дисконтный сервер
Рассмотрим передачу информации о продажах из подчиненного узла в дисконтный сервер.
Сначала проверим показатели продаж по дисконтным картам в центральной базе. В разделе Продажи выберем команду Отчеты по продажам и сформируем отчет “Продажи по дисконтным картам” без указания периода.
Из отчета видно, что некоторые накопления по дисконтным картам уже есть. Выберем одну из карт, запомним ее номер и сумму продаж.
Отразим продажу по этой карте в подчиненном узле. В базе магазина на Октябрьском создаем новый документ “Реализация товаров” (раздел Продажи команда Реализация товаров из группы Создать).
В качестве дисконтной карты укажем выбранную ранее карту из отчета.
Для увеличения нажмите на изображение.
Проводим реализацию. Теперь необходимо проверить, что информация в дисконтный сервер успешно передалась.
Вернемся к настройкам дисконтного сервера (раздел Администрирование команда Маркетинг).
Здесь размещена команда по открытию протокола передачи продаж дисконтному серверу. В протоколе нет никакой информации.
Если обратиться к справке, то из описания данной формы следует, что это регистр сведений, и в нем должна храниться информация обо всех документах, которые были отправлены или ожидают отправки дисконтному серверу. Но мы видим, что это не так.
Для увеличения нажмите на изображение.
Вернемся в базу центрального магазина и переформируем отчет “Продажи по дисконтным картам”.
Сумма продаж по выбранной нами дисконтной карте заметно выросла. Расшифруем данный показатель до документа регистратора и увидим, что для суммы 3948 рублей указано, что объект не найден.
В скобках указано значение ссылки. Это значит, что регистратор действительно записан, но ссылка для данной информационной базы пока не понятна – в системе просто пока нет связанного с ней объекта.
И это совершенно нормальная ситуация: обычный обмен данными с подчиненным узлом еще не выполнялся, и документ реализации на данную сумму в центральный узел еще не поступил.
Выполним стандартный обмен между узлами РИБ. Сначала выгрузим данные из подчиненного узла в центральный узел (раздел Органайзер команда Синхронизация данных, выбираем нужный обмен и пользуемся командой Синхронизировать).
Затем повторим аналогичные действия в базе центрального магазина – выполним обмен данными с магазином на Октябрьском.
Убедимся, что документ реализации действительно появился в расшифровке отчета “Продажи по дисконтным картам”. Для этого переформируем расшифровку командой Сформировать.
Теперь документ движения отображается корректно. По префиксу документа понятно, что он создан в магазине на Октябрьском.
Получение продаж по дисконтным картам из дисконтного сервера
Посмотрим, как подчиненный узел будет получать информацию о продажах по дисконтным картам из дисконтного сервера.
В базе магазина на Октябрьском в разделе Продажи выберем команду Отчеты по продажам и в открывшейся форме выберем отчет “Продажи по дисконтным картам”. Формируем его без указания периода.
Обмен мы произвели, и в подчиненном узле теперь отображается полная сумма продаж по выбранной нами дисконтной карте.
В аналогичном отчете в центральной базе сумма та же.
Теперь создадим реализацию в центральной базе.
Для увеличения нажмите на изображение.
Проведем данный документ и проверим как изменился отчет “Продажи по дисконтным картам” в центральном магазине.
Сумма продаж в центральной базе увеличилась. Не выполняя никакого обмена данными перейдем в базу магазина на Октябрьском. Формируем в ней еще раз отчет “Продажи по дисконтным картам”.
В подчиненном узле информация в отчете не обновилась, так как обмена мы не выполняли, а отчет строится именно по данным текущей базы. Информацию от дисконтного сервера он не получает.
Для того, чтобы узнать какие накопления по дисконтной карте подчиненный узел увидит именно при обращении к дисконтному серверу, создадим новый Чек ККМ и воспользуемся командой просмотра накоплений по дисконтной карте.
В форме Чека ККМ указываем интересующую нас дисконтную карту. Справа от поля Дисконтная карта станет активной команда Просмотр накоплений.
Воспользовавшись ею, видим, что сумма накоплений меньше чем в отчете центральной базы. Но это данные на дату документа, а при создании она установилась на начало текущих суток. Документа реализации на тот момент еще не было.
Если мы установим текущее время в дате документа, то по команде увидим сумму равную информации в отчете базы центрального магазина.
Потеря связи с дисконтным сервером
Воспроизведем ситуацию потери связи с дисконтным сервером. Для этого просто остановим Web-сервер. Перейдем в панель управления компьютера (Пуск – Панель управления).
Откроем раздел Администрирование и выберем Диспетчер служб IIS.
Для увеличения нажмите на изображение.
В диспетчере служб IIS воспользуемся командой остановки Web-сервера Остановить.
Для увеличения нажмите на изображение.
После остановки Web-сервера связь с дисконтным сервером в подчиненном узле должна быть потеряна.
Удостоверимся в этом, и проанализируем, как поведет себя система. Запросим из чека ККМ информацию о накоплениях по указанной дисконтной карте.
Для увеличения нажмите на изображение.
Система показывает, что накопленная сумма продаж равна нулю. Информация о том, что нет связи с дисконтным сервером, отсутствует.
Попробуем в подчиненном узле отобразить еще один документ “Реализация товаров” и выберем все ту же дисконтную карту.
Для увеличения нажмите на изображение.
При проведении документа система выводит сообщение о том, что при обновлении накоплений в дисконтном сервере возникли ошибки.
Посмотрим информацию, содержащуюся в журнале регистрации (Администрирование – Поддержка и обслуживание – Журнал регистрации)
В комментарии к возникшей ошибке система 1С:Розница сообщает, что не может обновить данные дисконтного сервера о продажах, так как не может установить соединение.
Обратимся к протоколу передачи данных в дисконтный сервер (Администрирование – Маркетинг – Протокол передачи продаж дисконтному серверу).
В протоколе указан тот самый документ, при проведении которого из-за разрыва соединения данные в дисконтный сервер отправлены не были.
Также указывается номер дисконтной карты, сумма продажи и дата последней выгрузки (где указано, что данные ожидают отправки).
Для увеличения нажмите на изображение.
Возобновим работу Web-сервера и восстановим связь с дисконтным сервером (команда Начало в управлении Web-сервером).
Для увеличения нажмите на изображение.
В базе магазина на Октябрьском вновь воспользуемся командой просмотра накоплений и убедимся, что информация из дисконтного сервера поступает.
Но возникает вопрос: как быть с не отправленной ранее информацией по документу “Реализация товаров”?
Рассмотрим возможность отправки данных подчиненного узла не сразу по факту продажи, а с помощью специальной очереди передачи в дисконтный сервер.
В базе магазина на Октябрьском в группе настроек Дисконтный сервер (раздел Администрирование – Маркетинг) можно установить опцию Использовать очередь передачи дисконтному серверу.
Для увеличения нажмите на изображение.
При этом информация о продажах передаваться в дисконтный сервер будет не сразу при проведении соответствующего документа, а с периодичностью, которую мы установим в специальном регламентном задании Обновление продаж в дисконтном сервере.
Выполняя это регламентное задание система также будет повторять неудачные отправки данных о продажах по дисконтным картам.
Настроим регламентное задание в разделе Администрирование по команде Поддержка и обслуживание – Регламентные и фоновые задания. Откроется список регламентных и фоновых заданий.
Нас интересует регламентное задание Обновление продаж в дисконтном сервере. Оно используется и для отправки данных о продажах по очереди и для повтора неудачных отправлений.
Если задание в списке отсутствует, его необходимо добавить, воспользовавшись командой Добавить новый элемент.
Для увеличения нажмите на изображение.
Появится форма выбора шаблона регламентного задания, из которой следует выбрать задание Обновление продаж в дисконтном сервере.
Переведем данное задание в состояние Включено и запишем его (при желании можно настроить расписание его регулярного выполнения).
Обновив список, увидим в нем и новое задание.
Выберем данное регламентное задание, выполним по команде Выполнить сейчас, и обратимся к Протоколу передачи данных в дисконтном сервере.
Через меню Все действия выберем пункт Обновить и убедимся, что данные отправлены в дисконтный сервер.
Для увеличения нажмите на изображение.
Проверим, что эти данные были благополучно доставлены в дисконтный сервер. В базе центрального магазина переформируем отчет “Продажи по дисконтным картам”.
Продажи по дисконтной карте увеличились на сумму, указанную в переданном документе “Реализация товаров”.
В базе магазина на Октябрьском в новом Чеке ККМ запросим информацию о накоплениях по данной карте и убедимся, что накопления по дисконтной карте также увеличились на ту же сумму.
Для увеличения нажмите на изображение.
Передача данных о накоплении бонусов
Удостоверимся, что информация о накоплении бонусов тоже будет успешно передаваться между центральным и подчиненным узлами.
В справочнике “Скидки (наценки, ограничения)” ранее была создана настройка для начисления бонусных баллов при продаже.
Начисление производится в размере 5% от суммы продажи по бонусной программе “Семейная”, без всяких условий. Бонусные баллы начинают действовать сразу после начисления.
Выберем для эксперимента одну из бонусных карт и в базе подчиненного узла из нового Чека ККМ запросим информацию по бонусам данной карты.
Для увеличения нажмите на изображение.
Теперь в базе центрального узла создадим новый документ “Реализация товаров”.
Для увеличения нажмите на изображение.
После проведения в документе отобразится количество начисленных бонусов. Перейдем в базу магазина на Октябрьском и вновь проверим накопления бонусов для соответствующей карты.
Для увеличения нажмите на изображение.
Видим, что произошли изменения. К прежнему остатку были добавлены только что начисленные баллы. То есть информация о бонусах тоже была успешно получена из дисконтного сервера.
Скидки процентом от суммы предыдущей покупки
Проверим работу скидки процентом от суммы предыдущей покупки.
Ранее в справочнике “Скидки (наценки, ограничения)” такая скидка была предварительно создана. Размер скидки 5% и действует она при сумме продажи не менее 1000 рублей для вида дисконтной карты “Специальная”.
В базе центрального узла создадим новый документ “Реализация товаров”, в котором в качестве дисконтной карты выберем карту с видом “Специальная”.
Оформим продажу товаров на сумму 10000 рублей. При этом скидка на очередную покупку должна составить 5% от данной суммы, т.е. 500 рублей.
Для увеличения нажмите на изображение.
Переходим в базу подчиненного узла и оформляем продажу. В качестве дисконтной карты указываем ранее выбранную карту. После заполнения товаров в командной панели табличной части из меню Скидки (наценки) выберем команду Рассчитать скидки (наценки).
Для увеличения нажмите на изображение.
Система 1С:Розница рассчитала скидку в размере 500 рублей. На закладке Скидки видно, что это действительно скидка “5% от суммы предыдущей покупки”.
Для увеличения нажмите на изображение.
г. Кемерово
Если Вас заинтересовала эта тема
PDF-версия статьи для участников группы ВКонтакте
Мы ведем группу ВКонтакте – http://vk.com/kursypo1c.
Если Вы еще не вступили в группу – сделайте это сейчас и в блоке ниже (на этой странице) появятся ссылка на скачивание материалов.
Статья в PDF-формате
Вы можете скачать эту статью в формате PDF по следующей ссылке:
Ссылка доступна для зарегистрированных пользователей)
Ссылка доступна для зарегистрированных пользователей)
Ссылка доступна для зарегистрированных пользователей)
Ссылка доступна для зарегистрированных пользователей)
Игорь, добрый день. Подскажите, не могу разобраться как настроить подключение, если центр.розница(выделенный сервер WIN 2019 MS SQL) и удаленные магазины(розница) не в одной локальной сети? И можете помочь в этом вопросе?
Добрый день. Или рдп сервер, и работа на нем. Или веб сервер с публикацией на нем базы, и работа через тонкие клиенты из магазинов.
Если коротко, то так.
Если проблема более конкретная – сформулируйте более конкретный вопрос :)
Скажите пожалуйста дисконтный сервер в базовой версии Розницы 2.2 можно использовать?
Добрый день!
Для нормального полного функционирования дисконтного сервера используется в том числе и механизм распределенных информационных баз. Он используется для обмена основными данными (справочники клиентов, дисконтных карт, документы начисления и списания бонусов и т.п.).
В базовых версиях РИБ не поддерживается, поэтому потребуются ПРОФ версии.