Лицензирование
Поддержана общая система онлайн лицензирования;
Настройки
Типы тарифов
Карточка типа тарифа
Параметр "Задержка между посещениями одного ресурса (сек)" переименован в 'Задержка между входами в ресурс (сек)"
Новый параметр "Задержка между вЫходом и вХодом в ресурс (сек)". Если не 0, то доступ запрещен, если гость пытается осуществить проход до истечения времени задержки.
Этот параметр относится к посещениям по конкретному тарифу. Этот параметр НЕ ограничивает доступ в рамках других тарифов.
Типы абонементов
Карточка типа абонементов
Новый параметр "Бар-код".
Параметр "Примечание" стал многострочным. Максимальный размер 1024.
Общие параметры
Быстрая продажа:
Новый параметр "Менять плательщика при переключении с одной строки на другую в быстром чеке".
Новый параметр "При распределении в групповое мероприятие учитывать значение параметра «Максимум клиентов» по тарифу".
Если НЕ установлено (по умолчанию), то для гостя создается одно мероприятие.
Если установлено, то для гостя создаётся столько мероприятий, сколько указано «Максимум клиентов» в карточке тарифа, но не меньше одного.
Услуги и платежи
Карточка услуги/платежа.
Новый многострочный параметр "Примечание". Максимальный размер 1024.
Появились "Свойства" (см. ниже).
Используются для целей плагинов.
Свойства объектов
Карточка "Свойство объекта".
Параметр "Действует на" расширен значением "Справочник платежей".
Параметр "Действует на" расширен значением "Справочник услуг".
Быстрая продажа / Быстрый чек.
Кнопка "Аналогичный абонемент" доступна как в Быстрой продаже (было ранее), так и в Быстром чеке (новое).
В Быстрой продаже всегда требуется карта-идентификатор (как и раньше). Предлагается к выбору список абонементов, принадлежащих владельцу карты.
В Быстром чеке никогда НЕ требуется карта-идентификатор. Предлагается к выбору список абонементов, принадлежащих главному гостю (его данные в окне "О госте").
Шахматка мероприятий
ПКМ на мероприятии.
Новые пункты меню:
- Закончить.
- Закончить и перейти на фолио.
- Закончить и перейти к оплате.
Эти пункты доступны, если мероприятие находится в статусе "Выполняется".
Настройки
Справочники.
В "Типы рассрочек платежей" и "Шаблоны начислений" можно копировать строки содержания.
Группы абонементов.
Карточка группы абонементов.
Добавлен параметр "Цвет". Используется в Быстрой продаже.
Группы услуг / платежей.
Карточка группы услуг / платежей.
Добавлен параметр "Цвет". Используется в Быстрой продаже.
Общие параметры.
Вкладка "Гость".
Регистрационная карточка.
Новый параметр "Внешняя ПДС является основным источником информации о госте"
По умолчанию не установлено.
Вкладка "Оповещения"
Область уведомлений клиента
Новая группа параметров "Заканчивающиеся членства"
Если коды групп НЕ определены, то учитываются только типы абонементов с параметром "Это членство"
Если определены коды групп, то учитываются только они, а параметр "Это членство" игнорируется
В области уведомлений клиента появится пиктограмма "У выбранного клиента заканчивается членство"
Группа параметров "Заканчивающиеся абонементы"
Если коды групп НЕ определены, то учитываются только типы абонементов БЕЗ параметра "Это членство"
Если определены коды групп, то учитываются только они, а параметр "Это членство" игнорируется
В области уведомлений клиента изменилась пиктограмма "У выбранного клиента заканчивается абонемент"
Типы платежа.
Карточка типа платежа.
Новая вкладка "Требуется подтверждение-разрешение для VIP-кода".
Служит для настройки соответствия VIP-кода гостя и платежа.
На этой вкладке отображаются все VIP-коды, заведенные в БД.
Если ни один VIP-код не выбран, значит платеж доступен для всех гостей.
Если выбраны один/несколько VIP-кодов, значит платеж доступен для гостей с соответствующим VIP-кодом. При оплате потребуется предъявить/прокатать карту гостя для подтверждения.
Платеж НЕ доступен для гостей с другими VIP-кодами.
Типы абонементов.
Карточка типа абонемента.
Группа "Доступ и тарификация".
Новый параметр "Вход запрещен, если есть неоплаченные услуги"
По умолчанию НЕ установлен.
Если установлен, то при попытке входа рассчитывается сумма НЕ состыкованных услуг (любых: как доп. услуг, так и начисленных в рамках абонемента).
Если эта сумма превышает лимит кредита, то доступ запрещен.
Список клиентов
Если время формирования списка клиентов превышает 5 секунд, то параметр "Макс. кол-во записей" автоматически уменьшается на один уровень:
если было 1500, станет 100; 100->50; 50->20; 20->10.
Фильтр
Новое условие фильтрации "№Счёта". Позволяет осуществить группу гостей, объединенных одним счетом (чеком или пречеком).
Быстрая продажа/Быстрый чек
Контролируется соответствие организаций-собственников платежей и услуг. Если соответствия нет, то кнопка "Оплатить" недоступна.
Появилась информационная панель с иконками и подсказками с причинами невозможности нажать кнопку "Оплатить".
Проверка правил оплаты в быстрой продаже. Появились иконки.
Иконка - Не соблюдены условия оплаты.
Проверка соответствия организаций собственников платежей и услуг.
Иконка - Организации-собственники платежа и услуги не совпадают.
Проверка соответствия типа платежа и VIP-кода гостя.
Иконка - Нельзя использовать платеж для VIP-кода.
Быстрый поиск услуг, Быстрый поиск абонементов
В выпадающем списке отображались наименования. Формат отображения изменился. Отображается в виде: Наименование (Код).
Настройки
Услуги и платежи.
Новый параметр "СНО (Система налогообложения)".
в России: 0 - общее, 1-УСН доход, 2-УСН доход - расход, 3-ЕНВД, 4-ЕСН, 5-Патент
По умолчанию - 0.
Если в быстрой продаже (быстром чеке) есть позиции с разными СНО, то формируются фискальных чеков для каждой группы СНО.
В одном чеке не может быть услуг с разными СНО!
Общие параметры.
Услуги и платежи.
Новый параметр "Использовать систему налогообложения (СНО)".
Гость.
Регистрационная карточка.
Новый параметр 'Номер телефона должен быть уникальным в "Тел.1" и "Тел.2"'.
Список клиентов
Можно настраивать шрифт в полях, в которых отображаются балансы гостя. Используется ПКМ - "Установить шрифт".
Свойства объектов.
"Индивидуальное значение".
Может быть произвольной длины. Раньше было 50 символов.
Для редактирования используется многострочный редактор.
Настройки
Типы абонементов.
Карточка типа абонемента.
Группа "События и начисления".
Новый параметр "Стыковать платежи абонемента с доп. услугами, совпадающими с базовой".
Если установлено, то при начислении доп. услуги, совпадающей с базовой
а) через быстрый чек:
Услуге автоматически назначается абонемент, в рамках которого она будет начисляться.
При этом оплата за абонемент будет использоваться в зачете аванса за услугу.
б) через кнопку "Начислить доп. услугу":
Если в карточке транзакции не выбран абонемент, то будет предложено выбрать абонемент, в рамках которого произойдет начисление.
Услуга, у которой при начислении был назначен абонемент (вручную или автоматически), ведет себя и обрабатывается как все услуги, начисленные в рамках абонемента.
Общие параметры.
Горячие клавиши.
Новая горячая клавиша "Добавить гостя". По умолчанию CTRL+SHIFT+G.
Пользователи и роли.
Роли пользователей.
Функции.
Новая функция "Разрешено изменение действий со сдачей" в группе "Операции с деньгами"\"Наличные".
Детализация клиента
Карточка платежа.
Новый параметр "ПДС-карта". Это номер карты ПДС, с которой будет происходить списание/зачисление.
По умолчанию подставляется ПИН клиента.
Если карточка платежа вызывается из быстрой продажи (быстрого чека) при зачете аванса или по кнопке "Внести аванс", то подставляется "ПДС-карта" (если задана).
Абонементы.
Автоматическое распределение мероприятий.
Если установить "Учитывать типы тренировок", то параметры "Продолжительность" и "Клиентов" скрываются.
Учитываются соответствующие параметры из свойств типа события.
"Автоматическое распределение обычных мероприятий", "Автоматическое создание абонементов и распределение мероприятий".
Если установлен "Учитывать типы тренировок", то мероприятие создаётся с выбранным типом события.
Настройки
Скидки.
Содержание скидки и исключения скидки могут распространяться на категории услуги.
Общие параметры.
Быстрая продажа.
Новый параметр 'Разрешена доплата при оплате "По договору"'.
Гость.
Новый параметр "Проверять на дубликаты по обязательным полям при регистрации гостя".
Справочники.
Группы тарифов.
Новый параметр "Максимальное количество посещений в сутки по всем тарифам абонемента (0 - не контролировать)".
Распространяется на те тарифы, у которых установлено "Контролировать количество посещений" и "Контролировать количество посещений в сутки".
Список клиентов
Новый столбец "Членство до". В нем отображается дата окончания абонемента-членства. Если их несколько, то отображается максимальная дата окончания.
Область уведомлений.
Неактивированные абонементы.
Реагирует на клик ЛКМ. Откроется список неактивированных абонементов. Неактивированные абонементы можно активировать по ПКМ.
Добавить клиента.
После заполнения карточки нового клиента осуществляется поиск дубликатов. Поиск осуществляется без учета регистра по следующим обязательным полям:
- Имя;
- Отчество;
- Фамилия;
- Дата Рождения.
Если гости с такими же параметрами присутствует, то они отображаются в списке.
Связь с ПДС.
Выводится сообщение "Нет данных о карте ПДС", если внешняя ПДС недоступна или нет информации по карте - При следующих действиях:
- Быстрая продажа -> ПДС-карта;
- Фолио -> Начисление услуги на фолио -> Скидка по ПДС-карте;
- Фолио -> Зарегистрировать платёж -> ПДС-карта.
В случае, если поле ПИН в карточке клиента не соответствует PIN-у, полученному из ПДС, программа выдает пользователю предупреждение:
"Внимание! Предъявленная карта не принадлежит обслуживаемому гостю ФИО. Выполнить списание со счета гостя ФИО_гостя_из_ПДС?".
Если ПИН гостя не определен, то списание производится без проверки.
Действует при:
- регистрации платежа на фолио;
- оплате в быстрой продаже/быстром чеке. В этом случае предупреждение выдается на каждого гостя в чеке.
Быстрая продажа.
Аналогичный абонемент.
При распределении в доступные группы предлагаются мероприятия, время начала которых находится в пределах +-5 минут от мероприятий существующего абонемента.
Локализация.
В карточках поддержана локализация полей с кнопками.
Детализация клиента.
Абонементы.
По ПКМ можно активировать неактивированный абонемент.
Сценарии обслуживания клиентов.
Привязывание абонемента и идентификатора. Основной заказчик (где используется) - батутные клубы.
а) Общие настройки\Быстрая продажа\Выдавать идентификатор новому клиенту при оформлении чека\Абонементы.
Если выбрано "Не обязательно" или "Обязательно", то открывается новый параметр-галочка "Привязывать абонемент и идентификатор".
б) Если "Привязывать абонемент и идентификатор" установлен, то:
При регистрации абонемента в быстрой продаже выданные идентификаторы автоматически связываются с абонементом.
Если идентификатор ранее уже выдан или ранее привязан к абонементу, то будет выдано предупреждение "Нельзя прикрепить ранее прикрепленный идентификатор!".
в) Связь абонемента и идентификатора можно посмотреть.
- в списке идентификаторов. Новая колонка "Привязанные абонементы".
г) Привязать/отвязать НЕ связанные/связанные абонемент и идентификатор следующим образом:
В списке идентификаторов по ПКМ новые "Привязать к абонементу" и "Отвязать от абонемента".
д) Один Идентификатор может быть прикреплен только к одному абонементу.
При любой попытке прикрепления идентификатора к другому абонементу будет выдано сообщение "Нельзя прикрепить идентификатор к нескольким абонементам".
е) К одному абонементу может быть привязано несколько идентификаторов.
ё) Использование связи абонемент-идентификатор.
В gkhostconnect'e у параметра "Тип идентификатора" будет добавлено значение "Идентификатор клиента с привязанным абонементом".
Если установлено это значение, то попытка входа будет осуществляться только в рамках прикрепленного абонемента.
* Примечание "Тип идентификатора" - это атрибут устройства контроля доступа. В предложенной схеме доступ через одни устройства можно осуществлять с контролем привязанного абонемента, через другие устройства - без контроля привязанного абонемента.
Настройки
Общие параметры.
Быстрая продажа.
Новый параметр "Сворачивать товарные позиции в чеке". По умолчанию НЕ установлен - на ФР печатается столько позиций абонементов, сколько установлено в поле "Количество"
Если установлен, то при пробитии чека на ФР каждая позиция печатается одной строкой - Количество в чеке соответствует количеству на ФР.
Новый параметр "Группировать оплаты". Принимает значения "Группировать" (по умолчанию), "Не группировать".
Если установлено "Не группировать", то иерархия платежей не отображается, все платежи отображаются на одном (самом верхнем) уровне иерархии.
Собственники.
Киоски.
Карточка киоска.
Новый параметр "Показывать форму авторизации после снятия Z-отчета". По умолчанию включен.
Шахматка мероприятий
Параметры отображения шахматки мероприятий.
Цвет мероприятий.
Новое значение в списке - "Цвет специалиста".
Детализация клиента
Вкладка «Абонементы».
Новая колонка "Тип регистрации" со значением "Абонемент-Онлайн", в случае если клиент создан с использованием connecter'а.
Заморозки.
Карточка заморозки.
Отображается информация по использованным платным заморозкам и использованным заморозкам в рамках абонемента.
Ночной Аудит
Вкладки "Чеки" и "Нефискальные операции".
По ПКМ доступен пункт "Создать счет-фактуру". Создается счет-фактура на основе счета (чек, пречека или зачета аванса).
Настройки
Общие параметры.
Вкладка «Быстрая продажа».
Новый параметр "Трансфер абонементов на плательщика включен по умолчанию". Если установлен, то при быстрой продаже параметр "Трансфер абонементов на плательщика" всегда будет устанавливаться при создании нового чека.
В противном случае "Трансфер абонементов на плательщика" не устанавливается.
Вкладка «Абонементы».
Новая группа "Заморозки". Включает в себя:
"Продолжительность технической заморозки-приостановки";
"Отмена начавшихся заморозок".
Новый параметр "Правило выбора заморозок". Может принимать следующие значения:
- "Сначала бесплатные (по умолчанию)";
- "Сначала заморозки с минимальным остатком".
Типы абонементов
Карточка типа абонемента.
Параметр "Выбирать дату начала" изменился с переключателя на выпадающий список. В списке следующие значения:
- Не выбирать (учитывается "Дней на активацию");
- Выбирать режим активации;
- Активировать ДО выбранной даты;
- Активировать НА выбранную дату.
Типы тарифов
Карточка типа тарифа.
Новый параметр "Задержка между посещениями одного ресурса (сек)". В один и тот же ресурс можно войти только после задержки. 0 - задержка не контролируется.
Список клиентов
Детализация клиента.
Фолио.
Возврат платежа.
Появился новый режим возврата платежа - Возврат платежа, услуг и абонементов.
При выборе этого режима можно сделать одновременно возврат платежа, а также скорректировать услуги и деактивировать абонементы, входящие в чек продажи.
Из книги продаж можно получить все необходимые сведения для презентации продукта "Абонемент" потенциальному клиенту, а именно:
- Получить общую информацию по продукту "Абонемент" (тезисно);
- Уточнить информацию по подключаемым модулям и интерфейсам продукта "Абонемент";
- Выявить формат, особенности и потребности заведения заказчика;
- Подобрать базовую конфигурацию презентационного стенда и базовые технологии для определенных типов объектов.
Книгу продаж Вы можете найти по ссылке: bookofsales
Согласно требованиям закона ФЗ-54 в программе Абонемент, начиная с 137 версии, реализована работа организации-собственника в качестве комиссионера.
В упрощенном виде эта схема выглядит так. Поставщик (комитент) отдает свой товар на реализацию посреднику (комиссионеру). При этом право собственности на товар к последнему не переходит. Комиссионер продает товар покупателю, действуя от своего имени, но за счет комитента. Как только товар продан, комитент перестает быть его собственником. Комиссионер отчитывается перед поставщиком, отдает ему выручку за товар и получает свое вознаграждение.
Выдержка из закона 54-ФЗ
« Комиссионер при реализации товаров комитента обязан применять ККТ и учитывать требования Закона N 54-ФЗ, в частности выдавать покупателю кассовый чек, содержащий все обязательные реквизиты.
При этом для целей внесения в фискальные документы данных о том, что при расчете пользователь осуществляет расчет, являясь комиссионером, предусмотрены дополнительные реквизиты:
- реквизит "признак агента". При осуществлении расчета с покупателем (клиентом) пользователем, являющимся комиссионером, этот реквизит в фискальном документе в печатной форме принимает значение "КОМИССИОНЕР";
- реквизит "признак агента по предмету расчета" (в случае, если предметом расчета выступает товар (работа, услуга) комитента).
Также необходимо заполнять реквизиты "данные поставщика" и "ИНН поставщика", в которых указываются данные комитента (наименование и телефон поставщика, его ИНН).
В кассовом чеке, который покупателю выдает комиссионер при расчете за реализованный товар комитента, указывается система налогообложения комиссионера. Однако в кассовом чеке, выдаваемом при расчете за комиссионный товар, необходимо указывать ставку и сумму НДС в отношении этого товара, принадлежащего комитенту, применяющему общую систему налогообложения.
Обращаем внимание, что каких-либо разъяснений уполномоченных органов по вопросу особенностей применения ККТ и оформления кассовых чеков при осуществлении расчетов комиссионером, нами не обнаружено. Минфин России по вопросам технической реализации расчетов, о применении реквизитов и форматов кассовых чеков, а также о формировании кассовых чеков в зависимости от различных условий рекомендует обращаться в ФНС России.
Кассовый чек (БСО) должен содержать реквизиты, указанные в таблице 19 (п. 24 Приложения 2). При этом из анализа Приказа (пп. "о" п. 3 Приложения 1, таблицы 4, 5, 10, 21, 23 Приложения 2) можно выделить следующие реквизиты, относящиеся к комиссионной торговле:
- реквизит "признак агента", значения которого приведены в таблице 10. В примечании к данной таблице указано, что в кассовом чеке (БСО) соответствующий бит ("5" для комиссионера) реквизита "признак агента" должен указывать, что пользователь осуществляет расчет, являясь соответствующим агентом.
При осуществлении расчета с покупателем (клиентом) пользователем, являющимся комиссионером, этот реквизит в фискальном документе (далее - ФД) в печатной форме принимает значение "КОМИССИОНЕР"*(2);
- реквизит "признак агента по предмету расчета", значения которого приведены в таблице 21. При осуществлении расчета с покупателем (клиентом) пользователем, являющимся комиссионером, указывается "КОМИССИОНЕР";
- реквизит "данные поставщика", значения которого приведены в Таблице 23. В нем указываются данные лица, являющегося комитентом в соответствии с п. 1 ст. 990 ГК РФ, а именно, наименование и телефон поставщика;
- реквизит "ИНН поставщика" (п. 11 Примечаний к Таблице 20).»
Ссылка на полноценную статью - https://www.garant.ru/consult/nalog/1147366/
Необходимо завести поставщика (комитента) как Юр. лицо в договорной работе. При заполнении карточки Юр. лица необходимо учитывать заполнение полей «Краткое наименование», «Полное наименование», «ИНН», «Телефон основной», «Тел.1», «Тел.2», данные параметры будут отображаться в чеке фискального регистратора.
Пояснения:
Приоритетными полями в карточке Юр. лица являются:
Телефон поставщика (Приоритет: «Телефон основной», «Тел.1», «Тел.2»);
Наименование поставщика (Приоритет: Краткое наименование», «Полное наименование»);
ИНН поставщика (Приоритет: «ИНН»).
Рис. 1.1.
Настройки → Общие параметры → вкладка «Услуги и платежи» → установить параметр «Использовать данные комитента».
Рис. 2.1.
Настройки → Услуги и платежи → Услуги → Карточка услуги → выбираем организацию поставщика (комитента) → устанавливаем параметр «Комиссионный».
Рис.3.1.
! Параметры в карточки услуги «Поставщик (комитен)», «Комиссионный» снановятся доступными для отображения если в общих параметрах установлен парметр «Использовать данные комитента».
Рис. 4.1.
Рекомендуется выделенный сервер. Мощность сервера и кол-во ОЗУ должны выбираться исходя из количества одновременных подключений к серверу. Чем больше рабочих мест в заведении, тем выше необходима мощность сервера. Приведем пример серверного оборудования для среднего объекта с одновременно работающими в программе 10 клиентскими приложениями.
Процессор: Intel® Xeon® Processor E3-1220 v6, оперативная память: 16 Гб. Особое внимание на скорость работы и надёжность дисковой подсистемы. Рекомендуется установка работы дисков в режиме RAID 10 (RAID 0+1), с необходимым количеством свободного места минимум 500 Гб (лучше - больше). Для работы программы свободного места на жестком диске требуется не менее 10 Гб (при установке базы данных на данной машине). Средний объем БД программы составляет до 3 Гб. Размер пустой БД при установке ~ 30 Мб.
Так же рекомендуется уделить внимание надёжности и быстродействию сетевого интерфейса на сервере (и общей инфраструктуры сети в целом).
Для стабильной работы на сервере (или рабочем месте, если используется один и тот же компьютер) должна быть установлена операционная система Windows не ниже седьмой версии.
Если требуется работа с программой в режиме удаленного доступа, то необходимо развернуть сервер терминалов для удаленного подключения.
Программа использует сервер баз данных FireBird 2.5. Рекомендуется устанавливать в варианте SuperServer или Classic. По умолчанию FireBird настраивается на TCP\IP порт 3080. Можно установить и настроить на работу FireBird и на другом незанятом порту. Для обеспечения безопасности на сервере и клиентских рабочих местах, можно запускать любой сетевой экран, «пробросив» все необходимые для работы порты вручную.
Рекомендуется использовать бесперебойные блоки питания (UPS). Для машины, на которой установлена БД программы, наличие UPS обязательно.
Минимальные требования к рабочему месту среднего фитнес клуба (гостиницы до 100 номеров):
Центральный процессор Intel Core i3 2.4 GHz или AMD эквивалент.
Оперативная память - минимум 4 Gb.
Если данное рабочее место используется как касса быстрой продажи, то рекомендуется установить компьютер с Touch-экраном. Например, вот такой моноблок HP 24-g038ur All-in-One < X0Z57EA#ACB > (i3 6100U / 8 / 1TbSSHD / DVD-RW / WiFi / BT / Win10 / 23.8") – данная конфигурация является примером и может варьироваться от нужд и средств заказчика.
Сама СУБД FireBird в особых технических изысках не нуждается. Но, как правило, на рабочем месте установлены другое ПО (офисный пакет, браузер, почтовые программы, и т.д.), соответственно, данный компьютер должен иметь необходимое количество оперативной памяти и размер жесткого диска.
Видеокарта и монитор с поддержкой разрешения минимум 1366х768 (рекомендовано 1920х1080).
Клавиатура, мышь.
В минимальной конфигурации устанавливается 1 рабочее место. Данный компьютер также используется в качестве сервера, т.е. на нем хранится база данных программы (крайне не рекомендуемая конфигурация).
Данное рабочее место может быть оборудовано как стационарным компьютером, так и ноутбуком. В зависимости от требований заказчика, к данному компьютеру возможно подключение различного дополнительного оборудования.
· На сервере (где установлена БД программы) устанавливается USB ключ – ключ защиты.
· Программа подразумевает подготовку различной документации (регистрационные карты гостей, печать отчетности, счетов…), соответственно необходимо предусмотреть возможность подключения принтера формата A4. Обычно современные лазерные принтеры подключаются по интерфейсу USB. Возможно использование сетевого принтера.
· Программа может работать с различной фотоаппаратурой, которая используется для внесения графического изображения клиента в БД. Если предполагается использование не интегрированного устройства, то необходимо предусмотреть наличие аппаратного интерфейса для его подключения.
· Идентификация гостей может осуществляться с помощью различных информационных идентификаторов (магнитная карта, бесконтактная карта, iButtons…) как правило, данные считыватели подключаются по протоколу RS232, соответственно данный компьютер должен быть оборудован COM портом. Некоторые считыватели подключаются информационным каналом в RS232, а питание получают через PS\2.
· Подключение фискальных регистраторов. Большинство ФР подключаются к компьютеру по протоколу RS232. При одновременном использовании считывателя и ФР необходимо наличие как минимум 2 СОМ портов. Возможно использование PCI плат расширения.
· В программе информацию о клиентах (анкетные данные) чаще всего вносятся вручную с использованием клавиатуры. Если подключается внешняя клавиатура к ноутбуку не имеющего PS\2 интерфейс, то клавиатура должна быть USB, а на компьютере должен быть свободный USB порт. Если оператору не удобно использовать Touch Pad ноутбука, то возможно подключить мышь, так же через USB.
· Программа работает в полноэкранном режиме при разрешении не ниже 1280х1024. Как правило, монитор установленный на стойки администратора спрятан от глаз клиента и соответственно находится на некотором расстоянии от глаз администратора, соответственно для удобства работы диагональ монитора должна быть не менее 19 дюймов.
Необходимое количество COM и USB для подключения дополнительных устройств.
При установке дополнительного рабочего места необходимо стабильное постоянное сетевое соединения между компьютерами, подключение по WiFi не рекомендуется. Программа не требует папок открытых на доступ.
|
Абонемент Менеджер, основной модуль. |
Сервер и рабочие места должны быть объединены в Ethernet сеть. Если подключаются фискальные регистраторы, то необходимо уточнить модель и при необходимости оборудовать данные машины COM портами (протокол RS-232). Новые фискальные регистраторы для ФЗ54, как правило работают в эмуляции COM порта и подключаются в USB разъем. |
|
Фискальный регистратор |
Фискальный регистратор, как правило, подключается в COM-порт компьютера, если COM-порта нет, то потребуется переходник на USB, который либо идёт в комплекте с ФР, либо приобретается отдельно (например, кабель-адаптер USB AM - COM Port DataLink, TrendNet TU-S9). Новые фискальные регистраторы для ФЗ54, как правило работают в эмуляции COM порта и подключаются в USB разъем. Если фискальный регистратор приобретался в компании UCS, То необходимо предварительно подъехать с печатью для получения оборудования на складе. План подключения фискального регистратора ФЗ54: 1. Приобретается фискальный регистратор, согласованной модели или модернизируется старый.
2. Заказчик самостоятельно регистрирует его в налоговой, возможно через интернет на сайте налоговой.
3. Заключается договор с ОФД.
4. Заказчик самостоятельно настраивает фискальный регистратор для отправки данных на сервер ОФД. Проверяет работу через служебную утилиту Тест драйвера.
5. Инженер отдела технической поддержки Абонемент подключают данное оборудование к программе Абонемент.
Пункты 2-4 могут быть выполнены специалистами центра технической поддержки ЦТО при заключении соответствующего договора.
|
| Считыватель карт |
Считыватель MatrixIII подключается в COM-порт. (Потребуется переходник на COM). Считыватель Z-2 подключается в USB порт. В случае использования считывателей, приобретенных у сторонних поставщиков, необходимо согласовать с UCS возможность их интеграции. |
|
WEB камера |
Подключается внешняя Web-камера (по USB). Можно использовать камеру, интегрированную в ноутбук. |
|
Интеграция с турникетами |
При подключении любых моделей турникетов или турникето-подобных устройств, требуется предварительное согласование с инженерами отдела Абонемент. Работы по монтажу турникета, подведение электричества и слаботочных сетей, выполняются заказчиком. Более подробную информацию можно получить в разделе Подключение Турникетов |
|
Абонемент Онлайн |
Одна часть модуля устанавливается на сервер на объекте. Должен быть выделен белый внешний статический IP адрес и настроена маршрутизация порта 7779 из внешней сети во внутреннюю сеть объекта. Номер порта может быть изменен IT службой объекта. Другая часть устанавливается на хостинг провайдера. Требования к хостингу. - операционная система Linux 2.6; - версия Apache 2.2.17; - версия PHP 5.3; - возможность использования модулем библиотеки jQuery; - установленные модули: cUrl, Sessions, Sockets, Xml, SimpleXML, GD, bcmath, mbstring, iconv, DOM, возможность установки дополнительных модулей по требованию. Оптимально если на сайте провайдера будет создана папка. Наименование и место расположения относительно корня сайта - не принципиально. WEB сервер должен иметь доступ на чтение и запись в эту и все вложенные в нее папки. В компанию-инсталятора требуется предоставить FTP доступ с полными правами на данную папку. А так же URL адрес для работы с ней. |
|
Модуль SMS рассылки |
Необходимо заключить договор с провайдером, через который отправляются сообщения. Провайдеры смс рассылки, поддерживаемые Guest Announcer На компьютере, с которого отправляются сообщения, должен быть стабильный выход в Интернет. |
|
Выгрузка в 1С бухгалтерию
|
По умолчанию 1С через внешнюю обработку подключается к базе ПО Абонемент. Если 1С и ПО Абонемент находятся в разных подсетях, то выгрузка возможна через промежуточный текстовый файл. Необходимо сообщить, какая конфигурация 1С используется на объекте. Должно быть установлено: 1С предприятие 7.7 - платформа, Бухгалтерия 4.5 - релиз на этой платформе. или 1С предприятие 8.1 или 8.2 - платформы 1С. Бухгалтерия предприятия 2.0 - конфигурация, может запускаться на платформах 8.1, 8.2, 8.3. |
|
Интерфейс связи с системой сканирования (cognitive) |
Используется программа распознавания документов ScanifyAPI, разработанная компанией Cognitive Technologies (http://www.cognitive.ru). Сканер формата А5 модель Mini Flatbed USB2.0. К моменту установки данного модуля, сканеры и ПО Cognitive уже должно быть установлено. Сканеры для распознавания рекомендуется покупать у Cognitive, т. к. они адаптированы для работы с документами. |
|
Платежная система
|
Является дополнением к Абонемент Online. Должен быть заключен договор с одной из систем: Робокасса, Ассист. Или по запросу Заказчика из Onlne бронирования Shelter может быть перенесен Яндекс Кассса.
Установка данного модуля проводится после установленного модуля Абонемент Online
|
|
Банковский протокол |
Работа с банковским платежным терминалом может быть реализована 2-мя способами.
1. Автономный. Банковское оборудование не подключается к программе. При оплате картой, кассир сначала снимает деньги на платежном терминале, а потом регистрирует данную оплату в программе. В данной схеме рабобы данный модуль не требуется.
2. Совместный. Банковское оборудование подключено к программе. При оплате картой, кассир совершает оплату в нашей программе. Программа по средствам специально протокола команд посылает запрос в банковское программное обеспечение. Оно совершает оплату и возвращает ответ. Если операция успешна, то в нашей программе регистрируется платеж.
ПО "Абонемент" работает: - Со Сбербанком (см. статью http://support.ucs.ru/ru/node/8903) - С ГазПромБанком (см. статью http://support.ucs.ru/ru/node/8956) - С UCSCARDS (см. статью http://support.ucs.ru/ru/node/8970) - С протоколом Arcus2 (см. статью http://support.ucs.ru/ru/node/8973) К моменту подключения данного модуля терминалы должны быть установлены банковскими специалистами.
|
| Модуль "Монитор контролера" |
Монитор 15" и выше, процессор Intel Pentium >=1.6Ghz, >=512 Мб ОЗУ, >=1 Гб дискового пространства; IP-камера AXIS M1011-W для регистрации прохода через турникет (настраивается через утилиту gkHostСonnect). |
Рекомендации: т.к. много оборудования будет подключено в USB порты, то необходимо использовать USB хаб. Обратите внимание, что при покупке низкокачественного хаба, могут возникать отключения usb-устройств от ПК при перегрузке самого хаба.
EM4100 (EM4102, EM-Marin) - Относятся к классу пассивных RFID карт. Работает в частотном диапазоне 125 КГц. Наиболее распространены Clamshell-карты, ISO 7810-карты, брелки, браслеты.
Конкретный номер трека (рис.1) можно узнать с помощью программ HyperTerminal или Putty, настроив соединение с COM-портом на скорости 9600 (может варьироваться в зависимости от модели считывателя). При установившемся подключении, проведите/приложите карту к считывателю.

(Рис.1 Пример вывода трека)
Для дальнейшей работы с данной последовательностью символов, мы будем использовать утилиту TCPCardReader.exe, которая занимает COM-порт и передаёт данные со считывателя всем остальным утилитам, обращающимся к нему - они не взаимодействуют с портом напрямую, подключаясь по TCP протоколу к TCPCardReader'у и получая от него считанную строку. Подробное описание работы TCPCardReader'а. Схема взаимодействия ПО при получении номера карты отображена на рис.2.

(Рис.2 Схема, иллюстрирующая получение номера карты ПО Абонемент)
Рассмотрим параметры настройки tcpcardreader'а, которые находятся в файле tcpcardreader.ini:
|
[application] |
|
|
AutoStart = 1 |
Автоматически стартовать программу после запуска |
|
AutoHide = 1 |
Сворачивать программу после запуска |
|
[setup] |
|
|
COMPORTCOUNT=1 |
Количество подключений к СОМ портам. |
|
[TCP] PORT=7760 IP=0.0.0.0 |
TCP порт и адрес сетевого интерфейса, к которому будет производиться подключение клиентов. В данном примере возможно подключение с любого адреса сети. |
|
[READER1] COMPORT=3 COMPORTPARAMS=baud=9600 data=8 parity=N stop=1 |
Настройки подключения к СОМ-порту. Номер и параметры СОМ-порта. |
|
Prefix=;
|
Строка, которая передаётся клиентам перед первым прочтенным символом. В данном примере добавится символ: «точка с запятой» |
|
Postfix=?
|
Строка, которая передаётся клиентам после последнего прочтенного символа. В данном примере добавится символ: «Вопросительный знак» |
|
useDecodeCards=0 |
= 0 НЕ использовать декодирование decodecards.dll = 1 использовать декодирование decodecards.dll |
|
StartTermChars=; |
Используется, если useDecodeCards=1 |
|
FinishTermChars=?#13;#10;#0; |
Используется, если useDecodeCards=1 см.Примеры |
|
[LOG] level=30 debuglevel=30
|
Уровни логирования. Используются значения от 0 до 30 |
|
[TCPCARDREADER] |
|
|
Prefix=;
|
Строка, которая передаётся клиентам перед первым прочтенным символом. В данном примере добавится символ: «точка с запятой» |
|
Postfix=?
|
Строка, которая передаётся клиентам после последнего прочтенного символа. В данном примере добавится символ: «Вопросительный знак» |
|
[READER.1.CODEPARAMS.90] |
|
|
Prefix=;BarCode Postfix=? |
Специализированный префикс и постфикс для строк, уже прошедших декодирование после считывателя номер 1 и вернувшейся с кодом Code=90 (параметр Code задаётся в decodecards.ini) |
(Табл.1 Параметры TCPCARDREADER.INI)
[general] usemask=1 TrackResultLog= [mask] ;card_2 = arine[* card_bard=* ;card_d = * [cards.Card_d] code=2 ;CardDecodeType = LAST9 ;MaskType=ARRAYOFBYTES CardDecodeType = MASK mask=dddddddd* bitmask=$FFFFFFFF [cards.card_bard] code=2 [cards.Card] code=2
[cards] CardPrefix = StaffCardPrefix = y RegularCardPrefix = z PDSCardPrefix = x FirstSignEquallyAsLetterA = 0 [cards.Card] CardDecodeType = mask mask=hhhhhhhh bitmask=$7FFFFFFF code=2 [cards.RegularCard] code=22 [cards.StaffCard] code=21 [cards.PDSCard] code=24
Необходимо настроить параметры в файле abonementmanager.ini:
|
[TCPCardReader] PORT=7760 |
Порт TCPCardReader |
| HOST=127.0.0.1 |
Адрес сервера TCPCardReader |
|
UseTCPCardReader=1 |
Использовать TCPCardReader |
| StartChar = ; |
Признак начала трека для обращения в Decodecards.dll |
| StopChars = ? | Признак окончания трека для обращения в Decodecards.dll |
(Табл.2 Параметры abonementmanager.ini)
|
(Рис.1 Считыватель карт Iron Logic Z-2 USB) |
Считыватель бесконтактных карт Iron Logic Z-2 USB (эмуляция COM-порта). Средняя стоимость на Яндекс.Маркет: 4000 Руб.* |
|
(Рис.2 Считыватель карт Iron Logic Matrix III) |
Считыватель бесконтактных карт Iron Logic Matrix III RS-232i. При покупке данного считывателя не в компании UCS, стоит обратить внимание на то, что контактные провода не обжаты и считыватель необходимо монтировать определенным образом в зависимости от используемой схемы работы, что может оказаться очень трудоемким и проблематичным занятием. Рабочая температура от 0 до +40 градусов C, имеет влаго и пыле защитный корпус. В случае приобретения считывателей в компании UCS, они будут переданы заказчику в доработтаном под его объект виде. Средняя стоимость на Яндекс.Маркет: 4300 Руб.*
|
|
(Рис.3 Принтер для печати на пластиковых картах Evolis pm1h0000bs) |
Принтер для печати на пластиковых карточках Evolis pm1h0000bs. Средняя стоимость на Яндекс.Маркет: 115000 Руб.* |
|
(Рис.4 Сканер штрих кодов Metrologic ms 5145 USB) |
Сканер штрих кодов Metrologic ms 5145 USB интерфейс USB (с эмуляцией COM-порта). Средняя стоимость на Яндекс.Маркет: 4400 Руб.* |
|
(Рис.5 Сканер штрих кодов Datalogic QuickScan Lite QW2100) |
Сканер штрих кодов Datalogic QuickScan Lite QW2100 черный сканер штрих-кода с подставкой и кабелем USB. QuickScan Lite QW2100 - считывает штрих-коды с экранов смартфонов без проблем (проверяли на смартфонах: Apple, Asus, Samsung) Средняя стоимость на Яндекс.Маркет: 5800 Руб.* |
|
(Рис.6 Беспроводной сканер Datalogic QuickScan QBT2400) |
Беспроводной сканер Datalogic QuickScan QBT2400 с подставкой и кабелем USB. QuickScan QBT2400 - считывает штрих-коды и QR-коды в том числе и с экранов смартфонов (проверяли на смартфонах: Apple, Asus, Samsung) Средняя стоимость на Яндекс.Маркет: 14500 Руб.*
|
|
(Рис.7 Принтер чеков Posiflex Aura 6900 LAN) |
Принтер чеков Posiflex Aura 6900 LAN интерфейс. Средняя стоимость на Яндекс.Маркет: 8300 Руб.* |
|
(Рис.8 Термопринтер печати этикеток ZEBRA LP 2824 Plus, Пример напечатанной этикетки с баркодом из ПО "Абонемент") |
Термопринтер печати этикеток ZEBRA LP 2824 Plus USB+RS-232 (либо LPTi) интерфейс. Средняя стоимость на Яндекс.Маркет: 15000 Руб.* |
|
(Рис.9 Камера Defender G-lens 2597 HD720p) |
Камера Defender G-lens 2597 HD720p (2 Мп, автофокус, слежение за лицом). Средняя стоимость на Яндекс.Маркет: 1500 Руб.* |
|
(Рис.10 Плата расширения Orient XWR-PE2S) |
Плата расширения Orient XWT-PE2S (контроллер COM-порта). Средняя стоимость на Яндекс.Маркет: 850 Руб.* |
|
(Рис.11 IP-камера AXIS M1011-W) |
IP-камера для регистрации прохода через турникет. AXIS M1011-W. Средняя стоимость на Яндекс.Маркет: 7950 Руб.* |
|
(Рис.12 Сканер 2-D кодов Zebex Z 3192 RS232) |
Сканер двумерных 2D кодов Zebex Z 3192 RS-232 (c блоком питания – можно использовать на рабочем месте администратора). Средняя стоимость на Яндекс.Маркет: 23500 Руб.* |
|
(Рис.13 Сканер 2-D кодов Zebex Z 6112 RS232) |
Сканер двумерных 2D кодов Zebex Z 6112 RS-232 (с блоком питания – можно установить на турникет и подключить к игровому контроллеру UCS). Средняя стоимость на Яндекс.Маркет: 23500 Руб.* |
|
(Рис.14 Сканер двумерных 2D кодов ds7708 2D vertical slot scanner) |
Сканер двумерных 2D кодов ds7708 2D vertical slot scanner RS-232 (Подходит для установки на турникет и подключения к игровому контроллеру UCS, протестирован на считывание ШК с экрана мобильного телефона). Монтажная площадка и уголок для крепления заказывается отдельно. Средняя стоимость на Яндекс.Маркет: 15000 Руб.* |
|
(Рис.15 Сканер магнитных карт с декодером Cipher 1023) |
Считыватель магнитных карт Cipher 1023 RS-232. Для подключения к ПК в режиме виртуального COM-порта необходим интерфейсный кабель CipherLab USB Virtual COM(дополнительный) к 1023, 1045 или шнур RS232C-9pin для1023 для работы с COM-интерфейсом напрямую. SW1: Этот переключатель должен находиться в положении ВКЛ. SW2: Разрядность данных ВКЛ - 8 разрядов данных ВЫКЛ - 7 разрядов данных SW3 - SW4: Контроль по четности ВКЛ ВКЛ - Проверка четности выключена ВЫКЛ ВКЛ - Проверка на четность ВКЛ ВЫКЛ - Проверки на нечетность SW5 - SW6: Скорость (битов в секунду). ВКЛ ВКЛ 38400 битов в секунду. ВЫКЛ ВКЛ 19200 битов в секунду. ВКЛ ВЫКЛ 9600 битов в секунду. ВЫКЛ ВЫКЛ 2400 битов в секунду. SW7 - SW9: Режим передачи ВКЛ ВКЛ ВКЛ - Передача данных только на порт А (2 порта) ВЫКЛ ВКЛ ВКЛ - Передача данных только на порт В (2 порта) ВКЛ ВЫКЛ ВКЛ - Передача данных одновременно на порты А и В (2 порта) ВЫКЛ ВЫКЛ ВЫКЛ - Режим подтверждения связи RTS/CTS отключен (1 порт) ВЫКЛ ВЫКЛ ВКЛ - Готовность данных (1 порт) ВКЛ ВКЛ ВЫКЛ - Готовность сканера (1 порт) Рекомендуемое положение переключателей: (1-5: ВКЛ, 6-9: ВЫКЛ). (Для корректной работы с ПО Абонемент, данные считыватели необходимо перевести в режим "Режим подтверждения связи RTS\CTS отключен") Средняя стоимость на Яндекс.Маркет: 7500 Руб.*
|
|
(Рис.16 Планшетный сканер OpticSlim 550 Plus) |
Планшетный сканер Plustek OpticSlim 550 Plus Интерфейс USB (рис. 15). Модель идеально подходит для сканирования паспортов, других документов, удостоверяющих личность, кредитных карточек, водительских прав, медицинских страховок, чеков, фотографий или любых других документов. Совместим с системой распознавания документов Cognitive. Средняя стоимость на Яндекс.Маркет: 20500 Руб.* |
|
(Рис.17 - STLab - PCI плата расширения COM) |
Часто возникает необходимость подключать устройства, работающие через RS-232 протокол к компьютерам, которые не имеют COM-портов. Для стационарных компьютеров можно использовать PCI-платы расширения. На Рис.9 и 16 изображены примеры контроллеров, которые можно использовать. Средняя стоимость на Яндекс.Маркет: 800 Руб.* |
|
(Рис. 18 - пример кабеля TRENDnet TU-S9) |
Переходник TRENDnet TU-S9 (USB на RS-232) изображенный на Рис. 17, можно использовать для ноутбуков. Сначала устанавливаем драйвер, потом подключаем провод в USB. Средняя стоимость на Яндекс.Маркет: 800 Руб.* |
|
(Рис. 19 - STLab device U-224) |
Переходник STLab device U-224, изображенный на Рис.18 также подходит для использования с ноутбуком. Сначала устанавливаем драйвер, потом подключаем провод в USB. Средняя стоимость на Яндекс.Маркет: 800 Руб.* |
|
(Рис.20 - MSI Pro 16 Flex-029RU) |
Моноблок MSI Pro 16 Flex-029RU, изображённый на Рис.19 прекрасно подходит для использования в качестве мини-ПК для установки веб-модулей Абонемент, таких, как "Интерактивный Солярий" и "Монитор тренера". Моноблок имеет тач экран диагональю 15.6'', 2xUSB и 2xСOM входа, поддерживает подключение к интернет и через Wi-Fi, и по проводу, а также имеет достаточную вычислительную мощность для работы с указанными модулями. Средняя стоимость на Яндекс.Маркет: 29000 Руб.* |
|
(Рис.21 - Activecam AC-2141IR3) |
Миниатюрная уличная корпусная 4Mp IP-камера Activecam AC-2141IR3 с ИК-подсветкой и сверхшироким углом обзора. Подходит для использования с модулем "Монитор контролера" |
|
(Рис.22 - Принтер TT Сitizen CL-S321, Этикетки Z-Ultimate 3000T White 51х25 мм (2580 эт., TLP), Красящая лента Смола Zebra 5095 64/74) |
1. Принтер TT Сitizen CL-S321 (200dpi, серый, Etherneti, RS232, USB). Легкий в использовании, экономичный принтер, который обеспечивает надежную каждодневную печать. Принтер поддерживает EPL2, что позволяет просто включить его и сразу начать печать из уже установленных приложений. Поддерживает не только Ethernet, но и RS-232 и USB интерфейсы;
2. Красящая лента Смола Zebra 5095 64/74;
3. Этикетки Z-Ultimate 3000T White 51х25 мм (2580 эт., TLP).
Красящая лента и этикетки используются в данной модели принтера совместно, на выходе получаются самоклеющиеся стикеры на смоляной основе (не стираются), что удобно для их нанесения на различные виды инвентаря и т.п.
Средняя стоимость на Яндекс.Маркет: 21000 Руб. (стоймость этикеток и красящей ленты: ~3000 Руб. )*
|
|
Рис.23 - Считыватель ESMART Reader серии POS |
Считыватель ESMART® Reader серии POS предназначен для систем лояльности розничных сетей. Данный считыватель, разработанный и произведенный в России, идеально подходит для магазинов, ресторанов, клубов и любых предприятий ретейла, где применяются скидочные, накопительные и клубные программы.
Считыватель ESMART® Reader серии POS работает с картами и мобильными телефонами по NFC - дальность идентификации до 7 см, с мобильными - по Bluetooth LowEnergy (BLE) - до 10 м. Надежное считывание информации о клиенте по Bluetooth Low Energy позволит идентифицировать вашего клиента еще при входе в магазин и обеспечить оптимальные условия обслуживания. Обеспечивает создание систем лояльности на базе мобильных устройств, эффективен для развития уже существующих бонусных программ.
Назначение:
Обеспечение идентификации клиентов с помощью iPhone, Android, идентификаторов ESMART®Доступ и карт на базе чипов NXP MIFARE®
(Считыватель поддерживает несколько популярных технологийMIFARE® CLASSIC, MIFARE® PLUS, MIFARE® DESFIRE, идентификаторы могут содержать в себе транспортные приложения большинства городов РФ, СНГ и мира)
Особенности:
Размещается в прикассовой зоне в клубах, ресторанах, торговых сетях, развлекательных центрах, на АЗС.
Работает с компьютерами, кассами, POS-терминалами и другими хост устройствами, имеющими USB-порт на ОС Windows, Linux, macOS, Android. Базовый режим работы HID-клавиатура, дополнительно возможна эмуляция COM-порта.
|
|
Рис.24 - Компактный двумерный сканер Honeywell HF500 |
Отличается превосходными рабочими характеристиками, компактным размером и широкими возможностями внедрения.
Новый компактный фотосканер YOUJIE HF500 обеспечивает высокое качество считывания любых линейных и двумерных штрихкодов, а также кодов PDF.
Благодаря простой и компактной конструкции модель HF500 идеально подходит для использования в составе различного
оборудования для самообслуживания: в киосках, билетных или торговых автоматах (с контроллерами UCS данная модель совместима при установке значения скорости 9600 бод (у считывателя скорость передачи в COM-порт имеет значение 115200 (по умолчанию) и изменяется с помощью баркода Datalogic Magellan Bioptic Settings))
HF500 заключен в эргономичный привлекательный корпус с четкой светодиодной индикацией. Применение
технологии интеллектуальной обработки изображений высокого разрешения гарантирует отличное качество
сканирования штрихкодов и оцифровки изображений.
HF500 способен безупречно декодировать штрихкоды даже с сильно отражающей поверхности — например, двумерные
коды с экрана мобильного телефона. Это избавляет пользователей от необходимости приобретать дополнительное
специализированное оборудование.
Средняя стоимость на Яндекс.Маркет: 8500 Руб *
|
* - данные "Яндекс.Маркет" по состоянию на Сентябрь 2017 года
| CashCode SM по протоколу CCNET | ![]() |
| CashCode GX по протоколу CCNET | ![]() |
Работа с данными купюроприемниками протестирована и гарантирована. Возможна также работа с другими купюроприемниками, работающими по протоколу CCNET, но тестирование с ними не проводилось.
| Custom VKP-80 | ![]() |
Возможно также работа с любым Windows-принтером. ПО Абонемент работает с принтером с помощью стандартных средств системы.
| Казначей ФА в паре с VKP-80 | ![]() |
|
Диспенсер бесконтактных карт Creator CRT-571-ER-BNJ со встроенным считывателем бесконтактных карт с вместимостью до 500 шт. Рекоемендуется к использованию, за возможность проверки корректности считывания карты и наличия лотка для забракованных карт. Подходит для использования в инфотерминале для выдачи идентификаторов при регистрации гостей. Позволяет выдавать и сразу же прикреплять идентификатор к гостю. (Поддерживает только карты Mifare) |
![]() |
|
KYT-2244C1 в паре со считывателем IronLogic Z-2 Прим.: считыватель Z-2 приобретается и монтируется на диспенсер карт отдельно, 100% успешное считывание карт не гарантируется. |
![]() |
ПО Абонемент не работает напрямую с данным оборудованием, а взаимодействует с ним с помощью API ПО процессинга. Подробнее о поддерживаемых процессингах можно прочитать в разделе Банковский протокол.
| Пример крепления "десктопного" банковского терминала на киоск самообслуживания | ![]() |

| Puloon ECDM | ![]() |
| Puloon LCDM | ![]() |
С версии ПО Абонемент 132 корневая директория архива поставки (FullVesrsionVerXXX.rar) содержит в себе следующие каталоги:
| Наличие в названии нижнего подчёркивания или двух позволяет разделить каталоги по критерию значимости, при стандартной сортировке по имени | |
|
Данный каталог содержит всё необходимое для развёртывания сервера ПО Абонемент |
|
Данный каталог содержит всё необходимое для развёртывания базового рабочего места ПО Абонемент |
|
Данный каталог содержит все доступные интерфейсы со сторонними системами (ПДС) и оборудованием (ФР, купюроприёмники, банковские терминалы, распознавание документов), подключаемые на рабочих местах |
|
Данный каталог содержит основные модули ПО Абонемент (Абонемент-Онлайн, модуль работы с турникетами, модуль email и sms рассылки и т.д.) |
|
Данный каталог содержит всевозможные утилиты, предназначенные для расширения функционала или упрощения тех или иных действий |
|
Данный каталог содержит имеющуюся документацию, в том числе Руководство пользователя. |
|
Данный каталог содержит не попавшие в какой-либо из предыдущих каталогов состовляющие поставки |
|
Актуальный файл версионных изменений |
Содержание каталога:
| FireBird_2_5 | Поставка FireBird версии 2.5 |
| IBData | Поставка пустой БД, начального скрипта, bat-файлов для резервного копирования и восстановления БД |
| Licence | Поставка ПО для разворачивания сервера блокировок |
| OS | Сторонние утилиты ОС, такие как IBExpert,..., и т.д. |
| Server | Файлы библиотек FireBird UDF и серверный конфигурационный файл |
| skins | Директория файлов пиктограмм |
| updatesql | Директория версионных скриптов обновления БД |
Подробнее про процедуру развёртывания сервера см. в соответствующем разделе.
Содержание каталога:
| exe | Поставка основного модуля рабочего места ПО Абонемент |
| LIB | Поставка необходимых библиотек для работы ПО |
| localize |
Поставка файла локализации основного модуля и скрипта локализации БД (с русского на английский) |
| REPORT | Поставка модуля отчётов |
| TcpCardReader | Поставка утилиты фонового взаимодействия со считывателями |
| template | Набор шаблонов FastReport (Шаблон договора для договорной работы, шаблон Z-отчёта, и т.д.) |
Подробнее про процедуру развёртывания рабочего места см. в соответствующем разделе.
Содержание каталога:
| HW |
Интерфейсы взаимодействия с оборудованием
|
| HW\MoneyAcceptor | Интерфейс работы с купюроприёмниками (Используется в connecter для киосков самообслуживания) |
| HW\POS | Интерфейс взаимодействия с фискальными регистраторами (ФР) |
| HW\POS\DRIVERS | Библиотеки взаимодействия c ФР |
| HW\POS\DRIVERS\OLD | Библиотеки старого образца |
| HW\POS\DRIVERS\URUNPOS | Библиотеки универсального драйвера фискального регистратора |
| HW\POS\Uxml-rpc | Утилита для подключения нескольких рабочих мест к одному ФР |
| HW\runcc | Интерфейс с банковскими терминалами работающими через ПО Arcus2 |
| HW\Scan | Интерфейсы с системами распознавания документов |
| HW\Scan\regula | Интерфейс с системой распознавания документов Regula |
| HW\Scan\csrecog | Интерфейс с системой распознавания документов Cognitive |
| HW\Terminal | Интерфейс с банковскими терминалами работающими через прочее ПО (подробнее см. в разделе) |
| Other | Прочие интерфейсы (ArchiMed, ISD Metra) |
| PDS | Интерфейсы взаимодействия со внешними ПДС-системами |
| PDS\GameKeeper | Интерфейс к ПДС GameKeeper |
| PDS\PDS-RK | Интерфейс к ПДС Rkeeper |
| PDS\Rkeeper_CRM | Интерфейс к Rkeeper CRM 5 |
| PDS\SH_Cards | Внешний интерфейс к Абонемент через FarCards |
| PDS\urunpds | Интерфейс к ПДС UDS Game |
| UDPPrn | Интерфейс взаимодействия с UDP принтерами |
Содержание каталога:
| _WEB | Поставка веб частей web-модулей Абонемент |
| AbonementOnline | Модули "Абонемент-Онлайн" и "Монитор Тренера" (Веб часть) |
| Access_Control_Monitor | Модуль "Монитор контроллёра" |
| Connecter | Модуль Connecter - основа веб модулей Абонемент |
| CRMOnline | Модуль выгрузки данных в CRM Битрикс 24 |
| eventsservice | Модуль автоконтроля мероприятий и EFT списаний |
| gkhostconnect | Модуль "Управления турникетом" |
| GuestAnnouncer | Модуль email и sms рассылки |
| ImportTo1C | Модуль "Выгрузка в 1С" |
| InfoKiosk | Модуль "Инфокиоск" (Веб часть) |
| InfoPlazma(Monitor) | Модуль "Инфоплазма" |
| MonitorForClient | Модуль "Монитор для покупателя" |
Содержание каталога:
| _BAT |
Набор .bat - ориентированных утилит, для автоматизации тех или иных действий (Автоперевод смены, автовывод всех присутствуюющих гостей из ресурсов, и т.д.) |
| _TURN | Утилиты для взаимодействия с оборудованием контроля доступа и релейными блоками |
| _UPDATE | Утилиты необходимые для настройки автообновления клиентов с сервера |
| anonymizer | Утилита для анонимизации БД |
| developerdll | Поставка модуля договорной работы |
| EFT | Утилита для EFT списаний |
| ExportData | Утилита для настройки выгрузки в StoreHouse |
| ExportTo | Утилита для экспорта данных |
| IbHistory | Утилита для настройки логирования действий в БД |
| ImportAB | Утилита для изначального импорта данных в БД |
| mailcarrier | Утилита для автоматической рассылки файлов на email (часть mailreport) |
| mailreport | Сборка утилит для автоформирования отчётов и их автоматической отправки на email |
| PReport | Утилита для автоформирования отчётов (часть mailreport) |
| ServMonitor | Утилита, мониторинга работоспособности модулей и событий на сервере |
| ServStat | Утилита для формирования и передачи данных на сервер статистики |
| StarterA1 | Утилита, контроллирующая запуск прочих утилит |
Содержание каталога:
Документация ПО Абонемент.
Названия файлов говорят сами за себя.
За актуальной информацией следите на http://support.ucs.ru/
Содержание каталога:
Прочие утилиты и интерфейсы, которые более не будут поддерживаться.
Предложения изменений:
В связи с исправлениями в работе ПДС, и состоянием на данный момент, требуется RunPDS.dll перед выходом версии переместить в "_INTERFACE\PDS\"
Недостающие статьи:
ExportTo
CRM Битрикс 24
Информация по шаблонам в template
На данный момент актуальной версией является 129, поэтому папка называется FullVersionVer129.
1. Создайте папку FITNESS скопируйте в неё папки LIB, Licence, skins из папки \fullVersionver…
2. Папку LIB (например, C:\_UCS\FITNESS\LIB) нужно добавить в системную переменню переменную PATH - см. пункт 7.
3. Создайте папку IBDATA в папке FITNESS и из \fullVersionver...\Empty скопируйте в неё fitness.fbk (backup пустой базы) и файл ibsh.errors.ru
4. Из папки \fullVersionver…\Server\INI.SERVER скопируйте файл shelter.IB.ini в системный каталог (папка C:\Windows\), предварительно настроив его (может не быть прав на изменение файла в системной папке). Параметры настройки файла:
[General] Messages = "C:\FITNESS\IBDATA\ibsh.errors.ru" ;путь до файла ibsh.errors.ru skins = "C:\FITNESS\skins\skins.ini" ;путь до файла skins.ini
!!!ВНИМАНИЕ!!! Для исключения возможности необоснованного роста базы данных и других неиисправностей связанных с работой СУБД, необходимо использовать дистрибутив Firebird 2.5.3 из дистрибутива ПО "Абонемент" ( \fullVersionver...\FireBird_2_5\)
6. Скопируйте содержимое папки \fullVersionver...\FireBird_2_5 в C:\Program Files (x86)\FireBird\FireBird_2_5
7. Папку C:\Program Files (x86)\FireBird\FireBird_2_5\UDF\ добавить в системную переменную PATH. Для этого необходимо:
Зайти в свойства компьютера → Дополнительные параметры системы → Переменные среды → в списке переменных найти «Path» и к ее значению в начале дописать путь до папки (см. Рис. 1)

Рис. 1 - Добавление в переменную Path путей до папок
8. В файле C:\Program Files (x86)\FireBird\FireBird_2_5\Firebird.conf найти параметр RemoteServicePort и указать для него значение 3080
9. Установить службу с помощью bat-файла C:\Program Files (x86)\FireBird\FireBird_2_5\bin\install_super_shelter.bat (выполнять от имени администратора).
10. Проверить, запущена ли служба FireBird. Если нет — запустить её вручную через "Службы" Windows.
11. Добавить пользователя UCS, запустив bat-файл C:\Program Files (x86)\FireBird\FireBird_2_5\bin\addUserUCS.bat
12. Если на машине используется только одна версия Firebird, файл fbclient.dll нужно копировать, копию переименовать в gds32.dll и поместить в папку C:\Windows\System32\
Если версий Firebird несколько, необходимо разместить файл gds32.dll, взятый из необходимой версии Firebird, под .exe-файлами тех программ, которые в словей работе обращаются к БД (например, в папке Abonementmanager данный файл уже имеется изначально).
13. В первый раз программы нужно запустить от имени администратора, иначе необходимо вручную зарегистрировать midas.dll из папки \LIB\ и frDlgDef.dll в папке \Reports\dll\ с помощью следующей команды (прописать в консоли windows, запущенной от имени администратора):
regsvr32 C:\_UCS\FITNESS\LIB\midas.dll regsvr32 С:\_UCS\FITNESS\REPORTS\DLL\frDlgDef.dll
Установка и настройка производится как правило на машине, являющейся сервером (на котором хранится база данных).
В зависимости от типа вашей ОС, установите драйвер для электронного ключа из папки \FITNESS\Licence\drivers_Guardian_5.50 или \fullVersionver…\Licence\drivers_Guardian_5.50Х64 .
Вставьте ключ в USB-порт.
ВАЖНО
Абонемент версии 1.127 и выше может работать только с сервером блокировок версии 2.3.18.7 и выше.
В папке FITNESS\Licence\2.3 настройте ServerT1.ini:
[server] TCPHost = 0.0.0.0 TCPPort = 1111
Остальные секции заполнять не обязательно. Проверьте, что номер порта совпадает с указаным в файле Abonementmanager.ini и Freports.ini.
Также рекомендуется заполнить параметры:
KeepAliveTimeOut = 180 CheckForGracefulDisconnect = 1
SEND_KEEP_ALIVE=1
Также сервер блокировок позволяет вести черный список IP-адресов (0 - белый список,1 - черный список), за это отвечает секция [LockServerBlackList] в которой по порядку указываются IP-адреса:
[LockServerBlackList] 127.0.0.1=0 127.0.1.2=1
Для версий Абонемента ниже 127 в abonementmanager.ini в секции [LOCK.SERVER] нужно указать версию строкой
version = 2.3
Сервер в данной реализации устанавливается в качестве службы с помощью ключа -install. Запускать нужно от имени администратора. Должно появиться сообщение "Служба успешно установлена".
В папке FITNESS\Licence\2.1 настройте ServerT1.ini:
[SERVER] TCPHost = 0.0.0.0 TCPPort = 1111
Проверьте, что номер порта совпадает с указаным в файле Abonementmanager.ini и Freports.ini.
ServerT1.exe пропишите в автозапуск или воспользуйтесь программой StarterA1.exe (лежит в папке \FullVersionVer...\UTILS) (см. Приложение 4 - Отслеживание автоматического запуска приложений с помощью StarterA1).
Запустите ServerT1.exe
В окне Server S-S2 проверьте ключ через кнопку "Key info", затем сверните окно при помощи кнопки "Hide window" (см. Рис. 2):

Рис. 2 - Проверка имеющихся лицензий в ServerT1
Для того, чтобы изменить или перевести текст ошибок, которые появляются при запуске Abonementmanager в связи с сервером блокировок, необходимо:
-Запустить ярлык servert1.exe с ключами \desktop \SAVELANGUAGE
-В месте хранения exe-файла появится папка \lng\ и файл default.lng
-Поиском по файлу нужно найти строки s20007d05, s20007d06, s20007d14, s20007d1e, s20007d28 и перевести/изменить их.

С версии Абонемент 138 в сервере блокировок Абонемент поддержана работа с онлайн лицензированием UCS через l.ucs.ru
|
Работа в таком случае происходит только с виртуальным ключом. Для перехода на онлайн лицензирование необходимо:
Для возвращения в режим работы с физическим ключом, достаточно просто снять галку "Online" в меню "Setting licence online". |
Рис.1 Окно настройки сервера блокировок на работу в режиме онлайн лицензии |
Далее работа производится как и с остальными продуктами компании UCS.
При создании новой активной лицензии из доступной мастер лицензии, код запроса можно оставить пустым и выбрать нужный код ключа, с которым работает сервер блокировок.
Для работы модуля/интеграции защищаемого ключом (согласно статье) необходимо наличие доступной неистёкшей активной лицензии на данном виртуальном ключе.
|
!!!ВАЖНО!!! Работа сервера блокировок в режиме онлайн лицензии без связи с l.ucs.ru возможна только в первые 72 часа с последнего сеанса связи. После этого, все модули прекратят работу. После 36 часов отсутствия связи, сервер блокировок начинает рассылать предупреждение, аналогичное предупреждению об окончании лицензии в ближайшие 14 дней. Внешний вид предупреждений представлен на рис.2-3. В связи с данным аспектом работы, следует получить письменное согласие заказчика на работу в таком режиме, проинформировав его о последствиях отсутствия связи. Пример подготовленного соглашения прилагается к данной статье. Сервер блокировок запрашивает обновление лицензии с l.ucs.ru не чаще чем раз в 10 минут. Соответственно, после добавления новой активной лицензии на l.ucs.ru, на сервере блокировок она появится в течении 10 минут. |
Рис.2 Предупреждение при запуске программы |
|
Рис.3 Постоянное предупреждение в программе |
| Вложение | Размер |
|---|---|
| ucs_soglashenie_onlayn_licenziya.doc | 652.5 КБ |
Необходимость настройки автоматического резервного копирования продиктована множеством причин и является обязательным элементом работы с БД. При установке ПО, необходимо заключить с клиентом соглашение о резервном копировании БД, которое оставляет дальнейшую ответственность за резервное копирование на заказчике (приложено к данной статье).
Чтобы настроить автоматический backup БД, необходимо создать Простую Задачу в Планировщике Задач Windows (Task Scheduler).
Триггер: ежедневно. Повторять каждый день или чаще/реже - по договорённости с заказчиком. Обычно бэкап делается в ночное время (никто не работает с базой, в ней сохранены все изменения за день). Установите галочку "
Действие: запустить программу. Указываем путь до bat-файла _backup.bat, который находится в директории \FITNESS\IBDATA\ - подробнее см. Приложение 1. Настройка bat-файлов.
После сохранения, зайдите в свойста задачи. Поставьте галочки "Выполнить с наивысшими правами", "Немедленно запускать задачу, если пропущен плановый запуск". Попробуйте выполнить эту задачу из планировщика. Резервная копия должна создаться без ошибок. Если этого всё-таки не происходит, перепроверьте ещё раз все пути, особенное внимание обратите на относительные пути (если имеются) - можно заменить их на абсолютные.
Рекомендуемой опцией резервного копирования является настройка копирования на внешний диск / диск удаленной машины / облачное хранилище данных (например Yandex Disk). Для этого необходимо установить Яндекс (или Google) Диск на локальную машину, настроить папку синхронизации и установить копирование архива бэкапа базы в эту папку, таким образом она будет синхронизироваться с облачным хранилищем, значительно уменьшая вероятность потери данных, необходимых для восстановления БД.
| Вложение | Размер |
|---|---|
| ucs_soglashenie_storon_o_rezervnom_kopirovanii.doc | 628.5 КБ |
Перед тем, как перейти к настройке автоматического создания резервных копий, обязательно проверьте корректную работу нижеуказаных файлов: создаётся бекап, архив и восстановленная версия базы.
set EXE_gbak="C:\Program Files (x86)\Firebird\FireBird_2_5\bin\gbak.exe" ;путь до файла gbak.exe в папке, куда устанавливался FireBird
set EXE_rar="D:\_2_Base\_FB25\Rar.exe" ;путь до файла запуска архиватора winRar
set FDB="127.0.0.1/3080:D:\_2_Base\_FB25\fitness.FDB" ;путь до рабочей базы
set FBK="D:\_2_Base\_FB25\autobackup\fitness.FBK" ;путь до файла, в который будет делаться бэкап (все папки должны быть уже созданы)
set RAR="D:\_2_Base\_FB25\autobackup\FITNESS.RAR" ;путь до файла с архивом бэкапа (все папки должны быть уже созданы)
if exist %FBK% del %FBK% ;удаляем предыдущий бэкап, если он имеется
%EXE_gbak% -user "ucs" -password "ucs" -b %FDB% %FBK% ;делаем бэкап
%EXE_rar% a -ep -ag %RAR% %FBK% ;создаём архив
Обратите внимание, что при использовании файла _restore.bat он не перезаписывает конечный файл с БД, а дополняет его, поэтому перед использованием запуском данного bat-файла нужно переименовать, переместить (рекомендуется внутри папки IBDATA создать папку OLD, куда и помещать предыдущие восстановленные из бэкапа базы), либо удалить уже имеющуюся БД с таким именем.
set EXE_gbak="C:\Program Files (x86)\Firebird\FireBird_2_5\bin\gbak.exe" set EXE_rar="D:\_2_Base\_FB25\Rar.exe" set FDB="127.0.0.1/3080:D:\_2_Base\_FB25\FITNESS_TEST.FDB" set FBK="D:\_2_Base\_FB25\autobackup\FITNESS.FBK" set resout=resultrestore.txt set charset=win1251 if exist %resout% del %resout% %EXE_gbak% -c -k -p 8192 %FBK% %FDB% -user ucs -password ucs -v -y %resout%
Стоит отдельно обозначить данный вариант создания архива БД, так как он будет работать в том случае, если невозможно сделать бекап поврежденной БД обычным методом (_backup.bat)
set EXE_Gbak="C:\Program Files (x86)\Firebird\FireBird_2_5\bin\gbak.exe" set EXE_Rar="c:\Program Files\WinRAR\Rar.exe" set server=127.0.0.1/3080 set FDB_Dir=D:\FITNESS\_IBDATA set FDB_Name=FITNESS set FBK_Dir=%FDB_Dir%\autobackup set FDB_Path=%FDB_Dir%\%FDB_Name%.FDB set FDB="%server%:%FDB_Path%" set FBK="%FBK_Dir%\%FDB_Name%.FBK" set FBK_RAR="%FBK_Dir%\%FDB_Name%.RAR" set FDB_ER="%FBK_Dir%\%FDB_Name%_ERROR.FDB" set FDB_ER_RAR="%FBK_Dir%\%FDB_Name%_ERROR.RAR" if exist %FBK% del %FBK% %EXE_Gbak% -user "ucs" -password "ucs" -b %FDB% %FBK% %EXE_Rar% a -ep -ag %FBK_RAR% %FBK% if exist %FDB_ER% del %FDB_ER% if not exist %FBK% copy %FDB_Path% %FDB_ER% if exist %FDB_ER% %EXE_Rar% a -ep -ag %FDB_ER_RAR% %FDB_ER%
set backup=" C:\fitness\IBDATA\Empty\fitness.FBK" set dbname="127.0.0.1/3080:C:\fitness\ IBDATA \fitness.FDB" set resout=resultrestore.txt if exist %resout% del %resout% "C:\Program Files\Firebird\FireBird_2_5\bin\gbak.exe" -c -k -p 8192 %backup% %dbname% -FIX_FSS_DATA win1251 -FIX_FSS_METADATA win1251 -user ucs -password ucs -v -y %resout% ;set backup – локальный путь к файлу fitness.FBK – backup базы; ;set dbname – путь до новой базы, начиная с IP-адреса (имени) сервера, если используем Firebird 2.5 не забываем указывать порт .
1. Рассмотрим подробнее выполнение скриптов в программе IBExpert. Вход в программу осуществляется путем запуска файла \fullVersionver…\OS\IBEXPERT\IBExpert.exe - следует скопировать его в папку "_UCS\UTILS\" для будущего использования клиентом.
2. Зарегистрировать базу (если она ещё не зарегистрирована). Для этого необходимо: нажать кнопку
Register Database (в разделе Database), ввести необходимые параметры подключения (см. рис.1) (Remote - IP-адрес машины, 127.0.0.1 - для локальной машины, используемый порт - 3080), выбрать кодировку Win1251, установить логин UCS и пароль ucs для базы, выбрать версию Firebird (для всех актуальных установок используется версия 2.5). Указать путь до файла gds32.dll, который по умолчанию находится в папке с установленной версией Firebird в каталоге bin. Рекомендуется для Alias'а (отображаемого названия) использовать WORK - для рабочей базы и TEST - для тестовой.
(Рис.1 - Заполненные регистрационные данные базы)
2. Создать подключение к ещё одной базе можно простым методом - Клонировать Регистрационные Данные (Clone Registration Info) - нажав правой кнопкой на БД в списке Database Explorer (см. рис. 2 - пункт 1). Подключиться к базе данных, дважды кликнув по ней в списке либо выбрав соответствующий пункт из выпадающего меню (см. рис. 2 - пункт 2).

(Рис.2 - Клонирование данных базы и Подключение)
3. Зайти в меню
Tools\Script Executive (Ctrl+F12), открыть
sql файл, содержащий нужный скрипт, установить галочку (checkbox) "Use current connect" (данная функция будет активна, если выполнено хотя бы одно подключение).
При выполнении скриптов, базу регистрировать не обязательно - если подключение не выполнено, можно указать путь до базы в самом скрипте, например так:
CONNECT '127.0.0.1/3080:c:\FITNESS\IBDATA\FITNESS.FDB' USER 'UCS' PASSWORD 'ucs';
4. Нажать кнопку
Run Script (F9). Скрипт должен выполнится без ошибок. Выполните его на рабочей (пустой) и на тестовой базе.
5. При обновлении базы данных программы abonementmanager, скрипты выполняются в возрастающем порядке (например, при переходе со 117 на 119 версию - сперва выполнить скрипт 118, а потом 119). Перед любыми обновлениями необходимо всё проверить на копии базы. Копия базы делается только через bat-файлы backup/restore.
6. После обновления, необходимо сделать backup-restore базы.
*по аналогии, выполняется любой другой скрипт



Рис.5. Нажимаем кнопку "Connect ot Database" (1) затем нажимаем кнопку"Script Executive" (2).

Рис.6. В открывшемся окне ставим галку "Use current connect", далее нажимаем "Script"->"Run from file..." и в открывшемся окне выбираем наш скрипт (например: Translate_DB_to_English.sql) и нажимаем кнопку "Открыть".

Рис.7. Выполнится скрипт, после чего появится информационное сообщение о его успешном выполнении.
После выполнения перечисленных выше действий - закрываем IBExpert.
ВАЖНО: полноценного и/или нагрузочного тестирования данной конфигурации не проводилось.
[database] dbname = сервер/3080:C:\FITNESS\IBDATA\fitness.FDB ;где сервер – это имя или ip адрес компьютера, где установлена серверная часть, например 127.0.0.1/3080:C:\FITNESS\IBDATA\FITNESS.FDB
[LOCK.SERVER] TCPHost = 127.0.0.1 TCPPort = 1111
8. В первый раз программы нужно запустить от имени администратора, иначе необходимо вручную зарегистрировать midas.dll из папки \LIB\ и frDlgDef.dll в папке \Reports\dll\ с помощью следующей команды (прописать в консоли windows, запущенной от имени администратора):
regsvr32 С:\_FITNESS\LIB\frDlgDef.dll ;подставьте необходимый путь и имя библиотеки
Поддерживаемые драйвером старого образца:
"Старые" модели (не online):
"Новые" ФР (ФЗ-54 Online-касса):
* - АТОЛ работает по протоколу 2.4. Отправка данных по данному протоколу так же возможна, но требует специальных настроек со стороны ЦТО или Заказчика. В случае проблем можно обращаться в тех поддержку АТОЛ.
ФР поддерживаемые универсальным драйвером:
ФР ПРИМ 08-Ф
ФР СПАРК 115-Ф
ФР DATECS DP 25
Машина, к которой производится подключение, должна иметь COM-порт (Serial-порт \ серийный порт \ RS-232), либо установленные драйвера для имитации такого подключения через USB. Для подключения двух и более фискальных регистраторов (ФР) машина быть оборудована необходимым количеством COM-портов. В случае отсутствия необходимого количества COM портов можно использовать переходники PCI на RS-232 и USB на RS-232 (см. Рекомендуемые переходники USB на RS-232 и PCI на RS-232.doc)
|
lock conflict on no wait transaction
deadlock
update conflicts with concurrent update
concurrent transaction number is 71234666
At procedure 'SP_BILL_CREATE' line: 101, col:41
|
![]() |
В настоящий момент ПО «Abonementmanager» гарантирует поддержку фискальных регистраторов «Штрих» (в т.ч. Retail-01K), «Прим» (в т.ч. «Старт 200К»), «Меркурий», «Атол» (FPrint), "Мария", "Спарк" и некоторые другие. Самые последние версии драйвера для работы с ПО Абонемент находятся в сборке Fullversion последней версии, в папке /exe/. Для уточнения, поддерживается ли Ваш ФР в случае, если его нет в нижеприведённом списке, обратитесь в техническую поддержку.
; FiscReg = SPARK
; FiscReg = MARIA301
; FiscReg = GEG
; FiscReg = MERCURY
; FiscReg = SHTRIHM ; АТОЛ FPrint 22k (ПТК), 55k (ПТК), 5200K, 03k, 02k, 11 ПТК
; FiscReg = SHTRIHM-FZ54 ; АТОЛ (онлайн 54ФЗ) 22Ф, 55Ф, 77Ф.
; FiscReg = SHTRIHMA ; ШТРИХ, Retail-01K, ФР-К, ФР-Ф, ПТК, мини
; FiscReg = AMC100F
; FiscReg = DATECFP3530
; FiscReg = AZIMUTH ; ПРИМ , Старт 200К
(Рис.1 - Структурная схема взаимодействия ФР и ПО абонемент.)
Пояснение: sdmXX.dll - драйвер для определенного фискального регистратора, где ХХ - имя определенного ФР (например: sdmShtrihMA11.dll, sdmSPARK617TF.dll, sdmShtrihM21.dll (sdmShtrihM21Old.dll) или sdmShtrihM21FZ54.dll)
Внимание! Эмуляция порта не поддерживается для моделей "ПТК".
Фискальный регистратор подключается в СОМ-порт или другой порт с эмуляцией серийного порта. Настройки COM-порта можно узнать в программе «Тест Драйвера», данная программа находится на диске в комплекте оборудования:


На рабочем месте (компьютере, к которому физически подключен ФР) необходимо убедиться в наличии файлов sdmShtrihMA11.dll ShtrihMA11.RUS.Msg (файл ошибок) в папке ..\exe\. Файл shelter.hw.ini, находящийся в этой же папке, должен быть настроен следующим образом:
[BOOT] shtrih = sdmShtrihMA11.dll [hardware] FiscReg = SHTRIHMA [FiscReg.ShtrihMA] ; ФР Штрих. ; Подставляем параметры из Теста Драйвера COMPORT = 5 COMPORTPARAMS=baud=4800 parity=n data=8 stop=1 rts=on dtr=on ; Печать отчета по секциям перед X,Z-отчетами PrintSectionReport = 0 ; Если в чеке иероглифы - попробовать поменять значение (0/1) ToOEM = 1 MaxLine = 24 PassWord = 30 SEPassword = 0 MsgFile = ShtrihMA11.RUS.Msg MsgSection = Errors
Через программу Тест драйвера FR подключиться к фискальному регистратору, зайти в Настройки свойств / Таблицы / Тип и режим кассы. далее в зависимотсти от модели Штриха или в 35 поле Сокращенный отчет с гашением установить 0, или в 30 поле Тип суточного отчета установить 1. Эту операцию можно сделать независимо закрыта или открыта смены фискального регистратора. После такой настройки, перед стандартным Z отчетом будет печататься отчет по секциям и отчет по налогам.
Проверить что в настройках shelter.hw.ini параметр PrintSectionReport = 0. Этот параметр отвечает за печать отчета на секциям в нефискальном режиме средствами драйвера. Для программного обеспечения Абонемент не рекомендуется к использованию.
Фискальный регистратор подключается в СОМ-порт или другой порт с эмуляцией серийного порта.
Настройки COM-порта можно узнать в настройках драйвера (можно взять с официального саита Атол):


Из поля "Найденные устройства" подставляем данные в Shelter.hw.ini:
[BOOT] atol = sdmShtrihM21.dll [hardware] FiscReg = SHTRIHM [FiscReg.SHTRIHM] ; ФР АТОЛ (FPrint 22k, FPrint55k, FPrint 5200K) ; Версия. Обычно 22, Если не заводится - попробовать поставить 21 Version = 22 ; Подставляем параметры из Теста Драйвера COMPORT = 6 COMPORTPARAMS=baud=115200 parity=n data=8 stop=1 rts=on dtr=on ; Если в чеке иероглифы - попробовать поменять значение (0/1) ToOEM = 1 MaxLine = 24 PassWord = 30 SEPassword = 0 MsgFile = ShtrihM21.RUS.msg MsgSection = Errors
В настройках Абонемента нужно уснять флаг Пробивать нулевой чек. Приводит к появлению ошибок при открытии фискальной смены Access Violation ... in module "user32.dll".
Фискальный регистратор подключается в СОМ-порт или другой порт с эмуляцией серийного порта.
Настройки COM-порта можно узнать в настройках драйвера (можно взять с официального саита Атол, рекоммеднуемая версия не ниже 9.9.1), аналогично предыдущему примеру. Также необходимо перевести ФР в протокол АТОЛ 2.4. согласно инструкции.
Из поля "Найденные устройства" подставляем данные в Shelter.hw.ini:
[BOOT] atol54fz = sdmShtrihM21FZ54.dll [hardware] FiscReg = SHTRIHM-FZ54 [FiscReg.SHTRIHM-FZ54] ; ФР АТОЛ (онлайн 54ФЗ) 22Ф, 55Ф, 77Ф. ; Версия. Обычно 22, Если не заводится - попробовать поставить 21 Version = 22 ; Подставляем параметры из Теста Драйвера COMPORT = 6 COMPORTPARAMS=baud=115200 parity=n data=8 stop=1 rts=on dtr=on ; Если в чеке иероглифы - попробовать поменять значение (0/1) ToOEM = 1 MaxLine = 24 PassWord = 30 SEPassword = 0 MsgFile = ShtrihM21.RUS.msg MsgSection = Errors ; - через какое количества чеков вывести сообщение ОФД ;CountCheckForShowStatusOFD = 5 ;- не будет выводится информация о непереданных чеках ;CountCheckForShowStatusOFD = 0 ; Использовать таблицу кассиров для печати на чеках. (В тестовом режиме, к использованиюю не рекомендуется) ; Таблица кассиров настраивается самостоятельно, ограничение на кол-во кассиров 28 ; Код кассира в Абонементе (к сожалению - пока логин) = пароль в таблице кассиров в ФР Атол ; isUseCasherPwdTable = 0
Аналогично предыдущему примеру, необходимо подключить ФР и с помощью прилагающегося драйвера узнать параметры подключения устройства, после чего изменить файл shelter.hw.ini. Обратите внимание, что в секциях [Boot] и [hardware] должна быть только одна строка, а остальные необходимо закомментировать.
[BOOT] Prim= %exepath%\sdmAzimuth.dll [hardware] FiscReg = AZIMUTH [FiscReg.AZIMUTH] ; ФР Прим (ПРИМ-08ТК; СТАРТ 200К) ; Подставляем параметры подключения COMPORT = 1 COMPORTPARAMS=baud=9600 parity=e data=8 stop=1 ; Если в чеке иероглифы - попробовать поменять значение (0/1) ToOEM = 0 MsgFile = Prim08TK.msg MsgSection = Errors
В связи с переходом (01.01.2019г) на ФФД 1.05 в фискальных документах (чеках) появляются следующие новые реквизиты:
Для всего чека:
ИНН кассира (обязателен для определённых видов организаций);
Место расчёта (если не было указано при регистрации ККТ);
Для позиций чека:
Признак предмета расчёта
Признак способа расчёта
Также, параллельно с окончанием работы ФФД 1.0, и, следовательно, переходом на ФФД 1.05 происходит переход ставки НДС с 18% на НДС 20%
Абонемент версии ≤ 134
Абонемент может работать на версиях < 135 c фискальными регистраторами, использующими ФФД 1.05
Но не управляет указанными выше реквизитами. Данные реквизиты остаются в значениях по умолчанию:
ИНН кассира – не заполняется;
Место расчёта – заполняется при фискализации;
Для позиций чека:
Признак предмета расчёта – подставляется значение по умолчанию - ТОВАР;
Признак способа расчёта – подставляется значение по умолчанию – Полный расчёт.
Абонемент версии ≥ 135
В Абонемент с версии 135 поддержана работа с новыми реквизитами, введёнными в ФФД 1.05 . То есть появляется возможность заполнения реквизитов «ИНН кассира», «Признак предмета расчёта», а также использование «Признак способа расчёта» согласно настройкам.
ИНН кассира – заполняется в карточке клиента кассира, передаётся на ФР;
Место расчёта – заполняется при фискализации, не передаётся из программы; (Т.к. часть фискальных регистраторов не позволяют оставить поле незаполненным при фискализации)
Для позиций чека:
Признак предмета расчёта – заполняется в карточке услуги в справочнике услуг, передаётся на ФР;
Признак способа расчёта – подставляется автоматически согласно проводимой операции, передаётся на ФР.
Для назначения ППР в карточке услуги разработан плагин, позволяющий устанавливать значения ППР для групп услуг
Для настройки плагина необходимо в файле .\exe\frf\frf.ini прописать:
[PLUGINS_MAIN] plgSetOfdPPR=Установить ППР
Разместить файлы:
.\exe\DLL\getDlgFromREP.dll
.\exe\frf\plgSetOfdPPR.ini
.\exe\frf\plgSetOfdPPR.fr3
Расположение плагина
Доп функции - > Плагины - > Установить ППР (Рис. 1)

Рис. 1
Группы услуг - > Выбрать группы услуг, для которых необходимо изменить значение ППР (Рис. 2)

Рис. 2
Значение ППР - > Из справочника выбрать необходимое значение Признака Предмета Расчёта (Рис. 3)

Рис. 3
Пример
Для Группы услуг «Бар» и подгруппы услуг «Расходные товары» необходимо установить значение ППР — Товар.
Выбираю необходимые группы услуг, значение параметра ППР - > Выполнить.
Для выбранных групп услуг значение параметра ППР изменяется
Производители ФР Спарк, Штрих и Атол уже реализовали прошивки для автоматического изменения налоговой ставки при открытии первой смены 01.01.2019г.
Переход на новые значения ставки в ней реализован следующим образом: заранее в настройках ФР задается дата изменения налога (для Спарк 115-Ф, для Атол и Штрих - предопределено 01.01.2019г). При открытии смены указанного числа ставка налога автоматически меняется.
Таким образом, дополнительных операций с перенастройкой ФР в Shelter / Абонемент делать не потребуется.
В связи с тем, что "Федеральным законом № 303-ФЗ не предусмотрено какого-либо переходного периода", 01.01.2019 для перехода на НДС 20% потребуется:
1. Зайти в Настройки \ Справочники \ Налоги \ НДС.
Изменить карточку налога: Код (при необходимости), Наименование (при необходимости), Ставка (обязательно).

Рис.4
Для Заказчиков, которые находятся на договоре технической поддержки, предусмотрено автоматическое изменение данных параметров. За настройкой Вы можете обратиться в отдел Технической поддержки.
Важно! Услуги реализуемые по абонементам с датой «начала действия» до 01.01.2019, начисляются по изначальной цене с измененной ставкой в пользу НДС на основании федерального закона "О внесении изменений в отдельные законодательные акты Российской Федерации о налогах и сборах" от 03.08.2018 №303-ФЗ
На данный момент реализовано следующее решение, для автоматической замены ставки НДС:
В результате:
1. При появлении смены ночного аудита датированной 01.01.2019 проверяет наличие налога в справочнике с кодом «TAX18» и ставкой =18.
2. В случае наличия такого налога:
2.1. Изменяется наименование налога на «НДС 20% (бывш. Наименоваине)»;
2.2. Изменяется величина ставки с «18%» на «20%».
2.3. Последующее начисление услуг со ссылкой на ставку «НДС 20% (бывш. Наименоваине)» происходит по величине «20%».
В случае, если требуется изменить ставку после 01.01.2019, а скрипт не был применён заранее
ИЛИ
При тестировании 135 версии, ошибки в интерфейсе программы в связи с автоматической сменой ставки - не выявлены.
Результат тестирования отчётов: проверялись отчеты выделяющие сумму и ставку НДС.
1. Работают верно:
1.1. Отчет по реализации услуг за период. форма отчета ad_ServisePeriod.fr3
1.2. Отчет по реализации услуг за период. форма отчета ad_ServisePeriod2.fr3
1.3. Отчет по услугам
2. Работают верно после применения процедур (SPR_CHECK_PARSING_COMBOPAY.sql, SPR_PAYMENTS_INFO.sql)
2.1. Чеки кассовой смены
2.2. Куб. Чеки кассовой смены
2.3. Куб. Чеки кассовой смены. Детализация по платежам.
3. Работают не верно
3.1. Отчет по реализации услуг за период. Ставка рассчитывается в момент построения отчета. Данный отчет будет доработан.
Моменты, вызывающие вопросы:
Момент 1.
Оплатили бронь гостиницы/услугу/абонемент с НДС 18%, а потом оказалось необходимым вернуть предоплату, но уже в период действия НДС 20%
В ПО Shelter / Абонемент возврат будет произведён с фискальной налоговой ставкой 20%, поскольку ставка НДС 18% перестаёт существовать.
Момент 2.
Если оплата услуги будет производиться 2-мя частями – предоплата с НДС 18% и окончательный расчет при НДС 20%?
Если в ПО Shelter / Абонемент оказанная услуга уже начислена фолио со старым налогом (до 1.1.2019) и установлен параметр "использовать налоговую схему", (В большенстве случаев эта галочка не стоит. и поэтому ставка НДС в базе Абонемент не выделяется), а оплата этой оказанной услуги будет осуществляться в новом периоде (после 1.1.2019), то у данной услуги в программе Shelter / Абонемент расчет налога произойдет по старой налоговой ставке. А в фискальном чеке уже будет указан налог по новой ставке.
Для исключения такой возможности можно предложить 2 варианта решения:
1) не иметь неоплаченных услуг к 1.1. 2019
2) скриптом пересчитать сумму налога у неоплаченных услуг. Заказчики, находящиеся на договоре ТП смогут получить необходимые консультации в ТП Shelter / Абонемент.
| Вложение | Размер |
|---|---|
| 20_vat.rar | 747 байтов |
ФР -- фискальный регистратор.
УДФР -- универсальный драйвер фискального регистратора.
Универсальный драйвер фискального регистратора (ФР) позволяет использовать интерфейс взаимодействия Абонемент с драйверами ФР нижнего уровня поставляемыми R-keeper. Таким образом, позволяя объединить усилия и минимизировать количество ошибок, при разработке драйверов.
!!!ВАЖНО!!!
При подключении фискального регистратора необходимо использовать не urunpos.ini (fr.ini) из поставки, содержащий все возможные параметры, а основывать конфигурационный файл на приведенном примере для конкретного ФР.
Список поддерживаемых ФР аналогичен R-keeper 7.
На данный момент протестирована корректность работы следующих семейств ФР:
ФР АТОЛ54 работающие согласно 54 ФЗ
ФР АТОЛ не поддерживающие 54 ФЗ
ФР ШТРИХ поддерживающие 54 ФЗ
ФР ШТРИХ не поддерживающие 54 ФЗ
ФР СПАРК (115-Ф) поддерживающий 54 ФЗ
ФР ПРИМ (08-Ф) поддерживающий 54 ФЗ
ФР DATECS DP 25
Для того, чтобы использовать универсальный драйвер ФР, необходимо:
1. Подложить URunPos.dll (вер. не ниже 2.0.0.210), URunPos.ini и BarCodeGen.dll в папку exe абонемента. (файлы можно найти в поставке Абонемент версии 134 и выше, по пути: *\_INTERFACE\POS\)
2. В abonementmanager.ini прописать, в секции [Pos]:
RunPosDllName=URunPos.dll
3. Скопировать соответствующие используемому ФР dll и init.xml (файл параметров драйвера) из _INTERFACE\POS\DRIVERS\RK_FiscReg
4. В URunPos.ini внести в поля «DriverName» и «ParamXMLFile» имена файла dll и параметров драйвера ФР.
5. Настроить init.xml для подключённого ФР.
6. Изменить остальные настройки URunPos.ini, если требуется.
Также с версии URunPos.dll 2.0.0.230 и выше поддержан следующий метод подключения:
Файл urunpos.ini содержит строки:
[MERGE] fr=fr.ini fr2=fr2.ini
В таком случае, настройки УДФР описанные в статье прописываются в указанных fr.ini и fr2.ini.
При таком подключении фискальным регистратором по умолчанию будет являться первый незакомментированный параметр в секции [MERGE] urunpos.ini.
В случае использования нескольких ФР на одном рабочем месте, в соответствующий параметр киоска вносится fr или fr2, соответственно. (Названия парметров и файлов могут быть произвольными и приведены как пример)
|
lock conflict on no wait transaction
deadlock
update conflicts with concurrent update
concurrent transaction number is 71234666
At procedure 'SP_BILL_CREATE' line: 101, col:41
|
![]() |
ВАЖНО!
При обновлении Абонемент на версию 130 и выше, необходимо также обновить и драйвера фискальных регистраторов на актуальные. Иначе, информационное уведомление о количествах и сроках неотправленных в ОФД документов, будет всегда выводиться с некорректными данными как на рисунке выше.
ВАЖНО!
"Ошибка ФР: Исчерпан ресурс хранения ФН" означает, что в ФН присутствуют фискальные документы не отправленные в ОФД более 30 суток. В связи с чем ФН не позволяет производить регистрацию новых фискальных документов. Требуется обеспечить связь ФР с ОФД. Работа с ФР будет разблокирована, после отправки данных документов.
Для работы с ФР АТОЛ, требуется чтобы следующие файлы были перенесены в папку ехе:
URunPos.dll (вер. не ниже 2.0.0.230), URunPos.ini, BarCodeGen.dll, fpAtol54.dll (вер. 7.13.81.0 и выше) и соответствующий init.xml
Также требуется перевести ФР в протокол АТОЛ 2.4. согласно инструкции.
Настройки файлов конфигурации:
URunPos.ini
[Main] ;Драйвер ФР R_keeper DriverName = fpAtol54.dll ;ХМL настроек драйвера ФР R_keeper ParamXMLFile = init.xml ;Номер документа (-1 = брать из ФР) DocNumber =-1 ;Текст заголовка TextHeader = ;Код налога по умолчанию TaxIndexDef = 4 ;Корректировка номера последнего документа +- LastDocNumberAdjustment LastDocNumberAdjustment = 0 ;Добавлять скидки на каждую позицию AddItemDiscount = 0 ;Номер ящика (для Атол - должен быть = 1) CashDrawerNumber = 1 ;Открывать ящик после оплаты OpenCashDrawerAfterEndFiscal = 1 ;Пауза перед отправкой данных на печать (мс) FRSleep = 10 ;Показывать предупреждение если данные не отправлены в ОФД определённое количество дней OFDWarningDays = 15 ;Штриховой код, за секцию отвечает BarCodeGen.dll [Barcode] ;ширина минимального элемента в точках для Type?QRCode Width = 2 ;высота в точках Height = 100 ;Тип = "EAN-13"|"Code-39"|"Code-128"|"QRCode" Type = Code-39 ;Позиция текста "No"|"Top"|"Bottom"|"Top&Bottom" ;для Type?QRCode TextPosition = Bottom ;Уровень коррекции "7%"|"15%"|"25%"|"30%" ;необязательный, начиная с 12 версии, только для Type=QRCode CorrectionLevel = 15%
init.xml
В общем случае требуется только ввести данные для подключения к ФР:
Примечание. Работа с налогами в ФР АТОЛ
Для корректной работы с ФФД 1.05 и функционалом привнесённым в 135 версии Абонемент требуется:
Обновить URunPos.dll до версии 2.1.0.5, fpAtol54.dll до версии 7.47.162.0
На тестовом ФР Атол 22-Ф тип оплаты "Аванс (Предоплатой)" имел код 3, что соответствует значению по умолчанию:
Поэтому изменений в настройках не требуется.
Для работы с ФР Штрих, требуется чтобы следующие файлы были перенесены в папку ехе:
URunPos.dll (вер. не ниже 2.0.0.230), URunPos.ini, BarCodeGen.dll, fpShtr54.dll (вер. не ниже v.7.32.33.0) и соответствующий init.xml
В последнее время, после обновления ФР семейства ШТРИХ-М, стала часто встречаться ошибка вида (в логах драйвера нижнего уровня fpShtr54.dll):
[ERR] FR error: Ошибка 09h: ФП - Некорректная длина командыПоявление указанной ошибки в логе работы драйвера нижнего уровня сигнализирует о наличии несовместимости версии ФН и используемой СНО.
По данным вопросам заказчикам необходимо обращаться в ЦТОс которым у них заключен договор для выявления причины установки несовместимой версии ФН.
Настройки файлов конфигурации:
URunPos.ini
[Main] ;Драйвер ФР R_keeper DriverName = fpShtr54.dll ;ХМL настроек драйвера ФР R_keeper ParamXMLFile = init.xml ;Номер документа (-1 = брать из ФР) DocNumber =-1 ;Текст заголовка TextHeader = ;Код налога по умолчанию TaxIndexDef = 4 ;Корректировка номера последнего документа +- LastDocNumberAdjustment LastDocNumberAdjustment = 0 ;Добавлять скидки на каждую позицию AddItemDiscount = 0 ;Номер ящика (для Штрих - должен быть = 0) CashDrawerNumber = 0 ;Открывать ящик после оплаты OpenCashDrawerAfterEndFiscal = 1 ;Пауза перед отправкой данных на печать (мс) для штрихов до 54 ФЗ ;(иначе неправильно происходит печать нефискальных документов -- ;особенность драйвера нижнего уровня) FRSleep = 100 ;Показывать предупреждение если данные не отправлены в ОФД определённое количество дней OFDWarningDays = 15 ; Оплата - АВАНС = 14 CardSum2TypeIndex = 14 ;Штриховой код, за секцию отвечает BarCodeGen.dll [Barcode] ;ширина минимального элемента в точках для Type?QRCode Width = 2 ;высота в точках Height = 100 ;Тип = "EAN-13"|"Code-39"|"Code-128"|"QRCode" Type = Code-39 ;Позиция текста "No"|"Top"|"Bottom"|"Top&Bottom" ;для Type?QRCode TextPosition = Bottom ;Уровень коррекции "7%"|"15%"|"25%"|"30%" ;необязательный, начиная с 12 версии, только для Type=QRCode CorrectionLevel = 15%
ВАЖНО
Для ФР Штрих обязательно необходимо установить параметр:
;Код налога по умолчанию TaxIndexDef = 4 (либо "2","3","4", но не "0" - значение вне диапазона)
Иначе, в случае, если код налога для услуги или платежа оставлен в значении по умолчанию =0, возникнет ошибка ФР, мешающая работе в программе;
Не касается кассовой секции.
init.xml
Примечание. Работа с налогами в ФР ШТРИХ
Для ФР ШТРИХ поддержана произвольная установка налога для услуги независимо от секции. (Подробнее про коды налогов см. соответствующую статью)
Т.е. обе настройки: "Код налога ФР" и "Кассовая секция" независимы и имеют силу для любой услуги и платежа.
Для корректной работы с ФФД 1.05 и функционалом привнесённым в 135 версии Абонемент требуется:
Обновить URunPos.dll до версии 2.1.0.5, fpShtr54.dll до версии 7.47.86.0
На тестовом ФР Ритейл-01Ф тип оплаты "Аванс (Предоплатой)" имел код 14, что не соответствует значению по умолчанию.
Соответственно, в fr.ini в секции [Main] необходимо прописать:
Для работы с ФР Спарк 115-Ф, требуется чтобы следующие файлы были перенесены в папку ехе:
URunPos.dll (вер. не ниже 2.0.0.230), URunPos.ini, BarCodeGen.dll, fpSpark54.dll и соответствующий init.xml
Помимо этого, на компьютере должна быть настроена и запушена утилита SparkSrv. (Данная утилита позволяет по одному интерфейсу отправлять данные в ОФД из ФР и общаться с ФР из ПО).
Настройки файлов конфигурации:
URunPos.ini
[Main] ;Драйвер ФР R_keeper DriverName = fpSpark54.dll ;ХМL настроек драйвера ФР R_keeper ParamXMLFile = init.xml ;Номер документа, -1 - брать из ФР DocNumber = -1 ;Текст заголовка чека (!!! оставить пустым для СПАРК) TextHeader = ;Печатать логотип в чеке (!!! не печатать для СПАРК - возникает ошибка при попытке печати чека возврата прихода "Нев. команда регистрации аннулирования [200]") IsPrintLogo=0 ;Код налога по умолчанию TaxIndexDef = 0 ;Коды налогов ;0 = НДС НЕ ОБЛ. ;1 = НДС 18/118 ;2 = НДС 10/110 ;3 = НДС 0 ;4 = НДС 18 - не работает с Абонемент ;5 = НДС 10 - не работает с Абонемент ;Добавлять скидки на каждую позицию AddItemDiscount = 0 ;Номер ящика CashDrawerNumber = 0 ;Открывать ящик после оплаты OpenCashDrawerAfterEndFiscal = 1 ;Показывать предупреждение если данные не отправлены в ОФД определённое количество дней OFDWarningDays = 15 ;Коды типов оплат: ;Оплата =8 - наличные CashSumTypeIndex = 8 ;Оплата =1 Электронные CardSum1TypeIndex = 1 ;Оплата =5 АВАНС CardSum2TypeIndex = 5 ;Оплата =7 - "запрещено" ;Пауза перед отправкой данных на печать (мс) для штрихов до 54 ФЗ FRSleep = 10 ;Штриховой код, за секцию отвечает BarCodeGen.dll [Barcode] ;ширина минимального элемента в точках для Type?QRCode Width = 2 ;высота в точках Height = 100 ;Тип = "EAN-13"|"Code-39"|"Code-128"|"QRCode" Type = Code-39 ;Позиция текста "No"|"Top"|"Bottom"|"Top&Bottom" ;для Type?QRCode TextPosition = Bottom ;Уровень коррекции "7%"|"15%"|"25%"|"30%" ;необязательный, начиная с 12 версии, только для Type=QRCode CorrectionLevel = 15%
ВАЖНО
Обратите внимание на следующее:
;Код налога по умолчанию TaxIndexDef = 0 ;Коды налогов ;0 = НДС НЕ ОБЛ. ;1 = НДС 18/118 ;2 = НДС 10/110 ;3 = НДС 0 ;4 = НДС 18 - не работает с Абонемент ;5 = НДС 10 - не работает с Абонемент
В случае ФР Спарк 115-Ф, на котором производилось тестирование, налоги были установлены указанным образом. Необходимо это учитывать, при заполнении карточек услуг и платежей.
Также необходимо обратить внимание на следующее:
;Коды типов оплат: ;Оплата =8 Наличные ;Оплата =1 Электронные ;Оплата =2 карта-2 ;Оплата =3 карта-3 ;Оплата =4 карта-4 ;Оплата =5 ТАР ;Оплата =6 ЧЕК ;Оплата =7 - "запрещено"
На тестируемом ФР код платежа «Наличные» был равен 8, соответственно, а «Электронные» равный 1. В таком случае, необходимо установить:
CashSumTypeIndex = 8 CardSum1TypeIndex = 1
init.xml
Примечание. Работа с налогами и секциями в ФР СПАРК
ФР Спарк 115-Ф позволяет установку произвольного налога для каждой позиции чека. (Подробнее про коды налогов см. соответствующую статью)
Кассовые секции не используются.
Примечание. Работа на одном ФР СПАРК с нескольких рабочих мест
За счёт использования утилиты SparkSrv появляется возможность использовать один ФР Спарк с другого рабочего места, путём подключения к утилите по соответствующему адресу и порту.
Примечание. ФР СПАРК и нулевой чек
ФР СПАРК не позволяет пробитие нулевого чека. Необходимо отключить пробитие нулевого чека на всех киосках, к которым подключаются ФР СПАРК.
ВАЖНО
В ФР СПАРК ошибка "Ошибка ФР 54: Запрещено по программируемому флагу №5" означает, что флаг доступных к возврату типов платежей для данного платежа снят.
Для корректной работы с ФФД 1.05 и функционалом привнесённым в 135 версии Абонемент требуется:
Обновить URunPos.dll до версии 2.1.0.5, fpSpark54.dll до версии 7.46.42.0
На тестовом ФР СПАРК 115-Ф тип оплаты "Аванс (Предоплатой)" имел код 5, что не соответствует значению по умолчанию.
Соответственно, в fr.ini в секции [Main] необходимо прописать:
Корректная работа ФР ПРИМ 08-Ф с Абонемент протестирована на версии Абонемент 1.129, и версии URunPos.dll (2.0.0.230).
Для работы с ФР ПРИМ 08-Ф, требуется чтобы следующие файлы были перенесены в папку ехе:
URunPos.dll (вер. не ниже 2.0.0.230), URunPos.ini, BarCodeGen.dll, fpRUS_PRIM08F.dll (вер. не ниже v.7.33.21.0) и соответствующий init.xml и fr.ini (согласно новому способу подключения)
Настройки файлов конфигурации:
prim.ini (бывший urunpos.ini)
[Main] ;Драйвер ФР R_keeper DriverName = fpRUS_PRIM08F.dll ;ХМL настроек драйвера ФР R_keeper ParamXMLFile = init.xml ;Номер документа (-1 = брать из ФР) DocNumber = -1 ;Текст заголовка чека TextHeader = ;Код налога по умолчанию TaxIndexDef = 0 ;Коды налогов ;0 = Без НДС ;1 = НДС 0% ;2 = НДС 10/110% ;3 = НДС 18/118% ;4 = НДС 10% ;5 = НДС 18% ;Добавлять скидки на каждую позицию AddItemDiscount = 0 ;Показывать предупреждение если данные не отправлены в ОФД определённое количество дней OFDWarningDays = 15 ;Коды типов оплат: ;Оплата =0 - наличные CashSumTypeIndex = 0 ;Оплата =1 Электронные CardSum1TypeIndex = 1 ;Пауза перед отправкой данных на печать (мс) для штрихов до 54 ФЗ FRSleep = 10 ;Штриховой код, за секцию отвечает BarCodeGen.dll [Barcode] ;ширина минимального элемента в точках для Type?QRCode Width = 2 ;высота в точках Height = 100 ;Тип = "EAN-13"|"Code-39"|"Code-128"|"QRCode" Type = Code-39 ;Позиция текста "No"|"Top"|"Bottom"|"Top&Bottom" ;для Type?QRCode TextPosition = Bottom ;Уровень коррекции "7%"|"15%"|"25%"|"30%" ;необязательный, начиная с 12 версии, только для Type=QRCode CorrectionLevel = 15%
ВАЖНО
Обратите внимание на следующие отрывки:
;Код налога по умолчанию TaxIndexDef = 0 ;Коды налогов ;0 = Без НДС ;1 = НДС 0% ;2 = НДС 10/110% ;3 = НДС 18/118% ;4 = НДС 10% ;5 = НДС 18%
В случае ФР ПРИМ 08-Ф, на котором производилось тестирование, налоги были установлены указанным образом. Необходимо это учитывать, при заполнении карточек услуг и платежей.
Также необходимо обратить внимание на следующий отрывок:
;Коды типов оплат: ;Оплата =0 - наличные CashSumTypeIndex = 0 ;Оплата =1 Электронные CardSum1TypeIndex = 1
На тестируемом ФР код платежа «Наличные» был равен 0, а код платежа «Электронные» был равным 1. В таком случае, для корректной работы, необходимо установить CashSumTypeIndex и CardSum1TypeIndex как указано.
init.xml
Примечание. Работа с налогами и секциями в ФР ПРИМ
ФР ПРИМ 08-Ф позволяет установку произвольного налога для каждой позиции чека. (Подробнее про коды налогов см. соответствующую статью)
Кассовые секции не используются.
Примечание. ФР ПРИМ и нулевой чек
ФР ПРИМ не позволяет пробитие нулевого чека. Необходимо отключить пробитие нулевого чека на всех киосках, к которым подключаются ФР ПРИМ.
Для работы с ФР Datecs DP 25, требуется чтобы следующие файлы были перенесены в папку ехе:
URunPos.dll (вер. не ниже 2.0.0.184), URunPos.ini, BarCodeGen.dll, fpROU_DP25.dll и соответствующий init.xml
Настройки файлов конфигурации:
URunPos.ini
[Main] ;Драйвер ФР R_keeper DriverName = fpROU_DP25.dll ;ХМL настроек драйвера ФР R_keeper ParamXMLFile = init.xml ;ИНН INN = 1234567890 ;Номер документа DocNumber = 1 ;Имя продавца Seller = Seller ;Код объекта ObjCode = 0 ;Название объекта ObjName = Abonement ;ID оператора (кассира) OperatorId = 0 ;Код оператора (кассира) OperatorCode = 0 ;Имя оператора (кассира) OperatorName = Abonement ;ID станции (кассы) StationId = 0 ;Код станции (кассы) StationCode = 0 ;Название станции (кассы) StationName = Abonement ;Текст заголовка TextHeader = ;Код налога по умолчанию TaxIndexDef = 0 ;Пауза перед отправкой данных на печать (мс) FRSleep = 10 ;Тип оплаты CashSumText = Cash CardSum1Text = Card CardSum2Text = Card_2 CardSum3Text = Card_3 CardSum4Text = Card_4 ;Коды типов оплат: ;Оплата наличными CashSumTypeIndex = 0 ;Оплата картой 1 CardSum1TypeIndex = 1 ;Оплата картой 2 CardSum2TypeIndex = 2 ;Оплата картой 3 CardSum3TypeIndex = 3 ;Оплата картой 4 CardSum4TypeIndex = 4 ;Штриховой код [Barcode] ;ширина минимального элемента в точках для Type?QRCode Width = 2 ;высота в точках Height = 100 ;Тип = "EAN-13"|"Code-39"|"Code-128"|"QRCode" Type = Code-39 ;Позиция текста "No"|"Top"|"Bottom"|"Top&Bottom" ;для Type?QRCode TextPosition = Bottom ;Уровень коррекции "7%"|"15%"|"25%"|"30%" ;необязательный, начиная с 12 версии, только для Type=QRCode CorrectionLevel = 15%
ВАЖНО
Для ФР Datecs обязательно необходимо установить параметр:
;Код налога по умолчанию TaxIndexDef = 0
Так как в ФР код первого налога = 0;
Также необходимо присутствие следующей секции:
;Коды типов оплат: ;Оплата наличными CashSumTypeIndex = 0 ;Оплата картой 1 CardSum1TypeIndex = 1 ;Оплата картой 2 CardSum2TypeIndex = 2 ;Оплата картой 3 CardSum3TypeIndex = 3 ;Оплата картой 4 CardSum4TypeIndex = 4
Поскольку коды типов оплат в ФР Datecs также как и коды налогов начинаются с =0.
Также стоит установить следующие параметры (передаваемые названия типов оплаты):
;Тип оплаты CashSumText = Cash CardSum1Text = Card …
Иначе передаются значения по умолчанию в неподдерживаемой аппаратом кириллице.
init.xml
Примечание
Тестирование ФР Datecs DP 25 производилось сотрудником дилеров - Bogdan Romascu из «UCS-Romania».
С версии 2.0.0.201 urunpos.dll доступны параметры в urunpos.ini: CashDrawerNumber = 0 - Номер денежного ящика (как правило, 0 - ящик по умолчанию), OpenCashDrawerAfterEndFiscal = 1 - открывать ящик по команде из Абонемент (1 - открывать всегда, 0 - открывать только по кнопке "Открыть денежный ящик").
Работает независимо от версии Абонемента: открытие ящика при оплате наличными, при снятии Х и Z-отчёта.
С версии Абонемента 128 доступна кнопка в ночном аудите, для открытия денежного ящика по запросу - "Открыть денежный ящик".
С версии 128 Абонемента поддержана передача пользователя Абонемент в качестве кассира в фискальный документ для всех доступных кассовых операций.
Для работы с двумя ФР на 1 рабочем месте, требуется:
Наличие в папке ехе Абонемента файлов: URunPos.dll, URunPos.ini и BarCodeGen.dll, а также dll соответствующих подключённым ФР.
Настройки универсального драйвера для каждого ФР задаются в отдельных ini файлах (например: atol1.ini и shtrih2.ini), аналогичным настройкам приведённым в данной статье.
В URunPos.ini в таком случае, будет иметь следуюющее содержание:
[MERGE] atol=atol1.ini shtrih=shtrih2.ini
Соответственно в atol1.ini и в shtrih2.ini , как минимум параметры ParamXMLFile должны различаться, т.е. необходимо наличие 2 файлов (например init_1.xml и init_2.xml), где будут указаны настройки соединения с конкретными ФР.
В настройках соответствующих киосков в настройках в Абонементе необходимо в поле «название устройства в ini файле» прописать названия параметров прописанных в urunpos.ini (В данном примере это - atol и shtrih)
Решение для работы с нескольких рабочих мест Абонемент на 1 ФР, поддерживаемом универсальным драйвером, описано в отдельной статье.
Также, способ подключения ФР Спарк 115-Ф позволяет использовать 1 ФР на нескольких рабочих местах, без использования вышеобозначенного решения. (См. раздел СПАРК 115-Ф)
С версии URunPos.dll 2.0.1.17 поддержана принудительная печать логотипа в фискальных и нефискальных документах распечатываемых из Абонемент.
Для этого требуется загрузить изображение в память ФР.
Прописать следующие параметры в секции [Main] файла конфигурации (fr.ini):
[Main] ; Печатать логотип в фискальных документах IsPrintLogo = 1 ; Печатать логотип в нефискальных документах IsUnfiscalPrintLogo = 1 ; Идентификатор логотипа в ФР LogoName = 1
Применимость к фискальным регистраторам:
Спарк 115-Ф - Не применимо. Графика загружается только в клише ФР и печатается для всех документов независимо от команды.
Атол (22-Ф) - изображение загружается через утилиту теста драйвера в меню программирование. Указываемое в ini файле LogoName = ID картинки в тесте драйвера -1.
Штрих 54ФЗ (Ритейл-01Ф) - изображение загружается через тест драйвера. Указываемое в ini файле LogoName = <номер первой строки для печати>-<номер последней строки для печати> (Например "LogoName = 1-200" - напечатать первые 200 строк изображения загруженного в фр).
С другими семействами ФР не тестировалось.
Если ФР подключён через универсальный драйвер, то:
Помимо проверки shelter.hw.ini на незакомментированность соответствующих виртуальному фискальнику строк,
также требуется закомментировать строку
RunPosDllName=URunPos.dll
В секции [Pos] в abonementmanager.ini
В случае универсального драйвера в shelter.hw.ini изменения вносится вообще не должны.
Т.е. в идеальном случае, на новых объектах изначально работающих на универсальном драйвере будет достаточно править 1 строку в abonementmanager.ini.
После установки и настройки необходимо протестировать работу драйвера.
План тестирования:
В связи с ФЗ 54 при использовании онлайн модулей и мобильных приложений возникает законный вопрос - как быть с онлайн платежами? Кто и как должен формировать фискальный чек? Как предоставить чек покупателю?
Для онлайн модулей, процессинговые системы предлагают производить фискализацию их силами (передача содержимого чека поддержана в Абонемент Онлайн для Робокассы), но это не всегда удобно.
Для онлайн приложений, не все процессинговые системы предлагают фискализацию.
Для подобных случаев были созданы различные предложения для облачной фискализации - когда фискальный регистратор находится в датацентре и работает через веб-интерфейс 24/7 на различных заказчиков. Такие как Атол-Онлайн и CloudKassir (CloudPayments).
В таком случае схема взаимодействия при оплате будет выглядеть как указано на рис.1.
|
Рис.1 Схема работы при интеграции с облачным решением для фискализации |
То есть, при проведении платежа через Абонемент Онлайн/мобильное приложение, платёж проводится в два этапа:
1. Мобильное приложение/Абонемент Онлайн перенаправляет клиента в процессинг, где он производит платёж, информация о платеже возвращается в модуль.
2. Модуль отправляет запрос на регистрацию платежа в Абонемент через API (Connecter). Для завершения регистрации платежа, API запросит формирование чека для данной операции у облачного ФР. Только после успешной фискализации платёж (чек) будет зарегистрирован в Абонемент.
//here lies copy paste from URunPos node
Данное решение настраивается через универсальный драйвер.
Для этого в connecter.ini необходимо в секцию [pos] добавить строку:
RunPosDllName=Urunpos.dll
Следующие файлы должны быть в папке с Connecter:
URunPos.dll (вер. не ниже 2.2.0.4), URunPos.ini, fpCloudPayments.dll (вер. не ниже v.1.4.0.4) и urunpos_frxml_CloudPayments.xml
Настройки файлов конфигурации:
URunPos.ini (fr.ini или urunpos_CloudPayments.ini)
[Main] ;Драйвер ФР R_keeper DriverName = fpCloudPayments.dll ;ХМL настроек драйвера ФР R_keeper ParamXMLFile = urunpos_frxml_CloudPayments.xml ;Код налога по умолчанию TaxIndexDef=6 ;Налоги передаваемые в чек ;Налог с кодом 1 RateValue1 =0 ;Налог с кодом 2 RateValue2 =1000 ;Налог с кодом 3 RateValue3 =2000 ;Налог с кодом 4 RateValue4 =11000 ;Налог с кодом 5 RateValue5 =12000 ;Налог с кодом 6 RateValue6 =-1 DocNumber = -1
Где ставки налогов могут принимать предопределённые значения из следующего списка:
| RateValue= | Передаваемый налог |
|---|---|
| 0 | НДС 0% |
| 1000 | НДС 10% |
| 2000 | НДС 20% |
| 11000 | НДС 10/110% |
| 12000 | НДС 20/120% |
| -1 | Без НДС |
Данная гибкость настройки позволяет настроить для онлайн фискализатора ставки налогов так же, как и в реальных фискальных регистраторах, используемых на объекте. Например, в приведённом выше примере ini файла, налоги установлены так же, как и в фискальных регистраторах Атол. Подробнее про работу универсального драйвера с налоговыми ставками можно узнать в статье.
init.xml
Все данные заполняемые в xml могут быть получены в CloudKassir (CloudPayments).
Регистрация чека, в зависимости от нагруженности могут варьироваться от 1-2 секунд до 2-3 минут, в связи с чем значение параметра DurationWaitProcessed рекомендуется устанавливать не менее 300.
ВАЖНО!!!
Для решений облачной фискализации наличие email или телефона клиента в чеке является обязательным, соответственно, должны быть установлены параметры "Общие параметры" - "Услуги и платежи" - "ФР может отправлять чеки на Email / через SMS". Соответствуюющие поля клиента должны быть заполнены.
Интеграция защищёна лицензионным ключом Проект 1 модуль 8. Подробнее про лицензирование
В связи с ФЗ 54 при использовании онлайн модулей и мобильных приложений возникает законный вопрос - как быть с онлайн платежами? Кто и как должен формировать фискальный чек? Как предоставить чек покупателю?
Для онлайн модулей, процессинговые системы предлагают производить фискализацию их силами (передача содержимого чека поддержана в Абонемент Онлайн для Робокассы), но это не всегда удобно.
Для онлайн приложений, не все процессинговые системы предлагают фискализацию.
Для подобных случаев были созданы различные предложения для облачной фискализации - когда фискальный регистратор находится в датацентре и работает через веб-интерфейс 24/7 на различных заказчиков. Такие как Атол-Онлайн и CloudKassir.
В таком случае схема взаимодействия при оплате будет выглядеть как указано на рис.1.
|
Рис.1 Схема работы при интеграции с облачным решением для фискализации |
То есть, при проведении платежа через Абонемент Онлайн/мобильное приложение, платёж проводится в два этапа:
1. Мобильное приложение/Абонемент Онлайн перенаправляет клиента в процессинг, где он производит платёж, информация о платеже возвращается в модуль.
2. Модуль отправляет запрос на регистрацию платежа в Абонемент через API (Connecter). Для завершения регистрации платежа, API запросит формирование чека для данной операции у облачного ФР. Только после успешной фискализации платёж (чек) будет зарегистрирован в Абонемент.
//here lies copy paste from URunPos node
Данное решение настраивается через универсальный драйвер.
Для этого в connecter.ini необходимо в секцию [pos] добавить строку:
RunPosDllName=Urunpos.dll
Следующие файлы должны быть в папке с Connecter:
URunPos.dll (вер. не ниже 2.2.0.4), URunPos.ini, fpCloudAtol.dll (вер. не ниже v.1.3.0.10) и urunpos_frxml_CloudAtol.xml
Настройки файлов конфигурации:
URunPos.ini (fr.ini или urunpos_CloudAtol.ini)
[Main] ;Драйвер ФР R_keeper DriverName = fpCloudAtol.dll ;ХМL настроек драйвера ФР R_keeper ParamXMLFile = urunpos_frxml_CloudAtol.xml ;Код налога по умолчанию TaxIndexDef=6 ;Налоги передаваемые в чек ;Налог с кодом 1 RateValue1 =0 ;Налог с кодом 2 RateValue2 =1000 ;Налог с кодом 3 RateValue3 =2000 ;Налог с кодом 4 RateValue4 =11000 ;Налог с кодом 5 RateValue5 =12000 ;Налог с кодом 6 RateValue6 =-1 DocNumber = -1
Где ставки налогов могут принимать предопределённые значения из следующего списка:
| RateValue= | Передаваемый налог |
|---|---|
| 0 | НДС 0% |
| 1000 | НДС 10% |
| 2000 | НДС 20% |
| 11000 | НДС 10/110% |
| 12000 | НДС 20/120% |
| -1 | Без НДС |
Данная гибкость настройки позволяет настроить для онлайн фискализатора ставки налогов так же, как и в реальных фискальных регистраторах, используемых на объекте. Например, в приведённом выше примере ini файла, налоги установлены так же, как и в фискальных регистраторах Атол. Подробнее про работу универсального драйвера с налоговыми ставками можно узнать в статье.
init.xml
Все данные заполняемые в xml могут быть получены в Атол-Онлайн.
Регистрация чека, в зависимости от нагруженности могут варьироваться от 1-2 секунд до 2-3 минут, в связи с чем значение параметра DurationWaitProcessed рекомендуется устанавливать не менее 300.
ВАЖНО!!!
Для решений облачной фискализации наличие email или телефона клиента в чеке является обязательным, соответственно, должны быть установлены параметры "Общие параметры" - "Услуги и платежи" - "ФР может отправлять чеки на Email / через SMS". Соответствуюющие поля клиента должны быть заполнены.
Интеграция защищёна лицензионным ключом Проект 5 модуль 1. Подробнее про лицензирование
ВАЖНО!!!
Для решений облачной фискализации наличие email или телефона клиента в чеке является обязательным, соответственно, должны быть установлены параметры "Общие параметры" - "Услуги и платежи" - "ФР может отправлять чеки на Email / через SMS". Соответствуюющие поля клиента должны быть заполнены.
Физическое подключение ФР к ПК:
Для подключения ФР АТОЛ FPRINT-55ПТК и совместимости с нашим драйвером для работы с ФЗ-54 - sdmShtrihM21.dll (минимальная версия - 1.4.0.1) (sdmShtrihM21FZ54.dll - с версии 1.5.0.1), необходимо, используя сервисный режим, произвести следующие настройки Фискального Регистратора: канал обмена - USB, протокол обмена - Атол 2.4
Начиная с версии тест драйвера 9.9.1, появилась возможность менять протокол обмена не используя сервисное меню, через Параметры ККТ - Протокол обмена.
Выдержка из инструкции АТОЛ:
"Сервисный режим предназначен для настройки подключения изделия по одному из поддерживаемых ККТ интерфейсов (RS-232 или USB), выбора протокола обмена и для включения либо выключения автоотрезчика. Для входа в сервисный режим нужно включить ККТ с нажатой кнопкой промотки ЧЛ, дождаться четвёртого звукового сигнала (для Атол 22Ф дождаться 5-го звукового сигнала) и отпустить кнопку промотки ЧЛ. ККТ войдёт в сервисный режим и выведет на печать документ, в котором представлен перечень возможных действий: выход из сервисного режима, выбор канала обмена, управление работой автоотрезчика и выбор протокола обмена. После этого ККТ ожидает выбора действия, который осуществляется путём нажатия на кнопку промотки ЧЛ – один, два, три или четыре раза (в зависимости от выбора) и отпускания её. При нажатии кнопки промотки ККТ воспроизводит звуковой сигнал. Возможные действия описаны ниже (см. рисунок)"


Данная статья актуальна только для Retail-01K (Ритейл-01Ф)
Есть 3 основных варианта интерфейса для подключения ФР к ОФД:
Перед покупкой\проведением доработки ККТ необходимо провести изучение торгового объекта заказчика и согласовать с ним вариант вида связи с ОФД.
Для того, чтобы регистрация ККТ прошла успешно, она должна быть полностью настроена для связи с ОФД и подключена к интернету. Рассмотрим настройку ККТ на примере RR-01Ф.
Независимо от способа связи с ОФД, в настройках ККТ нужно заранее указать адрес и порт ОФД:

После чего переходим к настройке канала связи.


Адаптер RNDIS в операционной системе можно настроить так, как показано на рисунке.


Для подключения к ККТ используя драйвер ФР можно использовать параметры, приведенные на рисунке.

Ип-адреса адаптеров в случае RNDIS-интерфейса должны полностью различаться, иначе связь с ФР по сети через Тестдрайвер есть, а данные в ОФД не отправляются. Т.е. если в локальной сети, предоставляющей интернет, используется адресное простарнство 192.168.*.*, то адрес ФР необходимо выставить к примеру 172.31.*.*


Значение поля №2 «Статус dhcp» равное «10» говорит о том, что IP-адрес присвоен.


Данный способ позволяет использовать 1 фискальный регистратор (далее ФР) на нескольких рабочих местах Абонемент.
Общая схема работы представлена на рис.1.
|
Рис.1 Общая схема работы связки |
Сборку можно найти с версии 129 Абонемента по адресу \FullversionVerххх\HW\Uxml-rpc\ , где находятся 3 папки: Server, Client, UCS.
Папки Server и Client устанавливается на компьютере, к которому физически подключен ФР.
Папка UCS настраивается на компьютерах, где запускается ПО Абонемент.
|
Server: |
|
| sxrServerProxy.exe | Приложение – сервер сообщения |
| sxrsrv.ini | Файл настроек сервера сообщения |
|
Client: |
|
| sxrFRClient2.exe | Приложение – клиент сообщения с ФР |
| sxrfrClient.ini | Файл настроек клиента |
| URunPosRemote.dll | Библиотека-посредник для подключения универсального драйвера |
|
UCS: |
|
| sdmTcpRpcFiscReg.dll | Библиотека связи с сервером сообщения (старого образца) |
| TcprpcFR.ini | Файл настроек связи |
Серверная часть может быть установлена на любом из компьютеров той же сети, где находятся рабочие места и ПК к котрому подключён ФР.
Рекомендуется разворачивать на том же ПК, к которому подключён ФР, для упрощения обслуживания связки.
Настройки sxrsrv.ini:
[SERVER] ;Порт, по которому будет происходить сообщение Port =7790 ;Автоматически стартовать при запуске Autostart = 1 ;Автоматически скрывать в трей при запуске Autohide = 1
Данная часть разворачивается непосредственно на ПК, к которому подключён ФР.
Приложение отвечает за работу с ФР, передавая команды, приходящие с рабочих мест.
У данного клиента должен быть уникальный код, для корректной маршрутизации команд с рабочих мест. Этот же код будет использован, при настройке рабочих мест.
В поставку утилиты не входит универсальный драйвер. Требуется настроить УДФР в папке Client так же как под клиентом Абонемент, добавив все необходимые файлы.
В URunPos.ini (или fr.ini, в зависимости от настройки) необходимо добавить:
[database] ; Адрес БД Абонемент dbname=127.0.0.1/3080:D:\_UCS\_FITNESS\IBDATA\FITNESS.FDB dbuser = ucs DBPassword = oQKH8n0BFUE= [Main] ; Для корректной обработки ошибок при отсутствии ошибок NoErrors = Empty
В противном случае, будут наблюдаться ошибки при снятии X- и Z-отчётов.
Настройки sxrfrClient.ini:
[SERVER] ;IP адрес сервера, где запущен sxrServerProxy Host = 127.0.0.1 ;Порт общения с сервером sxrServerProxy Port = 7790 ;Код данного клиента ФР (должен быть уникальным) ClientName = UCS_FR ;Адрес библиотеки-посредника DLL = C:\_UCS\_FITNESS\xml-rpc2\Client\URunPosRemote.dll ;Спрятать в трей при запуске AutoHide = 1 ;Автозапуск сервера при открытии приложения AutoStart = 1 ;Параметры логирования [log] log.level=10 log.debuglevel=10 name=.\log\client.log ByMonthes=1 ByDays=1 BYHOURS=1
На рабочих местах используется драйвер старого образца для удалённого ФР.
Т.е. Используется старая библиотека RunPos.dll к которой подключается sdmTcpRpcFiscReg.dll.
Для этого требуется скопировать содержимое папки UCS в папку exe на рабочем месте.
Для этого требуется чтобы runpos.ini имел следующий вид:
[MERGE] HW = TcprpcFR.ini [log] level=10 debuglevel=10
Настройки TcprpcFR.ini
[BOOT]
;Подключаемая DLL
FiscReg = %exepath%\sdmTcpRpcFiscReg.dll
[HARDWARE]
FiscReg = TcpRpcFR
;Секция настроек подключения к клиентскому приложению
[FiscReg.TcpRpcFR]
;IP адрес сервера, где запущен sxrServerProxy
Host = 127.0.0.1
;Порт общения с сервером sxrServerProxy
Port = 7790
;Идентификационное имя данного рабочего места (должно быть уникально)
ClientName = Client_UCS_1
;Код клиента, к которому производится подключение
ProxyFRClient = UCS_FR
Данная инструкция применяется в случае установки 2-х и более фискальных регистраторов для 2-х и более юридических лиц. Данная инструкция неактуальна для 1-го юридического лица и является продолжением статьи "Подключение фискального регистратора", которая содержит всю основную информацию по данному вопросу.
Продажа производиться от 3-х юридических лиц (Орг1, Орг2, Орг3) на одном рабочем месте.

(Рис.1 Схема подключения нескольких ФР к разным Юр. лицам)
В директории ..\exe\ проверьте наличие следующих файлов: shelter.hw.ini. Для Прим: Prim08TK.msg, sdmAzimuth.dll, AZIMUTH.DLL. Для Штрих: sdmShtrihMA11.dll, ShtrihMA11.RUS.Msg
Узнав параметры подключения используемых фискальных регистраторов, настраиваем shelter.hw.ini.
[BOOT] DLL_LOAD3= sdmShtrihMA11.dll DLL_LOAD4= sdmAzimuth.dll [hardware] FiscReg1 = SHTRIHMA FiscReg2 = SHTRIHMA FiscReg3 = AZIMUTH ;------------------------------------------------------------------------------------------------------------ShtrihMA1 [FiscReg1.SHTRIHMA] ; Печать отчета по секциям перед X,Z-отчетами PrintSectionReport = 1 COMPORT = 1 COMPORTPARAMS=baud=115200 parity=n data=8 stop=1 rts=on dtr=on ToOEM = 1 MaxLine = 24 PassWord = 30 SEPassword = 0 MsgFile = ShtrihMA11.RUS.Msg MsgSection = Errors ;------------------------------------------------------------------------------------------------------------ShtrihMA2 [FiscReg2.SHTRIHMA] ; Печать отчета по секциям перед X,Z-отчетами PrintSectionReport = 1 COMPORT =2 COMPORTPARAMS=baud=19200 parity=n data=8 stop=1 rts=on dtr=on ToOEM = 1 MaxLine = 24 PassWord = 30 SEPassword = 0 MsgFile = ShtrihMA11.RUS.Msg MsgSection = Errors ;------------------------------------------------------------------------------------------------------------AZIMUTH3 [FiscReg3.AZIMUTH] COMPORT = 3 COMPORTPARAMS=baud=9600 parity=e data=8 stop=1 ToOEM = 0 MsgFile = Prim08TK.msg MsgSection = Errors
Обратимся к рисунку 2. В программе нажимаем кнопку "Настройки" (1), внутри - вкладка "Параметры" --> "Общие параметры" (2). Двойной клик по нужной организации (3), во всплывающем окне - вкладка "Услуги и платежи" - ставим галочку "Работать с несколькими юр.лицами (фискальные регистаторы)" (4)

(Рис.2 Включение опции в ПО Абонемент)
Теперь необходимо создать Юридические лица и киоски к ним. Возвращаемся в "Общие параметры". В разделе "Собственники" нажимаем кнопку "Добавить"
на панели меню (либо правой кнопкой нажимаем в пустое место раздела - "Добавить"). Создаём юр.лица и добавляем их в список двойным кликом. Для каждого юр.лица добавляем киоски, указываем название устройства, описанное в ini-файле (FiscReg1, FiscReg2, FiscReg3), и имя компьютера, к которому подсоединены фискальные регистраторы.
Также необходимо:
Для того, чтобы Абонемент обращался к виртуалному фискальному регистратору, требуется:
Проверить наличие RunPos.dll, sdmVirtFiscReg.dll из поставки в папке \exe\
shelter.hw.ini должен быть заполнен следующим образом (данные строки должны быть единственными незакомментированными):
[BOOT] VirtFisc = sdmVirtFiscReg.dll [hardware] FiscReg = VirtFiscReg [FiscReg.VirtFiscReg] MsgFile = FiscReg.rus.msg MsgSection = Errors ProhibitAll = 0
С версии Абонемент 127, также требуется проверить остутствие или закомментировать в abonementmanager.ini строку, если использовался универсальный драйвер ФР:
;RunPosDllName=URunPos.dll
При данных настройках, Абонемент будет обращаться к виртуальному ФР.



isUseCasherPwdTable = 1
Пример:
[FiscReg.SHTRIHM] Version = 22 COMPORT = 1 COMPORTPARAMS=baud=115200 parity=n data=8 stop=1 rts=on dtr=on ; Если в чяеке иероглифы - попробовать поменять значение (0/1) ToOEM = 1 MaxLine = 24 PassWord = 30 SEPassword = 0 MsgFile = ShtrihM21.RUS.msg MsgSection = Errors ;использовать таблицу кассиров для печати на чеках. ;Таблица кассиров настраивается самостоятельно, ограничение на кол-во кассиров 28, ;Код кассира в Абонементе = пароль в таблице кассиров в фискальниках Атол isUseCasherPwdTable = 1 ;-------------------------------------------------------- [FiscReg.SHTRIHM-FZ54] Version = 22 COMPORT = 7 COMPORTPARAMS=baud=115200 parity=n data=8 stop=1 rts=on dtr=on ToOEM = 1 MaxLine = 24 PassWord = 30 SEPassword = 0 MsgFile = ShtrihM21.RUS.msg MsgSection = Errors isUseCasherPwdTable = 1 ;--------------------------------------------------------

При работе Абонемент с фискальными регистраторами, для каждой пробитой в чеке позиции передаются (помимо стоимости и наименования) два параметра – код налога в ФР и код кассовой секции. (Параметры «Код налога ФР» и «Кассовая секция» услуги в справочнике услуг).
В общем случае, эти два параметра могут быть установлены независимо друг от друга.
В зависимости от протокола работы (семейства), ФР могут использовать оба эти параметра или только 1.
Ниже представлены примеры работы некоторых протестированных ФР с данными параметрами, при использовании универсального драйвера ФР.
Данный параметр используется в следующем случае:
Если в ФР не имеет налога с кодом 0. В таком случае, все услуги, у которых параметр "Код налога ФР" оставлен в значении по умолчанию (т.е. 0) будут при пробитии на ФР вызывать ошибку - неверный налог.
Чтобы избежать данной ситуации используется параметр TaxIndexDef - значение на которое подменяется код налога, если для услуги он оставлен в значении по умолчанию = 0.
Установка данного параметра также позволяет не перенастраивать все заведённые услуги, если на объекте используется только 1 значение налога. В таком случае параметр TaxIndexDef устанавливается в значение равное коду этого налога.
С версии 1.132 Абонемент в карточке услуги появился новый параметр - "СНО (Система налогооблажения)".
Данный параметр устанавливает, СНО который будет указан в чеке, для данной услуги.
СНО - параметр чека, что означает, что в одном чеке не могут быть позиции попадающие под разные СНО.
Таким образом, если в списке продаваемых услуг будут услуги с разными СНО, то будут распечатаны несколько чеков, с услугами сгрупиррованными по СНО.
Подробнее про особенности настройки ФР (для которых известно) для работы с несколькими СНО приведены ниже.
Для ФР ШТРИХ поддержана произвольная установка налога для услуги независимо от секции.
Т.е. настройки: "Код налога ФР" и "Кассовая секция", независимы и имеют силу для любой услуги и платежа.
Для ФР Штрих, налоги по умолчанию имеют следующие коды:
1 (А) – НДС 18%, 2 (Б) - НДС 10%, 3 (В) - НДС 0%, 4 (Г) - Без налога.
;Коды налогов ;1 = НДС 18% ;2 = НДС 10% ;3 = НДС 0% ;4 = Без налога
Также следует отметить, что количество секций ограничено и равно 16. Если установить секцию вне диапазона, при попытки пробития чека с такой позицией выйдет ошибка ФР и чек не будет зарегистрирован.
Для ФР АТОЛ поддержана произвольная установка налога для услуги.
При установленном параметре в init.xml, следующим образом: <usesectionas>Direct</usesectionas> или <usesectionas>Auto</usesectionas>, оба параметра - "код налога ФР" и "кассовая секция" независимы и имеют силу. (С версии драйвера fpAtol54.dll v.7.39.153.0)
Direct - id налогов не изменяются и передаются в ФР как в карточке услуги.
Auto - id налогов изменяются и передаются в ФР так, чтобы для вызывающего ПО (Абонемент) id налогов были как в версиях прошивки ФР до появления ФФД 1.05, когда были изменены id налогов (см.ниже).
Иначе налоги используются в зависимости от используемой секции. (Настройка привязки налогов к конкретным секциям настраивается в ФР, в таблице "Секции")
В какую именно секцию зачислять ту или иную услугу, определяется или параметром "кассовая секция" (по умолчанию), или параметром "код налога ФР", в зависимости от настроек подключения.
В случае если параметр установлен как: <usesectionas>Department</usesectionas>, то налоги привязываются в зависимости от используемой секции. (Настройка привязки налогов к конкретным секциям настраивается в ФР, в таблице "Секции")
В какую именно секцию зачислять ту или иную услугу, определяется или параметром "кассовая секция". Параметр "Код налога ФР" не используется.
Если в параметр установлен как: <usesectionas>TaxRateIndex</usesectionas>, то налоги привязываюются в зависимости от используемой секции.
В какую именно секцию зачислять ту или иную услугу, определяется или параметром "код налога ФР". Параметр "кассовая секция" не используется.
Для АТОЛ 22Ф на котором производилось основная часть тестирования - секция по умолчанию - 01, налог по умолчанию для секции 01 = НДС 0%, 02 = НДС 10%, 03 = НДС 18%, 04 = Без НДС.
;Коды налогов ;01 = НДС 0% ;02 = НДС 10% ;03 = НДС 18% ;04 = Без НДС
Также следует отметить, что количество секций ограничено и равно 16. Если установить секцию вне этого диапазона, при попытки пробития чека выйдет ошибка ФР и чек не будет зарегистрирован.
На прошивках устанавливаемых с начала 2018 года изменился порядок налогов в ФР АТОЛ
!!!Обязательно ознакомьтесь с информацией, приведённой в задаче 150489 касательно версий fpAtol54.dll v.7.39.153.0 и выше.
На прошивках, устанавливаемых в связи с повсеместным переходом на ФФД 1.05 таблица налогов изменена на следующую:
;Коды налогов (коды секций к которым прикреплены налоги) ;01 = НДС 0% ;02 = НДС 10% ;03 = НДС 18% ;04 = НДС 10/110 ;05 = НДС 18/118 ;06 = Без НДС
Если использовался один из изменивших id налогов, то необюходимо произвести соответствующие изменения в TaxIndexDef и/или "Код налога ФР"
Работа с несколькими СНО
В ФР АТОЛ для корректной работы с несколькими СНО требуется:
В параметрах ККТ через тест драйвера, в секции "Налоговые ставки" установить только одну галку "Использовать **** СНО". Причём какую именно - не принципиально, поскольку СНО будет определяться настройками в Абонемент.
Только в таком случае ФР будет регистрировать чеки на СНО передаваемое ПО Абонемент.
В противном случае, ФР будет возвращать расширенную ошибку "103h Некорректная СНО", даже если эта конкретная СНО в ФР разрешена, но разрешено настройками более одной СНО.
|
Рис.1 Ошибка при некорректной настройке ФР |
ФР Спарк 115-Ф позволяет установку произвольного налога для каждой позиции чека.
ФР не поддерживает кассовые секции, соответственно параметр «кассовая секция» не используется.
Для ФР СПАРК, на котором производилось тестирование, коды налогов имели следующую привязку:
;Коды налогов ;0 = НДС НЕ ОБЛ. ;1 = НДС 18% ;2 = НДС 10% ;3 = НДС 0%
ФР ПРИМ 08-Ф позволяет установку произвольного налога для каждой позиции чека.
ФР не поддерживает кассовые секции, соответственно параметр «кассовая секция» не используется.
Для ФР ПРИМ, на котором производилось тестирование, коды налогов имели следующую привязку:
;Коды налогов ;0 = БЕЗ НДС ;1 = НДС 0% ;2 = НДС 10/110% ;3 = НДС 18/118% ;4 = НДС 10% ;5 = НДС 18%
Начиная с версии 1.27.0.1 утилиты TcpCardReader добавлена поддержка HID-устройств.
Поставка включает в себя следующий набор файлов:
tcpcardreader.exe
decodecards.dll
KeyScan.dll
KeyScan.iniСодержание файла KeyScan.ini:
При настройке взаимодействия ПО "Абонемент" и утилиты TcpCardReader следует обратить внимание на то, что библиотека decodecards.dll используется и в ПО "Абонемент" и в утилите TcpCardReader и настраивается отдельно для Абонемента и для tcpcardreader.
Ниже указаны пути к файлам учавствующим в настройке взаимодействия утилиты TcpCardReader и ПО "Абонемент":
| \_UCS\_FITNESS\TcpCardReader |
\_UCS\_FITNESS\exe\ |
|
|
TcpCardReader.exe
TcpCardReader.ini
Decodecards.dll
Decodecards.ini
|
Abonementmanager.exe
Abonementmanager.ini
Decodecards.dll
Decodecards.ini
|
|
На Рис. 1 представлена схема получения номера карты и последовательность преобразований:

(Рис.1 Схема получения номера карты)
В этом случае мы можем подключить любое количество считывателей и использовать в различных конфигурациях ПО "Абонемент". Утилита "TcpCardReader" слушает COM-порт и передает полученную из него информацию в указанный TCP-порт для последующей рассылки TCP-клиентам. При этом важно правильным образом сконфигурировать decodecards.ini на стороне ПО "Абонемент" и на стороне TcpCardReader, чтобы в ПО "Абонемент" передавался корректный трек для привязки к клиенту в качестве идентификатора.

(Рис.2 Получение трека карты)
В Putty при считывании карты получили трек (Рис.2) приводим его к виду: 454786863 (1B1B7F2F):
[application]
AutoStart = 1
AutoHide = 0
[TCP]
PORT=7760
IP=0.0.0.0
[READER1]
COMPORT=1
COMPORTPARAMS=baud=9600 data=8 parity=N stop=1
;Параметр Prefix задаёт строку, которая передаётся клиентам перед первым прочтенным символом
Prefix=;
;Параметр Postfix задаёт строку, которая передаётся клиентам после последнего прочтенного символа
Postfix=?
;Использовать decodecards.dll
useDecodeCards=1
StartTermChars=i
FinishTermChars=?#13;#10;#0;[cards]
CardPrefix =
StaffCardPrefix = y
RegularCardPrefix = z
PDSCardPrefix = x
FirstSignEquallyAsLetterA = 0
[cards.Card]
CardDecodeType = mask
mask=hhhhhhhh
bitmask=$7FFFFFFF
code=2
[cards.RegularCard]
code=22
[cards.StaffCard]
code=21
[cards.PDSCard]
code=24После чего, прикладываем карту к считывателю и проверяем лог работы библиотеки преобразования "decodecards.log" в папке "C:\...\TcpCardReader\LOG\":

[TCPCardReader]
PORT=7760
HOST=127.0.0.1
;Если используется TCPCardReader для чтения com-портом, то установите UseTCPCardReader=1
UseTCPCardReader=1
StartTermChars=;
FinishTermChars=?#13;#10;#0;[cards]
CardPrefix =
StaffCardPrefix = y
RegularCardPrefix = z
PDSCardPrefix = x
FirstSignEquallyAsLetterA = 0
[cards.Card]
code=2
[cards.RegularCard]
code=22
[cards.StaffCard]
code=21
[cards.PDSCard]
code=24В этом случае в ПО "Абонемент" будет передан номер карты (см. Рис.4): 454786863

(Рис.4 Таблица "Идентификаторы" в ПО "Абонемент")

(Рис.5 Получение трека карты в Putty.exe )
В Putty при считывании карты получили трек следующего вида: "Em-Marine[1900] 242,12358", приводим его к виду "24212358" с помощью файла decodecards.ini и tcpcardreader.ini (выделены учавствующие в преобразовании блоки):
Параметры настройки tcpcardreader.ini на стороне утилиты TcpCardReader:
[application]
AutoStart = 1
AutoHide = 0
[TCP]
PORT=7760
IP=0.0.0.0
[READER1]
COMPORT=6
COMPORTPARAMS=baud=9600 data=8 parity=N stop=1
;Параметр Prefix задаёт строку, которая передаётся клиентам перед первым прочтенным символом
Prefix=;
;Параметр Postfix задаёт строку, которая передаётся клиентам после последнего прочтенного символа
Postfix=?
;Использовать decodecards.dll
useDecodeCards=1
StartTermChars=i
FinishTermChars=?#13;#10;#0;
;Файл логирования треков
TrackLogFile=
ConvertTrackLog=0
IncludeTypeStartTermChar=0
IncludeStartTermChar=0
NeedCheckAndReopenCom=1[general]
usemask=1
[mask]
card = ne*
[cards.Card]
ExcludedPrefix=ne[
code=2
CardDecodeType = MASK
mask=****dddddddd
DecodeTypeEx = 0
(Рис.6 Рассылка через TCP-порт полученного номера карты)
Параметры настройки abonementmanager.ini на стороне ПО "Абонемент":
[TCPCardReader]
PORT=7760
HOST=127.0.0.1
;Если используется TCPCardReader для чтения com-портом, то установите UseTCPCardReader=1
UseTCPCardReader=1
StartTermChars=;
FinishTermChars=?#13;#10;#0;[cards]
CardPrefix =
StaffCardPrefix = y
RegularCardPrefix = z
PDSCardPrefix = x
FirstSignEquallyAsLetterA = 0
[cards.Card]
CardDecodeType = mask
mask=dddddddddddddd
code=2
[cards.RegularCard]
code=22
[cards.StaffCard]
code=21
[cards.PDSCard]
code=24В этом случае в ПО "Абонемент" будет передан номер карты: 24212358.
В этом случае можно подключить только 1 считыватель который будет занимать COM порт в монопольном режиме. Подключаем считыватель карт, устанавливаем драйвера, в Диспетчере устройств MS Windows мониторим какой порт занят считывателем и указываем его в Putty, после чего проверяем требуемые виды карт на считывателе и смотрим входные данные (треки) в Putty. На основании полученных треков настраиваем decodecards.ini и abonementmanager.ini для передачи преобразованного трека со считывателя в ПО "Абонемент".

Параметры настройки abonementmanager.ini на стороне ПО "Абонемент":
[TCPCardReader]
PORT=7760
HOST=127.0.0.1
;Если используется TCPCardReader для чтения com-портом, то установите UseTCPCardReader=1
UseTCPCardReader=0
StartTermChars=i
FinishTermChars=?#13;#10;#0;
[HARDWARE.READER]
COMPORT = 1
COMPORTPARAMS=baud=9600 parity=n data=8 stop=1
;Если UseTCPCardReader=1, то секция не используется
StartTermChars=i
FinishTermChars=?#13;#10;#0;Параметры настройки decodecards.ini на стороне ПО "Абонемент":
[general]
usemask=1
TrackResultLog=
[mask]
card = ne*
card2 = fare*
[cards.Card]
ExcludedPrefix=ne[
code=2
CardDecodeType = MASK
mask=****dddddddd
[cards.Card2]
ExcludedPrefix=fare[
code=2
CardDecodeType = MASK
mask=hhhhhhhh 
Для проверки корректности преобразования смотрим лог-файлы ПО "Абонемент".
В лог-файле библиотеки декодирования decodecards.dll (\...\exe\LOG\[YYYY-MM].log\decodecards'YYYY-MM-DD=HH.log) ищем записи следующего вида:
В лог-файле ПО "Абонемент" (\...\exe\LOG\[YYYY-MM].log\abonementmanager'YYYY-MM-DD=HH.log) ищем записи следующего вида:
Заходим в "Настройки"->"Пользователи"->Выбираем нужного сотрудника и нажимаем кнопку "Прикрепить идентификатор" (см.Рис 9):

(Рис.9 Прикрепление идентификатора к пользователю в ПО "Абонемент" )
Появится окно прикрепления идентификатора, соответственно прикладываем карту сотрудника к считывателю (см. Рис 10,11):

(Рис.10 Прикрепление идентификатора)

(Рис.11 Прикрепление идентификатора)
Данный увеличения скорости обслуживания клиента при реализации товаров и услуг, уместно произвести дополнительную настройку для сканера штрих-кодов.
Если HyperTerminal выдает последовательность `9785318001000#
9785318001000 - реальный номер
` и # Старт и стоп символы выдаваемые считывателем
Настройка TcpCardReader.ini
| [READER1] | Устройство считывания штрих кодов |
| COMPORT=1 | Порт, к которому подключен |
| COMPORTPARAMS=baud=9600 data=8 parity=N stop=1 | Характеристики устройства. |
| Prefix=;BarCode | Префикс идентификатор. |
| Postfix=? | Постфикс |
| useDecodeCards=0 | DecodeCards не используеться |
| [TCPCardReader] | |
| StartTermChars=; | |
| FinishTermChars=#13;#10;#35; | #35 Это символ # |
| BarCodePrefix=BarCode | Префикс штрих кодов (Prefix в TcpCardReader.ini). Только буквы латинского алфавита и цифры |
| PrefixMaskForProhibitDecode = BarCode* | Маска штрих кодов |

Рис. 1 Прикрепление БАР кода
При быстрой продаже, просканировав товар, он отобразиться в списке:

Рис. 2 Продажа товара или услуги


[READER1] isKBReader=0 COMPORT=25 COMPORTPARAMS=baud=9600 data=8 parity=N stop=1 ;Параметр Prefix задаёт строку, которая передаётся клиентам перед первым прочтенным символом Prefix=; ;Параметр Postfix задаёт строку, которая передаётся клиентам после последнего прочтенного символа Postfix=? ;Использовать decodecards.dll useDecodeCards=0 StartTermChars=#10; FinishTermChars=#13; [READER2] COMPORT=19 COMPORTPARAMS=baud=9600 data=8 parity=N stop=1 ;Параметр Prefix задаёт строку, которая передаётся клиентам перед первым прочтенным символом Prefix=; ;Параметр Postfix задаёт строку, которая передаётся клиентам после последнего прочтенного символа Postfix=? PrefixAfterFirstSymbol=0 ;Использовать decodecards.dll useDecodeCards=0 StartTermChars=; FinishTermChars=?#13;#10;#0; NeedCheckAndReopenCom=1
[TCPCardReader] PORT=7760 HOST=127.0.0.1 ; Если используется TCPCardReader для чтения com-портом, то установите UseTCPCardReader=1 UseTCPCardReader=1 StartTermChars=; FinishTermChars=?#13;#10;#0;
[general] usemask=1 TrackResultLog= [mask] card3 = Em-Marine* card2 = Mifare* card = * [cards.Card] code=2 CardDecodeType = MASK mask=hhhhhhhhhhhhhh [cards.Card2] ExcludedPrefix=Mifare[ code=2 CardDecodeType = MASK mask=hhhhhhhhhhhhhh DecodeTypeEx=4 [cards.Card3] ExcludedPrefix=Em-Marine[ code=2 CardDecodeType = MASK mask=****dddddddd
|
Рис.3 Пример настроек устройства в rKeeper7, в случае работы считывателя в режиме COM |
Рис.4 Пример настроек устройства в rKeeper7, в случае работы считывателя в режиме клавиатуры |
Примеры настроек устройства в rKeeper7 приведены на рис.3-4
Пример кода и настроек MCR-алгоритма:
|
Код алгоритма, соответствующий декодированию, описанному выше для Абонемент:
function MCR1000689(DeviceSignal: Integer; DeviceIdent: Integer; var Parameter: String): Boolean;
var
track,trn:string;
begin
if (DeviceIdent<>951)
then Result := False
else
begin
track:=Parameter;
trn:=Copy(track,7,8)+Copy(track,1,6);
Parameter:=int64tostr(strtoint64('$'+trn));
result:=true;
end;
end; |
Рис.6 Пример настроек MCR-алгоритма |
|
Рис.1 Внешний вид считывателя GP 20 с распаянным разъёмом RS232 |
Данный считыватель характеризуется повышенной дальностью считывания бесконтактных карт Em-Marine (до 20 см, согласно документации).
Такой считыватель можно устанавливать под специальные панели турникетов с подсветкой, через которые не считываются или плохо считываются карты считывателями типа Matrix III RD-ALL. (Например как на турникетах PerCo TTR-08A, TTD-08A)
В тоже время, необходимо иметь ввиду, что данный считыватель чувствителен к входному напряжению питания - при превышении 12-15В входного напряжения считыватель уходит в защиту и перестаёт считывать карты.
Считыватель поставляется без каких-либо разъёмов, для большей гибкости подключения. Соответственно, подключение необходимо производить самостоятельно.
Согласно документации подключение считывателя по RS232 должно происходить следующим образом:
Serial ASCII (RS232) Red Power +V Black Ground 0v Green Tx Data Yellow No connection
Т.е.
Красный - положительный контакт блока питания Чёрный - земля блока питания, а также контакт GND RS232 Зелёный - контакт TX RS232 Желтый - изолирован
Остальные также должны быть изолированы.
Как подключить считыватель в дополнительный порт контроллера UCS (RJ12) можно узнать в соответствующей статье.
Данный считыватель возвращает не чистый трек карты Em-Marine, как считыватели Z2, а возвращает только её преобразованный номер. Пример:
| Z2 | - | Em-Marine[0500] 185,05453 |
| GP 20 | - | 0500B9154D |
Соответственно, номер карты в обоих случаях будет 18505453
С декодированием в gkhostconnect настроенным как:
[cards.Card] CardDecodeType = MASK MASK=****hhhhhh DecodeTypeEx=3 code=2
[cards.Card] CardDecodeType = LAST8 code=2
| Функционал | Абонемент | Абонемент_Lite Фитнес |
| Ведение клиентской базы данных | да | да |
| Справочник услуг | да | да |
| Справочник абонементов с учетом количества посещений | да | да |
| Справочник абонементов с типом «Членство» | да | да |
| Справочник абонементов с учетом тарификации | да | нет |
| Заморозка абонементов с типом «Членство» | да | да |
| Заморозка абонементов без типа «Членство» | да | нет |
| Платные заморозки | да | нет |
| Расписание действия абонементов | да | да |
| Расписание продаж абонементов | да | нет |
| Рассрочка платежей за абонемент | да | нет |
| Полная оплата абонементов и услуг | да | да |
| Регистрация абонементов и услуг без оплаты | да | нет |
| Возвраты | да | да |
| Депозитная система | да | да |
| Работа с подарочными сертификатами | да | нет |
| Система скидок | да | нет |
| Быстрая продажа | да | нет |
| Работа с идентификаторами | да | да |
| Деактивация абонементов | да | да |
| Редактирование периода действия абонементов | да | да |
| Групповые абонементы | да | нет |
| Бронирование мероприятий | да | нет |
| Отметка посещений в рамках членства | да | да |
| Списание персональных тренировок с выбором специалиста | да | да |
| Расчет вознаграждения специалистов | да | нет |
| Выдача проката | да | нет |
| Медицинская карта | да | нет |
| Работа с сопровождающими | да | нет |
| Шаблоны договоров | да | да |
| Отчетность | да | да |
| Sms и email рассылка | да | да |
| Кассовые функции (X-отчет, Z-отчет, Сверка итогов и т.д.) | да | да |
| Настройка функционала для ролей пользователей | да | нет |
| Подключение ФР и банковского терминала | да | да |
| Подключение считывателей | да | да |
| Подключение устройств для контроля доступа (турникеты, калитки, замки и т.д.) | да | нет |
| Договорная работа | да | нет |
|
Рис.1 Внешний вид Абонемент_Lite Фитнес |
|
Рис.2 - Принципиальная схема взаимодействия составных частей Абонемент Lite |
![]() |
| Рис.3 - Выработка лицензии для Абонемент Lite |
|
Абонемент Lite поставляется вместе с инсталлятором.
Таким образом, установка Абонемент Lite сводится к последовательному нажатию на кнопку далее с промежуточным выбором требуемых вариантов параметров установки.
Пример процесса установки основного рабочего места с параметрами по умолчанию показан на анимации 1.
Установка дополнительного рабочего места происходит таким же образом. Но при выборе опции установки "дополнительное рабочее место", не будет установлена серверная часть абонемент (СУБД, сервер блокировок, модуль рассылки).
Также, при установке дополнительного рабочего места Вам обязательно потребуется установить путь к основному рабочему месту - поля "Хост" этапа "Основные параметры". Можно использовать как IP-адрес, так и имя компьютера.
ВАЖНО!
Установщик не создаёт правила для входящих подключений брендмауэра/антивирусного ПО. В случае подключения второго и последующих рабочих мест, правила на основном рабочем месте должен настроить инженер/системный администратор.
|
Анимация 1 - Процесс установки Абонемент Lite |
|
При установке создаётся структура каталогов в выбранном при установке каталоге, показанная на рис.3. Она аналогична структуре каталогов поставки полной версии Абонемент. (Подробнее про состав поставки)
|
Рис.3 Структура каталогов установленных инсталлятором |
| Страница конфигуратора доступна в боковом меню основной страницы модуля, показанного на рис.4, по кнопке "Настройки" -> "Оборудование". |
Рис.4 Боковое меню Абонемент Lite |
|
В конфигураторе доступны следующие опции:
1.Путь к серверу блокировок Абонемент;
2.Путь к БД Абонемент;
3.Тип и данные подключения к фискальному регистратору;
4.Тип используемого банковского терминала;
(требуется соответствующая лицензия 3-8)
5.Тип и данные подключения к считывателю;
6.Настройки провайдера SMS рассылки.
(требуется соответствующая лицензия 4-10)
Пример страницы конфигуратора приведён на рис.5
Конфигуратор изменяет настройки Connecter, TCPCardReader и подключаемых к ним библиотек в автоматическом режиме.
ВАЖНО!
К моменту настройки всё планируемое к использованию оборудование должно быть подключено и готово к использованию.
Ручная настройка
Настройку также можно производить вручную, аналогично тому как данные моменты настраиваются для основного модуля Абонемент (Connecter), TCPCardReader и GuestAnnouncer2.
ВАЖНО!
Конфигуратор перезапишет все изменения внесённые вручную, если будет запущен после внесения изменений.
|
Рис.5 - Внешний вид веб-конфигуратора |
| Работа нескольких рабочих мест с одним основным | Установщик не создаёт правила для входящих подключений брендмауэра/антивирусного ПО. В случае подключения второго и последующих рабочих мест, правила на основном рабочем месте должен настроить инженер/системный администратор. |
| При использовании веб-конфигуратора | К моменту настройки всё планируемое к использованию оборудование должно быть подключено и готово к использованию. |
| При ручной настройке модулей | Конфигуратор перезапишет все изменения внесённые вручную, если будет запущен после внесения изменений. |
| При установке установщиком (v1.136.8 от 08.04.2019) | Не удаётся установить службы GA2, если он был выбран при установке (поднимается соответствующая ошибка (отсутствие ibuser.dll)). Требуется установить вручную после перезагрузки. |
Реализована интеграция системы Абонемент с мобильным приложением компании Mobifitness, которая обеспечивает эффективное ведение бизнес-процессов и улучшает взаимодействие заказчика с их клиентами. Mobifitness - это сервис, благодаря которому каждый фитнес клуб может позволить себе индивидуальное мобильное приложение для IOS и Android, которое полностью брендируется под фирменный стиль клуба и является бесплатным для его посетителей. Сайт https://mobifitness.ru/
Основными возможностями данного решения являются
Для доступа к БД Абонемент мобильного приложения используется API connecter из поставки Абонемент.
Утилита является посредником между запросами приложения и БД Абонемент, используя соответствующий протокол.
Настройка Connecter производится через connecter.ini, где указываются:
PrivateKey - секретный ключ, его необходимо будет предоставить Mobifitness;
UseUrlEncode = 0
DBConnectCount - количество создаваемых подключений к БД - максимальное количество одновременно обрабатываемых запросов, при недостаточном количестве - при высокой нагрузке клиентов на веб модуль не все запросы смогут быть обработаны, при большом количестве - утилита будет долго инициализироваться и займёт большое количество ресурсов для одновременной работы всех подключений. (Значение по умолчанию - 16, достаточно для не слишком большого наплыва клиентов до 500 в час);
BindingPort - порт, на который будут приниматься запросы от мобильного приложения, должен быть проброшен для доступа извне;
BindingIp - локальный IP на котором будет занят BindingPort, должен быть проброшен для доступа извне приложением;
ListenQueue - длина очереди для обработки запросов;
Настройка на БД Абонемент происходит как и в прочих модулях, в настройке на сервер блокировок дополнительно необходимо указать Project = 1, Module = 1,
Для использования онлайн-оплаты через приложение, следует настроить дополнительный киоск, на котором всегда будет открыта смена. Прописать в секцию [defaults] в connecter.ini параметр StdKioskCode.
Необходимо завести тип платежа для оплат из мобильного приложения, код платежа необходимо будет передать в Mobifitness.
Если со стороны мобильного приложения фискализация оплаты не производится, то для выполнения требований 54ФЗ, необходимо настроить одно из решений облачной фискализации под Connecter. (Для решений облачной фискализации наличие email или телефона клиента в чеке является обязательным, соответственно, должны быть установлены параметры "Общие параметры" - "Услуги и платежи" - "ФР может отправлять чеки на Email / через SMS")
Рис.1.1.
Для проведения платежных транзакций в мобильном приложении в ПО Абонемент необходимо завести новый фискальный платеж. Код платежа необходимо сообщить разработчикам мобильного приложения.
Рис. 2.1.
Для использования онлайн-оплаты через приложение, следует настроить дополнительный киоск, на котором всегда будет открыта смена

Рис.3.1
Для каждой категории инструкторов необходимо завести свою специальность. В приложении отображаются только те специалисты, у которых в карточке специальности выставлен флаг «Проводят мероприятия».
Рис.4.1.
В приложении выглядит таким образом:
Рис.4.2.
Информация о тренере подтягивается из поля «Примечание» из карточки специалиста. Фото выводится из персональных данных из карточки клиента.
Рис.4.3.
В приложении выглядит таким образом:
Рис.4.4.
Записаться на персональную тренировку в приложении возможно в рамках ранее купленного абонемента или на этапе записи приобрести новый подобный абонемент.
При настройке абонементов на персональные занятия следует учесть некоторые особенности: если занятия фактически проводятся в разных зонах (ресурсах), то их (ресурсы) необходимо завести как типы ресурсов. Код данных типов ресурсов должен начинаться с определённого префикса (в данном примере PT_*).
Пример: В прайс-листе заведены позиции
- Разовая персональная тренировка 1000р
- Блок персональных тренировок (5 шт.) 4500р
- Разовая персональная тренировка в бассейне 900р
- Блок персональных тренировок в бассейне (5 шт.) 4000р
В ПО «Абонемент» в справочниках в «Категории ресурсов» выполняются следующие настройки:
Рис. 5.1.
При настройке типов абонементов в карточке типа абонемента необходимо выставлять флаг «доступен для интернет-бронирования». В карточке тарифа выбирается тот тип ресурса, который соответствует месту проведения мероприятия.
Рис. 5.2.
В приложении запись на персональную тренировку выглядит следующим образом:
Здесь в скором вреимени появится screen.
В ПО «Абонемент» в справочник «Типы событий» необходимо завести типы групповых занятий с указанием максимального количества человек в мероприятии и продолжительности.
Рис. 6.1.
На вкладке «Специалисты» с помощью функции «Автоматическое создание групповых мероприятий» необходимо завести сетку групповых программ на период. При распределении обязательно нужно выбирать «Тип события».
Рис.6.2.
Рис. 6.3.
В приложении расписание будет выглядеть следующим образом:
Рис. 6.4.
Записаться на групповое занятие в приложении возможно в рамках ранее купленного абонемента или на этапе записи приобрести новый подобный абонемент.
Важно! При настройке абонементов, которые позволят посещать групповые занятия, следует учесть следующий момент: групповые мероприятия могут быть как бесплатными (доступными в рамках членства), так и платными (доступными в рамках доп. абонемента). Запись на мероприятия происходит на основании доступного ресурса в действующем абонементе клиента. Соответственно, в одном ресурсе могут проводиться и платные, и бесплатные мероприятия. Поэтому если у клиента есть членство, которое позволяет записываться на бесплатные мероприятия в определенном ресурсе, то без дополнительных настроек не получится запретить запись на платное мероприятие в этом же ресурсе. Чтобы ограничить возможность клиента записываться в платное мероприятие, не имея при этом соответствующего абонемента, необходимо настроить связку типов событий и тарифов с помощью свойств объектов.
В справочнике «Свойства объектов» следует добавить новое свойство, которое распространяется на тариф и тип события с двумя значениями.
Рис. 7.1.
Далее в каждом тарифе и типе события необходимо выставить соответствующее свойство объекта.
Рис. 7.2.
Рис. 7 .3.
8. Клубные членства
Для того чтобы абонемент был доступен для покупки в мобильном приложении, в карточке типа абонемента должен быть выставлен флаг «Доступен для интернет бронирования».
Рис. 8.1.
________________________________________________________________________________________________________________________________________________________________________________________________
Модуль "Монитор Контролера" используется для удобства контроля доступа посетителей на объект.
IP-камера (к использованию рекомендуется камера AXIS M1011-W (http://support.ucs.ru/ru/node/8757), настраивается в утилите GkHostConnect) установленная на устройстве контроля доступа, в момент прохода фотографирует клиента и передает изображение в модуль "Монитор контролера" (в модуле также отображается фото клиента из БД "Абонемент").
Дистрибутив модуля "Монитор контролера" содержится в базовой поставке ПО "Абонемент": "FullVersionVerXXX\UTILS\Access_Control_Monitor".
Модуль защищен лицензионным ключом: Проект 4 - Модуль 6 (http://support.ucs.ru/ru/node/8922)


| "Дата-время" | Дата и время сообщения |
| "ФИО" |
Фамилия, Имя, Отчетство клиента из БД "Абонемент" |
| "Трек" | Трек полученный с устройства |
| "№Карты" | Номер карты клиента |
| "Сообщение" | Сообщение полученное от устройства |
| "Тип сообщения" | Тип сообщения |
| "Ресурс" | Наименование соответствующего ресурса |
| "№Клиента" | Номер клиента из БД "Абонемент" |
| "Баланс" | Баланс клиента из БД "Абонемент" |
| "Тариф" | Тариф из БД "Абонемент" |
| "Абонемент" | Абонемент клиента |
| "Катег. наим." | Наименование категории клиента |
| "Катег. код" | Код категории клиента |
| "VIP-код" | VIP-код клиента, раскрашивается соотв. цветом |
| "Device" | Устройство, от которого пришло сообщение |
| "Relay" | Контроллер, от которого пришло сообщение |
[TCPCardReader] UseTCPCardReader=1 [LOCK.SERVER] TCPHOST = 127.0.0.1 TCPPort = 1119 [database] dbname=127.0.0.1/3080:D:\_IBDATA\FITNESS.FDB dbuser = ucs DBPassword = oQKH8n0BFUE= [filter] numbers=пляж HostControllersIP=0.77;51.51;32.01; DefaultFilterType = 0 ; DefaultFilterType = 0 - numbers ; DefaultFilterType = 1 - HostControllersIP [Localization] CurrentLanguage=default
| R-Keeper CRM 5 | Версия 5.9.5.3 |
| R-Keeper CRM 7 | Версия 7.12.7.2 |
| ПО "Абонемент" | Версия 1.134 |
| amPDS_CS.dll | Версия 1.7.0.0 |
|
Действие в Абонемент |
Результат |
|
1. В списке гостей проводим карточкой гостя CRM. Поиск гостя. |
Если гость в Абонемент с таким PIN не найден, то происходит добавление гостя. Передается фамилия, имя, отчество, дата рождения и текущий код скидки. Если гость с таким PIN есть, то открывается карточка гостя. |
|
2. В быстрой продаже нажали на кнопку «ПДС карта» |
Произошел запрос в CRM, к заказу применилась скидка, но гость в Абонемент создался обезличенный - * |
|
3. Передача потрат |
Потраты передаются на счет потрат со всех платежей, кроме "Списание с ПДС". Флаг «Бонусы накапливаются во внешней ПДС» значения не имеет. |
|
4. Передача бонусного процента от платежа |
При установленном флаге «Бонусы накапливаются во внешней ПДС» - на депозитный счет зачисляется бонусный процент. Работает для всех типов платежей, включая Списывать с ПДС. |
|
5. Оплата с депозитного счета ПДС |
Оплата любых услуг деньгами с депозитного счета. Списание происходит только с одного депозитного счета. |
|
6. Пополнение депозиного счета |
Заводится специальная услуга «Пополнение PDS» и платеж «Пополнение PDS» фискального (нефискального) типа. В карточке платежа бонусный процент равен 100. Происходит пополнение депозитного счета в CRM. В Абонементе на фолио фиксируется пара услуга и платеж. |
С версии Абонемент 134 поставка необходимого для интеграции находится по пути FullVersionVer134\_INTERFACE\PDS\PDS-CS\
В поставку входят amPDS_CS.dll и amPDS_CS.ini
Для подключения к Абонемент, необходимо скопировать данные файлы в папку exe, а также в abonementmanager.ini заполнить секцию [PDS] следующим образом:
[PDS] RunPDSDllName=amPDS_CS.dll isMultiPay=1
Далее необходимо заполнить amPDS_CS.ini следующим образом:
[DLL.PDS-CS] ;дисконтная карта может передаваться другому человеку DefKindCard = 0 GlobalKey = ; вводим уникальный лицензионный глобальный ключ (за ним обращаться в Лицензионный отдел UCS) (*) LoginUser = Администратор LoginPsw = 1 Host = 172.22.3.172 ;адрес компьютера, на котором запущен сервер авторизации карт Port = 9191 ;порт, который слушает сервер авторизации карт TerminalID = 13 ;код классификатора ПО ;Код типа счета - деньги, плюс бонусы PaymentAccountTypeID = 00001 ;Код типа счета – потраты, все потраченные в Абонементе деньги ServiceAccountTypeID = 00004 ;Код типа счета – скидка DiscountAccountTypeID = 00002 ;Код контакта Телефон 1 Phone1TypeCode=35 ;Код контакта Телефон 2 Phone2TypeCode=55 ;Код контакта Email EmailTypeCode=12
* - в R-Keeper CRM 5: короткий ключ, в R-Keeper CRM 7: не требуется.
Все вышеперечисленные типы кодов должны совпадать с типами кодов в R-Keeper CRM.
С версий amPDS_CS.dll 1.11.0.2 и Абонемент 1.136 доступна передача содержимого чека в CRM, для возможности последующей настройки акций ориентирующихся на состав чека.
В силу того что в CRM все "Коды" являются строго целочисленными полями, необходимо и в Абонемент привести поле "Код" к целочисленному виду, иначе чеки не будут отправлены в CRM, для предотвращения внутренних ошибок CRM.
Если нет возможности в БД привести коды всех используемых услуг, групп услуг, абонементов, групп абонементов и платежей к целочисленному виду, то можно воспользоваться функционалом подмены кодов, используя следующие секции amPDS_CS.ini
[TranslateCodes.Code] ; Код услуги/абонемента/платежа = код блюда для CRM @12=12100 USL14=14000 VISA=999 MCARD=998 [TranslateCodes.CategCode] ; Код группы услуг/абонементов = код категории меню для CRM ONL=775 БАР=777 ЗАЛ=776
Таким образом, даже при не целочисленном коде в Абонемент чек будет успешно передан, с подменой кода согласно настройке.
Если абонемент не принадлежит ни в одной группе, чек также не будет передан.
Если код группы не целочисленный и для него не настроена подмена, но все остальные условия выполнены, чек будет передан, но группа будет передана с кодом 0.
|
Рис.1 Пример переданного содержимого чека в CRM7 |





Рис.6 Схемы в R-Keeper CRM













[MERGE] pdscs=PDS_CS.ini
[BOOT] PDS = %exepath%\sdmPDS_CS.dll [DLL] PDS = PDS-CS [DLL.PDS-CS] ;дисконтная карта может передаваться другому человеку DefKindCard = 0 GlobalKey = ; вводим уникальный лицензионный глобальный ключ (за ним обращаться в Лицензионный отдел UCS) (*) LoginUser = Администратор LoginPsw = 1 Host = 172.22.3.172 ;адрес компьютера, на котором запущен сервер авторизации карт Port = 9191 ;порт, который слушает сервер авторизации карт TerminalID = 13 ;код классификатора ПО ;Код типа счета - деньги, плюс бонусы PaymentAccountTypeID = 00001 ;Код типа счета – потраты, все потраченные в Абонементе деньги ServiceAccountTypeID = 00004 ;Код типа счета – скидка DiscountAccountTypeID = 00002
* - в R-Keeper CRM 5: короткий ключ, в R-Keeper CRM 7: не требуется.
Все вышеперечисленные типы кодов должны совпадать с типами кодов в R-Keeper CRM.
В данном примере используем карты вида "778=12345678=Номер карты"
[general] usemask=1 TrackResultLog= [mask] card2= 778=12345678=* [cards] CardPrefix = 778=12345678= [cards.Card2] ExcludedPrefix=778=12345678= code=2 [cards.RegularCard] code=22 [cards.StaffCard] code=21 [cards.PDSCard] code=24
| ПО "Абонемент" | Версия 1.138 |
| amPDS_FC.dll | Версия 1.10.0.5 |
Взаимодействие систем происходит через посредника - утилиту FarCards.
Со стороны ПДС ISD, к FarCards подключается библиотека интеграции специалистами ISD.
Со стороны Абонемент, к FarCards подключаются рабочие места по протоколу RTCP (должен быть настроен в FarCards).
Версии ПДС ISD, FarCards и библиотеки интеграции известны специалистам ISD, настраивающим интеграцию.
|
Действие в Абонемент |
Результат |
|
1. В списке гостей проводим карточкой ПДС ISD. Поиск гостя. |
Если гость в Абонемент с таким PIN не найден, то происходит добавление гостя. Передается ФИО и текущий код скидки. Если гость с таким PIN есть, то открывается карточка гостя. |
|
2. В быстрой продаже нажали на кнопку «ПДС карта» |
Произошел запрос в ПДС ISD, отображены данные о ПДС карте: ФИО, сумма доступных к списанию жетонов, полученный код скидки, к заказу автоматически применилась скидка. По результату оплаты гость в Абонемент создался обезличенный - *, данные карты для него не прикрепились. |
|
3. Передача потрат |
Потраты передаются на счет потрат со всех платежей, кроме "Списание с ПДС". Флаг «Бонусы накапливаются во внешней ПДС» значения не имеет. |
|
4. Оплата со счета жетонов ПДС ISD |
Оплата любых услуг жетонами ПДС ISD. . |
| 5. Передача суммы скидки |
При оплате любой услуги любым типом платежа, при установленном параметре "Карта ПДС", будет передана сумма скидки применённой к позициям чека. Вместе с информацией о потраченных средствах, будет передано содержимое чека. |
С версии Абонемент 137 поставка необходимого для интеграции находится по пути FullVersionVer137\_INTERFACE\PDS\PDS-FC\
В поставку входят amPDS_FC.dll и amPDS_FC.ini
Также для отображения данных из ПДС в формате приведённом в статье, необходимо добавить PDS_auto_ISD.frf и PDS_auto_ISD.ini из архива приложенного к данной статье в папку exe/frf.
Для подключения к Абонемент, необходимо скопировать данные файлы в папку exe, а также в abonementmanager.ini заполнить секцию [PDS] следующим образом:
[PDS] RunPDSDllName=amPDS_FC.dll QuickSale_PdsCardInfo_Report=PDS_auto_ISD
Далее необходимо заполнить amPDS_FC.ini следующим образом:
[DLL.PDS-FC] ; Тип настроек интеграции (не изменять) ProtocolType=2 ; Адрес и порт на котором доступен FarCards по протоколу RTCP, настроенный на ПДС ISD Host = 192.168.56.105:2025 ; ID Кассы, для значения 2 в ПДС ISD будет отображаться как 'RC2' UnitID = 2 ; Передавать содержимое чека (0 - не передавать, 1 - передавать, если возможно) IsSendCheck=1 ; Передавать номер оригинального чека для чеков возврата (для корректного сторнирования в ПДС) IsFindRootInvoiceForReturn=1 ; Указатель, что суммы передаются в копейках MoneyDivisor=100 ; Правила трансляции операций (не изменять!) [DLL.PDS-FC.TranslateKind] 0=-1 -0=1 1=2 -1=5 2=7 -2=-7 3=8 -3=-8 ; Правила трансляции счетов (не изменять!) [DLL.PDS-FC.TranslateSum] RESTSUM=0 DISCOUNTSUM=4 BONUSSUM=3 SPENTSUM=2
С версий amPDS_FC.dll 1.10.0.5 и Абонемент 1.138 доступна передача содержимого чека в ПДС ISD. Пример отображения содержимого чека, в отчёте ПДС ISD можно увидеть на рис.1
|
Рис.1 Отображение содержимого чека в отчёте ПДС ISD |
В силу того что в протоколе FarCards все "Коды" являются строго целочисленными полями, необходимо и в Абонемент привести поле "Код" к целочисленному виду, иначе чеки не будут отправлены в в FarCrads, для предотвращения внутренних ошибок ПДС.
Если нет возможности в БД привести коды всех используемых услуг, групп услуг, абонементов, групп абонементов и платежей к целочисленному виду, то можно воспользоваться функционалом подмены кодов, используя следующие секции amPDS_FC.ini
[TranslateCodes.Code] ; Код услуги/абонемента/платежа аналогично коду блюда RK7 @12=12100 USL14=14000 VISA=999 MCARD=998 [TranslateCodes.CategCode] ; Код группы услуг/абонементов аналогично коду категории меню RK7 ONL=775 БАР=777 ЗАЛ=776
Таким образом, даже при не целочисленном коде в Абонемент чек будет успешно передан, с подменой кода согласно настройке.
Если абонемент не принадлежит ни в одной группе, чек также не будет передан.
Если код группы не целочисленный и для него не настроена подмена, но все остальные условия выполнены, чек будет передан, но группа будет передана с кодом 0.
![]() Рис. 2 Установка флага
|
![]() Рис. 3 Пример настройки новой карточки платежа
|
![]() Рис.3 Добавление группы скидок, её состав и содержание
|
![]() Рис.4 Поиск клиента по карте |
![]() Рис.5 Добавление информации по клиенту из ПДС ISD
|
![]() Рис.7 Оплата услуг
|
|
Рис.8 Отчёт ПДС ISD по движению карты |
| Вложение | Размер |
|---|---|
| Печатная форма информации по карте | 3.05 КБ |
Данный модуль защищён ключом и является платным. Подробнее про лицензирование
| ПО "Абонемент" | Версия 1.135 |
| amPDS_UDSGame.dll | Версия 1.2.0.8 |
Работа с данной ПДС в Абонемент напрямую зависит от режима работы магазина, настроенной в UDS Game.
Доступны две опции: "Начислять cashback" и "Применять скидку к счету".


Если рабочее сотрудника оборудовано сканером для считывания QR кодов, то необходимо считать QR код, который формируется в приложении UDS Game на вкладке «скидка» (см. рис. 1.3). Если сканер отсутствует, то необходимо выставить галку «ручной вод номера карты» и в появившемся поле вручную вбить шестизначный код (см. рис.1.4) и нажать «ок».

Рис.1.3

После нажатия на кнопку «ок» из UDS Game подтягивается информация о клиенте (ФИО, текущий процент cashback, текущее количество баллов ), которую можно посмотреть по кнопке «i» в поле с номером карты (см. рис.1.5 - 1.6).


В интерфейсе быстрой продажи/быстрого чека перед оплатой необходимо осуществить поиск по ПДС-карте (см. рис. 1.1) и выставить галку «ручной вод номера карты». В появившемся поле необходимо вбить номер телефона в международном формате (Для России – «79991112233»)(см. рис. 2.1.)

Рис.2.1
Информация о клиенте в данном случае будет недоступна (см. Рис.2.2)

Рис.2.2
После оплаты данного чека сумма покупки будет передана в UDS Game и также будет начислен cashback согласно правилам магазина.
Оплату баллами можно произвести только с использованием кода UDS Game. После выбора позиций в чеке необходимо на вкладке «оплата» в разделе «безналичный расчет» выбрать тип платежа «Баллами UDS Game» (см. рис.3.1).

Рис.3.1
При выборе данного способа оплаты поднимается окно для ввода кода UDS Game. Доступная сумма баллов для оплаты ограничивается балансом клиента в UDS Game и также максимальным процентом для списания.
У пользователя также есть возможность прописать сумму баллов для списания вручную с учетом ограничений, описанных выше. Ручной ввод баллов осуществляется в режиме комбинированной оплаты.
В настройках магазина UDS Game должен быть выставлен способ предоставления скидки - применять скидку по счету. В ПО «Абонемент» действия пользователя аналогичны действиям, описанным в пункте 1. Начисление cashback по коду из мобильного приложения UDS Game.
После оплаты чека сумма покупки будет передана в UDS Game для увеличения суммы потрат клиента.
[DLL.PDS-UdsGame] ;API-ключ из кабинета магазина в UDS Game key_api = QyhBYml-NXMjQEMxXXFOQGNtTm1PcF5KTyR1VUd6RHVHLWVVN22WY4BOMXFrVzppe1g= DefaultDiscountCode = UDSG
Добавить секцию в abonementmanager.ini:
... [PDS] RunPDSDllName=amPDS_UdsGame.dll
![]() Рис.4 Установка флага
|
![]() Рис. 5 Пример настройки новой карточки платежа
|
Важно! Если магазин в UDS Game работает в режиме скидки, а не cashback, данный платёж будет отрабатывать некорректно.
![]() Рис.6 Добавление скидки |
Рис.7 Пример содержания скидки |
Важно! Если в чеке будут также применены и другие скидки, информация о транзакции в UDS Game будет распознана не совсем корректно.
(Если на часть позиций скидка не распространилась, то информация будет передана только по позициям, на которые скидка распространяется)
Для считывания QR кода из приложения на кассе, требуется наличие подходящего считывателя 2D кодов, пример подходящего оборудования можно найти в статье.
[LOCK.SERVER] ;Параметры сервера блокировок TCPHost=192.168.1.1 TCPPort=1119 [Main] ClientDLL = udsgame.dll
[Main] ;API-ключ из кабинета магазина в UDS Game key_api = QyhBYml-NXMjQEMxXXFOQGNtTm1PcF5KTyR1VUd6RHVHLWVVN22WY4BOMXFrVzppe1g= ;Код применяемой скидки DefaultDiscountCode = UDSG ;Передавать id кассира, в качестве внешнего идентификатора в UDS Game (с версии Абонемент 133, udsgame.dll версии 1.0.1.55) enableSendCasher=1
Добавить секцию в abonementmanager.ini:
... [PDS] RunPDSDllName=URunPDS.dll
Обновления |
|
| Абонемент 133 |
Добавлена возможность передавать кассира в UDS Game В качестве "внешнего идентификатора" в UDS Game передаётся id пользователя, зарегистрировавшего транзакцию (Можно посмотреть в настройках -> пользователи) |
Для выгрузки данных из Абонемент в StoreHouse5 используются утилиты ExportData (Абонемент) и QUSH (SH5). Данный функционал доступен на версиях ПО Абонемент от 130 и выше.
Утилиту ExportData можно найти в поставке Абонемент в папке FullversionVerxxx\util\ExportData\
В файле ExportData.ini указать путь БД Абонемент.
В программе ExportData.exe добавляются условия выгрузки. См. рис.1.
|
Код |
уникальный код для данного условия выгрузки. В SH4 не передается. |
|
Наименование |
Наименование товарной группы в справочнике товаров SH5 |
|
Место реализации |
Наименование места реализации См. рис 3 |
|
Префикс для элементов |
Для SH5 не актуально |
|
Префикс |
Для SH5 не актуально |
|
Внешний ID |
Для SH5 не актуально |
|
Тип экспорта |
Для ПО Абонемент используется тип «Услуги» |
|
Доп. опции экспорта |
Задает аналитику выгрузки. Предопределенные варианты. |
|
Включен |
Если данный флаг установлен, то условие выгрузки активно. |
| Выгружать место реализации как группу услуг | Для SH5 данный флаг должен быть снят. |
|
Рис.1 |
|
|
Рис.3 |
Рис.4 |
Происходит выгрузка услуг оказанных в данном периоде. Используется смена начисления услуги.
В данной интеграциисвязь сущностей ПО АБонемент и ПО SH5 происходит по уникальному идентификатору - guid.
Для типа экспорта «Услуги» дополнительные опции недоступны.
После экспорта данных в SH5, номенклатура и группы услуг ПО Абонемент будут ипортированы в SH5 (рис.6.), корневую группу товаров необходимо выбрать в настройках модуля QUSH на вкладке Справочники. (Рис.7.)
Если в данную смену были реализованы отмеченные услуги, то в SH5 будут сформированы заявки, по которым можно создать накладные.(рис.8.)
|
Рис.6 |
Рис.7 |
|
Рис.8 |
|
В ПО QUSH необходимо создать связку с Абонемент (файл->Связки с "Абонемент"->правая кнопка мыши->создать).
В настройках необходимо выбрать товарную группу на вкладке "Справочники" (рис.8) и настроить связь с БД SH5 и БД Абонемент (рис.9). Прим.: Для подключения QUSH к БД ПО Абонемент необходим провайдер LCPI OLE DB Provider for InterBase [v3] (можно скачать в интернете или взять на нашем ftp в папке /rk7/INSTALL/OTHER/IBProvider/).
|
Рис.9 |
Для выгрузки данных из Абонемент(Shelter) в StoreHouse4 используются утилиты ExportData (Абонемент) и ImportRK (StoreHouse4).
Утилиту ExportData можно найти в поставке Абонемент в папке FullversionVerxxx\util\ExportData\
ExportData.exe и ExportData.ini – программа для настройки условий выгрузки.
SHTR.dll и Shelter.ini – копируется с заменой в папку с ImportRK.exe и обеспечивает импорт из БД Абонемент(Shelter).
В файле ExportData.ini указать путь БД Абонемент(Shelter).
В программе ExportData.exe добавляются условия выгрузки. См. рис.1.
|
Код |
уникальный код для данного условия выгрузки. В SH4 не передается. |
|
Наименование |
Наименование товарной группы в справочнике товаров SH4. Данная товарная группа будет aвтоматически добавлена в группу «Меню ресторана». (Рис 2). Будет создано «Место реализации» с таким названием. См. рис 3 |
|
Место реализации |
Код места реализации См. рис 3 |
|
Префикс для элементов |
Префикс для кодов товаров. См.рис 2 |
|
Префикс |
Префикс группы товаров см.рис 4 |
|
Внешний ID |
Номер группы товаров. Объединение Префикса и Внешнего ID даст код группы. ВНИМАНИЕ! Важно чтобы данный ID не пересекался с другими Внешними ID. |
|
Тип экспорта |
Возможны 3 варианта: «Услуги», «Номерной фонд», «Номерной фонд и корпуса». |
|
Доп. опции экспорта |
Задает аналитику выгрузки. Предопределенные варианты. |
| Выгружать коррекции | Технически есть возможность выгружать коррекции и ПО Абонемент. НО! Мы этого сознательно не делаем и делать не рекомендуем. Причина этого в разной специфики работы ПО Абонемент и ПО SH4. В ПО Абонемент реализация и коррекция могут быть сделаны в совершенно разные смены и даты. Таким образом если в ПО Абонемент пройдет реализация услуги А в дату Д1, а коррекция пройдет датой Д2, но реализации услуги А за дату Д2 не будет, то за дату Д2 реализация выгрузится с отрицательным количеством, что приведет к некорректной работе SH4. Мы рекомендуем не выгружать коррекции из ПО Абонемент в ПО SH4, а пользоваться отчетами и воздействовать на документы расхода в ручном режиме в SH4. Дополнительным мотиватором действовать именно так служит фак, что коррекции могут быть как с отменой списания, так и без, например: гость покупает кофе/чай/бутылку воды, отпивает и жалуется, что напиток горький/соленый/испорчен. Гостю возвращают деньги и услугу, но по факту списание прошло и товар отгружен. |
|
Включен |
Если данный флаг установлен, то условие выгрузки активно. |
|
Рис.1 |
Рис.2 |
|
Рис.3 |
Рис.4 |
Происходит выгрузка услуг оказанных в данном периоде. Используется смена начисления услуги.
При настройке важно учитывать, что Внешний ID не должен пересекаться с Внешним ID у групп услуг. На рис.5. максимальный внешний ID у групп выгружаемых услуг 101, а Внешний ID - 1000.
Для типа экспорта «Услуги» дополнительные опции недоступны.
|
Рис.5 |
После экспорта данных в SH4, создана группа верхнего уровня «Реализация услуг» в которой дерево товаров такой же структуры, как и в Абонемент(Shelter). (Рис.6.)
Если в данную смену были реализованы отмеченные услуги, то в StoreHouse4 будет сформирован документ расхода.(рис.7.)
|
Рис.6 |
Рис.7 |
Происходит выгрузка выездов из номеров (для Shelter). Данные типы экспорта нужны, например, для списания хозяйственных единиц на уборку номера.
Если делать выгрузку без доп. опций, то каждый выезд из номера дает кол-во «единица», при этом не важно сколько гостей проживало в номере. Если включена доп. опция «Учитывать гостей в заезде». Если она включена, то будет анализироваться кол-во уникальных гостей, проживавших в этом номере. Уникальными считаются гости, на которого заведена регистрационная карта гостя. См. рис 8. При выселении данной заявки в выгрузку попадет кол-во 2. Доп. место учитываться не будет.
|
Рис.8 |
Например, если мы хотим выгружать выезд из номеров только первого корпуса, то нужно настроить условие выгрузки, аналогично тому, как показано на рис.9.
|
Рис.9 |
После успешного экспорта данных в SH4 появится товарная группа, список товаров и документы расхода. См. рис.9
|
Рис.10 |
Т.к. данные выгружаются по средствам открытых SQL запросов к базе данных, то для требований конкретного заказчика на платной основе можно сделать кастомное решение.
В файле Shelter.ini указать путь к базе Абонемент(Shelter). Установить параметры
UseConnectionString=0 UseExportData=1
Запустить ImportRK.exe и выбрать флаг «Меню ресторана» Рис 11. Установить период и нажать Импорт.
|
Рис.11 |
ВАЖНО!
Если у группы «Меню ресторана» нет флага, то нужно зайти в настройки импорта и прописать пути к любым папкам. См. рис.12.
|
Рис.12 |
В случае, если, по какой-то причине, в одной БД реализация одних и тех же услуг происходит в разных клубах и требуется производить выгрузку в StoreHouse как из разных мест реализации,то можно применить следующий способ.
Данное решение, позволяет разделить выгрузки по киоскам заведённым в Абонемент, и назначить им различные места реализации в StoreHouse.
Для этого, настраивается правила экспорта в ExportData. Устанавливаются места реализации для данных правил. (Список выгружаемых услуг, в таком случае, может пересекаться)
После описанных выше настроек, для каждого экспорта, во вкладке "Реализация" необходимо добавить в сформированный SQL запрос перед частью
group by 1,2,3,4,5
Необходимо добавить следующий текст:
and IIF(sn(CREATORADDR)>0, CREATORADDR, (select sn(creatoraddr) from folio_contents fc2 where fc2.id=fc.creatorref))=%ID_киоска%
где, %ID_киоска% заменить на ID киоска в Абонемент, реализация через который будет выгружаться в рамках данного правила на данное место реализации в StoreHouse. (Пример подобной настройки приведён на рис.13)
После чего нажать на кнопку "Пересохранить SQL: Реализация".
После произведения данных действий, выгрузка по различным киоскам будет загружаться как различные места реализации в StoreHouse.
|
Рис.13 |
ВАЖНО!!!
Данные действия необходимо производить каждый раз при изменении настроек экспорта, поскольку формируемый автоматически запрос затирает данное условие.

Контроллер имеет:
| ============ | ===== | =================================== | ============================================== |
|---|---|---|---|
| Питание | +12V | Питание +12В / 0.3А | Питание контроллера |
| GND | Питание +12В / 0.3А | ||
| Реле №1 | НР 1 | Нормально разомкнутый РЕЛЕ1 | Провода для формирования разрешающего сигнала на ВХОД |
| СК 1 | Средний контакт РЕЛЕ1 | ||
| НЗ 1 | Нормально замкнутый контакт РЕЛЕ1 | ||
| Реле №2 | НР 2 | Нормально разомкнутый РЕЛЕ2 | Провода для формирования разрешающего сигнала на ВЫХОД |
| СК 2 | Средний контакт РЕЛЕ2 | ||
| НЗ 2 | Нормальный замкнутый РЕЛЕ2 | ||
| Логический 1 | D1+ | Вывод "+" логического 1 | Провода, фиксирующие факт прохода на "ВХОД". Работают совместно с "Логический 2" |
| D1- | Вывод "-" логического 1 | ||
| Логический 2 | D2+ | Вывод "+" логического 2 | Провода, фиксирующие факт прохода на "ВЫХОД". Работают совместно с "Логический 1" |
| D2- | Вывод "-" логического 2 | ||
| Логический 3 | D3+ | Вывод "+" логического 3 | Не используются в Абонемент |
| D3- | Вывод "-" логического 3 | ||
| Логический 4 | D4+ | Вывод "+" логического 4 | Не используются в Абонемент |
| D4- | Вывод "-" логического 4 |
| Изображение | Номер разъема TJ4-8P8C |
Назначение вывода |
| ----------------------------------- | ------------------------ | ------------------------------------------------------------------------------------ |
![]() |
1 | Вход данных считывателя |
| 2 | Общий | |
| 3 | Выход данных на считыватель | |
| 4 | Общий | |
| 5 | +5V | |
| 6 | Общий | |
| 7 | +5V | |
| 8 | Общий |
Выведен на шести-контактную телефонную розетку типа TJ4-6P6C.
С этой розеткой применяется вилка TP-6P6C
| Изображение | Номер разъема TJ4-6P6C |
Назначение вывода |
| ------------------------------------- | ---------------------- | ----------------------------------------------------------------------------------- |
![]() |
1 | +5V |
| 2 | CTS | |
| 3 | Общий | |
| 4 | DTR | |
| 5 | RxD контроллера | |
| 6 | TxD контроллера |
....
Программный комплекс «Абонемент» работает с турникетами PERCo и их аналогами.
![]() |
Турнике́т — устройство, предназначенное для ограничения прохода людей в случае, когда необходима проверка права входа и выхода для каждого проходящего. Основная задача турникета — создать физическую преграду перед человеком, до его авторизации, которая может осуществляться с помощью механизмов или электронных устройств, или до принятия решения сотрудником, отвечающим за пропуск на территорию. Турникет относится к классу систем контроля и управления доступом (СКУД).
|
![]() |
1) Гость (сотрудник) подходит с идентификатором к турникету 2) Считывается информация через считыватель и посылается в контроллер 3) Контроллер посылает информацию на сервер по TCP/IP 4) На сервере программа GKHOST слушает диапазон адресов контроллеров (172.31.х.х) и считывает информацию по карте. И отправляет информацию в программу GKHostConnect 5) Программа GKHostConnect a) извлекает из последовательности реальный номер карты b) Обращается в базу «Разрешен ли проход» c) В случае ответа «Проход разрешен» подает команду турникету «Откройся» d) В этот момент турникет открывается на проход, и ожидает прохода в течении 5 секунд (заводские настройки) e) В случае удачного прохода , турникет посылает команду «Я провернулся, гость прошел» f) С этого момента начинается тарификация (в случае прохода гостя). В случае прохода сотрудника, фиксируется лишь факт прохода |
|
Осуществлять настройку ПО необходимо согласно инструкции "Работа с контроллерами". |
Есть несколько основных схем использования турникетов, в зависимости от схемы может использоваться различное количество контроллеров и дополнительного оборудования.
|
1. Турникет работает только на вход. Необходим 1 контроллер и 1 считыватель. Данный вариант используется либо в связке с отдельным турникетом на выход, либо в ситуации, когда в контроле выхода нет необходимости, либо когда контроль выхода осуществляется любым другим методом, к примеру - вручную оператором. |
![]() |
2. Турникет работает только на выход. Необходим 1 контроллер и 1 считыватель. Данный вариант используется либо в связке с отдельным турникетом на вход, либо когда контроль входа осуществляется любым другим методом, к примеру - вручную оператором. |
![]() |
3. Турникет используется на вход и выход. Необходимо 2 контроллера и 2 считывателя. Один из самых распространённых вариантов применения турникета. Позволяет вести учёт рабочего времени персонала по первому входу и последнему выходу за сутки, а так же позволяет вести контроль присутствия клиентов в зоне за турникетом, и тарификацию по времени оказанных услуг. |
![]() |
4. Турникет используется в паре с картоприёмником. Необходимо 2 контроллера и 2 считывателя. Один контроллер с одним считывателем устанавливается в турникет на вход, один контроллер и один считыватель устанавливается в картоприёмник. Вариация предыдущей схемы, в которой выход осуществляется после опускания карты в картоприёмник и верификации клиента, как допущенного к выходу. Используется в ситуации, когда клиентам выдаются гостевые карты, которые по выходу клиент обязан сдать. |
![]() |
5. Турникет используется в паре с картоприёмником, на объекте используются как карты, которые подлежат сдаче по выходу, так и постоянные карты (к примеру, карты персонала). Необходимо 3 контроллера и 3 считывателя. Два контроллера с двумя считывателями устанавливаются в турникет, один контроллер с одним считывателем устанавливается в картоприёмник. Отличие от предыдущей схемы заключается в том, что гостевые карты должны опускаться в картоприёмник, а персонал на выход прикладывает карту к считывателю на турникете, при этом гость не может выйти, воспользовавшись считывателем для персонала, как и персонал не может сдать в картоприёмник карту. Данный способ позволяет вести учёт рабочего времени персонала по первому входу и последнему выходу за сутки, вести контроль присутствия клиентов в зоне за турникетом, и тарификацию по времени оказанных услуг, а так же изымать гостевые карты при выходе клиента в автоматическом режиме. |
Доступные выводы контроллеров и их назначение
Более подробное описание контроллеров UCS можно найти в соответствующей статье.
| Питание | +12V | Питание +12В / 0.3А | Питание контроллера |
| GND | Питание +12В / 0.3А | ||
| Реле №1 | НР 1 | Нормально разомкнутый РЕЛЕ1 | Провода для формирования разрешающего сигнала на ВХОД |
| СК 1 | Средний контакт РЕЛЕ1 | ||
| НЗ 1 | Нормально замкнутый контакт РЕЛЕ1 | ||
| Реле №2 | НР 2 | Нормально разомкнутый РЕЛЕ2 | Провода для формирования разрешающего сигнала на ВЫХОД |
| СК 2 | Средний контакт РЕЛЕ2 | ||
| НЗ 2 | Нормальный замкнутый РЕЛЕ2 | ||
| Логический 1 | D1+ | Вывод "+" логического 1 | Провода, фиксирующие факт прохода на "ВХОД". Работают совместно с "Логический 2" |
| D1- | Вывод "-" логического 1 | ||
| Логический 2 | D2+ | Вывод "+" логического 2 | Провода, фиксирующие факт прохода на "ВЫХОД". Работают совместно с "Логический 1" |
| D2- | Вывод "-" логического 2 | ||
| Логический 3 | D3+ | Вывод "+" логического 3 | Не используются в Абонемент |
| D3- | Вывод "-" логического 3 | ||
| Логический 4 | D4+ | Вывод "+" логического 4 | Не используются в Абонемент |
| D4- | Вывод "-" логического 4 |
|
|
Подключённый одним из представленных образов контроллер остаётся только добавить в gkhostconnect, указав параметры работы с ним. (см.Интерфейс "Абонемент-Турникет" GKhostconnect)
Данный раздел ещё не завершён.
Подключение контроллеров к турникету типа PERCo-TTR-04.1 (TTR-07.1)
Подключение контроллеров к турникету типа PRACTIKA T-01
Подключение контроллера к группе картоприёмник-турникет (PRACTICA K-01 и PRACTIKA T-01)
|
Рис.1 Принципиальная схема подключения контроллеров UCS к турникету типа PERCo-TTR-04.1 (TTR-07.1) |
|
Рис.2 Cхема подключения контроллера и таблица подключения контактов для случая: вход в сторону А. |
|
Рис.3 Фотография реального подключения на вход в сторону А. |
|
Рис.4 Cхема подключения контроллера и таблица подключения контактов для случая: выход в сторону В. |
|
Рис.5 Фотография реального подключения на выход в сторону В. |
|
Рис.1 Принципиальная схема подключения контроллеров UCS к турникету типа PRACTIKA T-01
|
|
Рис.2 Таблица подключения контактов на вход в сторону 1 |
Рис.3 Таблица подключения контактов на выход в сторону 2 |
В таблицах не отражены обязательные перемычки на турникете между: GND (Power) и GND (Access Control system), а также между: GND (16 разъём) и Com (PassOk1) и Com (PassOk2).
|
Рис.1 Принципиальная схема подключения контроллеров UCS к турникету типа Smartec ST-TS100
|
Используется прошивка gk3_trn_3_0_0_50_progdelay_hex.fw
В gkhostConnect в настройках контроллеров необходимо указать:
Команда для входа: 05
Команда для выхода: 06
| Турникет | Контроллеры |
| K1 | НР1 (Контроллер 1) |
| GND | СК1 (Контроллер 1) |
| K2 | НР2 (Контроллер 2) |
| GND | СК2 (Контроллер 2) |
| NO1 | D1- (Контроллер 1) |
| COM1 | GND Блока Питания |
| NO2 | D2- (Контроллер 2) |
| COM2 | GND Блока Питания |
| Блок питания | |
| +12 B | D1+ (Контроллер 1) |
| D2+ (Контроллер 2) | |
| +12V (Контроллер 1+2) | |
| GND | GND (Контроллер 1+2) |
В таблице не отражено подключения питания на турникет.
Статья подготовлена по документации на турникет, по запросу. Реального подключения сотрудниками UCS не производилось.
| =============== | ======================== | =========================================================== |
| Название утилиты |
Расположение | Описание |
| gk3Host | ..\GKHOST | Утилита являющаяся посредником между оборудованием и утилитами принимающими решение о проходе |
| gk3Tools | ..\GKHOST\GK_TOOLS | Утилита отправляет воздейтвующиена контроллер команды. Смена IP адреса и заливка прошивки |
| gk3NetMonitor | ..\GKHOST\GK_TOOLS | Утилита отображающия список контроллеров в локальной сети |
[log] Name = gk3Tools.log level = 127 debugLevel = 127 stampKind = 4145 ByMonthes=0 ByDays=0 ByHours=0 [telnet] port = 5556 [gk3] port = 18252 ip = 172.31.32.100 net = 172.31.0.0 mask = 255.255.0.0 autostart = 1 autohide = 0
Изменение параметров контроллера происходит в программе gk3tools.exe

[gk3]
ip = 172.31.32.100 6) Нажимаем «Обновить» (зеленые стрелочки)
После этого появится текущий IP адрес контроллера 172.31.32.1
1) Необходимо выполнить все пункты раздела "Подключение к контроллеру"
5) Смотрим в gk3NetMonitor.exe существующие ip адреса контроллеров.
| Название файла прошивки | Описание прошивки |
| gk3_trn_3_0_0_1.fw | Турникетная прошивка под PERCO с контролем факта прохода |
| gk3_gate_3_0_0_11_type1.fw | Прошивка гейта Ethernet-RS485 |
| gk3Game.3_0_0_13.fw | Старая игровая прошивка (не пишет события на дисплее) |
| gk3Game.3_0_0_17.fw | Старая игровая прошивка (пишет события на дисплее) |
| gk3_gk_3_0_0_19_star.fw | Принтерная прошивка со STAR протоколом |
| gk3_gk_3_0_0_20_escpos.fw | Принтерная прошивка с ESC/POS протоколом |
| gk3_gk_3_0_0_22_nomotor.fw | Прошивка со счетчиком тикетов (без контроля статуса мотора, на одном датчике). Подключение к входу D1: +12v от счетчика к D+; GND от счетчика к D- |
| gk3_gk_3_0_0_25_teater.fw | Прошивка для ticket eater ("тикет итер") |
| gk3_gk_3_0_0_26_mon.fw | Стандартная игровая прошивка с поддержкой мониторинга |
| gk3_gk_3_0_0_27_ld.fw | Прошивка с задержками. Чтобы включить реле на 10 мин, надо послать команду: < HHDD TOKEN A1 16.6 минут=192 10 минут=160 5 минут=112 70 секунд=32 |
| gk3_gk_3_0_0_30_macip.fw |
Стандартная игровая прошивка с поддержкой мониторинга и формированием IP по MAC адресу контроллера |
| gk3_trn_3_0_0_3_com2.fw | прошивка на использование com2 (обычная читалка работать не будет) |
| gk3_trn_3_0_0_4_9600x2.fw | прошивка на использование com2 (обычная читалка работать будет паралельно, читалки не различаются) |
| gk3_trn_3_0_0_19_9600x2_hex.fw | прошивка на использование com2 (обычная читалка работать будет паралельно, читалки не различаются), возвращает HEX коды считанных символов |
| gk3_trn_3_0_0_19_19200x2_hex.fw | прошивка на использование com2 (обычная читалка работать будет паралельно, читалки не различаются), возвращает HEX коды считанных символов. Для этой прошивки скорость считывателя должна быть 19200 |

4) Нажимаем кнопку «Restart» и «Restart AppFW»
Данный раздел посвящен автоматизации электромагнитных замков.
J2000-Lock-MG280 Электромагнитный замок. Напряжение питания 12VDC Ток 380mA Сила удержания 280KG Вес 1,1kg -40 ° С ~ +55 ° Размеры эл. магнита 250*42*25мм
J2000-Lock-MG180 Электромагнитный замок. Напряжение питания 12VDC Ток 300mA. Сила удержания 180KG Вес 0,6кг Диапазон рабочих температур -40 ° С ~ +55 °. Размер: 170х35х21мм.
J2000-Lock-LB-280 L образный уголок для замка J2000-Lock-MG280
J2000-SKD-JC85 Дверной доводчик, цвет серебро (для дверей массой до 85 кг), максимальное открывание 180 градусов. Регулировка скорости закрывания и довода. Рычаг в комплекте.
БП АТ-12/15 Блок питания 12В до1,5 А, стабилизированный, на базе импульсного преобразователя, защита от к-з и перегрузки, Uвх=100-240В, 127х76х60мм От данного БП питается замок, контроллер и считыватель. | Вариант 1 | ![]() |
SOCA SI-20 (или другая серии SI). Врезная инфракрасная кнопка выхода с подсветкой. Нержавеющая сталь, влагостойкий корпус. Встроенная плата задержки.
Время после срабатывания кнопки, на которое открывается дверь настраивается на кнопке. |
| Вариант 2 | ![]() |
Дверь открыта, пока держат кнопку. |
Работа с магнитными дверями
Данный пример предназначен для дверей, которые не имеют своих контроллеров

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

Особенности работы со шлагбаумом.
Схема подключения шлагбаума и логика работы в целом аналогична работе с электромагнитным замком. В случае работы шлагбаума через сторонние контроллеры необходимо произвести дополнительный анализ. Шлагбаум/сторонний контроллер должен работать в импульсном режиме на контроллере UCS использовать турникетную прошивку и контакты НР1+СК1.
Схемы работы контроллеров с замками
Схема №1.
Задача – открытие двери.
Необходимо (на каждую дверь): 1 контроллер, 1 считывающее устройство, 1 кнопка.
Схема №2.
Задача 1: открытие двери
Необходимо (на каждую дверь): 1 контроллер, 1 считывающее устройство, 1 кнопка.
Задача 2: необходимо знать, какие сотрудники пришли на работу (в комплекс).
Необходимо: На входе в общедоступном месте установить
А) 1 контроллера, 1 считывающее устройство
(виртуальный ресурс РАБОТА, 1-ый раз приложил карту – ВХОД,
2-ой раз приложил карту – ВЫХОД)
Б) 2 контроллера , 2 считывающих устройства
+ разработка специализированного отчета
(виртуальный ресурс РАБОТА, приложил карту к 1-ому считывателю – ВХОД (не важно сколько раз прикладывать карту, считается первый раз в этот день); приложил карту ко 2-му считывателю – ВЫХОД (не важно сколько раз приложил карту, считается последний раз в этот день)).
Если прикладываний не было – сотрудник на работу не приходил/не уходил.
Схема №3.
Задача – открытие двери + необходимо знать какие сотрудники, через какие двери проходили. (Учитываться так же будет первое прикладывание карты к одному считывателю и последнее прикладывание ко второму считывателю в этот день)
Необходимо (на каждую дверь): 2 контроллера, 2 считывающих устройства,
1 кнопка (требования пожарной безопасности)
+разработка специализированного отчета.
Интерфейс "Абонемент-Турникет" - программный комплекс, позволяющий связать аппаратную часть (турникеты, магнитные замки и другие устройства управляемые с помощью контроллеров UCS) и ПО Абонемент, позволяя контролировать доступ клиентов к тем или иным платным зонам объекта.
Информация в данной статье актуальна для версий: gkHost.exe - 3.2.0.1 и gkhostconnect.exe - 1.88.0.6 , доступных в версии Абонемент 1.128 в папках \FullVersionVer128\GKHOST\ и \FullVersionVer128\gkhostconnect\ соответственно.
Комплекс состоит из 2х составляющих:
gkHost - отвечает за сообщение с контроллерами UCS;
gkhostconnect - отвечает за связь с БД Абонемент и исполнение установленной логики контроля доступа к указанным ресурсам.
Данные составляющие могут быть разнесены на разные машины. Связь между ними осуществляется в рамках протокола TCP-IP.
Но, как правило, удобно их держать в рамках основного сервера Абонемент.
Данная составляющая должна быть установлена на машине, обязательно находящейся в той же подсети что и контроллеры UCS (по умолчанию - 172.31.х.х)(например, в рамках альтернативной конфигурации сетевого адаптера).
Программа не имеет графического интерфейса.
gkHost.ini
[log] ;Настройки логирования Name = gk3Host.log level = 10 debugLevel = 10 ByMonthes=1 ByDays=1 ByHours=1 [log.protocol] ;Настройки логирования сообщения с контроллерами Name = gk3Host.protocol.log level = 10 debugLevel = 10 stampKind = 4145 ByMonthes=1 ByDays=1 ByHours=1 [telnet] ;Порт используемый для связи с gkhostconnect port = 5556 [gk3] ;Представлены настройки подходящие, для контроллеров настроенных по умолчанию ;IP-адрес, на котором будет работать сервер протокола GK3 - должен совпадать с IP-адресом машины в подсети контроллеров UCS ip = 172.31.32.100 ;PORT -- порт протокола GK3 port = 18251 ;NET -- сеть протокола GK3 net = 172.31.0.0 ;MASK -- маска сети протокола GK3 mask = 255.255.0.0
[AppService]
;Настройки службы создаваемой при запуске с ключом -install
;Имя сервиса
DisplayName = UCS Служба GKHOSTConnect
;Внутреннее имя сервиса (одно слово. Только латинские символы и цифры. Начинается с буквы)
ServiceName = UCSGKHOSTConnect
Description = Служба-интерфейс контроля доступа UCSGKHOSTConnect
[Application]
;Скрывать приложение автоматически, если запущено не службой
AutoHide=0
[log]
;Настройки логирования
name=.\log\gkhostconnect.log
level=30
debuglevel=30
ByMonthes=1
ByDays=1
BYHOURS=1
[LOCK.SERVER]
;настройки на сервер блокировок Абонемент
TCPHOST = 127.0.0.1
TCPPort = 1111
[database]
;Настройки на БД Абонемент
dbname=127.0.0.1/3080:C:\_UCS\_FITNESS\IBDATA\fitness.FDB
dbuser = ucs
DBPassword = oQKH8n0BFUE=
[devices]
;Настройки применяемые для всех устройств
;Тарификацию начинаем после того как турникет провернулся:
при CheckTurnDirect=0 - считается, что турникет провернулся в ту сторону, в которую была дана команда.
при CheckTurnDirect=1 - (по умолчанию) дополнительный контроль. Тарификация начинается , только если от турникета получено сообщение, что он провернулся в ту сторону, в которую была дана команда.
CheckTurnDirect=1
;Время ожидания прохода в секундах (должно быть больше, чем время ожидания в настройках турникета)
TurniquetTimeOut=10
;Обрабатывать все символы в приходящих с контроллеров треках
ToProcessAllCharsInCard=1
; Не обрабатывать следующие треки (CF = 'No Card')
NoProcessedCardsNo=CF
[gkhost]
;настройка связи с gkHost
host=127.0.0.1
port=5556
local=0
ProtocolType=0
CanSendData=1

Подключение картоприёмника к турникету типа PRACTIKA T-01
![]() |
Рис.1 Картоприемник Praktika K-01
Схема подключения картоприёмника Praktika K-01 к турникету Praktika T-01:
|
Рис.2 Принципиальная схема подключения контроллера UCS к группе картоприёмник-турникет |
На принципиальной схеме (рис.2) представлено подключение использующее следующую логику обслуживания:
Гость опускает карту в картоприёмник, где установлен считыватель, подключённый к контроллеру UCS. Контроллер передаёт номер карты на сервер. Сервер разрешает выход данного человека и передаёт команду на контроллер. Картоприёмник получает команду разрешения приёма карты. После удачного приёма карты, картоприёмник разрешает проворот турникета. Контроллер и картоприёмник получают подтверждение факта прохода гостя.
Важная информация: в качестве считывателя использовался СРЧ-125 (считывает ТОЛЬКО Em-Marine карты). Попытки смонтировать Matrix так, чтобы он стабильно считывал карты не увенчались успехом.
В gkhostconnect версии 1.86.0.5 и новее появилась возможность интеграции с ПО PocketKey для контроля биометрии, а именно распознавания лица клиента.
Данный функционал защищается ключом, т.е. для работы необходимо дополнительно к модулю "Интерфейс-турникет" приобрести модуль для работы с биометрией.
1. Типовая логика обслуживания клиента.
2. Установка и настройка
Установку и настройку ПО для распознавания и сохранения биометрических данных устанавливается на компьютер заказчика специалистами PocketKey
В gkhostconnect.ini необходимо в секции [gkhost] прописать следующие настройки:
[gkhost]host=172.22.3.241port=8075local=0CanSendData=1ProtocolType = 3
Где:
При заведении новых устройств контроля доступа, соответствующих турникетам и картоприёмникам в gkhostconnect требуется в качестве адреса устройства (параметры device, relay) указать id турникета в ПО PoketKey, которые храняться в файле daemon\gataccess_cnf.inc в массиве 'def_terminals'.
В остальном настройка утройств в gkhostconnect схожа с описанной в этой статье.
3. Необходимое оборудование и ПО
4. Обучение системы распознавание
В браузере необходимо открыть адрес, по которому расположена веб-часть системы распознавания.

В верхнем меню выбрать "Автообучение" и нажать кнопку "Начать обучение"

После окончания обучения появится форма, в которой необходимо ввести ФИО клиента и ключ. В качестве ключа необходимо ввести id клиента из БД Абонемент.

5. Внешний вид стенда (турникет + считыватели PocketKey



Настройка управления турникетами с помощью контроллеров Gantner из ПО Абонемент.
Дистрибутив данного модуля доступен для скачивания на дилерском FTP в папке /Abonement/Interface/GantnerConnectSrv.rar
1. Установка ПО Gantner
Необходимо установить:
Запускаем GAT Direct.Connect Configurator, убеждаемся что служба работает и порт доступен.

На вкладке Adapters можем изменить порт и пароль, остальные параметры оставляем по умолчанию:

Далее запускаем GAT Configuration manager и создаем новый проект, сохраняем и нажимаем Scan Devices. Выбираем все найденные девайсы и нажимаем “ok”.
В настройках девайсов необходимо настроить:
2. Настройка ПО GantnerConnectSrv
3. Особенности настройки gkhostconnect

Где ИП - Источник Питания, а ПТ - Плата Турникета.
5. Логическая схема взаимодействия.

6. Подключения считывателя Gantner к ПО Абонемент.
Для подключения считывателя необходимо:
7. Необходимое оборудование
Рецепция:
Турникет:
8. Типовая логика обслуживания клиента.
P.S.
В дальнейшем планируется доработка ПО Абонемент для протокольной работы с терминалом считывания и записи отпечатков. Таким образом терминал по умолчанию будет работать в режими считывателя, а при прикреплении идентификатора ПО Абонемент будет отправлять на него команду для перевода в режим записи отпечатков. Это позволит сократить время обслуживания, упростит работу администратора и снизит вероятность человеческой ошибки. Также при такой схеме отпадет необходимость в дополнительном считывателе (Z-2 USB) на рецепции.









Предназначен для контроля доступа и списания платных посещений той или иной зоны, а также оповещения клиента об остатке баланса/стоимости посещения и т.п.
При входе в каждую платную зону устанавливается данный блок-ридер, к которому подключён Matrix III RD ALL. Каждая платная зона заводится как ресурс. Стоимость посещения каждой зоны фиксированная.
По умолчанию в режиме ожидания на экране отображается "Поднесите браслет"
Клиент прикладывает карту к считывателю Matrix, на блок-ридере происходит следующее:
• загорается красная лампочка и происходит звуковая индикация (если доступ запрещён). На дисплее блок-ридера появляется информация о балансе клиента и запрете прохода. (По умолчанию - текст ошибки, например - "Guest unknown")
• загорается зеленая лампочка (если доступ разрешён и произведено соответствующее списание). На дисплее блок-ридера появляется информация о балансе клиента и разрешении прохода. (По умолчанию - "Гость: Ф.И.О. гостя Баланс: баланс гостя")

В данной реализации, встроенный считыватель GameKeeper не используется.
Внутренний вид

Для встроенного контроллера необходимо использовать прошивку gk3_trn_3_0_0_50_progdelay_hex.fw.
Параметры gkhostconnect, для контроллера:
• Команда для входа «05», команда при запрете доступа «06» (если соблюдено подключение к лампам НР1-зелёная, НР2-красная + бипер, иначе наоборот)
• В модуле турникета должны быть проставлены флаги: «Генерировать событие при разрешенном доступе» и «немедленно заканчивать мероприятия после прохода».
• Для изменения текста отображаемого в режиме ожидания измените настройку Приветствие турникета.
• Для изменения отображаемого текста требуется изменить формы AccessDenied.frf, AccessGranted.fr3 и welcome.frf, находящиеся в папке gkhostconnect\frf\
В рамках абонемента доступен проход в парк 1 раз.
1. Настройка -> Типы абонементов:
2. Карточка типа абонемента:

3. Карточка тарифа:

4. Карточка услуги:

В рамках абонемента можно проходить в парк 5 раз.
5. Карточка абонемента:

6. Карточка тарифа:

7. Карточка услуги:

Сертификация тех или иных турникетов для работы с ПО Абонемент не требуется.
Ниже приведен список моделей турникетов, которые успешно работают на различных объектах.
Триподы и полуростовые роторные турникеты
Полноростовые турникеты
С большой долей вероятности другие модели турникетов данных производителей также будут работать корректно, но, перед приобретением турникета, необходимо проанализировать документацию на предмет возможности интеграции.
При выборе турникета стоит учитывать такой важный фактор, как возможность получения данных о факте прохода. Без такой возможности полноценный контроль доступа невозможен.
Рекомендуется выбирать турникеты работающие в импульсном режиме.
ВАЖНО: подключить электронную проходную Perco к ПО Абонемент, используя игровые контроллеры GameKeeper, невозможно.
| Вложение | Размер |
|---|---|
| bmv3.0_ucs.txt | 174 байта |
Детский "Клад" представляет собой защитный пластиковый короб с вмонтированными внутрь устройствами и выведенными наружу считывателем и индикатором

Рис. 1
Данное устройство используется с Wi-Fi контроллером UCS, что позволяет использовать его для управления доступом в ресурсы, при этом минимизируя монтажные работы.
Считыватель соединяется по RS-232 протоколу с контроллером и передаёт ему трек поднесённой карты, издавая при этом звуковой сигнал о считывании. Контроллер отправляет информацию в комплекс ПО Абонемент, и ожидает ответа. В случае разрешенного доступа ПО Абонемент начинает тарификацию ресурса, и отправляет на контроллер команду переключения реле, загорается лампа-индикатор, сигнализирующая о разрешённом доступе.

Рис. 2

Рис. 3

Рис. 4
Подключение считывателей с интерфейсом Wiegand-26
На рынке много считывателей, работающих по протоколу Wiegand-26. Часто такие считыватели используются в качестве встроенных в турникетах и картоприемниках различных производителей, например Perco.
Игровой контроллер UCS, который используется для управления оборудованием, служащего для контроля доступа, поддерживает только интерфейс RS-232. Это создает определенные проблемы, ведь монтаж "не родных" считывателей в турникет или картоприемник зачастую является непростой задачей, а иногда и вовсе невыполнимой в виду конструкционных особенностей конкретных моделей оборудования или нарушает целостность стиля и визуальные качества турникета при монтаже считывателя снаружи.
Во избужание подобных проблем имеется переходник Wiegand->RS-232.
Внешний вид переходника:

Слева (на фото) располагаются клемы, к которым подключается считыватель, согласно маркировке. Справа - разъем DB-9 "мама", который подключается к контроллеру. Есть нюанс, для подключения данного девайся к контроллеру с него необходимо скрутить крепежные гайки.
Ниже приведен пример настройки DecodeCards.ini под gkhostconnect.exe с учетом использования считывателей IronLogic Matrix-III синтерфейсом RS-232 и встроенных считывателей турникета Perco с интерфейсом Wiegand.
В силу особенностей оборудования и интерфейсов, трек со считывателей приходит в различном формате и к треку, полученному со считывателя Wiegand необходимо применять дополнительное декодирование, а именно DecodeTypeEx=3

| Назначение | Цвет (как правило) | Pin коннектора |
| Gnd | Чёрный | 3 |
| RxD | Синий | 5 |
| TxD | Жёлтый | 6 |
Статья создана на основании задачи 149790.
|
Рис.1 - Внешний вид информационного терминала |
В Абонемент есть возможность интеграции с различным оборудованием работающим по протоколу COMINFO, в частности с информационными терминалами REA::Touch.
Возможно реализовать вывод любой информации о госте, при предъявлении им браслета, например: остаток баланса (кредита), продолжительность текущего посещения, время входа, и т.п. Также поддержана работа с выбором языка отображаемой информации. |
Для работы с данным оборудованием используется модуль gkhostconnect.
Особенности настройки gkhostconnect:
Важно!!!
Адрес устройств COMINFO должен быть двухсимвольным: Device - первый символ адреса; Relay - второй символ адреса (Device и Relay - числа от 1 до 9 (0 недопустим))
В gkhostconnect.ini необходимо прописать (для протокола версии 2):
[gkhost]
; Адрес и порт сообщения с сервером COMINFO
host=127.0.0.1
port=7760
CanSendData=1
; Протокол ComInfo
ProtocolType=2
[FRF]
; Печатная форма для вывода на инфотерминале
ShortInfoTerminal=ShortInfoTerminal
Форма для вывода данных ShortInfoTerminal выводящая данные о балансе, времени входа и текущей продолжительности посещения, работающая с несколькими языками в приложении к статье.
Работа с несколькими языками поддержана с версии gkhostconnect - 1.93
Настройка устройства в gkhostconnect:
|
Рис.2 Пример настройки устройства в gkhostconnect |
Выбирается ресурс внутри которого находится терминал.
Указывается адрес устройства, как описано выше.
Выбирается тип устройства - инфотерминал.
| Вложение | Размер |
|---|---|
| shortinfoterminal_cominfo.rar | 2.07 КБ |
|
Рис.1 Датчики Autonics BJ10M-TDT |
Данное решение можно использовать для контроля прохода клиента, в случае, если поставить полноценное устройство контроля доступа (турникет) не представляется возможным.
В таком случае, можно к контроллеру UCS подключить оптические датчики прохода, установленные в группе прохода, в таком случае, возможно будет фиксировать проход клиента, без указания направления.
Данное решение предлагается к использованию совместно с модулем "Монитор контроллера".
В таком случае, схема работы будет следующей:
При выходе ситуация либо повторяет схему для входа, либо используется только контроль входа и проставлен параметр автоматически завершать мероприятие после входа в настройках контроллера в gkhostconnect.
В случае контроля прохода как на вход так и навыход с помощью данных датчиков, также потребуется отключить контроль направления прохода в настройках gkhostconnect.
Также, к контроллеру можно присоединить зелёную лампу для визуального информирования клиента, что проход разрешён. В таком случае, на СК1 подаётся питание, НР1 замыкается на лампу, выход с лампы подключается на землю блока питания.
На контроллер устанавливается прошивка gk3_trn_3_0_0_50_progdelay_hex.fw , а команда для входа в настройках gkhostconnect для контроллера устанавливается "2B" (продолжительность включения лампы будет 10 секунд).
В целом, подключение датчиков данной модели довольно тривиально.
|
Рис.2 Принципиальное подключение датчиков Autonics серии BJ к контроллеру UCS. |
Т.е. на передающий и принимающий модули подаётся питание с БП от 12В до 24В, на сигнальный провод принимающего модуля замыкается на D1- контроллера, на D1+ подаётся 12В того же блока питания. (Рис.2)
Такое подключение подходит для прошивок: gk3_trn_3_0_0_19_9600x2_hex.fw, gk3_trn_3_0_0_19_19200x2_hex.fw, gk3_trn_3_0_0_50_progdelay_hex.fw.
|
В возможности ПО Абонемент входит управление светом и прочими электроприборами. Управление ориентируется на мероприятия создаваемые в ПО Абонемент. Данное решение позволяет решить ряд задач по автоматизации, для объектов любой направленности.
Для управления устройствами используются релейные блоки "PoolJet V4" на 8 устройств. Внешний вид релейного блока представлен на рис.1. Подробнее про релейный блок можно прочитать тут. |
Рис.1 - Внешний вид релейного блока в работе |
|
Общая схема работы
Рис.2 - Общая схема работы |
Ниже рассмотрен комплексный пример автоматизации, с более чем одним управляемым прибором на один ресурс. В большинстве случаев, достаточно и более простого варианта (1 ресурс - 1 устройство), также рассмотренного в рамках примера.
В сауне на релейный блок скоммутированы освещение и печь.
Необходимо чтобы печь включалась за пол часа до мероприятия, а по его началу так же включался свет. По окончании мероприятия выключаются и печка и свет.
Так же должна иметься возможность ручного включения света на 10 минут, для целей уборки или демонстрации.
Релейные блоки поставляются с предзагруженной прошивкой.
Адрес релейного блока по умолчанию, как и у контроллеров UCS - 172.31.32.1.
Смена IP-адреса производится в точности согласно инструкции для контролеров.
AbonHost
Для связи с релейными блоками используется утилита AbonHost. Доступна в поставке по пути Fullversion\_UTILS\_TURN\AbonHost
Данная утилита служит ретранслятором комманд от ПО к релейным блокам.
Содержание AbonHost.ini
[tcpserver] IP=0.0.0.0 - подсеть IP адресов с которых получать команды для отправки на релейный блок. Если 0.0.0.0, то с любых Port=5561 - порт по которому обращаются сторонние приложения для отправки команд [Devices] DeviceIP=172.31.0.0 - IP подсеть для релейных блоков DevicePort=18251 - Порт для отправки команд на релейный блок (изменять нельзя)
Данная утилита считается серверной, утилиту можно запускать с помощью утилиты Starter.
ВАЖНО!
Компьютер на котором разворачивается AbonHost, должен, как и в случае с GKHOST и контроллерами UCS, существовать в одной подсети с релейными блоками.
shelter2gkhub
Набор библиотек, утилиты настройки и тестовой утилиты управления релейным блоком. Сборка доступна по пути Fullversion\_UTILS\_TURN\shelter2gkhub
Состав поставки:
Первоначально, поставку можно развернуть в отдельной папке.
Для настройки, запускается утилита Installer.exe.
Внешний вид утилиты изображён на рис.3.
|
Рис.3 - внешний вид утилиты Installer |
Требуется произвести следующие настройки - настройку на сервер в разделе gkHub Server. Вводится IP-адрес компьютера, на котором развёрнута утилита AbonHost, и порт указанный при настройке утилиты.
Далее настраивается список реле для управления.
Для этого, в секции Light используется кнопка Add. Пример поднимаемого окна приведён на рис.4.
|
Рис.4 - окно добавления реле |
В данном окне доступны параметры:
При нажатии на кнопку Оk - происходит добавление реле релейного блока.
Перед выходом из утилиты, обязательно нажать кнопку Save, для записи настроенных параметров в ini файл.
Для проверки настроенных параметров, можно использовать утилиту TestDLL.exe. Её внешний вид представлен на рис.5.
|
Рис.5 - внешний вид утилиты TestDLL |
В поле ID необходимо вписать ID реле, назначенный при создании в Installer.
Если на предыдущих шагах всё настроено корректно, утилита AbonHost настроена и запущена, то при нажатии кнопки bLightON соотетствующее реле замкнётся, при нажатии bLightOFF соотетствующее реле разомкнётся.
Для корректной работы с релейными блоками из ПО Абонемент, настроенную связку Shelter2gkHub.dll, Shelter2gkHub.ini, ShGkHubCtrl.ini необходимо подложить:
Для работы в автоматическом режиме - в папку EventService, для работы в ручном режиме в папку EXE.
Срабатывание релейных блоков строго привязано к началу и окончанию мероприятий.
Для привязки реле к ресурсу, достаточно в карточке ресурса в поле "Номер устройства управления светом" прописать ID данного реле указанный при настройке в Installer.
Пример изображён на рис.6.
|
Рис.6 - Пример настройки карточки ресурса, с указанным ID реле |
Это вариант включения при старте мероприятия. В приведённом в начале примере, это управление светом в сауне.
При такой настройке, если в папку exe добавлена настроенная сборка shelter2gkhub, тогда при начале мероприятия через карточку мероприятия в основном модуле Абонемент, будет замкнуто реле с ID 778, при окончании мероприятия реле будет разомкнуто, независимо от тарифа в рамках которого производится мероприятие.
Если мероприятия начинаются автоматически с помощью EventService и в папку добавлена настроенная сборка shelter2gkhub, то при начале и окончании мероприятия сервисом, также будет отправлена команда на реле, независимо от тарифа в рамках которого производится мероприятие.
II этап решения представленной задачи - включение печки сауны за 30 минут до начала мероприятия.
Решение данной задачи возможно, только с использованием EventService. Печка будет включаться за 30 минут до мероприятия проводимого только в рамках тарифов с определённым свойством объекта.
Для этого, требуется создать новую категорию ресурсов, с типом "Приборы и устройства".
После чего, в данной категории необходимо создать тип ресурса и ресурс. В карточке ресурса указать ID реле, управляющего печкой, указать ресурс владелец - "Сауна", настроенный по инструкции выше.
Пример подобноых настроек ресурса представлен на рис.7.
|
Рис.7 - Пример настроек ресурса для заблаговременного включения устройств |
Следующим этапом необходимо настроить свойство объекта, в соответствующем справочнике.
Свойство объекта может быть произвольным, должно быть определено для тарифов и ресурсов, должно иметь хотя бы одно значение. Рекомендуется использовать только строковые значения.
Пример корректно заведённого свойства показан на рис.8.
|
Рис.8 - Пример настроек свойства объекта |
С помощью данного свойства необходимо связать тарифы в рамках которых должна включаться данная печь, с ресурсом Печь.
Для этого, в карточке ресурса, переходим на вкладку свойства, И в заведённом на предыдущем шаге свойстве выставляем единственное определённое значение. Пример показан на рисунке 9.
|
Рис.9 - Настройка свойства карточки ресурса |
Далее для всех тарифов, при проведении мероприятий по которым в ресурсе Сауна, печь должна включаться заблаговременно, необходимо выставить то же значение данного свойства. Пример показан на рис.10.
|
Рис.10 - Настройка карточки тарифа |
На этом настройки со стороны логики Абонемент завершены.
EventsService
Чтобы данный функционал отрабатывал, необходимо, чтобы данные мероприятия начинались только сервисом EventsService. Подробнее про EventsService.
Если EventsService уже настроен на начало и окончание мероприятий в данном ресурсе, и в папку добавлена настроенная сборка shelter2gkhub, остаётся только установить в eventservice.ini параметр TurnONTheDeviceMinutesTimeBefore= назначив ему значение - количество минут для заблаговременного включения устройств, заведённых согласно описанным выше настройкам. Для рассматриваемого примера устанавливаем значение =30
Таким образом:
Запуск модуля отчетов Абонемент происходит через файл ...\Abonement\REPORT\FReport.exe. Путь к базе данных и серверу блокировок осуществляется в файле fReport.INI.
Каждый отчет состоит из двух файлов:
Для установки нового отчета, требуется скопировать (обновить) файлы в соответствующих папках (см. Рис.1 Пример установки отчета "Подарочные сертификаты")

Рис.1 Пример установки отчета "Подарочные сертификаты"
Как правило, отчет еще содержит *.sql файл - это обновление для базы, чтобы работал отчет. Его нужно выполнить на базе, при этом, в некоторых случаях требуется монопольное подключение к базе.


Сохранить отчет можно при помощи кнопки Export:

1.2.Блок «Смена». Отчет «Все о смене».
Описание:
В данном отчете отображается сумма, которая была получена за смену и перечень услуг, которые были реализованы в выбранную смену.
Возможные фильтры:

Вид отчета:


Вид отчета:









3.4. Блок «Сотрудники». Отчет «Вознаграждение специалистов».



Последняя редакция: вт, 19/11/2019
Многомерные отчеты [КУБЫ] вошли в «FReport», начиная с 130 версии модуля.
Для корректной работы с отчётами рекомендуем использовать базу данных ПО Абонемент и модуль «FReport» одной версии.
Модуль «FReport» не требует дополнительного лицензирования.
Путь до базы данных прописывается в Report/fReport.INI.
Модуль запускается через файл FReport.exe:
Рис.1
Для входа используйте логин и пароль от учетной записи ПО Абонемент:
Рис.2
Кубы расположены в соответствующих блоках модуля:
Рис.3
«Фильтр по датам» - это форма запроса данных за определенный период:
Рис.4
«Конфигуратор» - это интерактивная форма создания запроса для получения данных:
Рис.5
Запрос создается с использованием следующих возможностей:
Сформированный запрос преобразуется в отчёт:
Рис.6
Начиная со 135 версии повилась возможность выставить итог в конфигураторе, через ПКМ по полю группировки:
Рис 6.1.
В конфигураторе реализовано описание отчета:
Рис.7
Панель инструментов для создания и работы с шаблонами:
Рис.8
Дает возможность сохранить/удалить шаблон запроса, загрузить/выгрузить структуру куба.
Это эффективный инструмент для создания актуального набора отчетов.
Поля группировок:
Рис.9
Курсив применяется к полю в случае изменения первичных данных.
Согласно специфике построения многомерных отчетов, с динамическим изменением полей группровок (фильтров),
Количество отображаемых полей в кубе ограничено разрешением монитора и размером окна модуля.
Факты:
Рис.10
Дополнительные возможности для работы с отчетами доступны через правый клик по полю группировки (фильтру) и области куба:
Рис.11
Таблицы отчетов выгружаются в следующих форматах:
Html:
Рис.12
Excel:
Рис.13
Word:
Рис.14
При выборе всех полей группировок доступных в конфигураторе:
Рис.15
Формируется куб с полными данными из базы:
Рис.16
Дополнительная функция «свернуть» используется для получения отчётов со сводными данными:
Рис.17
Многомерный отчет разрезается на «плоские» двухмерные отчеты, с различной аналитической логикой, например:
Разрезы:
Глубина:
Пример разреза: сводный отчет по типу записи «услуга», с группировкой по «категории»:
Рис.18
Блок «Смена». Куб анализирует данные на фолио клиента, регистрацию и коррекции платежей или услуг с применением «фильтра по дате» смены.
Конфигуратор шаблона:
Рис.19
Поля группировок:
Факты:
При помощи данного отчета можно анализировать:
Конфигуратор шаблона:
Рис.20
Формирует образ куба аналогичный фолио клиента из ПО Абонемент. В поле группировки «клиент» выбрано интересующие фолио.
К полю группировки «дата» применена функция «итоги вкл/выкл» для вычисления итоговых значений по каждому типу записи:
Рис.21
Конфигуратор шаблона:
Рис.22
Формирует куб с полными данными за анализируемый период:
Рис.23
На основе данных сформирован сводный отчет за календарный день по типу записи:
Рис.24
Детализация по изменениям в хронологическом порядке по типу записи:
Рис.25
Группировка по полю «клиент»:
Рис.26
Группировка по полю «комментарий»:
Рис.27
При автоматическом начислении услуги на фолио, в поле «комментарий» фиксируется соответствующая запись:
Рис.28
Конфигуратор шаблона:
Рис.29
Группировка отчета по полю «группа» платежей:
Рис.30
Группировка отчета по полю «группа» услуг:
Рис.31
Разрез отчета по полю «наименование» с подсчётом реализации за календарный месяц:
Рис.32
Блок «Клиенты». Куб анализирует «список клиентов» в ПО Абонемент.
«Фильтр по дате» анализирует дату регистрации клиента в базе:
Рис.33
Конфигуратор шаблона:
Рис.34
Поля группировок:
Информация из карточки клиента:
Рис.35
Информация из карточки «Абонемент» типа «Членство»:
Рис.36
Факты:
При помощи данного отчета можно анализировать:
Конфигуратор шаблона:
Рис.37
Сводный отчет по зарегистрированным клиентам с группировкой по полю «месяц»:
Рис.38
Сводный отчет с группировкой по полям «пол» и «возраст»:
Рис.39
Детализированный отчет с информацией о клиенте по дате регистрации:
Рис.40
Клиенты без отметки о «первом посещении» в рамках абонемента типа «членство»:
Рис.41
Конфигуратор шаблона:
Рис.42
Сводная таблица по полю «ДРдата» с группировкой «ДРмесяц». На примере видно, что в январе 38 именинников:
Рис.43
Детализация отчета по полю «ДРдата» с информацией по клиенту. На примере видим трех клиентов с датой рождения 03.05:
Рис.44
Конфигуратор шаблона:
Рис.45
Формирует куб с группировкой по «фамилии» для поиска задублированных клиентов:
Рис.46
Отчет с группировкой по полю «телефоны» для поиска возможного дублирования номеров:
Рис.47
Блок «Финансы». Куб строится по чекам. «Фильтр по дате» анализирует действующие кассовые смены в период выбранных дат.
В отчет попадают все чеки за смену, даже если начало или окончание смены выходит за пределы анализируемого периода.
Конфигуратор шаблона:
Рис.48
Поля группировок:
Факты:
При помощи данного отчета можно анализировать:
Конфигуратор шаблона:
Рис.49
Формирует куб с полными данными за анализируемый период:
Рис.50
Группировка отчета по полю «пользователь» с информацией по смене:
Рис.51
Группировкой отчета по полю «тип записи»:
Рис.52
Отчёт по чекам клиента:
Рис.53
Для формирования отчёта по возвратам применяется фильтр к полю «Знак» - «-1»:
Рис.54
Группировка отчета по «VIP-коду» клиента:
Рис.55
Конфигуратор шаблона:
Рис.56
Формирует сводный куб с общими данными по «источнику информации»:
Рис.57
Блок «Финансы». Куб строится по чекам с детализацией по типу платежа. «Фильтр по дате» анализирует кассовые смены действующие в какой-либо день в период выбранных дат.
В отчет попадают все чеки за смену, даже если начало или окончание смены выходит за анализируемый период.
Конфигуратор шаблона:
Рис.58
Поля группировок данных:
Факты:
Логика вычисления фактов «комбинированной оплаты»: cумма платежа / сумму чека * сумму или кол-во услуги = Факт.
При помощи данного отчета можно анализировать чеки в разрезе «тип платежа»:
Конфигуратор шаблона:
Рис.59
Формирует куб с группировкой по платежам:
Рис.60
Блок «Финансы». Куб строится по стыковкам платежей и услуг с применением «фильтра по дате» стыковки.
Конфигуратор шаблона:
Рис.61
Поля группировок данных:
Факты:
При помощи данного отчета можно анализировать:
На примере видим:
1. Когда состоялась стыковка услуг с платежом.
2. Дата смены и регистрации платежа не совпдают.
3. Дата смены и регистрации услуги не совпадают.
4. Датат стыковки совпадает с датой регистрации услуги.
Рис. 62
Блок «Финансы». Куб строится по платежам с применением «фильтра по дате» регистрации платежа и детализируется стыковками с услугами.
Конфигуратор шаблона:
Рис.63
Поля группировок данных:
Факты:
При помощи данного отчета можно анализировать:
Конфигуратор шаблона:
Рис.64
Формирует куб по основным полям группировок, на примере мы видим:
Рис.65
Блок «Финансы». Куб строится по услугам с применением «фильтра по дате» начисления услуги,
детализируется стыковкой с платежом.
Конфигуратор шаблона:
Рис.66
Поля группировок данных:
Факты:
При помощи данного отчета можно анализировать:
Блок «Абонементы». Куб анализирует абонементы с применением «фильтра по дате» регистрации абонемента.
Абонемент может быть зарегистрирован с нулевой ценой.
Рис.67
Конфигуратор шаблона:
Рис.68
Поля группировок:
Факты:
При помощи данного отчета можно анализировать:
Конфигуратор шаблона:
Рис.69
Формирует куб с полными данными по зарегистрированным абонементам, с группировкой по году и месяцу регистрации, с итоговыми данными по движению денежных средств:
Рис.70
Детализация по действующим абонементам, с группировкой по полю «полностью оплачен?»:
Рис.71
Группировка отчета по полю «тип абонемента» среди действующих абонементов:
Рис.72
Отчет по активированным абонементам со значением поля «активность» - «закончил действие», с детализацией по клиенту:
Рис.73
Конфигуратор шаблона:
Рис.74
Формирует куб по зарегистрированным абонементам с группировкой по дате окончания действия, с детализацией по клиентам:
Рис.75
Конфигуратор шаблона:
Рис.76
Формирует куб по типам абонементов с группировкой по «полу»:
Рис.77
Конфигуратор шаблона:
Рис.78
Формирует куб по полю «ДРдень», с группировкой по «ДРмесяц» и детализацией по клиентам с действующими абонементами. На примере видим, что у клиента 3414, с действующим абонементом, 14 мая день рождения:
Рис.79
Конфигуратор шаблона:
Рис.80
Формирует куб по «активированным» абонементам клиента:
Рис.81
Детализация данных:
Рис.82
Блок «Абонементы». КУБ анализирует абонементы с применением «фильтра по дате» окончания - «Действует «до»».
Конфигуратор шаблона:
Рис.83
Поля группировок:
Факты:
При помощи данного отчета можно анализировать:
Блок «Мероприятия». Куб анализирует информацию по мероприятиям с применением «фильтра по дате» начала мероприятия.
Любое присутствие создает мероприятие, например: вход в ресурс по тарифу с неограниченными визитами, без начисления услуг, создаст индивидуальное мероприятие для клиента.
Конфигуратор шаблона:
Рис.84
Поля группировок:
Факты:
При помощи данного отчета можно:
Конфигуратор шаблона:
Рис.85
Формирует куб по мероприятиям с группировкой по дням недели и статусом «закончилось»:
Рис.86
Отчет с группировкой мероприятий по ресурсам:
Рис.87
Детализация отчета с информацией по клиенту:
Рис.88
Отчет по мероприятиям в ресурсах со статусом «закончилось», с группировкой по дням недели:
Рис.89
Отчет по удаленным мероприятиям с детализацией:
Рис.90
Конфигуратор шаблона:
Рис.91
Формирует куб по мероприятиям специалистов, с группировкой по дням недели и детализацией по клиенту:
Рис.92
Отчет по реализованным мероприятиям специалиста, с детализацией по времени. На примере данного отчета можно построить куб со статусом мероприятия «не началось», актуально для бронирования и записи:
Рис.93
Конфигуратор шаблона:
Рис.94
Формирует куб по мероприятиям клиента, с детализацией по «дням недели» и «специалисту»:
Рис.95
Отчет по мероприятиям в разрезе «типа абонемента», с группировкой по «полу» клиента:
Рис.96
Блок «Мероприятия». Куб строится с применением «фильтра по дате» начала мероприятия.
Конфигуратор шаблона:
Рис.97
Поля группировок:
Факты:
При помощи данного отчета можно:
Конфигуратор шаблона:
Рис.98
Формирует куб по мероприятиям в ресурсе со статусом «закончилось» с группировкой по дням недели и итогом за анализируемый период:
Рис.99
Детализация отчета по среднему посещению в день, в разрезе «тип дня»:
Рис.100
Блок «Клиенты». Куб строится с применением «фильтра по дате» прикрепления идентификатора.
В системе есть несколько типов идентификаторов, а именно:
гостевая карта (2), постоянная гостевая карта (22), карта персонала (21), карта ПДС (24).
Рис.101
Конфигуратор шаблона:
Рис.102
Поля группировок с данными:
Факты:
При помощи данного отчета можно:
Конфигуратор шаблона:
Рис.103
Формирует куб с группировкой по полю «тип» и «состоянию» идентификаторов:
Рис.104
Детализация куба:
Рис.105
Конфигуратор шаблона:
Рис.106
Формирует куб по сотрудникам, прикрепившим идентификатор:
Рис.107
Детализация отчета:
Рис.108
Блок «Присутствие». Куб строится по присутствию клиента в ресурсе, с применением «фильтра по дате» фактического присутствия.
Важно отметить, что продолжительность посещения начинается в момент входа, т. е. регистрации посещения через контроль присутствия или турникет, и завершается в момент регистрации выхода из ресурса.
Конфигуратор шаблона:
Рис.109
Поля группировок данных:
Факты:
При помощи данного отчета можно провести анализ на текущий момент или за прошедший период для получения информации:
Конфигуратор шаблона:
Рис.110
Формирует куб по присутствующим клиентам:
Рис.111
Детализация куба:
Рис.112
Группировка по балансу для поиска присутствующих должников:
Рис.113
Рис.114
Формирует куб по количеству присутствующих в ресурсах:
Рис.115
Блок «Клиенты». Куб строится по № фолио без применения «фильтра по дате». Анализируются фолио за все время работы в базе с момента фактической регистрации.
Конфигуратор шаблона:
Рис.116
Поля группировок:
Факты:
Факты куба показывают итоговые значения:
Текущий баланс, общую сумму принятых платежей или начисленных услуг, общую сумму скидок.
При помощи данного отчета можно:
Рис.117
Сводный отчет по всем фолио базы. Кол-во фолио, доступный баланс, сумма платежей, сумма начисленных услуг, общая сумма скидок:
Рис.118
Группировка данных по «ФИО», с сортировкой по фактам, позволит выявить клиентов с наибольшей суммой платежей:
Рис.119
Фолио без платежей и услуг:
Рис.120
Блок «Клиенты». Куб строится по ПДС транзакциям клиента, с применением «фильтра по дате» регистрации транзакции:
Рис. 121
Конфигуратор шаблона:
Рис. 122
Поля группировок:
Факты:
При помощи данного отчета можно:
Конфигуратор шаблона:
Рис.123
Формируется куб по дате начисления ПДС транзакций с итогом по начисленным и активным транзакциям:
Рис.124
Конфигуратор шаблона:
Рис.125
Формируется куб по дате начисления ПДС транзакций для клиента:
Рис.126
Рис.127
Формируется куб по дате начисления ПДС транзакций с группировкой по состоянию «удалено?», отражает ручное удаление транзакций начисления или списания:
Рис.128
Блок «Операции». Строится по словарным и ручным скидкам клиента с применением «фильтра по дате» применения.
Конфигуратор шаблона:
Рис.129
Поля группировок:
Факты:
При помощи данного отчета можно:
Конфигуратор шаблона:
Рис.130
Формирует куб в разрезе словарных скидок с группировкой по полю «относится к» абонементу или услуге, детализирован информацией по клиенту:
Рис.131
Конфигуратор шаблона:
Рис.132
Формирует куб в разрезе наименования «причина действия» с группировкой по полю «относится к» абонементу или услуге, детализирован информацией по клиенту:
Рис.133
Конфигуратор шаблона:
Рис.134
Формирует куб по скидкам клиентов за анализируемый период:
Рис.135
Схема работы автоматической отправки отчётов на почту:

Рис.1 Схема работы приложения.
Настроив все необходимые файлы (см.ниже), вам понадобится запустить gen.bat, который сформирует (c помощью preport) необходимый отчёт/список отчётов (с заданными параметрами), разместит их в необходимом формате в конкретном месте на диске, после чего будет задействован mailcarrier, который отправит отчёты на указанный почтовый ящик.
Настройка:
· gen.bat - выбор места хранения файлов outpath
set outpath = D:\rep\ ;укажите тут путь до места хранения (должен существовать)
· mailcarrier.ini – задайте параметры почтовой рассылки.
POP3SERV= pop.yandex.ru ;настройки Вашего почтового сервера SMTPSERV= smtp.yandex.ru ;настройки Вашего почтового сервера FromAddress= mmmmmmmmmmm@ucs.ru ;Ваш почтовый адрес USERID= mmmmmmmmmmm@ucs.ru ;Ваш логин от почты Password= PAROLPAROL ;Ваш пароль от почты
· preport.ini - параметры логина Freport
login = 1 ;Ваш логин Password = 1 ;Ваш пароль
· preport.bat - параметры необходимых отчётов, которые должны соответствовать параметрам, выбираемым в диалоговых окнах при формировании отчётов через Freport (учитывая outpath)
set srf=gdf.srf ; rem set param="" ;внутри скобок указываем параметры для диалоговых окон отчёта, либо оставляем как есть (см. примечания).
· tuner.mlc - отвечает за то, какие отчёты куда отправлять. Задаём адреса получателей, пути к папкам отчётов, темы писем. Можно не настраивать вручную, а используя mailcarrier.exe - Вид - Показать список рассылки. Затем сохранить список. Вот содержимое файла:
[ToAddress] ;под каждый адрес почты - свои секции Paths и Subject 0=test_1@ucs.ru 1=test_2@ucs.ru [m.permyakov@ucs.ru.Paths] ;путь до папки, в которой размещаются отчёты (имеет смысл указывать тот же путь, что в gen.bat) 0= A:\*.* [m.permyakov@ucs.ru.Subject] ;тема письма для отчётов группы "0" 0= SUBJECT [gaga@ucs.ru.Paths] 1= D:\*.* 2= Z:\*.* [gaga@ucs.ru.Subject] 1= SUBJECT_test2 2= SUBJECT_test3
Примечания:
1. На данный момент формирование файла .html не работает, также замечено, что успешность выгрузки в .XLS зависит от версии MS Office и является ненадёжной. В связи с чем, была доработана автоматическая выгрузка отчётов в .PDF. (параметр formattype="8" в preport.bat). Рекоммендуем использовать именно её.
2. Для того, чтобы утилита имела доступ к Freport, необходимо в Freport.ini прописать в секции [Service] параметр IsComObject=1
3. Параметры можно взять из FREPORT - Настройки Конфигурации - Фильтры (1) - *выбираем фильтр* - нажимаем зеленую кнопку "Показать диалог" (2) - копируем строку снизу (3). См. Рис2.

Рис.2 Фильтры отчётов
4. Доработан mailcarrier - с версии 1.10.0.1 (доступна в поставке Абонемент 126 версии) можно задавать кодировку темы письма. (По умолчанию стоит win-1251, что позволяет отправлять письма с темой на русском языке)
5. Если при получении письма, вместо пустого письма с вложением приходит письмо с потоком данных в виде текста и без вложения - необходимо сократить тему письма - вероятно, превышен допустимый размер разрешённый почтовым сервером через который производится отправка или приём писем.
6. Если mailcarrier не может подгрузить библиотеки SSL (видно по логам, когда письма не отправляются), необходимо подложить ssleay32.dll и libeay32.dll, поставляемые с GuestAnnouncer, в папку с mailcarrier.exe.
Для возможности более гибкого редактирования отправляемых писем можно использовать HTML шаблоны.
Для этого необходимо в запросе на выборку указать файл HTML шаблона, поле должно называться htmlfile, например так:
В самом же html Шаблоне вы можете использовать поля запроса, добавляя "$". Например: $field.
В поставке модуля в папке EXPORT доступны различные уже готовые шаблоны, которы можно использовать. Там вы можете найти множество стандартных шаблонов, таких как "с новым годом", "с 23 февраля", "с 8 марта", etc. Но также там присутствуют некоторые интересные рассылки, накопленные в процессе внедрения на различных объектах. Описани таковых будет вестись и пополняться в рамках данной статьи.
| Название | Описание |
|---|---|
| SMS - Кол-во неиспользованных мероприятий |
Рассылка осуществляется при совершении мероприятий (посещения, персональные тренировки, etc.) Гостю отправляеттся количество оставшихся мероприятий в ресурсе.
|
| SMS - При активации абонемента | После активации абонемента гостю направляется сообщение с названием и периодом действия |
| SMS - При деактивации абонемент | После деактивации абонемента гостю направляется сообщение об этом. |
| ОКОНЧАНИЕ СРОКА АБОНЕМЕНТА_SMS | За 30 дней (настраивается в запросе) до окончания срока действия абонемента клиент будет об этом проинформирован |
| SMS - оповещение клиента | Информирование клиента о записи на мероприятие с указанием ресурса и специалиста |
| SMS - оповещение специалиста | Информирование специалиста о том, что произошла запись с указанием ФИО клиента и его контактного номера |
| SMS - Выезд гостя | Информирование гостя о выезде из номера |
| SMS - Бронирование номера | Информирование гостя о бронировании номера |
Выложен в 134 версии Абонемент.
Модуль GuestAnnouncer в рамках переработки, для устранения проблемных частей функционала был серьёзно переработан.
Новый модуль e-mail и sms рассылки - GuestAnnouncer2 (далее GA2).
Модуль был разделён на 3 подмодуля: GA_Editor, GA_Scheduler, GA_Mailer - тем самым разграничивая выполняемый функционал как показано на рис.1
|
Рис.1 разделение функционала между подмодулями |
GA_Editor
Данный подмодуль собрал в себе все функции графического интерфейса, такие как:
Внешний вид основного меню подмодуля можно увидеть на рис.2
|
Рис.2. Основное меню подмодуля GA_Editor |
Пункт: Отправить СМС
Окно для тестирования настроек с sms-провайдером представлено на рис.3.
|
Рис.3 Окно тетстирования настроек sms-провайдера |
Пункт: Создать языковой файл
При выборе данного пункта будет создан языковой файл, для возможности последующей локализации подмодуля.
Используемый языковой файл указывается в GuestAnnouncer2.ini
Пункт: История рассылок
Окно истории рассылок представлено на рис.4.
|
Рис.4 Окно истории рассылок |
В окне отображаются все созданные задания на отправку оповещений.
В левой части отображаются общая информация о задании: время создания задания; оповещение, по которому создано задание; адрес на который будет произведена рассылка; результат отправки, если уже были предприняты попытки.
В правой части отображается подробная информация о выделенном в левой части задании: параметры, почёрпнутые из запроса шаблона для данного задания (на рис.4); зафиксированные ошибки отправки, если отправка не удалась, или удалась не с первой попытки; сформированное для отправки сообщение.
Пункт: Настройка оповещений
Окно настройки оповещений представлено на рис.5. Окно претерпело минимальные изменения по сравнению с предыдущей версией модуля.
Основные изменения: панель редактирования оповещения, редактор шаблона сообщения, функционал просмотра SQL кода.
|
Рис.5 Окно редактора оповещений |
Панель редактора оповещения теперь доступна всегда. Для сохранения изменений необходимо пользоваться кнопкой сохранить в верхней части окна.
При переходе на другое оповещение/шаблон все несохранённые изменения в текущем оповещении будут сброшены.
Было принято решение отказаться от редактора FastReport, в пользу более легко редактируемых шаблонов.
Для обечпечения функциональности подстановки данных из запроса, реализована подмена переменных в отправляемом тексте результатами выборки.
Для этого используется маскирование заменяемых переменных в тексте шаблона. Маскирование производится заключением названия (исключительно в верхнем регистре) поля результата запроса в {%_%} (см. примеры ниже).
|
Рис.6 Редактор шаблона SMS-сообщения |
Для SMS-сообщений используется однострочный редактор, изображён на рис.6 с примером ввода маскированных полей запроса.
|
Рис.7 Редактор шаблона Email-сообщения |
Для Email-сообщений используется многострочный HTML редактор, изображён на рис.7.
В окно режима просмотра SQL кода, на вкладку просмотра результатов, добавлено поле просмотра сформированного сообщения (с HTML форматированием)
GA_Scheduler
Данный подмодуль вмещает в себе функции проверки наступления условий и создания заданий на отправку.
Подмодуль не имеет графического интерфейса и устанавливается службой.
Модуль безостановочно опрашивает БД запросами сформированными по оповещениям, активным в данный период времени. И при появлении непустого ответа, создаёт задание на отправку по данному оповещению, заполняя все необходимые параметры.
GA_Mailer
Данный подмодуль занимается непосредственно отправкой назначенных заданий через SMTP сервер, sms-провайдера или на connecter.
Подмодуль также, как и GA_Scheduler, не имеет графического интерфейса.
Модуль непрерывно мониторит появление новых заданий на отправку. При появлении, формирует текст оповещения, подставляя результаты запроса, и отправляет. Если отправка неуспешна - фиксирует ошибки полученные от принимающей стороны.
Модуль пытается отправить сообщение в течение значения "Дней на отправку" оповещения.
[Settings] ; Путь к БД dbname=127.0.0.1/3080:С:\_UCS\_FITNESS\IBDATA\FITNESS.FDB DBUser=ucs DBPassword=ucs ; для FireBird 1.5 оставить пустым ; Россия DBCharSet=WIN1251 ; Литва ;DBCharSet=WIN1257 [SERVICE] Timeout=10 TimeoutMsg=10 NewLogHours=1 [SMTP] ; Настройки на почтовый сервис SMTPAuthenticationType =1 SMTPHost =smtp.yandex.ru SMTPUserName =mvs@ucs.ru SMTPPassword =abonementrules SMTPPort =465 ; использовать SSL при соединении с почтовым сервером SMTPSSL=1 ; метод SSL ; 1 - SSLv2 ; 2 - SSLv23 ; 3 - SSLv3 ; 4 - TLSv1 ; 5 - TLSv1_1 ; 6 - TLSv1_2 SSLMethod=4 ; для Яндекса - SMTPFromAddress должен быть равен SMTPUserName иначе работать не будет! SMTPFromAddress =mvs@ucs.ru SMTPConnectionTimeOut =60000 SMTPConnectRetryCount =3 [CONNECTER] : Настройка на connecter, если результат выполнения оповещения должен инициировать запрос в connecter URL=http://127.0.0.1:7780 EncodingOut=0 EncodingIn=0 UseURLDecode=1 [SMS] ; настроечный файл для отправки СМС из папки SMS_Template SMSTemplateIni =С:\_UCS\_FITNESS\Guest_Announcer_2\SMS_Template\TERASMS\SettingsTERASMS.ini SMSUseStatus=1 ; только (!!!) для России первую 8 в номере меняем на +7 ; 0 - не меняем ; 1 - меняем ; 2 - удалять первую 8 либо +7 DropCountryCode=2 [LNG] ;Используемый языковой файл CurrentLanguage= ;CurrentLanguage=English [LOCK.SERVER] ; Настройка на сервер блокировок Абонемент TCPHost=172.22.10.41 TCPPort=1119 TCPTimeout=10000
Ранее для исключения уже отправленных сообщений из рассылки использовалась следующая конструкция:
В GA2 история рассылок хранится иначе, поэтому необходимо использовать конструкцию, приведенную ниже:
При переходе со старой версии модуля на новую, для корректной работы рассылок, необходимо использовать обе конструкции одновременно.
Модуль защищён ключом Проект 4 Модуль 10. Подробнее о лицензировании.
Для того чтобы подключить данного оператора для SMS рассылки через GuestAnnouncer, требуется:
• Использовать GuestAnnouncer версии 1.0.0.157 или выше (доступен в поставке Абонемент c версии 131).
• Проверить наличие папки SMS_Template\TERASMS в используемой поставке GuestAnnouncer.
• Проверить наличие smsc.dll версии не ниже 1.0.0.66 в папке с GuestAnnouncer. В случае отсутствия, взять из папки SMS_Template\TERASMS.
• В GuestAnnouncerUniversal.ini проверить наличие секции и параметра, в случае отсутствия или некорректности пути, добавить или исправить:
[SMSC] Library = C:\_UCS\_FITNESS\GA\smsc.dll
• В секции [SMS] установить параметр SMSTemplateIni следующим образом:
SMSTemplateIni=TERASMS\SettingsTERASMS.ini
• В SMS_Template\TERASMS\SettingsTERASMS.ini установить логин и пароль от ЛК оператора.
• Правильность последних настроек, можно проконтролировать, с помощью TestSendSMS.bat, откуда можно отправить тестовое SMS и проверить баланс лицевого счёта.
• Для проверки правильности всех параметров, можно использовать функцию «Проверить Баланс» на вкладке «Настройки» GuestAnnouncer.
Для того чтобы подключить данного оператора для SMS рассылки через GuestAnnouncer2, требуется:
• Использовать GuestAnnouncer2 из поставки Абонемент версии 135 или выше.
• Проверить наличие папки SMS_Template\SMSTraffic в используемой поставке GuestAnnouncer2.
• В GuestAnnouncer2.ini секции [SMS] установить параметр SMSTemplateIni следующим образом:
SMSTemplateIni=<путь_к_GA2>\SMSTraffic\SettingsSMSTraffic.ini
• В SMS_Template\SMSTraffic\SettingsSMSTraffic.ini установить логин, пароль от ЛК оператора и имя отправителя, например:
Login = ucs_login Password = ucs_password Sender= UCS
• Правильность последних настроек, можно проконтролировать, с помощью функционала "Отправить СМС" в GA_Editor.

[Application] ; Управляет режимом автоматического старта сканирования после запуска приложения AutoStart=0 ; Начинать сканирование сразу (1) или ждать время интервала сканирования (0) ImmediatePoll=0 ; Режим работы ; 0 - рассылка ; 1 - работа с CONNECTER ; 2 - работа с разовыми сообщениями AppMode=2 [Settings] ; Путь к БД DBName=localhost/3060:C:\Work\Projects\OLD\UCS\DB\SHELTER.FDB ; Пользователь для соединения с БД User=ucs ; Пароль для соединения с БД Password=ucs ; Роль пользователя в БД DBRole= ; Кодировка DBCharSet=WIN1251 ; Интервал сканирования БД (сек) PollInterval=5 ; Путь к папке для формирования временных файлов CachePath = C:\Work\Projects\OLD\UCS\Guest_Announcer\Cache\ ; Количество строк лога на экране (0 - на экран лог не выводится) LinesAmount=500 ; Header по умолчанию (для SMS) DefaultHeader=UCS ; ID гостиницы HotelID=1 [LANGUAGE] ; Языковой файл программы (должен лежать в папке LANGUAGES) LngFile=Russian.lng [SMTP] ; Тип аутентификации на SMTP сервере SMTPAuthenticationType = 1 ; Адрес SMTP сервера SMTPHost = smtp.google.com ; Логин на SMTP сервер SMTPUserName = mymail@gmail.com ; Пароль на SMTP сервер SMTPPassword = mypass ; Порт SMTP сервера SMTPPort = 25 ; Адрес для подстановки в поле “От:” в письме. Некоторые почтовые сервера требуют, чтоб этот ; параметр обязательно совпадал с SMTPUserName. SMTPFromAddress = mymail@gmail.com ; Таймаут соединения с SMTP сервером (мс) SMTPConnectionTimeOut = 60000 ; Количество попыток установить соединение с SMTP сервером. Этот и предыдущий параметры ; применяются при попытке отсылки каждого письма. SMTPConnectRetryCount = 3 ; Использовать SSL при соединении с почтовым сервером (0 - не использовать, 1 - использовать) SMTPSSL=1 ; Метод SSL ; 1 - SSLv2 ; 2 - SSLv23 ; 3 - SSLv3 ; 4 - TLSv1 SSLMethod=4 [SMS] ; Порт для связи с SMS гейтом 3 SMSPort = 8997 ; Таймаут на получение ответа от SMS гейта при посылке команды SMSReplyTimeOut = 20000 ; Таймаут на получение данных от SMS гейта SMSReadTimeOut = 1000 ; Таймаут при подключении к SMS гейту SMSServerConnectTimeout = 40000 ; Настроечный ini-файл провайдера СМС (должен лежать в папке SMS_Template) SMSTemplateIni=MOBI\SettingsMOBI.ini [Log] ; Уровень логгирования LogLevel=10 [CONNECTER] ; Адрес программы CONNECTER URL=http://198.154.196.199:7780 ; Кодировка отправляемых сообщений (0 - ANSI; 1 - UTF-8) EncodingOut=1 ; Кодировка получаемых сообщений (0 - ANSI; 1 - UTF-8) EncodingIn=0 [EXTCONNECTER] ; Порт для общения с GuestAnnouncer.dll Port=4141 [LOCK.SERVER] ; Настройка адреса соединения с менеджером лицензий TCPHost=localhost ; Настройка порта соединения с менеджером лицензий TCPPort=1111








;####################################################################### ; для провайдера MLS IT Systems (http://www.mlsit.ru/) ;####################################################################### [Main] ; как шифровать пароль (если не надо - оставить пустым) PassCorrection=MD5 ; писать сообщения о остатке СМС на балансе при малом остатке ; 0 - не писать ; 1 - писать WriteBalanceAlert=1 ; Признак завершения сообщения XMLEndString=*END* ; Писать в лог запросы\ответы ; 0 - не писать ; 1 - писать UseDetailedLog=1 ; файл со статусами сообщений и описаниями ошибок (указываются от папки ..\SMS_Template) SMSStatusIni=MLS\StatusMLS.ini ; тип SMSGate ; 0 - через сокеты ; 1 - по протоколу HTTPS методом POST ; 2 - по протоколу HTTPS методом GET ; 3 - по протоколу HTTP методом GET SMSType = 0 ; количество СМС на балансе, при котором начнется информирование об окончании СМС SMSBalanceAlert = 10 ; адрес СМС-гейта SMSHost = ftp.mlsit.ru ; логин SMSGateIDKey = ; пароль SMSGatePass = ; символ, которым будут заменены пробелы в тексте СМС (если заменять не надо, то написать слово Blank) BlankTo=Blank ; признак нормального выполнения команды ReplyOK= ; признак выполнения команды с ошибкой (без пробелов) ReplyErr= ; для России первую 8 в номере меняем на +7 ; 0 - не меняем ; 1 - меняем DropCountryCode=0 [Nodes] ;--------------------------------------------------------------------- ; Ноды ответа сервера на отправку СМС (Doc.DocumentElement.имя_ноды или Doc.DocumentElement.имя_ноды1\имя_ноды): ; <?xml version="1.0" encoding="UTF-8"?> ; <SendSms> ; <Count>1</Count> ; <oneRec id="162847">+79031234567</oneRec> ; </SendSms> ;--------------------------------------------------------------------- ; Нода, в которой возвращается ID СМС и другая информация NodeListNode=oneRec ;--------------------------------------------------------------------- ; Ноды ответа сервера на запрос статуса СМС (Doc.DocumentElement.имя_ноды или Doc.DocumentElement.имя_ноды1\имя_ноды): ; <?xml version="1.0" encoding="UTF-8"?> ; <StatusSms> ; <oneRec id="162847"> ; <Status>1</Status> ; <DateStatus>05.04.11 13:04</DateStatus> ; <StatusMessage>Отправлено</StatusMessage> ; </oneRec> ; </StatusSms> ;--------------------------------------------------------------------- ; Нода, в которой возвращается ID СМС и другая информация StatusListNode=oneRec ; Пути к шаблонам СМС (указываются от папки ..\SMS_Template) [Authentication] ; шаблон для аутентификации на сервере (если нужно) Template=MLS\AuthenticationMLS.xml ; шаблон ответа сервера Reply=MLS\AuthenticationReplyMLS.xml [SendSms] ; шаблон отправляемого СМС (обязательно) Template=MLS\SendSmsMLS.xml ; шаблон ответа сервера Reply=MLS\SendSmsReplyMLS.xml [StatusSms] ; шаблон получения статуса СМС (обязательно) Template=MLS\StatusSmsMLS.xml ; шаблон ответа сервера Reply=MLS\StatusSmsReplyMLS.xml [Disconnect] ; шаблон для закрытия соединения (если нужно) ; шаблон ответа сервера не предусмотрен Template=MLS\DisconnectMLS.xml [Error] ; шаблон ошибки в ответ на посылаемый XML Template=MLS\ErrorReplyMLS.xml

<?xml version="1.0" encoding="UTF-8"?>
<SendSms>
<idSession>{%idSession%}</idSession>
<Head>{%Head%}</Head
<TextSms>{%TextSms%}</TextSms>
<Phone>{%Phone%}</Phone>
</SendSms>
<?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
<FUNCNAME>FOLIO_PAYMENT</FUNCNAME>
<PARAMETERS>
<GUEST>{%GUEST_ID%}</GUEST>
<COST>{%GUEST_COST%}</COST>
</PARAMETERS>
</REQUEST>[ANNOUNCER] ; Адрес, где запущен GuestAnnouncerUniversal TCPHost=127.0.0.1 ; Порт TCPPort=4141 ; Таймаут чтения TCPTimeOut=5000 [LOG] ; Путь к логам LogPath=c:\Work\Guest_Announcer\DLL\Logs ; Максимальный размер лога MaxLogSize=5242880
Для того чтобы подключить данного оператора для SMS рассылки через GuestAnnouncer, требуется:
• Использовать GuestAnnouncer версии 1.0.1.20 или выше (доступен в поставке Абонемент c версии 132).
• Проверить наличие папки SMS_Template\ExpressMobile в используемой поставке GuestAnnouncer.
• Проверить наличие smsc.dll в папке с GuestAnnouncer. В случае отсутствия, взять из папки SMS_Template\ExpressMobile.
• В GuestAnnouncerUniversal.ini проверить наличие секции и параметра, в случае отсутствия или некорректности пути, добавить или исправить:
[SMSC] Library = C:\_UCS\_FITNESS\GA\smsc.dll
• В секции [SMS] установить параметр SMSTemplateIni следующим образом:
SMSTemplateIni=ExpressMible\SettingsExpressMibleSMS.ini
• В SMS_Template\ExpressMobile\SettingsExpressMobileSMS.ini установить логин и пароль от ЛК оператора.
• Запустить прокси для работы с ExpressMobile: GA\Proxy\Proxy.exe
• Правильность последних настроек, можно проконтролировать, с помощью TestSendSMS.bat, откуда можно отправить тестовое SMS и проверить баланс лицевого счёта.
• Для проверки правильности вcех параметров, можно использовать функцию «Проверить Баланс» на вкладке «Настройки» GuestAnnouncer.
ВАЖНО!!! Номер телефона получателя указывается без +7 и без 8, например: 9261234567 ВАЖНО!!!
Для того чтобы подключить данного оператора для SMS рассылки через GuestAnnouncer, требуется:
• Использовать GuestAnnouncer версии 1.0.1.22 или выше (доступен в поставке Абонемент c версии 133).
• Проверить наличие папки SMS_Template\Sales в используемой поставке GuestAnnouncer.
• Проверить наличие smsc.dll версии не ниже версии не ниже 1.0.0.71 в папке с GuestAnnouncer. В случае отсутствия, взять из папки SMS_Template\Sales.
• В GuestAnnouncerUniversal.ini проверить наличие секции и параметра, в случае отсутствия или некорректности пути, добавить или исправить:
[SMSC] Library = C:\_UCS\_FITNESS\GA\smsc.dll
• В секции [SMS] установить параметр SMSTemplateIni следующим образом:
SMSTemplateIni=Sales\SettingsSales.ini
• В SMS_Template\Sales\SettingsSales.ini установить логин, пароль и APIKey от ЛК оператора.
• Правильность последних настроек, можно проконтролировать, с помощью TestSendSMS.bat, откуда можно отправить тестовое SMS и проверить баланс лицевого счёта.
• Для проверки правильности вcех параметров, можно использовать функцию «Проверить Баланс» на вкладке «Настройки» GuestAnnouncer.
Для того чтобы подключить данного оператора для SMS рассылки через GuestAnnouncer, требуется:
• Использовать GuestAnnouncer версии 1.0.0.139 или выше (доступен в поставке Абонемент c версии 128).
• Проверить наличие папки SMS_Template\SigmaSMS в используемой поставке GuestAnnouncer.
• Проверить наличие smsc.dll версии не ниже 1.0.0.66 в папке с GuestAnnouncer. В случае отсутствия, взять из папки SMS_Template\SigmaSMS.
• В GuestAnnouncerUniversal.ini проверить наличие секции и параметра, в случае отсутствия или некорректности пути, добавить или исправить:
[SMSC] Library = C:\_UCS\_FITNESS\GA\smsc.dll
• В секции [SMS] установить параметр SMSTemplateIni следующим образом:
SMSTemplateIni=SigmaSMS\SettingsSigmaSMS.ini
• В SMS_Template\SigmaSMS\SettingsSigmaSMS.ini установить логин и пароль от ЛК оператора.
• Правильность последних настроек, можно проконтролировать, с помощью TestSendSMS.bat, откуда можно отправить тестовое SMS и проверить баланс лицевого счёта.
• Для проверки правильности вcех параметров, можно использовать функцию «Проверить Баланс» на вкладке «Настройки» GuestAnnouncer.
ВАЖНО
Данный оператор SMS рассылки работает только с телефонами в формате 7**********, и не работает с форматами 8* и +7*.
Чтобы таких телефонов в базе не возникало, требуется в Абонемент настроить маску телефонных номеров, делается это следующим образом:
В Общих Параметрах, на вкладке Гость, параметр «Формат “Телефоны”» установить значение:
79990000000;1;_
(Также можно установить «Формат “Тел.1”», «Формат “Тел.2”», в зависимости, от того, какое из полей предполагается использовать, для ввода номеров клиентов).
После установки данного параметра, через интерфейс Абонемент, нельзя будет ввести телефон в неправильном формате.
Для того чтобы подключить данного оператора для SMS рассылки через GuestAnnouncer2, требуется:
• Использовать GuestAnnouncer2 из поставки Абонемент версии 136 или выше.
• Проверить наличие папки SMS_Template\QTelecom в используемой поставке GuestAnnouncer2.
• В GuestAnnouncer2.ini секции [SMS] установить параметр SMSTemplateIni следующим образом:
SMSTemplateIni=<путь_к_GA2>\QTelecom\SettingsQTelecom.ini
• В GuestAnnouncer2.ini секции [SMS] установить параметр DropCountryCode следующим образом:
DropCountryCode=2
• В SMS_Template\QTelecom\SettingsQTelecom.ini установить логин, пароль от ЛК оператора и имя отправителя, например:
Login = ucs_login Password = ucs_password Sender= UCS
• Правильность последних настроек, можно проконтролировать, с помощью функционала "Отправить СМС" в GA_Editor.
Данный оператор не выдаёт ошибок отправки при изначальном запросе, требуется второй запрос для получения статуса задания на отправку sms. Данный функционал не поддержан GuestAnnouncer2.
Обрабатываются только ошибки отправки - отсутствие связи с провайдером, некорректные учётные данные ЛК провайдера.
Для того чтобы подключить данного оператора для SMS рассылки через GuestAnnouncer, требуется:
• Использовать GuestAnnouncer версии 1.0.0.157 или выше (доступен в поставке Абонемент c версии 131).
• Проверить наличие папки SMS_Template\MTSCommunicator в используемой поставке GuestAnnouncer.
• Проверить наличие smsc.dll версии не ниже 1.0.0.66 в папке с GuestAnnouncer. В случае отсутствия, взять из папки SMS_Template\MTSCommunicator.
• В GuestAnnouncerUniversal.ini проверить наличие секции и параметра, в случае отсутствия или некорректности пути, добавить или исправить:
[SMSC] Library = C:\_UCS\_FITNESS\GA\smsc.dll
• В секции [SMS] установить параметр SMSTemplateIni следующим образом:
SMSTemplateIni=MTSCommunicator\SettingsMTSCommunicator.ini
• В SMS_Template\MTSCommunicator\MTSCommunicator.ini установить логин и MD5 хэш от пароля в личный кабинет оператора.
• Правильность последних настроек, можно проконтролировать, с помощью TestSendSMS.bat, откуда можно отправить тестовое SMS и проверить баланс лицевого счёта.
• Для проверки правильности введённых параметров, можно использовать функцию «Проверить Баланс» на вкладке «Настройки» GuestAnnouncer.
Для того чтобы подключить данный шлюз для SMS рассылки через GuestAnnouncer, требуется:
Со стороны шлюза:
Настроить доступ к API шлюза, создать пользователя с правами на использование API-функций. (Например GoIP Operator)
Настроить провайдера в GoIP4
Получить API ссылку для данного провайдера вида:
Со стороны GuestAnnouncer:
• Использовать GuestAnnouncer версии 1.0.1.16 или выше (доступен в поставке Абонемент c версии 132).
• Проверить наличие папки SMS_Template\GoIP4 в используемой поставке GuestAnnouncer.
• Проверить наличие smsc.dll версии не ниже 1.0.0.67 в папке с GuestAnnouncer. В случае отсутствия, взять из папки SMS_Template\GoIP4.
• В GuestAnnouncerUniversal.ini проверить наличие секции и параметра, в случае отсутствия или некорректности пути, добавить или исправить:
[SMSC] Library = C:\_UCS\_FITNESS\GA\smsc.dll
• В секции [SMS] установить параметр SMSTemplateIni следующим образом:
SMSTemplateIni=GoIP4\SettingsGoIP4.ini
• В SMS_Template\GoIP4\SettingsGoIP4.ini установить логин и пароль созданного ранее пользователя в GoIP4.
• В SMS_Template\GoIP4\SettingsGoIP4.ini изменить подсвеченные части SendSmsURI согласно полученной ранее API ссылке:
http://200.321.154.26/en/dosend.php?USERNAME=$login$&PASSWORD=$password$&smsprovider=3&goipname=gsm03&smsnum=$phones$&method=2&Memo=$sms$
• Правильность последних настроек, можно проконтролировать, с помощью TestSendSMS.bat, откуда можно отправить тестовое SMS.
ВАЖНО!!!
При использовании аппаратного шлюза, для отправки используется помещённая заказчиком в устройство SIM-карта. Таким образом, невозможно отправлять через данный шлюз SMS с короткого или текстового номера.
Для того чтобы подключить данного оператора для SMS рассылки через GuestAnnouncer2, требуется:
• Использовать GuestAnnouncer2 из поставки Абонемент версии 134 или выше.
• Проверить наличие папки SMS_Template\AlphaSMS в используемой поставке GuestAnnouncer2.
• В GuestAnnouncer2.ini секции [SMS] установить параметр SMSTemplateIni следующим образом:
SMSTemplateIni=<путь_к_GA2>\AlphaSMS\SettingsAlpha.ini
• В SMS_Template\AlphaSMS\SettingsAlpha.ini установить логин, пароль от ЛК оператора, имя отправителя, и API ключ из "Настройки"->"API" в личном кабинете например:
Login = ucs_login Password = ucs_password ApiKey=f7ed43d8c6331667945e27e99ce7efcfcd491609 Sender= UCS
• Правильность последних настроек, можно проконтролировать, с помощью функционала "Отправить СМС" в GA_Editor.
В ПО Абонемент реализована возможность отправлять разовые СМС гостям непосредственно пользователем из основного модуля программы с помощью плагинов.
Алгоритм работы следующий:
Необходимо для работы:
smstext - текст сообщения, который используется в шаблоне сообщения. Шаблон рассылки присутствует в поставке GuestAnnouncer начиная с версии ПО Абонемент 1.128.
В плагине можно реализовать различные шаблоны сообщений, подстановку обращений и т.д. Плагины разрабатываются аналогично печатным формам.
Пример кода отвечающего за создание нового задания на отправку сообщения:
Необходимые модули в ключе защиты:
В поставке, начиная со 128 версии, в папке exe\frf присутствует пример плагина для отправки разовых произвольных сообщений: SingleSMS.fr3.

рис.1 Структурная схема.
RKeeper при оплате на специальную валюту обращается к FarCards, который вызывает подключенную к нему sdmHTTPFarCard.dll. Последняя dll обращается к ключу защиты и если лицензия найдена (проект 2 модуль 11), отправляется XML запрос на TCP/IP сервер - программу HTTPRKtoSH.exe. Этот сервер обращается к ShelterConnect.dll, которая работает с базой данных Абонемент.
Дистрибутив со всем необходимым можно скачать на FTP

Рис.2. Кассовые станции и устройства
2. Зайти в меню Сервис – Интерфейсы. Добавить новый интерфейс. Назовем его RKtoAbonement. См рис. 3 В данном интерфейсе указываем , ранее заведенный PDS interface#1. Код интерфейса нужно запомнить и прописать в файле HTTPRKtoSH.ini. См. настройки HTTPRKtoSH.exe.
Для передачи ППР позиций меню в Абонемент (с версии 136) и последующей печати их в чеке, необходимо в параметр интерфейса xml dish attributes установить как:
xml dish attributes = 2560.ItemKind

Рис.3. Интерфейс
3. Заходим в меню Сервис - Обработка сигналов и устройств и добавить MCR алгоритм. Указываем тип «Интерфейс». Объект Интерфейс RKtoAbonement, заведенный в пункте 2.
Если указать тип «Валюта», то будет ошибка 232: "Не получается напечатать чек: Персональное ограничение для "" = 0.00."
Можно завести несколько интерфейсов для разных типов идентификаторов. Сделаем два интерфейса, один карт E-Marine (Рис.4) и другой для Mifare (Рис.5).

Рис4. MCR алгоритмя для E-Marine карт.
Пример скрипта для карт E_Marine:
function MCR1000636(DeviceSignal: Integer; DeviceIdent: Integer; var Parameter: String): Boolean;var RestCode: integer;i, j, t1, t2, S, res1: Integer;hex, resulttext: string;beginResult := false;if pos('Em-Marine',Parameter)>0 thenbegini := pos(']',Parameter);j := pos(',',Parameter);resulttext:=copy(Parameter,i+2,3);resulttext:=resulttext+copy(Parameter,j+1,5);Result := true;Parameter:=resulttext;end;end;

Рис5. MCR алгоритмя для Mifare карт без ограничения по длине номера.
function MCR1000637(DeviceSignal: Integer; DeviceIdent: Integer; var Parameter: String): Boolean;var RestCode: integer;i, j, S: integer;res1, t1, t2: int64;hex, resulttext: string;beginResult := false;if pos('Mifare[',Parameter)>0 thenbegini := pos('[',Parameter);j := pos(']',Parameter);Parameter := copy(Parameter,i+1, j-i-1);if length(Parameter) > 0 then beginResult := true;res1:=strtoint64('$'+Parameter);Parameter:= Int64ToStr(Res1 and $FFFFFFFF );end;end;end;

Рис 6. Свойства валюты.

[FarServer]Type = 1DLL = sdmHTTPFarCard.dllGate = 1log = 30XMLCP=1251[LinkDLL]1 = pds_netk[pds_netk]NetServerName=rkfcabininame=netk.ini
[netkern]TESTMESSAGES=0protocols=tcpsoc.dll[TCPSOC]port=2234
[Database]
;Настройка на БД Абонемент
DBname = 127.0.0.1/3080:C:\_UCS\_FITNESS\IBDATA\FITNESS.FDB
DBUser = ucs
DBPassword = oQKH8n0BFUE=
[ExternalClient]
;Код типа идентификатора для поиска
IdentPhysType = 2
;Преобразовывать в CP866
ToOEM = 0
;Запрещать операции превышающие сумму баланса и лимита кредита гостя (в противном случае в r_k возвращается текущий баланс гостя 99999)
NeverRestrictTransaction = 0
ConvertOperationNeed = 1
ClientID = 1
FolioMask = 1
ShowBalance = 1
ShowBalanceFirst = 1
RoomInfoMode =4
TransSection =0
[log]
FileName = ShelterConnect.log
Level = 100
DebugLevel = 100
[GarbageCollector]
Enabled = 0
LifeTime = 120
[SCRK6]
;Не подлежат изменению для интерфейса с r_k7
AlcoholicOperation =999;
Messages =SCRK6.eng.msg
UseScreenHeader0 =1
UseScreenHeader1 =1
UseScreenSequelCode =1
ShowBalance = 1
ShowBalanceFirst = 1
ShowBalanceEverywhere = 1
UseDetails = 1
UseSuperDetails = 1
[TranslateOperation]
;Таблица соответствия Кода групп станций r_k и создаваемой в Абонемент услуги
1 = 301
2 = 301
3 = 301
4 = 301
5 = 301
6 = 301
7 = 301
8 = 301
9 = 301
11 = 301
12 = 301
13 = 301
14 = 301
15 = 301
16 = 301
17 = 301
10 = 301
999 = 301
[TranslatePayment]
;не используется в Абонемент
1 = 1005,910
1000632 = 1005,901
8 = 1005,901
3 = 1005,901
|
Рис.8 Создание заказа в RK7 _______________________________________________________ |
Рис.9 Оператор прикладывает браслет (карту) гостя (также возможен ручной ввод номера ФОЛИО). На экране появляется информация о клиенте, в т.ч. баланс счета. |
|
Рис.10 После оплаты заказ в RK7 закрывается и считается оплаченным. На ФОЛИО гостя в ПО Абонемент создается услуга соответствующей стоимости, а также передается информация о содержимом заказа и примененных скидках. |
Рис.11 Также с помощью браслета клиента можно получить список закрытых на ФОЛИО данного клиента чеков ____________________________________________________________________ |
В тех или иных случаях требуется закрывать блюда из одного чека r_keeper на различные услуги в Абонемент.
В таком случае, для корректного разделения содержимого чека, передачи идентификаторов чеков для возможности последующего возврата, разделение должно происходить на стороне r_keeper.
Для подобного разделения необходимо запустить два экземпляра сборки FarCards и HTTPRKtoSH, настроенные на разные порты сообщения и на разные услуги в Абонемент: первое настраивается в соответствующих ini файлах запускаемых модулей (netk.ini, HTTPRKtoSH.ini, sdmHTTPFarCards.ini), второе настраивается в ShelterConnect.ini (в секции [TranslateOperation]).
В примере ниже, алкогольная продукция ООО "бар", будет закрываться на услугу с кодом 302 Абонемент - Бар, остальные на услугу 301 - Ресторан.
Настройки r_keeper:
В r_keeper необходимо настроить дополнительный PDSinterface, направив его на второй используемый FarCards. Настройки ПДС интерфейсов будут выглядеть как показано на рис.12-13
Важно! Настройки оригинального интерфейса необходимо изменить (В частности параметр "Pass ALL Receipts XML data" обоих интерфейсов должен иметь значение "By Script")
|
Рис.12-13 Настройки интерфейсов кассового сервера |
Далее, так же необходимо задублировать интерфейсы в справочнике Интерфесы. Назначенный код нового интерфейса необходимо заполнить в соответствующем HTTPRKtoSH.ini.
Примеры настроек показаны на рис.14-15.
|
Рис.14-15 Пример настройки интерфейсов в r_keeper |
Необходимо задублировать и MCR-алгоритм, назначив новый дополнительному интерфейсу.
Далее, необходимо разделить блюда меню по параметру "Отдел ФР". Примеры блюд в справочнике Классификации блюд представлены на рис.16-17.
(Заведение нескольких отделов в r_keeper разобрано в статье)
|
Рис.16-17 Примеры настроек блюд в справочнике Клиссификации блюд |
Следующим пунктом необходимо настроить дополнительную валюту и изменить настройки основной валюты закрытия в Абонемент.
В частности в Ограничениях для валюты необходимо указать Классификацию - Отдел ФР, и выбрать необходимый отдел, заполненный на предыдущем шаге, а также указать соответствующий интерфейс.
Примеры настроек валют приведены на рис.18-19.
|
Рис. 18-19 Примеры настроек валют |
Для реализации данной схемы, необходимо наличие каких-либо принтеров на кассовой станции, для разделения закрываемых блюд.
В настройках принтеров должны быть выбраны в группе "Дополнительно" - "Классификация" принтер для случаев, в которых данный принтер не должен задействоваться.
На примере на рис.20-21 Принтер STAR используется для печати блюд ООО "бар".
|
Рис.20-21 Пример настроек принтеров кассовой станции |
После применения данных настроек, сумма к оплате данными валютами будет разделена согласно настройками, как показано на рис.22.
Для корректного закрытия в Абонемент, прийдётся предъявлять идентификатор для каждой валюты.
|
Рис.22 Пример интерфейса Быстрого чека r_keeper при использовании данных настроек |
В Абонемент будут созданы две услуги на фолио, обе из которых будут иметь корректно обрабатываемое содержимое чека. Пример фолио на которое производилось закрытие заказа с рис.22 показано на рис.23.
![]() |
| 18.05.2018 |
Обновлена sdmHTTPFarCards.dll - уменьшено количество кликов пользователя в rKeeper. Добавлена возможность просмотра баланса по карте из основного меню кассы Rkeeper. Для поиска закрытых по идентификатору чеков в rKeeper требуется на списке закрытых чеков применить фильтр "Поиск по карте", и приложить идентификатор к считывателю. |
|
|
|
| 18.01.2019 | Из-за изменений, повлёкших ошибки при работе с версией версии r_k 7.6.2.xx, была переработана работа с кодировкой и с версии sdmHTTPFarCards.dll 1.17.0.0 параметр Shelterconnect.ini ToOEM должен быть установлен как ToOEM=0 |
| 10.02.2019 |
Обновлена ShelterConnect.dll (версия 1.2) - исправлена ошибка, когда при аннулировании/отмене чека корректирующая транзакция на фолио не корректировала закрытие. Абонемент версия 136 - поддержана передача ППР из r_k и печать в детализированном чеке закрытия на номер. |
Данный модуль лицензируется по количеству запущенных экземпляров программы.
Программа предназначена для визуализации информации из базы данных (например, поэтажного плана, списка находящихся клиентов и др.) и должна быть отображена на отдельном дисплее в удобном для посетителей месте, например в холе заведения. Устанавливается на рабочий компьютер администратора, при наличии второго монитора или на отдельный компьютер. В случае размещения в зале, за телевизором устанавливаем компьютер типа NetTop.

Внешний вид модуля
Для настройки программы используется файл monitor.ini - в данном файле, в разделе [Settings], указывается путь до файла с настройками MonitorSettings.xml и путь до базы данных
MonitorSettings=D:\Monitor\MonitorSettings.xml dbname=127.0.0.1/3080:D:\MyDB\IBData\fitness.FDB ;Программа защищена ключом, поэтому необходимо прописать путь к серверу блокировок: [LOCK.SERVER] TCPPort=1111 TCPHost=127.0.0.1
Далее, существует 2 варианта настройки выводимых данных и интерфейса:
Для упрощенного вывода отображения поэтажного плана используется настройка в редакторе abonementmanager.
Преимуществo данного способа – простота редактирования выводимой формы
Недостаток данного способа – негибкость настроек отображаемых данных, ограниченный набор способов вывода данных.
В случае, если abonementmanager.ini и monitor.ini настроены на одну базу, Этажный план, создаваемый с помощью abonementmanager, будет дублироваться в форме Monitor.
Для внесения изменений в форму Монитора, можно зайти в раздел Абонемента, щелкнув по иконке (см. рис.1).

Рис.1. Настройка поэтажного плана в abonementmanager
Далее, сохраняем внесённые изменения и наблюдаем изменения в форме Монитора.
В результате настройки, выводимая информация представляет собой специфический динамически изменяемый отчет, отражающий, например, текущее состояние работы заведения.
Преимущества данного способа – возможность вывода любых данных из БД в удобной форме, в зависимости от настроек.
Недостаток данного способа – сложность настроек файлов, необходимость знать наименования полей БД.
В состав программного продукта входят следующие основные модули (типы файлов):
MonitorSettings.xml
В данном файле определяются параметры выводимой формы, такие как: высота, ширина, заголовок, позиционирование на экране.
Кроме этого, из SQL-запроса, указанного здесь, возвращается набор данных, которые могут быть выведены на форму.
Атрибуты формы (Form)
|
left |
Отступ слева (в пикселях) |
|
top |
Отступ |
|
Width |
Ширина формы (окна) |
|
Height |
Высота формы (окна) |
|
Caption |
Выводимое наименование окна (заголовок) |
|
BorderStyle |
задает толщину рамки вокруг элемента в пикселях |
С частотой, указанной в теге <Periodicity>2</Periodicity> (в данном случае – 2 секунды), данные, полученные из запроса, будут обновляться на выводимой форме Monitora.
Результат выполнения запроса, указанного в MonitorSettings.xml формируется в виде xml-данных, на которые накладывается шаблон преобразования (*.xls) (см. рис.2).
Путь к данному шаблону и его имя указываются в файле MonitorSettings.xml, в разделе
<XSLT>floorplan.xsl</XSLT> (в данном случае, файл floorplan.xsl располагается в том же каталоге, что и Monitor.exe, MonitorSettings.xml).
В шаблоне преобразования (floorplan.xsl) описаны правила преобразования xml документа в другой внешний вид, в данном случае в HTML страницу. Путь и наименование новой html-страницы указываются в MonitorSettings.xml в разделе
<HTML>cache\floorplan.html</HTML> (в данном случае, будет создана страница floorplan.html в папке cache).

Рис.2. Схема работы программы Монитор
Шаблон преобразования написан на XSL (язык преобразований XML-документов). С помощью него XML-документ трансформируется в HTML вид.
Структура документа
<header> </header>
здесь указываются метаданные, например, кодировка.
<body></body>
«тело документа». В атрибутах тега <body> можно указать, например, style="background-image:url(floorplan.gif);"
При этом, картинка floorplan.gif должна находиться в папке Monitor\cache\
Атрибуты тега <body> влияют на внешний вид всего документа целиком:
|
Атрибут |
Описание |
Пример |
|
bgcolor |
Цвет фона |
<body bgcolor="#C9CDED"> |
|
background |
Фоновая картинка |
<body background="images/tile.jpg"> |
|
text |
Цвет текста |
<body text="#000067"> |
|
link |
Цвет ссылок |
<body link="#457BAF"> |
|
vlink |
Цвет посещённых ссылок |
<body vlink="#9C7B92"> |
|
alink |
Цвет активных ссылок |
<body alink="#434343"> |
Таким образом, результаты запроса можно представить в виде html-документа
Каждая строчка в выводимом наборе данных представлена в теге <RecordSet>, каждое поле в теге <Record>.
Схематично это можно проиллюстрировать примером:
Запрос «select ID, Name from Rooms».
В результате выполнения запроса будут получены следующие данные:
|
ID |
Name |
|
1 |
Бассейн |
|
2 |
Зал |
<RecordSet>
<Record> ID=”1” Name= “Бассейн” </Record>
<Record> ID=”2” Name= “Зал” </Record>
</RecordSet>
Данные выводятся в табличном виде. Схема простой таблицы (с 1 строкой и 2 колонками) представлена ниже:
<table> <tr> <td>Ячейка 1</td> <td>Ячейка 2</td> </tr> </table>
В ячейках можно выводить данные, полученные в результате выполнения запроса из MonitorSettings.xml.
Например, выводим номер <xsl:value-of select="NUMBER"/>
Примечание! Наименование полей указывается прописными буквами
Пример 1
Создадим одну форму, которая будет выводиться поверх всех окон, в этой форме в табличном режиме будут выводиться данные с номером и наименованием комнат.
1) Настраиваем MonitorSettings.xml
|
<Form left="500" top="5" Width="200" Height="400" |
Размеры и расположение формы на мониторе |
|
Caption="Данные по комнатам" |
Заголовок окна |
|
ID="2" |
Номер формы (ее идентификатор) |
|
BorderStyle="2" WindowState="0"> |
Стиль окна: ширина рамки 2 пикселя |
|
<ZOrder>-1</ZOrder> |
Z-последовательность (Z order) окна обозначает позицию окна в стеке перекрывающихся окон. Окно наверху Z-последовательности перекрывает все другие окна. Окно внизу Z-последовательности перекрыто всеми другими окнами. |
|
<ShowPanel>0</ShowPanel> |
Не отображать панель настроек браузера |
|
<Periodicity>2</Periodicity> |
Период обновления – 2 секунды |
|
<SQLText> select r.number number, r.name from rooms r </SQLText> |
SQL запрос. Выводятся следующие поля таблицы rooms базы данных: number (номер) комнаты и name (имя) комнаты |
|
<XSLT>rooms.xsl</XSLT> |
Применяемый файл преобразования, в данном случае: rooms.xsl |
|
<HTML>cache\rooms.html</HTML> |
В результате преобразования в папке /cache будет сформирована html-страница rooms.html |
|
<HIDECURSOR>0</HIDECURSOR> |
Не показывать курсор мыши в пределах окна формы |
|
<FormID>2</FormID> </Form> |
Команда на создание формы |
2) Создадим файл преобразования rooms.xsl
Приведем часть кода
<body> <table border="1" > <tr> <th >Номер комнаты </th> ;Заголовки колонок таблицы <th >Наименование комнаты </th> ;Заголовки колонок таблицы </tr> <xsl:for-each select="RecordSet/Record"> <tr> <td> <xsl:value-of select="NUMBER"/> ;Выводимые значения полей БД </td> <td> <xsl:value-of select="NAME"/> ;Выводимые значения полей БД </td> </tr> </xsl:for-each> </table> </body>
То есть данные должны быть выведены в подобном виде:
|
Номер комнаты |
Наименование комнаты |
<--- Заголовок колонок таблицы |
|
Значение 1 |
Наименование 1 |
<--- Выводимые значения полей БД |
|
… |
.. |
|
|
… |
… |
|
|
… |
.. |
В результате выполнения преобразования будет создана rooms.html страница в папке cache. И при запуске исполняемого файла Monitor.exe поверх всего будет выведена форма с таблицей.
Пример 2
Настройка цветов в зависимости от статуса мероприятия
Варианты статусов
|
ID статуса |
Статус |
|
0 |
Не началось мероприятие |
|
1 |
Началось мероприятие |
|
2 |
Мероприятие закончилось |
Управление выводимой формой осуществляется с помощью следующего стандартного окна настроек (см.рис.3).

Рис.3 - Стандартное окно настроек Монитора
Окно выводимой формы с этажным планом можно настраивать в соответствии с потребностями, и оно всегда выводится поверх остальных окон (см. рис.4).

Рис.4,5 - Варианты окна Монитора
Данное окно не подлежит закрытию стандартными средствами - для закрытия программы используется Окно настроек (с рис.3).
<Monitor>
<Forms>
<Form left="5" top="5" Width="510" Height="380" Caption="Этажный план" ID="1" BorderStyle="2" WindowState="0">
<ZOrder>-1</ZOrder>
<ShowPanel>0</ShowPanel>
<Periodicity>2</Periodicity>
<SQLText>
select r.id id, r.number number, r.name, r.state, r.floor,r.building, 0 guest_quant ,
rk.id roomkind, rk.code roomkindcode,rk.name roomkindname,
COLORTOHTMLHEXCOLOR(rk.color) roomkindcolor,
d.id claim, d.status claimstate, formatdatetimeex('hh:mm:ss',d.startdate,'') arrival,
case when d.status=1 and d.finishdate=90000
then formatdatetimeex('hh:mm:ss',(d.startdate + p.diaryduration)-(d2dbl('now')),'')
else formatdatetimeex('hh:mm:ss',d.finishdate-(d2dbl('now')),'')
end fmt_end_time,
case when d.status=1 and d.finishdate=90000
then ROUND(((d.startdate + p.diaryduration)-(d2dbl('now')))*1440)
else ROUND(((d.finishdate)-(d2dbl('now')))*1440)
end fmt_end_time_min,
case when
case when d.status=1 and d.finishdate=90000
then ROUND(((d.startdate + p.diaryduration)-(d2dbl('now')))*1440)
else ROUND(((d.finishdate)-(d2dbl('now')))*1440)
end >5 then 'black'
else 'red'
end fmt_end_time_min_color,
d.guest,fp.aleft , fp.atop,fp.awidth,fp.aheight, r.building, r.floor,
case when d.status=1 then 'red' else 'green' end statecolor ,
g.fullname as GUESTNAME,
case when getnamedparamdefnum(dd.paramstr,'color',0)=000000
then 'ffffff'
else COLORTOHTMLHEXCOLOR(getnamedparamdefnum(dd.paramstr,'color',0)) end as room_abonement_categ_color
from resource_categ rc
left join room_kinds rk on rc.id=rk.resource_categ and rk.enabled=1
left join rooms r on r.roomkind=rk.id and r.enabled=1
/*and r.building=3*/
left join floorplan fp on fp.idroom = r.id
left join diary d on d.idroom=r.id and d.enabled=1
and ( d.status=1 or (d.startdate < d2dbl('now')
and d.finishdate > d2dbl('now')))
left join guests g on d.guest = g.id
left join abonement_packages ap on d.abonement_package = ap.id
left join abonements a on a.id = ap.abonement
left join package_kinds pk on a.package_kind=pk.id
left join d_document dd on dd.id=pk.abonementcateg
left join packages p on ap.package = p.id
where
rc.kind in (0)
and r.enabled=1
order by r.number ,fmt_end_time_min
</SQLText>
<XSLT>floorplan.xsl</XSLT>
<HTML>cache\floorplan.html</HTML>
<HIDECURSOR>0</HIDECURSOR>
<FormID>2</FormID>
</Form>
</Forms>
</Monitor><?xml version="1.0" encoding="WINDOWS-1251" ?>
<!--Набор переменных используеться для XSLT -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:str="http://user.com/namespace" version="2.0"
>
<xsl:key name="group" match="/RecordSet/Record" use="ID" />
<!--Ключ "group", уникальное поле "ID" -->
<xsl:template match="/">
<header>
<META http-equiv="Content-Type" CONTENT="text/html; charset=WINDOWS-1251" />
</header>
<!--Фон страницы -->
<body style="background-image: url(floorplan2.GIF);background-repeat: no-repeat;">
<!-- Первый цикл по уникальному поле "ID" -->
<xsl:for-each select="/RecordSet/Record[ generate-id() = generate-id( key( 'group', ID ))]">
<!--позицианирование div блока согластно данным в БД-->
<div ID="{ID}" STYLE="position:absolute; top: {ATOP}px; left: {ALEFT}px; width: {AWIDTH}px; height: {AHEIGHT}px; overflow:hidden;">
<!--Построение "шапки" таблицы таблицы border толщина линий, width ширина height высота, cellpadding расстояние между ячейками по высоте, cellspacing расстояние между ячейками по ширине -->
<table border="1" width="100%" height="100%" cellpadding='0' cellspacing='0' >
<tr height="20px" > <!--Высота первой строки-->
<td align="center" colspan="2" style='background-color: #FFCC66;'>
<!--Фон первой строки-->
<xsl:value-of select="NUMBER"/> <!--Значение первой строки-->
</td>
</tr>
<xsl:for-each select="key( 'group', current()/ID )">
<!-- Второй цикл тут обходим только Record для ID из прошлого цикла, т.е. строим строки таблицы -->
<tr > <td align="center" width="60px"><!--Ширина первого столбца таблицы-->
<xsl:attribute name="BGCOLOR">
<!--Фон столбца таблицы, в зависимости от категории-->
<xsl:value-of select="ROOM_ABONEMENT_CATEG_COLOR"/>
</xsl:attribute>
<font color="{FMT_END_TIME_MIN_COLOR}">
<!--Фон столбца таблицы, в зависимости от категории-->
<xsl:value-of select="FMT_END_TIME_MIN"/> мин
</font>
</td >
<td align="center">
<xsl:attribute name="BGCOLOR">
<xsl:value-of select="ROOM_ABONEMENT_CATEG_COLOR"/>
<!--Фон 2 столбца таблицы, в зависимости от категории-->
</xsl:attribute>
<xsl:value-of select="GUESTNAME"/> <!--Гость во 2-м столбце таблицы-->
</td >
</tr>
</xsl:for-each>
</table>
</div>
</xsl:for-each>
</body>
</xsl:template>
</xsl:stylesheet>
![]() |
Модуль EventsService отвечает за работу с мероприятиями в автоматическом режиме.
Модуль может обеспечивать следующий функционал:
|
Если на объекте ведётся работа с групповыми мероприятиями (групповые занятия в фитнес клубе, массовые катания на катке, занятия в танцевальной студии и т.д.), то актуальной будет следующая схема:
Клиенты записываются в групповые занятия (онлайн или на рецепции), занятия автоматически начинаются по времени начала и заканчиваются по времени окончания из карточки мероприятия, таким образом, у всех клиентов, которые были записаны в данное мероприятие, состоится мероприятие, входящее в состав группы.
Пример №2:
На объекте используется солярий в автономном режиме.
Пакеты минут в солярий заведены как типы абонементов (5 минут, 10 минут, 100 минут и т.д.).
При отметке визита в солярий в контроле присутствия создается мероприятие фикс. продолжительности и автоматически завершается по истечении продолжительности посещения из карточки тарифа.
;Настройка на базу данных Абонемент (Аналогично остальным модулям) [database] dbname=127.0.0.1/3080:UCS_WORK dbuser = ucs DBPassword = oQKH8n0BFUE= ;Настройка на сервер блокировок Абонемент (Аналогично остальным модулям) [LOCK.SERVER] TCPHost = 127.0.0.1 TCPPort = 1119 ;Настройка параметров логирования (Аналогично остальным модулям) [log] level=30 debuglevel=30 name=.\LOG\EventsService.log ByMonthes=1 ByDays=1 BYHOURS=1 [application] ;Начинать работу автоматически при запуске приложения AutoStart=1 ;Частота опроса БД в секундах (минимальное значение - 5) TimerInterval=10 ;Настройка работы с мероприятиями [Diary] ;Автоматически начинать обычные мероприятия startkind0=0 ;Автоматически заканчивать обычные мероприятия stopkind0=0 ;Автоматически начинать групповые мероприятия startkind1=0 ;Автоматически заканчивать групповые мероприятия stopkind1=0 ;Коды ресурсов (через запятую), обычные мероприятия в которых должны стартовать автоматически (если не заполнено - во всех) startResourcesKind0= ;Коды ресурсов (через запятую), групповые мероприятия в которых должны стартовать автоматически (если не заполнено - во всех) startResourcesKind1= ;Коды ресурсов (через запятую), обычные мероприятия в которых должны заканчиваться автоматически (если не заполнено - во всех) stopResourcesKind0= ;Коды ресурсов (через запятую), групповые мероприятия в которых должны заканчиваться автоматически (если не заполнено - во всех) stopResourcesKind1= ;Начинать обычные мероприятия с задержкой(количество минут). Если отрицательное число, то начнётся заранее EventStartDelayKind0 = 0 ;Начинать групповые мероприятия с задержкой(количество минут). Если отрицательное число, то начнётся заранее EventStartDelayKind1 = 0 ;Заканчивать обычные мероприятия с задержкой(количество минут). Если отрицательное число, то закончится заранее EventStopDelayKind0 = 0 ;Заканчивать групповые мероприятия с задержкой(количество минут). Если отрицательное число, то закончится заранее EventStopDelayKind1 = 0 ;Искать забронированные НЕ начатые мероприятия по неоплаченным абонементам в интервале от ТЕКУЩЕЕ ВРЕМЯ + HourForDeleteNoPayedAbonementBefore до ТЕКУЩЕЕ ВРЕМЯ + HourForDeleteNoPayedAbonement (могут принимать отрицательные значения) ; Если такие мероприятия найдены, то отрабатывается параметр deleteNoPayedAbonement. Если deleteNoPayedAbonement=0, то проверяется параметр deleteNoPayedDiary. HourForDeleteNoPayedAbonement=0 HourForDeleteNoPayedAbonementBefore=0 ;Удалять мероприятия по неоплаченному абонементу deleteNoPayedDiary=0 ;Удалять неоплаченный абонемент deleteNoPayedAbonement=0 ;Включать приборы в ресурсе заранее до мероприятия (количество минут) TurnONTheDeviceMinutesTimeBefore=0 ;Включать устройства, даже если EventService не начинает и не заканчивает мероприятия в данных ресурсах AlwaysTurnONTheDevice=0
|
Рис.1 Вид иконки модуля в трее Windows - рабочее состояние |
Рис.2 Приостановленное состояние |
При автоматизации фитнесс клубов, катков, бассейнов, детских и взрослых центров, там где время прибывания в ресурсе ограниченно, всегда встает вопрос: Как посетитель узнает сколько времени ему осталось на пребывание? Ответить на данный вопрос можно только если происходит контроль присутствия. Контроль входа и выхода осуществляется через турникет, а у гостя всегда с собой есть браслет или карта - идентификатор.
Рассмотрим несколько возможных ситуаций решения данной задачи:
1. Инфотерминал без контроллера
2. ИнфоПлазма с контроллером
3. Инфоплазма без контроллера
Для реализации сабжа необходимо выполнить следующее:
Возможен также вывод другой информации, все зависит от наполнения печатной формы.
Печатная форма для примера во вложении.
;750=0060000454134126624
20C8 CARD 0060000454134126624F

(Рис.1 - Считыватель СРЧ-125)

(Рис.2 - Считыватель GameKeeper)
[CreditCard]
Распознавание документов через программу Scanify
Используется программа распознавания документов ScanifyAPI, разработанная компанией Cognitive Technologies (http://www.cognitive.ru). Сканер документов модель Plustek OpticSlim 550 Plus.
Установка программы ScanifyAPI
Установка производилась на операционную систему Windows 7.
Для установки программы ScanifyAPI необходимо запустить файл setup.exe. Данная программа использует USB Guardant ключ. Установка драйверов Guardant выполняется отдельно. Далее, подключаем сканер к USB порту, устанавливаем драйвера. В системе устанавливается сканер «Plustek OpticSlim 550 Plus». В ходе тестирования стандартного драйвера устройства было выявлено, что сканер переходит в спящий режим через короткий промежуток времени (менее 10 минут), в связи с чем, на дилерском FTP ресурсе размещена версия драйвера с предустановленным режимом "no sleep" (работоспособность протестирована, сканер не переключался в "спящий режим" более 24 ч.).
Ссылка на версию драйвера с "no sleep": ftp://172.22.10.100/Abonement/Interface/Cognitive_Technologies/
Запускаем программу «..\Cognitive\ScanifyAPI\Samples\ScDialog_delphi.exe». Паспорт на сканере размещается ВЕРТИКАЛЬНО. (вероятно возможно настроить данный программный комплекс для горизонтального размещения документа). Нажимаем на кнопку «Сканировать». Возникает окно с предложением калибровать сканер. Выполняем калибровку сканера. Калибровку сканера так же можно выполнить в свойствах сканера (Панель управления\сканеры и камеры). В окне «Выбор источника» выбираем сканер. После этого происходит сканирование и распознавание документа. В окне «Протокол работы» отображается информация о ходе сканирования и возникающих ошибках. Таким образом происходит проверка работы программы ScanifyAPI.
Настройка Abonement
Проверка проходила на Abonement ver.127
Из папки «C:\Program Files\Cognitive\ScanifyAPI\Samples\» в папку «exe» Абонемента скопировать следующие файлы:
ScProxy.cs.dll ScProxy.cs.xml ScProxy.dll ScProxy.ini
Из папки «..\FullVersionVer127\HW\screcog\» в папку «exe» Абонемента скопировать следующие файлы:
ScRecog.dll screcog.ini
В файле screcog.ini прописать название сканера. Название сканера взять из протокола работы программы ScDialog_delphi.exe (при проверке использовалось имя «Plustek OpticSlim 550 Plus-TWAIN»).
В файле «ScProxy.ini» необходимо прописать путь до папки /Bin32 программы «ScanifyAPI».
(По умолчанию устанавливается в «C:\Program Files (x86)\Cognitive\ScanifyAPI\Scanify\Bin32»).
Работа в Abonement
Вы можете использовать сканер при добавлении клиента. Перейдите на вкладку “Управление абонементом”, потом “Список клиентов”. При нажатии на кнопку “Добавить клиента”, Вы увидите стандартную форму “Карточка клиента”. Положите паспорт в сканер и нажмите кнопку “Сканирование”. Через некоторое время, приблизительно 10 секунд, данные паспорта отсканируются и распознаются. Всё это будет видно по заполненным полям в карточке клиента. Если у Вас в течении определённого времени ничего не появилось в карточке, то одной из причин может быть неправильное расположение паспорта. Переверните его и попробуйте ещё раз отсканировать. Абонемент использует API функции программы Scanify и за качество распознавания компания UCS ответственности не несет.

(Рис. 1 Сканирование паспорта РФ в ПО "Абонемент")
Распознавание документов с помощью ПО и сканера документов Regula
Используется программа распознавания документов DocumentReader, разработанная компанией Regula (https://regulaforensics.com/) поставляемая со сканерами документов Regula. (Дополнительное лицензирование от Regula не требуется. Достаточно приобрести и подключить сканер)
Лицензирование
Модуль распознования защищён проектом 4, модулем 11 в ключе Абонемент (тем же что и модуль Cognitive)
Стоимость и условия приобретения
Установка и настройка программы DocumentReaderSDK
Достаточно скачать актуальную версию DocumentReaderSDK с сайта производителя и установить её. Или же установить версию, поставляемую в комплекте со сканером документов, если невозможно получить актуальную версию. (Тестирование производилось на версии SDK 4.12)
После установки требуется подключить сканер к ПК, дождаться установки драйверов на устройство, добавленных при установке SDK. (Тестирование производилось на считывателе документов «Регула» 7017), виды протестированных документов: Паспорт РФ (с МЧЗ и без), Загранпаспорт РФ, Водительское удостоверение РФ, Паспорт США, Паспорт Беларуси, ВУ Беларуси)
Теперь необходимо запустить программу Document Reader, проверить работоспособность сканера и модуля распознования, подобрать настройки сканирования для улучшения качества распознования. (Для значительного улучшения качества сканирования рекомендуется откалибровать сканер перед использованием)
После готовности настройте параметры сохранения результатов сканирования для обмена с Абонемент, согласно прилагаемому примеру:
|
Рис. 1 Пример настроек Document Reader |
Pic. 2 Example for Results tab in Document Reader Options |
|
Рис. 3 Пример настроек Document Reader |
Pic. 4 Example for Results tab in Document Reader Options |
Настройка Abonement
Проверка проходила на Abonement ver.136 (Для работы модуля необходима версия ПО "Абонемент" не ниже 1.132)
Из папки «..\FullVersionVerXXX\HW\screcogregula\» в папку «exe» Абонемента скопировать следующие файлы:
ScRegulaRecog.dll scRegulaRecog.ini regula.js
После копирования требуется произвести настройки.
Пример файла настроек scRegulaRecog.ini :
[Main] ;Кодировка возвращаемой строки: 0-ANSI (по умолчанию) 1-UTF8 ;UseUtf8=0 ;Сообщение при сканировании ;ScanningStr = Приложите документ к сканеру... ;Скрипт, в котором реализована процедура запуск сканера. По умолчанию regula.js JSFile=regula.js ;Функция из JSFile, которая запускает сканирование. По умолчанию regulaReaderScan() ;EValCode=regulaReaderScan() ;Функция из JSFile, которая останавливает сканирование. По умолчанию stopFileFileCreate() ;StopCode=stopFileFileCreate() [LOCK.SERVER] TCPHost=127.0.0.1 TCPPort=1119 ;AbonementOnly=1 [Localization] CurrentLanguage=default
Со стороны Абонемент требуется прописать новую секцию и настройку в abonementmanager.ini:
[screcog]
scRecogDllName=scRegulaRecog.dll
Работа в Abonement
Вы можете использовать сканер при добавлении клиента. Запустите ПО DocumentReader, запустите ПО "Абонемент", перейдите на вкладку “Управление абонементом”, потом “Список клиентов”. При нажатии на кнопку “Добавить клиента”, Вы увидите стандартную форму “Карточка клиента”. Положите паспорт в сканер и нажмите кнопку “Сканирование”. Через некоторое время, приблизительно 3-5 секунд, данные паспорта отсканируются и распознаются. Всё это будет видно по заполненным полям в карточке клиента. Если у Вас в течение определённого времени ничего не появилось в карточке, попробуйте убрать документ со сканера и приложить вновь.
|
(Рис. 3 Сканирование паспорта Белоруссии в ПО "Абонемент") |
Важно!!!
Абонемент использует API функции программы Document Reader SDK и за качество распознавания компания UCS ответственности не несет.
(Например, устройство на котором производилось тестирование (Регула 7017) не имело лицензии на распознавание документов без Машиночитаемой зоны (МЧЗ). Исправлено тех. поддержкой Регула по нашему запросу.)



[Main] TerminalDLL = Arcus.dll BufSize = 5000000 [Cmd] ; Команда закрытия дня - справа значение из ops.ini 5 = 11 ; Команда отмены чека с передачей параметров - справа значение из ops.ini 2 = 4 ; Команда полного отчёта - справа значение из ops.ini 20 = 7 ; Команда краткого отчёта - справа значение из ops.ini 2000=8 [LOCK.SERVER] ; IP Адрес сервера блокировок TCPHost = 172.22.10.41 ; Порт сервера болкировок TCPPort = 1116 ; Текст ошибки в случае отсутствия незанятой валидной лицензии на модуль "Банковский протокол" LicErrorText = "Ошибка лицензии интерфейса платёжных карт, оплата картами будет недоступна"8
[CC] RunCCDllName=amCC_Sberbank.dll
[DLL.CreditCard-Sberbank] ; В случае работы с несколькими ююр.лицами в Абонемент, и несколькими отделами в терминале раскомментировать и заполнить для каждого рабочего места ;[DLL.CreditCard-Sberbank.Department] ;ID киоска = ID отдела в терминале ; 1 = 0 ; 2 = 1 [DLL.CreditCard-Sberbank.ESC] CUT = #1#27U [DLL.CreditCard-Sberbank.ErrorMsg] 12=Необходимо Обратиться к персоналу Сбербанка, который устанавливал терминал. 36=Необходимо Обратиться к персоналу Сбербанка, который устанавливал терминал. 99=Необходимо Проверить кабели, идущие к пинпаду. Если все на месте, обратиться к персоналу Сбербанка, который устанавливал терминал. ...
|
Рис.1 Терминал с доступной кнопкой ручного ввода данных карты |
|
|
Рис.2 Этап ввода номера карты на кассе |
Рис.3 Этап ввода срока действия карты на кассе |
|
Рис.4 Этап выбора причины ручного ввода данных карты |
Рис.5 Ввод CVV кода карты |
[boot] CreditCard =D:\SHELTER\Sberbank_Sh_Ab_Sh2_new\abonement\111_exe\sdmSberbank2.dll [hardware] CreditCard = Sberbank2 [hardware.Sberbank2] ;путь к каталогу PILOT_NT SetPath = D:\SHELTER\Sberbank_Sh_Ab_Sh2_new\abonement\PILOT_NT_DIALOG\ ;Удалять все после разделителя из секции CUT DelLastESC = CUT Log.Name = Sberbank2.log Log.Level = 30 Log.DebugLevel = 30 [Sberbank2.ErrorMsg] [Sberbank2.ESC] ;Разделитель между чеками CUT = #1#27U
|
135 версия Абонемент |
Произведена смена ядра библиотеки интеграции (см. обновлённую инструкцию) Поддержана работа с несколькими отделами (юр.лицами) в одном терминале |
Данный документ был предоставлен сотрудниками Сбербанка, актуален на 02.02.2018
Для корректного отображения описаний необходимых действий в ПО Абонемент необходимо настроить текст ошибок в файле sberbank2.ini, в секции [Sberbank2.ErrorMsg], например:
Начиная с версии 1.132 в поставке присутствует конфигурационный файл с настроенным текстом для всех доступных нам ошибок.
|
Код ошибки |
Возможная причина |
Действия кассира при ошибке |
|---|---|---|
|
12 |
Эта версия не поддерживает режим РС-3 |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
36 |
В пинпаде нет ключа в ячейке 9 |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
99 |
Пинпад не подключен |
Проверить кабели, идущие к пинпаду. Если все на месте, обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
101 |
Операция не поддерживается. |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
115 |
Библиотека занята другим процессом, требуется подождать его завершения. |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
233 |
Пинпад не подключен |
Нет связи с устройством.Если это внешнее устройство, проверьте, включено ли оно, подключен ли кабель связи. |
|
238 |
Пинпад отключился |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
248 |
Динамическая память закончилась |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
249 |
На терминал передана команда не содержащая обязательные параметры |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
250 |
Внутренняя ошибка: операция отменена Internal error |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
252 |
Внутренняя ошибка: операция не поддерживается Internal error |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
253 |
Аппаратный сбой. Устройство ещё не готово. Hardware failure |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
361 |
Нарушился контакт с чипом карты. |
Вытащить карту, протереть чип мягкой тканью и повторить операцию. |
|
362 |
Карта не читается Card is not responding |
Вытащить карту, протереть чип мягкой тканью и повторить операцию. |
|
363 |
Карта не читается. Попробуйте магн.ридер |
Вытащить карту, протереть чип мягкой тканью и повторить операцию. |
|
364 |
Карта не читается |
Вытащить карту, протереть чип мягкой тканью и повторить операцию. |
|
402 |
Карта не была выдана. Изымите карту! |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
403 |
ПИН неверен |
Объяснить клиенту его ошибку и повторить операцию. |
|
405 |
ПИН блокирован |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
500 |
Карта терминала старой версии! |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
505 |
Карта терминала заполнена. Выполните инкассацию |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
507 |
Срок действия карты истек |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
514 |
На терминале установлена неверная дата |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
521 |
На карте недостаточно средств |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
561 |
Нарушен список операций на карте. Изымите карту! |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
579 |
Карта блокирована. Изымите карту! |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
584 |
Сегодня по этой карте больше операций делать нельзя |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
585 |
Период обслуживания истек |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
586 |
Превышен лимит, разрешенный без связи с банком |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
705 |
Карта блокирована. Изымите карту! |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
706 |
Карта блокирована |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
708 |
ПИН зачисления заблокирован |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
709 |
ПИН списания заблокирован |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
2000 |
Операция прервана клиентом |
Возможно, при вводе ПИНа клиент случайно нажал красную клавишу на пинпаде. Повторить операцию. |
|
2002 |
Превышено время ожидания |
Повторить операцию. На ввод ПИНа дается 1 минута. |
|
2008 |
Для этой карты операция запрещена |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
3162 |
Срок действия карты СБЕРКАРТ окончен. Эта ошибка не должна вылезти в проме. |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4073 |
Биосканер не подключен |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4100 |
Нет связи с банком |
Повторить операцию. Если за 2-3 попытки провести операцию не удается, обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4101 |
На терминале нет стоп-листа. Выполните инкассацию |
Выполнить инкассацию карты терминала и повторить операцию. |
|
4102 |
На терминале нет таблицы комиссий |
Выполнить инкассацию карты терминала и повторить операцию. |
|
4104 |
Неверный ответ на команду |
Выполнить инкассацию карты терминала и повторить операцию. |
|
4106 |
ПИН неверен |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4107 |
ПИН блокирован |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4108 |
Номер карты неверен |
Повторить операцию. Если за 2-3 попытки провести операцию не удается, обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4110 |
Карта терм.заполнена.Выполните инкассацию |
Выполнить инкассацию карты терминала и повторить операцию. |
|
4111 |
Стоп-лист устарел. Выполните инкассацию |
Выполнить инкассацию карты терминала и повторить операцию. |
|
4112 |
Неверный стоп-лист. Выполните инкассацию |
Выполнить инкассацию карты терминала и повторить операцию. |
|
4113 |
Превышен лимит операций за сутки |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
4115 |
Для таких карт ручной ввод запрещен |
Операция возможна только при условии, что карта будет считана через ридер, а не введена вручную с клавиатуры. |
|
4116 |
Цифры не совпадают! |
Операция возможна только при условии, что карта будет считана через ридер, а не введена вручную с клавиатуры. |
|
4117 |
Клиент отказался от ввода ПИНа |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4118 |
Операции не найдены |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4119 |
Нет связи с банком |
Повторить операцию. Если за 2-3 попытки провести операцию не удается, обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4120 |
Пинпад не подключен или не загружены ключи |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4121 |
Терминал неисправен! |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4122 |
Ошибка смены ключей! |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4123 |
Сначала выполните сверку итогов |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4124 |
Не загружены ключи |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4125 |
На карте есть чип. Вставьте карту чипом |
Вставить карту в чиповый ридер и продолжить операцию. |
|
4128 |
Ошибка настройки терминала |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4130 |
Память заполнена. Сделайте сверку ито- гов или инкассацию. |
Выполнить сверку итогов и повторить операцию. |
|
4131 |
Пинпад был заменен. Выполните загрузку параметров |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4132 |
Операция отклонена картой Transaction declined by card |
Повторить операцию. Если ошибка повторяется, отказать клиенту. |
|
4133 |
Неверный код ответа по протоколу VISA2 |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4134 |
Сначала выполните сверку итогов Totals required |
Повторить операцию. Если ошибка повторяется, отказать клиенту. |
|
4135 |
Неверно настроены отделы в терминале |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4136 |
Требуется более свежая версия прошивки в пинпаде |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4137 |
ПИНы не совпадают. Попробуйте еще раз. |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4138 |
Карта отправителя и получателя не могут совпадать. |
Повторить операцию и ввести номера карт правильно. |
|
4139 |
Нет адреса для связи. |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4148 |
Карта в стоп-листе! |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
4149 |
На карте нет имени держателя |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
4150 |
Превышен лимит операций |
Выполнить операцию с установкой связи с банком. |
|
4151 |
Срок действия карты истек |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
4157 |
Превышена максимальная сумма операции. |
Отказать клиенту. Предложить выполнить операцию на меньшую сумму. |
|
4159 |
Валюта операции не поддерживается бесконтактным ридером |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4174 |
Файл не найден |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4175 |
Слишком большой файл |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4176 |
Неизвестная версия Vivopay |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4185 |
Неверная карта администратора |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4186 |
Ключ уже введен! |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4187 |
Неверный номер карты |
Повторить ввод номера карты. |
|
4188 |
Неверный срок действия карты |
Повторить ввод срока действия карты. |
|
4189 |
Недопустимое значение! |
Ввести допустимое значение изменяемого параметра. |
|
4190 |
Карта не читается. Попробуйте магн.ридер |
Используйте магнитный считыватель для чтения карты. |
|
4203 |
Терминал не зарегистрирован |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4204 |
Внутренняя ошибка сервера |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4205 |
Ошибка связи с хостом |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4206 |
Нарушение протокола |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4207 |
Нарушение формата сообщений |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4208 |
Ошибка базы данных |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4209 |
Некорректные данные |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4210 |
Ошибка шифрования |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4211 |
Отсутствует ключ |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4213 |
Сервер PSDB слишком нагружен. Повторите позже. |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4220 |
Не указан код региона для удаленной загрузки |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4221 |
Не удалось восстановить связь с ККМ после удаленной загрузки |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4222 |
Память заполнена. Необходимо отправить чеки на сервер |
Отправьте чеки \r\nна сервер и\r\nповторите операцию |
|
4300 |
От ККМ поступило недостаточно параметров |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4303 |
Мы принимаем только Visa |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4311 |
Операция не найдена |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4313 |
Номер карты не соответствует исходному |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4314 |
Это не карта СБЕРКАРТ |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4315 |
Разрешены только отмены в текущей смене |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4319 |
Сумма не должна превышать 42 млн. |
Проведите операцию на меньшую сумму или уменьшите количество товара |
|
4323 |
Номер карты не совпадает с исходным |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
4325 |
Сумма не указана! |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4326 |
Карта прочитана не полностью. Повторите считывание карты. |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
4327 |
Нет товаров для отображения |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4328 |
Информация о товаре отсутствует или неполна. |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4329 |
Справочник товаров переполнен. Выполните сверку. |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4330 |
Товар не найден. |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4334 |
Карта не считана. Либо цикл ожидания карты прерван нажатием клавиши ESC, либо истек таймаут. |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4336 |
Валюта указана неверно. |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4337 |
Из кассовой программы передан неверный тип карты. |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4342 |
Ошибка: невозможно запустить диалоговое окно UPOS. |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4351 |
Настроечные файлы *.tlv не найдены |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4355 |
Этот палец уже зарегистрирован в базе |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4358 |
Палец не опознан! |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4362 |
Пинпад временно заблокирован. Повторите операцию через 15 сек. |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4363 |
Превышена сумма оригинальной операции |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4365 |
Режим электронного захвата подписи не поддерживается |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4366 |
Рассчитанная скидка меньше минимально допустимой. |
Введенная или рассчитанная сумма скидки меньше минимально допустимой. Если скидка вводилась вручную - увеличьте сумму скидки, в противном случае обратитесь в подразделение банка, установившее терминал |
|
4367 |
RKL: неверный формат запроса |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4368 |
RKL: не создана ключевая пара СА |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4369 |
RKL: не загружен сертификат хоста |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4370 |
RKL: не загружен публичный ключ СА |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4371 |
Текущая версия ОС не поддерживает RKL |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4372 |
RKL: хост CA дает некорректный ответ. Необходимо перезагрузить терминал |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4380 |
Штатная сверка итогов не выполнена. |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4381 |
Неверный формат QR-кода |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4382 |
Количество товара не должно превышать 4 млн. 200 тыс. единиц |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4383 |
Не удалось открыть сканирующее устройство |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4384 |
Считаны не все данные |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4385 |
Неверный номер пользователя |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4388 |
Место закончилось. Передайте чеки в банк. |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4389 |
Чек уже успешно передан |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4400 |
Возможно, карта преждевременно вынута |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4401 |
Позвоните в банк по т.(800)775-55-55 (495)544-45-46 (495)788-92-74 |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4402 |
Позвоните в банк |
Позвонить в службу авторизации Сбербанка и следовать указаниям оператора. |
|
4403 |
Терминал заблокирован. Обратитесь в банк. |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4404 |
Изымите карту |
Позвонить в службу авторизации Сбербанка и следовать указаниям оператора. |
|
4405 |
Отказано |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4406 |
Общая ошибка |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4407 |
Изымите карту |
Изъять карту и отказать клиенту в проведении операции. |
|
4408 |
Отказано |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в любое отделение Сбербанка. |
|
4410 |
Позвоните в Амекс по т. 8(800)2006203 или 8(495)6443054 |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в любое отделение Сбербанка. |
|
4411 |
Отказано |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в любое отделение Сбербанка. |
|
4412 |
Транзакция неверна |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4413 |
Сумма неверна |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4414 |
Карта неверна |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в любое отделение Сбербанка. |
|
4419 |
Повторите позже |
Операция в данный момент невозможна. Повторить операцию через 10-15 минут. |
|
4433 |
Изымите карту |
Изъять карту и отказать клиенту в проведении операции. |
|
4438 |
Изымите карту |
Изъять карту и отказать клиенту в проведении операции. |
|
4441 |
Изымите карту |
Изъять карту и отказать клиенту в проведении операции. |
|
4443 |
Изымите карту |
Изъять карту и отказать клиенту в проведении операции. |
|
4450 |
Отказано |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4451 |
Недостаточно средств |
Отказать клиенту в проведении операции. |
|
4454 |
Срок действия карты истек |
Отказать клиенту в проведении операции. |
|
4455 |
ПИН неверен |
Объяснить клиенту его ошибку и повторить операцию. |
|
4457 |
Транзакция не разрешена картой |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в любое отделение Сбербанка. |
|
4458 |
Транзакция не разрешена терминалом |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4461 |
Исчерпан лимит |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4462 |
Карта ограничена |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4465 |
Исчерпан лимит |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4468 |
Повторите позже |
Операция в данный момент невозможна. Повторить операцию через 10-15 минут. |
|
4475 |
ПИН заблокирован |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
4476 |
Нет исходной операции |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4478 |
Счет неверен |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4481 |
Повторите позже |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4482 |
Отказано |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4483 |
Ошибка обработки ПИНа |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4486 |
Ошибка обработки ПИНа |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4488 |
Ошибка обработки ПИНа |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4489 |
МАС-код неверен |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4490 |
Неверная контрольная информация |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4491 |
Эмитент недоступен |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4493 |
Транзакция запрещена |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4494 |
Повторная транзакция |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4495 |
Отказано |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4496 |
Ошибка системы |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4497 |
Повторите операцию позже |
Операция в данный момент невозможна. Повторить операцию через 10-15 минут. |
|
4498 |
МАС-код неверен |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4499 |
Ошибка формата |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
4710 |
Такая карта не обслуживается |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
5001 |
Отказ карты при выборе приложения Error application selection |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
5002 |
Отказ карты. Некорректный ответ Chip error |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
5003 |
Отказ карты. Некорректный ответ Chip error |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
5015 |
Операция отменена клиентом |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
5029 |
Мы принимаем только Visa |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
5042 |
Ключ удаленной загрузки неверен |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
5044 |
Нужно позвонить в банк Call issuer |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
5053 |
На карте неверные данные Data integrity error |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
5055 |
Карта отклонила операцию Transaction declined by card |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
5063 |
Карта не ведет историю операций |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
5075 |
Необходимо вставить карту в чиповый ридер |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
5084 |
Введите пароль на телефоне |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
5100 |
Подлинность данных не проверена |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
5101 |
Ошибка проверки SDA Integrity check error |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
5102 |
На карте нет нужных данных |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
5103 |
Карта в стоп-листе |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
5104 |
Ошибка проверки DDA Integrity check error |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
5105 |
Ошибка проверки CDA Integrity check error |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
5108 |
Неверная версия приложения EMV |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
5109 |
Срок действия карты истек |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
5110 |
Срок действия карты еще не настал |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
5111 |
Для этой карты такая операция запрещена Operation is prohibited |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
5112 |
Карта только что выдана |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
5116 |
Личность клиента не проверена Cardholder verification error |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты. |
|
5117 |
Неизвестный код CVM Cardholder verification error |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
5118 |
ПИН блокирован |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
5119 |
Пин-пад неисправен |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
5120 |
Клиент не ввел ПИН |
Возможно, при вводе ПИНа клиент случайно нажал красную клавишу на пинпаде. Повторить операцию, объяснив клиенту, что без ввода ПИНа операция невозможна. |
|
5124 |
Такая сумма требует связи с банком |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
5125 |
Превышен нижний лимит карты |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
5126 |
Превышен верхний лимит карты |
Обратиться к персоналу Сбербанка, который устанавливал терминал. |
|
5133 |
Операция отклонена картой Transaction declined by card |
Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк. |
[boot] CreditCard = %exepath%\sdmGazPromBank.dll [hardware] CreditCard = GAZPROMBANK [LOCK.SERVER] ; Параметры сервера блокировок TCPHost=192.168.1.1 TCPPort=1119 version=2.3 [hardware.GAZPROMBANK] ; Путь к настроечному файлу ПО эквайринга CFGName = C:\GCS\EMVGSSL\emvgate.cfg Log.Name = GazPromBank.log Log.Level = 30 Log.DebugLevel = 30 [GAZPROMBANK.ErrorMsg] 0 = Успешное завершение 7777 = Работа с терминалом невозможна! Обратитесь в техподдержку 9999 = Оплата несколькими картами не поддерживается
| Вложение | Размер |
|---|---|
| gazprom_protokol_sertifikacionnyh_ispytaniy.pdf | 261.2 КБ |
[CC] RunCCDllName=amCC_EFTPOS.dll
[Main] TerminalDLL = Arcus.dll BufSize = 5000000 [Cmd] ; Комманда закрытия дня - справа значение из ops.ini 5 = 11 ; Комманда отмены чека с передачей параметров - справа значение из ops.ini 2 = 4 ; Комманда полного отчёта - справа значение из ops.ini 20 = 7 ; Комманда краткого отчёта - справа значение из ops.ini 2000=8 [LOCK.SERVER] ; IP Адрес сервера блокировок TCPHost = 172.22.10.41 ; Порт сервера болкировок TCPPort = 1116 ; Текст ошибки в случае отсутствия незанятой валидной лицензии на модуль "Банковский протокол" LicErrorText = "Ошибка лицензии интерфейса платёжных карт, оплата картами будет недоступна"8
В программе Абонемент реализована выгрузка данных в 1С Битрикс, которая позволяет менеджерам отдела продаж (пользователям 1С Битрикс) получать обратную связь о первом посещении клиента.
Данная связка работает при выполнении следующих условий:
Если у клиента состоялось первое посещение в рамках его "Членства", то в 1С Битрикс создается лид на соответствующем этапе (в нашем случае "Первое посещение")
Из карточки клиента подтягиваются ФИО и телефон, а ответственный выбирается из карточки анализируемого абонемента с типом "Членство".
Для корректной работы этой связки в ПО "Абонемент" должны быть заведены абонементы с типом "Членство" и настроен выбор ответственного за регистрацию абонемента.

Рис.1 Карточка типа абонемента в ПО "Абонемент"
В 1С Битрикс в свою очередь настраивается классическая схема работы с лидами. Для получения лида из ПО Абонемент в 1С Битрикс создается статус (этап), в который будет попадать данный лид.

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



Данное задание контролируется ответственным сотрудником, и по результатам его выполнения создается контакт или происходит дальнейшая аналитика.
Модуль интеграции CRMOnline используется для передачи информации из ПО "Абонемент" в CRM 1С Битрикс.
Дистрибутив модуля находится в поставке: '..\FullVersionVer136.1\Fullversion\_MODULES\CRMOnline'.
Лицензируется: проект 1 модуль 11.
Информация должна соответсвовать условиям определенным в теле запроса sql.txt:
Настройки модуля определены в файле config.ini:
[LOCK.SERVER]
TCPHost = 127.0.0.1
TCPPort = 1119
[database]
dbname=127.0.0.1/3080:D:\_IBDATA\_FITNESS\FITNESS.FDB
dbuser = ucs
DBPassword = ucs
[Main]
;Интервал повтора в секундах
Interval = 5
;Автозапуск
Start = 0
SSLVer = 1
;URI CRMOnline
URI = "https://172.22.3.241:5000/addleadbitrix?tocken=9ww110g16bjnllpf&staf={%STAF%}&fname={%NAME%}&sname={%NAME1%}&lname={%NAME2%}&phone={%PHONES%}&email={%EMAIL%}&status={%STATUS%}"
HTTPBody =
;Закрывать после отправки данных
CloseAfterSend = 0
;Шаблон ответа
ResponseOK = OK
;Максимальное количество строк в логе
MaxLogLines = 20
;Максимальное количество URI
MaxURICount = 100
;Показывать форму 1 или нет 0
ShowForm = 0
;ID GuestAnnouncement
GuestAnnouncement = 0
;Показыват =1 или нет =0 окно подтверждения перед закрытием приложения
RequestClose = 1
;Дублировать =0 или нет =1 последнюю строчку лога
UniqueLastLogLine = 0
dbuser = ucs
DBPassword = ucs
[Main]
;Интервал повтора в секундах
Interval = 5
;Автозапуск (параметры автозапуска)
Start = 0
SSLVer = 1
;URI CRMOnline (Адрес страницы WEB интерфейса CRM 1C Битрикс)
URI = "https://172.22.3.241:5000/addleadbitrix?tocken=9ww110g16bjnllpf&staf={%STAF%}&fname={%NAME%}&sname={%NAME1%}&lname={%NAME2%}&phone={%PHONES%}&email={%EMAIL%}&status={%STATUS%}"
HTTPBody =
;Закрывать после отправки данных
CloseAfterSend = 0
;Шаблон ответа
ResponseOK = OK
;Максимальное количество строк в логе
MaxLogLines = 20
;Максимальное количество URI
MaxURICount = 100
;Показывать форму 1 или нет 0
ShowForm = 0
;ID GuestAnnouncement
GuestAnnouncement = 0
;Показыват =1 или нет =0 окно подтверждения перед закрытием приложения
RequestClose = 1
;Дублировать =0 или нет =1 последнюю строчку лога
UniqueLastLogLine = 0
Интерфейс модуля интеграции с CRM 1С Битрикс выглядит следующим образом:

Рис.6 Внешний вид работающего модуля интеграции с CRM 1С Битрикс
Переданный в CRM 1С Битрикс лид будет выглядеть следующим образом:

Рис.7 Визуализация переданных из ПО "Абонемент" данных в CRM 1С Битрикс
-------------------------------------------------------------------------------------------------------------------
Доработка готова. Сделано пилотное внедрение. Готовим материал в этой статье.
http://tracker.ucs.ru/issues/127590
Программа предназначена для загрузки данных из Абонемент или Shelter в 1С:Бухгалтерию (редакции 3.0) 1С:Предприятия 8.2(8.3), 1С:Бухгалтерию (редакции 2.0) 1С:Предприятия 8. (Важно! Если 1.6, то обновить до 2.0) и в 1С:Бухгалтерию (редакции 4.5) 1С:Предприятия 7.7. Программа загружает все наличные и безналичные платежи и реализацию услуг. Все типы платежей и реализации услуг переносятся опционально. Что позволяет использовать программу совместно с клиент-банком и другими обработками для 1С:Предприятия. Программа является обработкой, написанной на языке «1С» с открытым исходным кодом, что позволяет пользователю самостоятельно вносить изменения в порядок загрузки данных.
Данные формируются следующим образом: все оплаты выгружаются день в день. Если услуга была оказана на фолио, то эти услуги выгрузятся в день их реализации, т.е. днем, когда они были начислены. Если услуга(оплата) находится на фолио организации или группы от юридического лица, то она принадлежит юр. лицу. Фолио группы создается на организацию плательщика, установленного в карточке. Важно чтобы после выгруженных данных в Абонемент или Shelter не проводились скидки задним числом и не совершались трансферы. Т.е. до момента выгрузки все трансферы и скидки должны быть сделаны.
Поставку выгрузки можно найти по адресу Fullversion\_MODULES\ImportTo1C (c версии Абонемент 129 до 132 по пути \FullVersionVerxxx\utils\ImportTo1C.
Firebird_ODBC_2.0.0.148_win32.exe — ODBC драйвер для FireBird (x86) (Firebird_ODBC_2.0.0.151_x64.exe для 64-битной ОС.)
GDS32.DLL – клиентская библиотека FireBird.
UCSimportFromShelterTo1C8_BUX_3_0_709.epf – Обработка 1С:Предприятия 8.2 (8.3) Конфигурация Бухгалтерия предприятия, редакция 3.0. Работает с версиями Shelter 709 и выше, Абонемент 68 и выше.
UCSimportFromShelterTo1C8_BUX_3_0_709_ВыборОтеля.epf – Обработка 1С:Предприятия 8.2 (8.3) Конфигурация Бухгалтерия предприятия, редакция 3.0. Работает с версиями Shelter 709 и выше, Абонемент 68 и выше.
UCSimportFromShelterTo1C8_2_BUX_709.epf – Обработка 1С:Предприятия 8.2 Конфигурация Бухгалтерия предприятия, редакция 2.0. Работает с версиями Shelter 709 и выше, Абонемент 68 и выше.
UCSimportFromShelterTo1C8_2_BUX_709_ЧастноеЛицо.epf - Обработка 1С:Предприятия 8.2 Конфигурация Бухгалтерия предприятия, редакция 2.0. Все контрагенты — частные лица заменены одним контрагентом Частное Лицо. Работает с версиями Shelter 709 и выше, Абонемент 68 и выше.
UCSimportFromShelterTo1C8_2_BUX_709_ВыборОтеля.epf – Обработка 1С:Предприятия 8.2 Конфигурация Бухгалтерия предприятия, редакция 2.0. Работает с версиями Shelter 709 и выше, Абонемент 68 и выше.
UCSimportfromShelterTo1C77_Complex_709.ert – Обработка 1С:Предприятия 7.7. Комплексная конфигурация ред. 4.5. Работает с версиями Shelter 709 и выше, Абонемент 68 и выше.
UCSimportfromShelterTo1C77_BUH_709.ert - Обработка 1С:Предприятия 7.7. Конфигурация Бухгалтерский учет, редакция 4.5. Работает с версиями Shelter 709 и выше, Абонемент 68 и выше.
UCSimportfromShelterTo1C77_USN_ЧастноеЛицо_709.ert - Обработка 1С:Предприятия 7.7. Конфигурация Упрощенная система налогообложения, ред. 1.3. Все контрагенты — частные лица заменены одним контрагентом Частное Лицо. Работает с версиями Shelter 709 и выше, Абонемент 68 и выше.
UCSimportfromShelterTo1C77_USN_709.ert - Обработка 1С:Предприятия 7.7. Конфигурация Упрощенная система налогообложения, ред. 1.3. Работает с версиями Shelter 709 и выше, Абонемент 68 и выше.
Руководство пользователя2016.doc - руководство пользователя.
Либо установить драйвер (Firebird_ODBC_2.0.0.151_x64.exe) для 64-битной ОС.
ВАЖНО!!!
Для использования выгрузки с сервером блокировок версии 2.3 необходимо выполнить следующие действия:
1. в папке UDF на сервере нужно обновить файл sh2_udf.dll
2. на базе выполнить скрипт:
select * from sp_create_object('&Object=UDF&Name=CHKLIC&EntryPoint=CHKLIC&Module=sh2_udf&Params=CSTRING RETURNS CSTRING FREE_IT');
commit;
update RDB$FUNCTIONS set RDB$MODULE_NAME = 'sh2_udf' where RDB$FUNCTION_NAME = 'CHKLIC';
commit;Иначе, при проверке подключения из выгрузки будет выдано сообщение, что лицензия не найдена.
|
Общий вид окна настроек выгрузки можно увидеть на рис.1.
Проверить настройки связи с БД и с серверм болкировок можно кнопкой «Проверить». На странице настроек произвести выбрать все остальные параметры и сохранить настройки. Далее сначала "Заполнить", потом "Загрузить" на каждой странице отдельно или "Загрузить все". |
Рис.1 Общий вид окна настроек выгрузки |
1. Сообщение в 1С об ошибке при вызове метода контекста (Execute):
«Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [ODBC Firebird Driver][Firebird]invalid request BLR at offset 63 function CHKLIC is not defined module name or entrypoint could not be found»
Причина ошибки: в базе данных не найдена функция, отвечающая за нахождение лицензии выгрузки в 1С.Метод исправления ошибки: в папку UDF необходимо поместить файл sh_licudf.dll . И кроме того необходимо выполнить скрипт script_1c.sql.
2. Сообщение в 1С об ошибке при вызове метода контекста (Open)
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Driver): [ODBC Firebird Driver] File Database is not found.
Причина ошибки : некорректно заполнено поле «DbName». Пример правильного заполнения поля указан ниже: 127.0.0.1/3080:C:\_UCS\_FITNESS\IBDATA\FITNESS.FDB
3. Сообщение в 1С об ошибке при вызове метода контекста (Open)
Произошла исключительная ситуация: SQLCODE = - 902: I/O error during «@1» operation for file «@2». Error while trying to open file.
Причина ошибки: см.пункт 3
4. Сообщение в 1С об ошибке при вызове метода контекста (Open):
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [ODBC Firebird Driver]unavailable database Не удалось подключиться к FireBird.
Причина ошибки: см.пункт 3
5. Сообщение в 1С об ошибке при вызове метода контекста(EOF)
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [ODBC Firebird Driver] [Firebird] Error reading from the connection…
Причина ошибки: некорректная установка необходимых драйверов ODBC Firebird (для 32 либо 64-битной системы).
Для каждого Заказчика регистрируется поддомен *.ucs.ru и формируется статистическая база данных на MySQL. Модуль OnLine статистики предоставляется и устанавливается бесплатно. Но включаться абонентская плата на обслуживание домена *.ucs.ru порядка 500 рулей в месяц. Если необходимо развернуть модуль на домене Заказчика, то в этом случае Компания UCS делает данные работы на платной основе.
!!Сервер статистики ServStat защищен лицензионным ключом (Проект:1, Модуль:12)!!
Пример статистических отчетов можно посмотреть по адресу
http://stats.ucs.ru/
Логин: admin
Пароль: 11111

Модуль можно скачать: FullversionVerXXX\UTILS\ServStat
Настройка модуля:
[database]
dbname - путь до БД
dbuser - логин БД
DBPassword - пароль БД
[Server] параметры сервера статистики
OBJECT_GUID - название объекта
KEY - секретный код
URL - путь до файла report.php
Важно: Параметры секции [Server] необходимо получить у технической поддержки Абонемент UCS.
[SQL]
sqlopenKind1 - sql1 запрос для отображения данных за "вчерашний день"
sqlopenKind2 - sql2 запрос для отображения данных за "сегодня"
sqlopenKind3 - sql3 запрос для отображения данных за "сейчас"
LastBeforeDate - дата последней выгрузки за "вчерашний день" в формате числа
LastBeforeDateInfo - дата последней выгрузки за "вчерашний день" в формате даты
Важно:
Если LastBeforeDate = 0 или пусто или отсутствует, то сформируется параметр и выгрузится за вчерашний день.
Если LastBeforeDate не пусто и значение меньше чем вчера, то выгрузка будет происходить последовательно за каждый день
до наступления условия LastBeforeDate <= вчера.
[Application] параметры приложения
Timer = 60000 - интервал выполнения цикла в мс (значение 60000 равно 60 секундам)
В данном разделе собраны модули работающие на WEB технологии.

ПО Connecter может использоваться для реализации различных задач (Абонемент-онлайн, Инфокиоск, Монитор тренера, etc) и защищаться разной связкой проект/модуль в ключе защиты. В качестве чего используется конкретный экземплят коннектора настраивается в connecter.ini:
Соответствующий модуль должен быть прописан в ключе защиты. В зависимости от того, в какой роли используется conecter ему будут доступны различные функции. Ниже приведен список функций, которые защищаются ключом.
| Функция | Проект/Модуль (должен любой из) |
|---|---|
| GUEST_INFO | 1/1, 1/2, 1/3, 1/4, 1/5, 1/6, 1/7, 4/5 |
| GETEVENT | 1/1, 1/3, 1/4, 1/5, 1/6 |
| ALLGUESTDIARYPAUSE | 1/1, 1/3, 1/4 |
| MONEYACCEPTOR | 1/1, 1/3 |
| SOLARY_ON | 1/1, 1/6 |
| GUEST_AVAILABLE_ROOMS_NOW | 1/1, 1/6 |
| GUEST_AVAILABLE_PACKAGES_NOW | 1/1, 1/6 |
| DIARY_PROCESS | 1/1, 1/5 |
| LIST_OF_DIARY | 1/1, 1/2, 1/3, 1/4, 1/5 |
| LIST_OF_STAFF | 1/1, 1/2, 1/3, 1/4, 1/5 |
| LIST_OF_GROUPDIARY | 1/1, 1/2, 1/3, 1/4, 1/5 |
| CREATE_ABONEMENT | 1/1, 1/2, 1/3, 1/4, 1/5 |
| CREATE_FOLIO_SERVICES | 1/1, 1/2, 1/3, 1/4, 1/5 |
| FOLIO_PAYMENT | 1/1, 4/5, 1/3 |
| TOPAYINADVANCEPAYMENT | 1/1, 4/5, 1/3 |
| Проект | Модуль | Расшифровка |
|---|---|---|
| 1 | 1 | Все функции |
| 1 | 2 | Абонемент-Онлайн |
| 1 | 3 | Инфокиоск с оплатой |
| 1 | 4 | Инфокиоск без оплаты |
| 1 | 5 | Монитор тренера |
| 1 | 6 | Интерактивный солярий |
| 1 | 7 | Монитор клиента |
| 4 | 5 | Платежные системы (RoboKassa, Assist) |
| 4 | 9 | Интерфейс взаимодействия внешних приложений с БД Абонемент |
Тэг <REQUEST> запроса должен содержать параметры SECRETKEY и PUBLICKEY.
SECRETKEY формируется по правилу MD5(PRIVATEKEY+PUBLICKEY), где PRIVATEKEY - это одноименный параметр из конфигурационного файла Connecter.ini.
Пример:
Презентация данного модуля находится тут ftp://ftpint.ucs.ru/Abonement/InfoKiosk/








Тестирование проивзодилось на следующих версиях ПО и модулей:

Примерная стоимость: 2600$
Дополнительно, для работы с кредитными картами, киоск может быть дополнен следующем оборудованием:
При этом стоимость увеличится примерно на 800$
Работа возможна только с процессингом Сбербанка через Pilot_NT.dll
| Проблема | Вероятная причина |
|---|---|
| Все проходит до момента нажатия пользователем кнопки "ОПЛАТИТЬ", после чего не печатается чек, на экране видем сообщение Bad Parameters | В настройках киоска (http://..../settings) неверно задан параметр "ID начисляемой услуги при пополнении баланса" . Следует обратить внимание, что это именно ID услуги, а не код. |
| Версии ПО | Суть изменения |
|---|---|
|
Connecter v1.58.0.12 |
Значительно увеличена скорость обработки запросов. |
| Connecter v1.60.xxx |
Ручная блокировка киоска из меню кассира |
|
Онлайн-бронирование позволяет клиенту за несколько минут просмотреть максимально полную и достоверную информацию об абонементах и мероприятиях, забронировать и оплатить абонементы и записаться на желаемые мероприятия.
Теперь для совершения данных действий не требуется находиться в спорткомплексе, а достаточно иметь компьютер или мобильное устройство с выходом в интернет.
«Абонемент-Онлайн» является дополнительным модулем «Абонемент», который даёт возможность клиенту управлять своими персональными данными, получать информацию о состоянии своего счета, осуществлять покупки абонементов, а также запись на индивидуальные и групповые тренировки.
Модуль «Абонемент-Онлайн» работает с программой «Абонемент» через постоянный выделенный внешний IP адрес. Передача данных между Абонемент и модулем «Абонемент-Онлайн» осуществляется в реальном времени в формате XML через определенные IP и порт.
Для защиты от несанкционированных запросов используется ключ проверки передаваемой информации, который указывается в настройках модуля «АбонементОнлайн» и программы «connecter».
Для интеграции с уже существующим сайтом, модуль «Абонемент-Онлайн» устанавливается на сервер в то же место, где расположен сайт и настраивается в соответствии с указанными в инструкции по установки требованиями.
Ознакомится с модулем можно на общедоступной демоверсии abonement-online.ucs.ru
|
Рис.1 - Абонемент онлайн (расписание групповых занятий) |
|
Для клиентов
|
Рис.2 - Примеры страниц модуля (оригинал и встроенные на сайты заказчиков) |
|
Рис.3 - Пример билета, отправляемого клиенту, после покупки абонемента в онлайн модуле |
|
Рис.4 - Настройки модуля |
|
Для работы с онлайн оплатой используется интеграция с одним из сервисов приёма онлайн-платежей. Договор с сервисом заключается заказчиком. Возможность оплаты лицензируется отдельно. В данный момент, модуль может быть интегрирован со следующими процессингами онлайн платежей:
|
Рис.5 - Пример пополнения баланса через онлайн модуль |
|
Рис. 6 – Главное меню и расписание групповых мероприятий |
Рис. 7 – Расписание индивидуальных мероприятий и просмотр абонементов пользователя в личном кабинете |
|
Необходимо наличие связи между хостингом и машиной в сети, где расположена БД Абонемент (сервер Абонемент).
Как правило у провайдера получается постоянный внешний IP-адрес для организации, и определённый порт пробрасывается до машины с которой будет производится связь с веб-частью, расположенной на хостинге.
Для работы веб-скриптов модуля необходимо выполнение хостингом следующих минимальных требований:
Проверить необходимые модули можно с помощью встроенного модуля check server. Для этого необходимо перейти в визуальные настройки и открыть ссылку check server. Далее выбрать модуль для тестирования, задать параметры для подключения к программе connecter. |
Рис.8 - Страница check_server в составе модуля |
В качестве серверной части, используется утилита сообщения Connecter из поставки Абонемент.
Утилита является посредником между запросами веб-части и БД Абонемент, используя соответствующий протокол.
Настройка Connecter производится через connecter.ini, где указываются:
PrivateKey - секретный ключ, также указываемый в настройках веб-скрипта в config.php;
UseUrlEncode - использовать ли URL-кодировку, для принимаемы/отсылаемых сообщений, также указываемый в настройках веб-скрипта в config.php;
DBConnectCount - количество создаваемых подключений к БД - максимальное количество одновременно обрабатываемых запросов, при недостаточном количестве - при высокой нагрузке клиентов на веб модуль не все запросы смогут быть обработаны, при большом количестве - утилита будет долго инициализироваться и займёт большое количество ресурсов для одновременной работы всех подключений. (Значение по умолчанию - 16, достаточно для не слишком большого наплыва клиентов до 500 в час);
BindingPort - порт, на который будут приниматься запросы от веб модуля;
BindingIp - локальный IP на котором будет занят BindingPort;
ListenQueue - длина очереди для обработки запросов;
Настройка на БД Абонемент происходит как и в прочих модулях, в настройке на сервер блокировок дополнительно необходимо указать Project = 1, Module = 2, чтобы были доступны все фнукции Абонемент Онлайн. (Подробнее про лицензирование Абонемент и Connecter)
В случае использования онлайн-оплаты, следует настроить дополнительный киоск, на котором всегда будет открыта смена. Прописать в секцию [defaults] в connecter.ini параметр StdKioskCode. Код платежа задаётся в визуальных настройках веб-части.
|
Предоставляемый модуль разделен на 2 части:
1. шаблон сайта;
2. модуль Абонемент-Онлайн (находится в директории «abonement»).
Если у Вас сайт уже есть, значит, Вам понадобится только модуль.
Для демонстрации данный модуль можно развернуть, используя пакет WEB-разработчика Denwer с версией PHP 5.4. Скачать его можно на сайте denwer.ru.
После его установки папку \club\ скопировать в C:\WebServers\home\localhost\www\.
Настроить модуль по описанию ниже. Из WEB-браузера вызывать http://127.0.0.1/club/
|
|
Закрытые настройки модуля представлены в файле /abonement/сonfig.php.
Визуальные настройки доступны по адресу <адрес_модуля>/abonement/settings/
Рассмотрим закрытые настройки для первоначального запуска модуля.
В файле config.php представлены настройки:
Сохранять файл config.php необходимо с кодировкой UTF-8 (без BOM). В качестве программы для редактирования файла воспользуйтесь Notepad++.
Перед установкой модуля проверьте, чтобы папка /logs/ была пуста.
|
Уважаемый #FIO#, вы успешно зарегистрировались на нашем сайте!<br /> <b>Логин:</b> #LOGIN#<br /> <b>Пароль:</b> #PASSWORD#<br />
Уважаемый Иванов Иван Иванович, вы успешно зарегистрировались на нашем сайте! Логин: ivan Пароль: 12345
$arData = Array( 'NAME' => ‘Иван’, 'PHONE' => ‘123123’ );
Уважаемый #NAME# #NAME1#, вы успешно добавили абонементы на нашем сайте:<br /> %<b><i>#ABONEMENT_NAME#</i> (#ABONEMENT_COUNT# шт.)</b>% <p>Теперь вы можете записаться на соответствующие мероприятия.</p>
Уважаемый Иванов Иван, вы успешно добавили абонементы на нашем сайте: Бассейн 1 посещение (3 шт.) Тренажёрный зал 1 посещение (5 шт.) Теперь вы можете записаться на соответствующие мероприятия.
Уважаемый #NAME# #NAME1#, вы успешно добавили абонементы на нашем сайте:<br /> %<b>#ABONEMENT_NAME# (#ABONEMENT_COUNT# шт.)</b>% <p>Ближайшие мероприятия:</p> %<b>#DIARY_NAME#</b>%
Уважаемый #NAME# #NAME1#, вы успешно добавили абонементы на нашем сайте:<br /> %<b>#ABONEMENT_NAME# (#ABONEMENT_COUNT# шт.)</b> <p>Ближайшие мероприятия:</p> %<b>#DIARY_NAME#</b>%%
$arData = Array( 'NAME' => ‘Иван’, 'ABONEMENT_NAME' => ‘Бассейн 1 посещение;Тренажёрный зал 1 посещение’, );
define('APPEX_ACCOUNT', 'ACC003867');
define('APPEX_KEY_1', 'd745397d-8c58-d88c-c05e-88ce9af12628');
define('APPEX_KEY_2', 'lkv847_MxtR357Z9x_kS');
define('APPEX_PAY_URL', 'https://secure.test.paygateway.ru/api');ВАЖНО!
Модуль онлайн оплаты лицензируется отдельно.
В ключе, на который подключён connecter с которым взаимодействует Абонемент-Онлайн должен быть прописан Проект 4 Модуль 5. Подробнее про лицензирование.
|
Рис.2. Настройки магазина в личном кабинете Робокасса |
define('ROBOKASSA_IS_TEST', 1); // использовать режим тестирования
define('ROBOKASSA_MrchLogin', 'online.funnyjungle.ru'); // логин платежной системы ROBOKASSA
define('ROBOKASSA_mrh_pass1', 'ucs00000'); // пароль 1 платежной системы ROBOKASSA
define('ROBOKASSA_mrh_pass2', 'ucs00001'); // пароль 2 платежной системы ROBOKASSA
define('ROBOKASSA_IS_RECEIPT', 0); // использовать Робочеки (или прочие решения RoboKassa для фискализации) (https://docs.robokassa.ru/?_ga=#6865)
define('ROBOKASSA_RECEIPT_SNO', 'osn'); // Система налогооблажения. Доступные варианты - osn, usn_income, usn_income_outcome, envd, esn, patent
define('ROBOKASSA_RECEIPT_TAX', 'none'); // Налог передаваемый для позиций. Доступные варианты - none, vat0, vat10, vat18, vat110, vat118
define('ROBOKASSA_PURCHASE', 'https://auth.robokassa.ru/Merchant/Index.aspx'); // отправка данных в ROBOKASSA (не изменять)
ВАЖНО!
Модуль онлайн оплаты лицензируется отдельно.
В ключе, на который подключён connecter с которым взаимодействует Абонемент-Онлайн должен быть прописан Проект 4 Модуль 5.
// настройка платежной системы Cloudpayments
// соответствует файлу /inc/pm/chb345rjk.php
define('CLOUDPAYMENTS_PUBLIC_ID', 'pk_5acd6950f73ffe9d9f41eb6ad6fca');
define('CLOUDPAYMENTS_PASS', '4beff951d19449aeb01262bbb87126df');ВАЖНО!
Модуль онлайн оплаты лицензируется отдельно.
В ключе, на который подключён connecter с которым взаимодействует Абонемент-Онлайн должен быть прописан Проект 4 Модуль 5.



define('SURGUT_MERCHANT', '1234');
define('SURGUT_TERMINAL', '1234-alias');
define('SURGUT_PSK', 'db51412418fffe41a14c1b363e85ab92d1dbd673');define('SURGUT_URL_SEND', 'https://ecm.sngb.ru:443/ECommerce/PaymentInitServlet');ВАЖНО!
Модуль онлайн оплаты лицензируется отдельно.
В ключе, на который подключён connecter с которым взаимодействует Абонемент-Онлайн должен быть прописан Проект 4 Модуль 5.


define('ASSIST_MERCHANT_ID', '914136'); // ID - магазина платежной системы Assist
define('ASSIST_LOGIN', 'testucsru'); // логин платежной системы Assist
define('ASSIST_PASSWORD', 'ucs00000'); // пароль платежной системы Assist
define('ASSIST_PURCHASE', 'https://test.paysecure.ru/pay/order.cfm'); // отправка данных в платежную систему Assist
define('ASSIST_ORDERSTATE', 'https://test.paysecure.ru/orderstate/orderstate.cfm'); // проверка заказа платежной системы Assist
define('ASSIST_PURCHASE', 'https://payments.demo.paysecure.ru/pay/order.cfm'); // отправка данных в платежную систему Assist
define('ASSIST_ORDERSTATE', 'https://payments.demo.paysecure.ru/orderstate/orderstate.cfm'); // проверка заказа платежной системы AssistВАЖНО!
Модуль онлайн оплаты лицензируется отдельно.
В ключе, на который подключён connecter с которым взаимодействует Абонемент-Онлайн должен быть прописан Проект 4 Модуль 5.
ДОПОЛНИТЕЛЬНО!
Схему реализации взаимодействия ТСП и АПК Ассист по фискализации Вы можете увидеть тут
| Вложение | Размер |
|---|---|
| cards.xls | 28 КБ |
define('UNITELLER_SHOP_ID', '');
define('UNITELLER_LOGIN', '');
define('UNITELLER_PASS', '');
define('UNITELLER_URL_SEND', 'https://test.wpay.uniteller.ru/pay/');
define('UNITELLER_URL_RETURN', '');
define('UNITELLER_URL_CHECK', 'https://test.wpay.uniteller.ru/results/');ВАЖНО!
Модуль онлайн оплаты лицензируется отдельно.
В ключе, на который подключён connecter с которым взаимодействует Абонемент-Онлайн должен быть прописан Проект 4 Модуль 5.
|
Рис.1 Страница окна оплаты, после нажатия на кнопку оплатить в онлайн модуле |
// настройка платежной системы YANDEX
define('YANDEX_SHOPID', '507777'); // shopId магазина платежной системы Yandex
define('YANDEX_SHOPKEY', 'test_snZ08VACupCS7pq37Fz874238_z0Ubi2gGuJBkiHlzX'); // секретный ключ YandexВАЖНО!
Модуль онлайн оплаты лицензируется отдельно.
В ключе, на который подключён connecter с которым взаимодействует Абонемент-Онлайн должен быть прописан Проект 4 Модуль 5.
В поставке данный модуль находится в папке FullVersionVerXXX\UTILS\MonitorForClient\.
Модуль защищен лицензионным ключем (проект 1 модуль 7), подключение к нему настраивается через утилиту Connecter.
Для этого в connecter.ini в секции [LOCK.SERVER] должно быть прописано:
Project=1 Module=7
Важно!!! В файле abonementmanager.ini необходимо добавить секцию и параметр:
[XMLOUTPUT]
UseXMLOUTPUT=1
Настраивается по аналогии с другими WEB модулями, например: Адрес/monitor/settings
Форма с настройками выглядит следующим образом:

Рис.1 Настройка модуля "Монитор для покупателя"
Данный WEB модуль предназначен для удобства при обслуживании клиента. При обслуживании клиента (например, с использованием моноблока с двумя дисплеями (например, Моноблок GlobalPOS AIR II 15" c двумя дисплеями)) на второй дисплей в реальном времени можно передавать следующую информацию:



Рис.2 Отображение слайдов в режиме ожидания
Соответственно при обслуживании клиента (переходе в ПО "Абонемент", на вкладку "Быстрый чек", см. Рис.3), окно формы будет выглядеть следующим образом (см. Рис.4):

Рис.3 Вкладка "Быстрый чек" в ПО "Абонемент"

Рис.4 Отображение формы в режиме обслуживания
Скачать сборку скриптов модуля можно с FTP по пути: Abonement/InfoKiosk/
Модуль "Монитор тренера" является веб-модулем Абонемент, позволяющим производить контроль работы специалиста, и позволяет тренеру контролировать своё расписание (показано на рис.1), отмечать присутствие клиентов на мероприятиях и начинать и заканчивать групповые и индивидуальные мероприятия в Абонемент (как показано на рис.2,3), а также регистрировать дополнительные услуги.
|
Рис. 1 - Внешний вид модуля, страница «Мое расписание» (Изображения кликабельны) |
Рис. 2 - Внешний вид модуля, страница мероприятия |
Таким образом, благодаря использованию модуля «Монитор тренера», тренеры получают максимум информации о планируемых групповых и индивидуальных мероприятиях, в которых они назначены специалистом, могут учитывать проведённые мероприятия и присутствовавших на них клиентов, а также создавать новые, при необходимости.
Вид модуля до авторизации специалиста показан на рис. 4.
|
Рис. 3 - Внешний вид модуля, страница добавления клиента в мероприятие |
Рис. 4 - Внешний вид модуля, стартовая страница авторизации специалиста |
|
На ПК разворачиваются: connecter для связи с БД Абонемент, TCPCardReader для упрощения авторизации специалиста и поиска клиента в БД для добавления его в мероприятие, веб сервер (например denwer), набор веб-скриптов модуля «Монитор тренера». В качестве ПК для модуля, рекомендуется использовать моноблоки на подобии MSI Pro 16 Flex-029RU (N3160 4Gb 500Gb 15.6 HD TouchScreen, подробнее см. в рекомендуемом оборудовании, представлен на рис.5). ПК с модулем "Монитор тренера" рекомендуется размещать в зале, где непосредственно проводятся тренировки, для удобства использования. |
Рис.5 - Внешний вид модуля запущеного на моноблоке, установленный в зале |
Пример рабочей сборки: http://support.ucs.ru/sites/files/upload/nodes/8966/fitness_monitor_trenera.rar
1. На вкладке «Специалисты» создаются сотрудники, их расписание, указываются доступные ресурсы (рис. 6, 7 и 8).
|
Рис.6 Интерфейс Абонемент, создание специалиста |
Рис.7 Интерфейс Абонемент, создание расписания для специалиста
Рис.8 Интерфейс Абонемент, выбор доступного специалисту ресурса |
2. Должны быть заведены соответствующие типы абонементов, которые позволят клиенту посетить индивидуальную тренировку или групповое занятие.
3. Для работы с групповыми занятиями, в программе необходимо создать расписание для данных мероприятий (рис. 9 и 10).
|
Рис.9 Интерфейс Абонемент, создание групповых мероприятий на «Шахматке мероприятий» |
Рис.10 Интерфейс Абонемент, создание групповых мероприятий с помощью «Автоматического распределения» на вкладке «Специалисты» |
TCPCardReader и настройки декодирования под TCPCardReader`ом и connector`ом настраиваются так же как и на рабочих местах абонемент под TCPCardReader`ом и abonementmanager.exe
Connecter настраивается базовым образом (общие настройки, сервер блокировок, БД Абонемент), дополнительно для работы считывателя в веб-интерфейсе, необходимо настроить параметры подключения к TCPCardReader:
[TCPCardReader] PORT=7760 HOST=127.0.0.1 UseTCPCardReader=1 [DEVICES] UseCardReader=1
- версия Apache 2.2.17;
- версия PHP 5.3;
- возможность использования модулем библиотеки jQuery;
- установленные модули: cUrl, Sessions, Sockets, Xml, SimpleXML, GD, bcmath, mbstring, iconv, DOM
Для настройки веб-части модуля, после его развёртывания на машине, требуется открыть в браузере настройки (показаны на рис. 11 и 12), находящиеся по адресу http://<адрес веб модуля>/settings
Для монитора тренера имеют силу настройки пунктов 1, 2, 3, 9, 10, 17, 23, 24
В пункте 1 настроек, привести настройки связи с connecter и настройки вебсервера, для корректной отработки модуля.
В пункте 3 должны быть 3.1 = Фитнес, 3.2 = Только С авторизацией
Пункт 10 – Специалист – содержит настройки монитора тренера.
Собственно в данном пункте очень гибко настраивается доступный для тренера функционал и количество отображаемой для него информации.
Пункт 17 – позволяет настроить отображение таблицы расписания.
Требуемым образом настроить пункты 23 и 24.
|
Рис. 11 - Внешний вид модуля, страница настроек модуля Основные настройки |
Рис. 12 - Внешний вид модуля, страница настроек модуля Настройки функций доступных специалисту |
Модуль защищён ключом - Проект 1, Модуль 5.
| Вложение | Размер |
|---|---|
| fitness_monitor_trenera.rar | 3.33 КБ |
Реализован web модуль для удобной онлайн-оплаты абонементов на сайте организации. Данный модуль предназначен для использования на объектах со спецификой «Аквапарк» и схожими направлениями. Данный web модуль предоставляется в виде набора php скриптов и предназначен для встраивания на сайт заказчика.

Рис. 1
При переходе на страницу онлайн-покупки открывается календарь для выбора даты посещения аквапарка.
Абонементы, доступные для покупки, отображаются согласно расписанию действия с выставленным параметром в карточке типа абонемента «доступны для интернет-бронирования».

Рис. 2
Типы абонементов группируются с помощью категории абонементов. В момент изменения количества каждой позиции формируется поле «итого». Клиент заполняет персональные данные, номер телефона в заданном формате и адрес электронной почты. Кнопка «оплатить» активна только после проставления галки «Я согласен с пользовательским соглашением», текст соглашения открывается в новой вкладке при клике на указанную ссылку. Текст соглашения редактируется в шаблоне “ /abonement/template/Regulations.php”. После нажатия на кнопку «оплатить» происходит перенаправление в процессинг. После завершения оплаты в основном модуле «Абонемент» происходит следующее: в базе данных создается клиент для каждого абонемента в чеке, персональные данные будут заполнены только для первого клиента в чеке, а остальные клиенты будут не персонализированы. На указанную почту существует возможность отправить id всех клиентов в чеке или номер счета для данного чека. В момент фактического посещения клиента сотрудник на объекте осуществляет поиск в базе с помощью существующих фильтров в списке клиентов в основном модуле (см. рис. 3)
.
Рис. 3
Модуль является модифицированным модулем "Абонемент-Online", лицензируется проектом 1 модуль 2.
Для работы модуля, на сервере объекта должен быть развёрнут Connecter, сервер должен иметь постоянный выделенный внешний IP-адрес, должен быть заключён провайдер с хостингом для размещения веб модуля, а также договор с поддерживаемым процессингом онлайн платежей.
Сборка актуальной веб-части предоставляется по запросу.
Необходимо настроить Connecter для корректной работы под соответствующей лицензией, через внешние IP и порт.
Connecter следует сразу настроить на новый киоск в Абонемент, на котором всегда будет открыта смена, для проведения платежей в любое время суток. (Параметр StdKioskCode в секции [defaults] в connecter.ini)
Так как при каждой покупке через модуль в БД создаётся новый гость, то НЕОБХОДИМО отключить проверку уникальности тел.номеров в Общих параметрах и отключить проверку уникальности email путём выполнения на БД скрипта:
Со стороны веб-части необходимо настроить <Адрес_модуля>/abonement/config.php
Параметры подключения к connecter:
define('SCHEDULE_XML_PATH', 'http://46.229.182.139:33204'); // TCPHost и TCPPort для подключения к connecter
define('USE_URL_DECODE', 0); // значение параметра UseURLEncode в файле connecter.ini
define('PRIVATEKEY', 'aqua76'); // указывается в файле connecter.iniТам же необходимо внести данные из личного используемого процессинга платежей. (Согласно соответствующим статьям раздела)
Остальные настройки веб-модуля, в частности настройки доступных к покупке абонементов, а также заведённого для онлайн оплаты в Абонемент типа безналичного платежа, вносятся в браузере по адресу <Адрес_модуля>/abonement/settings
Шаблон отправляемого клиенту письма, в случае успешной оплаты, можно отредактировать. Шаблон находится в <Адрес_модуля>/abonement/mail/Aqua.tpl (Вносимые модулем данные, например #NAME#, следует оставить)
Настройка адреса для рассылок производится в основном модуле Абонемент - Общие параметры / Рассылки.

В данной статье описан принцип работы "Зоны самостоятельной регистрации гостей" из представленной выше схемы.














| Вложение | Размер |
|---|---|
| selfreg.7z | 5.39 КБ |

[solary]
delay=0
0 - 5 минут; 1 - 15 минут; 2 - 30 минут; 3 - 60 минут








Тут будет структурная схема
1. Добавлен новый алгоритм декодирования
CardDecodeType = FastScript
Алгоритм декодирования программируется в функции decodecard во внешнем файле, задаваемым параметром fsUnit в секции [frf].
В секции [frf] появился параметр
fsUnit=fsdecodecard.upasfunction fsUnitVersion:integer; begin result := 1; end; function DecodeCard(Track:string; var Code:integer):string; begin Result := Track; end; begin end.
function fsUnitVersion:integer;
begin
result := 1;
end;
function DecodeCard(Track:string; var Code:integer):string;
var //Объявление локальных переменных
i,summa,ltt:integer;
ttr:string;
symbolz:array of string;
begin
ttr:=trim(Track); //Обрезание трека, в случае попадания пробелов в начало или конец
ltt:=Length(trim(Track)); //Получение длины обрезанного трека
if(Uppercase(Track)='F5012345678900') //Проверка на совпадение со спец штрихкодом - картой полного доступа
then
begin
result:='5012345678900'; //Возвращается номер карты полного доступа прописанный в gkhostconnect
Exit;
end;
if(not (Uppercase(Copy(ttr,ltt,1))='F')) //Если последний символ полученного трека не "F", т.е. штрихкод считался без контрольного символа Code39
then
begin
if (Copy(ttr,ltt-2,3)=MDCHECKSUM(Copy(ttr,1,ltt-3),1)) //Сравниваем предпологаемую контрольную сумму абонемента с имеющейся в треке
then result:=Copy(ttr,1,ltt-3) //Если совпадают, то возвращаем номер абонемента
else result:=track; //Если не совпадают, то возвращаем номер как есть (например, если штрихкод - идентификатор специалиста)
end
else //Если последний символ полученного трека - "F", то сравниваем предпоследний с контрольным символом согласно гост на штрихкод Code39
begin
symbolz:=['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','-','.',' ','$','/','+','%']; //Таблица контрольных символов Code39
i:=1; summa:=0;
while (i<ltt-1) do //высчитываем данные для получения контрольного символа
begin
summa:=summa+strtoint(Copy(ttr,i,1));
inc(i);
end;
if (Uppercase(Copy(ttr,ltt-1,1))=symbolz[(summa mod 43)]) //Производим сравнение символа полученного в треке и высчитанного контрольного символа
then
begin
if (Copy(ttr,ltt-4,3)=MDCHECKSUM(Copy(ttr,1,ltt-5),1)) //Если совпадают, сравниваем контрольную сумму абонемента
then
result:=Copy(ttr,1,ltt-5) //Если действительно, данный штрихкод -номер абонемента с контрольной суммой абонемента и с контрольным символом Code39, возвращаем номер абонемента
else
result:=Copy(ttr,1,ltt-2) //Иначе возвращаем номер как есть, без контрольного символа Code39 (например, если штрихкод - идентификатор специалиста)
end
else
result:='0'; //Если контрольный символ не совпадает с рассчитаным по госту, возвращаем пустой трек (пресекаем дальнейшую обработку)
end;
end;
begin
end.| Вложение | Размер |
|---|---|
| Печатная форма для отладки разрабатываемого скрипта декодирования | 1.63 КБ |
TcpCardReader.ini
[TCP] PORT=7760 IP=0.0.0.0 [READER1] COMPORT=9 COMPORTPARAMS=baud=4800 data=8 parity=N stop=1 Prefix=; Postfix=?
[general] usemask=1 [mask] card_em = E* [cards.Card_em] code=2 CardDecodeType = MASK mask=*****dddddddd*
[general] usemask=1 [mask] card=* [cards] [cards.Card] CardDecodeType = mask mask=dddddddd code=2
[TCPCardReader] PORT=7760 HOST=127.0.0.1 UseTCPCardReader=1
Например, из трека полученного с кардридера: Em-Marine[5605] 185,05453 получить идентификатор 18505453.
TcpCardReader.ini
[TCP] PORT=7760 IP=0.0.0.0 [READER1] COMPORT=3 COMPORTPARAMS=baud=9600 data=8 parity=N stop=1 ;Параметр Prefix задаёт строку, которая передаётся клиентам перед первым прочтенным символом Prefix=; ;Параметр Postfix задаёт строку, которая передаётся клиентам после последнего прочтенного символа Postfix=? ;Использовать decodecards.dll useDecodeCards=1 StartTermChars=M FinishTermChars=#13;#10;#0;
[mask] card = arine[* [cards.Card] ExcludedPrefix=arine[ code=2 CardDecodeType = LAST8
[general] usemask=1 [mask] card=* [cards] [cards.Card] CardDecodeType = mask mask=dddddddd code=2
[TCPCardReader] PORT=7760 HOST=127.0.0.1 UseTCPCardReader=1
[general] usemask=1 TrackResultLog= [mask] card = e* [cards.Card] ExcludedPrefix=e code=2 CardDecodeType = MASK mask=****dddddddd*
Например, преобразовываем трек полученный с считывателя: Mifare [40CD941F] 205,37919 1K (0004,08) в следующий вид: 1087214623 (значение из квадратных скобок в десятичном представлении)
TcpCardReader.ini
[TCP] PORT=7760 IP=0.0.0.0 [READER1] COMPORT=3 COMPORTPARAMS=baud=9600 data=8 parity=N stop=1 ;Параметр Prefix задаёт строку, которая передаётся клиентам перед первым прочтенным символом Prefix=; ;Параметр Postfix задаёт строку, которая передаётся клиентам после последнего прочтенного символа Postfix=? ;Использовать decodecards.dll useDecodeCards=1 StartTermChars=#$5D FinishTermChars=?#13;#10;#0;
[mask] card = * [cards.Card] code=2
[general] usemask=1 [mask] card=* [cards] [cards.Card] code=2
[TCPCardReader] PORT=7760 HOST=127.0.0.1 UseTCPCardReader=1
[general] usemask=1 TrackResultLog= [mask] card = * [cards.Card] code=2 CardDecodeType = MASK mask=hhhhhhhh*
Абонемент позволяет настроить автоматические запланированные переводы смены в определённое время.
Для этого используются: Планировщик Windows (или любой другой предпочитаемый планировщик), .bat файл и .sql файл запроса на перевод смены.
Подготовленные .bat и .sql файлы можно найти в поставке Абонемент по адресу FullversionVerXXX\utils\AUTOSHIFTCHANGE\
Содержание файла autoshiftchange.bat:
set isql="C:\Program Files (x86)\Firebird\Firebird_2_5\bin\isql.exe" set inputfile=autoshiftchange.sql %isql% -input %inputfile%
CONNECT 'C:\_UCS\_fitness\ibdata\FITNESS_TEST.FDB' USER 'ucs' PASSWORD 'ucs';
select * from sys$set_context('USER_SESSION','PRODUCT','ABONEMENT');
select * from sp_workshift_change(0,1,'§ion=0&usesection=1&hotel=ТУТ ДОЛЖЕН БЫТЬ HOTELS.ID - ИДЕНТИФИКАТОР ОБЪЕКТА');
commit work;Соответственно, для корректной работы требуется поправить адрес к файлу БД в которой требуется производить перевод смены, а также заменить "ТУТ ДОЛЖЕН БЫТЬ HOTELS.ID - ИДЕНТИФИКАТОР ОБЪЕКТА" на ID объекта (где можно увидеть данный id указанно на рис.1).
|
Рис.1 Вкладка общие параметры Абонемент. Крайнее правое поле - HOTELS.ID |
Таким образом, при запуске даннного .bat файла на сервере будет запущена процедура перевода смены.
Рекоммендуется подключить запуск autoshiftchange.bat по расписанию через планировщик задач в нерабочее время объекта сразу после операции бэкапирования, и, в таком случае, смена будет переведена к началу рабочего дня.
В случае длительных перерывов в работе объектов может понадобиться произвести перевод смены на текущую дату.
Для этого можно использовать специализированную процедуру XX_SHIFT_DODO.
Содержание файла XX_SHIFT_DODO.sql:
create procedure XX_SHIFT_DODO (PARAMSTR varchar(1024))
as
declare variable XINFO varchar(1024);
declare variable SHIFT integer;
declare variable SUCCESS smallint;
declare variable WORKSHIFT double precision; declare variable CURRSHIFT double precision; begin
xinfo = paramstr;
xinfo =
SetNamedParam(xinfo,'hotel',getnamedparamdefnum(paramstr,'hotel',1));
shift = 0;
CURRSHIFT = floor(d2dbl('now'));
select WORKSHIFT from sp_get_workshift(:xinfo) into :WORKSHIFT;
WORKSHIFT = snn(WORKSHIFT);
while (WORKSHIFT < CURRSHIFT) do
begin
select SUCCESS from sp_workshift_change(:shift,1,:xinfo) into :SUCCESS;
if (SUCCESS<> 1) then break;
select WORKSHIFT from sp_get_workshift(:xinfo) into :WORKSHIFT;
WORKSHIFT = snn(WORKSHIFT);
end
end
Чтобы применить данную процедуру на базе, открываем IBExpert и запускаем скрипт в Script Executive:
|
Рис.2 Прбонемнение скрипта на БД |
После чего находим данную процедуру в базе, открываем ее и выполняем (с параметром ' '):
|
Рис.3 Выполнение процедуры |
После выполнения процедуры не забываем нажать commit.
Итог: Дата ночного аудита соответствует календарной.
Операция перевода смены не обратима! ВАЖНО!
Ни в коем случае не проверять работоспособность связки на рабочей базе объекта!
Перевод смены на завтрашний день вызовет затруднения при работе в продолжении текущего дня.

Конфигурация считывателей:
Два бесконтактных считывателя карт IronLogic Z-2 USB либо IronLogic Matrix III RD-ALL
Используемое ПО:
1. ПО «Абонемент» версии 1.128;
2. TcpCardReader;
3. TcpCardReaderGH (вместо службы gkHost);
4. GkHostConnect (для контроля присутствия);
5. InfoPlazma (информирование о входе/выходе, вместо турникета).
У кассира установлены: ПО «Абонемент», модуль «Инфоплазма» и 2 бесконтактных считывателя карт.
Возможны две схемы обслуживания клиентов:
Разовое посещение одним человеком:
1. Кассир продает абонемент в программе через функционал «Быстрая продажа»;
2. Кассир прилепляет браслет клиенту с помощью первого считывателя (см. Рис.1);
3. Прикладывает данный браслет ко второму считывающему устройству для старта мероприятия (отметка о проходе). О том, что началась тарификация, кассиру сигнализирует модуль «Инфоплазма» (загорается зеленый цвет). «Инфоплазма» выглядит как маленькое окно, которое запускается на том же рабочем месте, что и абонемент (см. Рис.2);
При выходе/доплате клиента - кассир прикладывает браслет ко второму считывателю;
4. Два варианта событий:
а) Клиент не превысил время, штраф за превышение не начислен. Информация о том, что клиенту доступен выход, сигнализирует «Инфоплазма» (загорается зеленый цвет). Клиент выходит. Ресурс закрывается. Идентификатор открепляется. Обслуживание завершается. (см. Рис.2);
б) Клиент превысил время нахождения в аквапарке. Информация о том, что клиенту не доступен выход, сигнализирует также «Инфоплазма» (загорается красный цвет) (См. Рис.3). Кассир находит клиента в ПО «Абонемент» (прикладывает его карту к считывателю №1), на вкладке «Быстрая продажа» он приостанавливает тарификацию и оплачивает долг клиента. Отмечает выход клиента прикладывая карту к считывателю №2. О том, что клиенту доступен выход, сигнализирует модуль «Инфоплазма» (загорается зеленый цвет). Клиент выходит. Ресурс закрывается. Идентификатор открепляется. Обслуживание завершается.

Рис.2 Рис.3
Разовое посещение группой людей:
1. Кассир выбирает в быстрой продаже столько абонементов, сколько пришло людей;
2. Прежде чем оплатить кассир в быстрой продаже нажимает галочку «трансфер абонементов на плательщика»;
3. Кассир прикрепляет браслеты клиентам при помощи считывающего устройства №1. Кассир прикрепляет столько браслетов, сколько абонементов в чеке;
Далее обслуживание производится по аналогии с вариантом обслуживания: «Разовое посещение одним человеком».
Для реализации такой схемы потребуется следующее:
|
Тип |
Наименование |
Расходы |
||
|
Кол-во |
Цена |
Итого |
||
|
ПО |
Модуль управления турникетов |
1 |
15 000 * |
15 000 |
|
ПО |
Плазма монитор |
3 |
15 000 * |
45 000 |
|
Обор-е |
Считыватель |
6 |
5 200 * |
31 200 |
|
Работы |
Работы по подключению |
3 |
5 000 * |
15 000 |
|
Работы |
Доработка шаблона плазмы |
1 |
5 000 * |
5 000 |
|
111 200 |
||||
" * " - Стоймость актуальна на 01.06.2017г.
Ссылка с рабочей сборкой Аквапарка: ftp://ftpint.ucs.ru/Abonement/Samples/Aquapark with module Infoflazma.7z
[database] dbname=127.0.0.1/3080:D:\_IBDATA\FITNESS_FANT.FDB dbuser = ucs DBPassword = oQKH8n0BFUE= [TCPCardReader] PORT=7760 HOST=127.0.0.1 ; Если используется TCPCardReader для чтения com-портом, то установите UseTCPCardReader=1 UseTCPCardReader=1
[general] usemask=1 TrackResultLog= [cards] CardPrefix = StaffCardPrefix = y RegularCardPrefix = z PDSCardPrefix = x FirstSignEquallyAsLetterA = 0 [cards.Card] CardDecodeType = mask mask=dddddddddddddd bitmask=$7FFFFFFF code=2 [cards.RegularCard] code=22 [cards.StaffCard] code=21 [cards.PDSCard] code=24
[application] AutoStart = 1 AutoHide = 1 [TCP] PORT=7760 IP=0.0.0.0 [READER1] COMPORT=6 COMPORTPARAMS=baud=9600 data=8 parity=N stop=1 Prefix=; Postfix=? ;Использовать decodecards.dll useDecodeCards=1 StartTermChars=M FinishTermChars=?#13;#10;#0;
[general] usemask=1 [mask] card_EM= arine[* card_MI= ifare[* [cards] CardPrefix = 05015005 [cards.cardREPLACECARDNO] ExcludedPrefix= code=2 CardDecodeType = REPLACECARDNO NewCardNo = 5678956 [cards.ARRAYOFBYTES] CardDecodeType = MASK mask=*cccc* bitmask=$7FFFFFFF MaskType=ARRAYOFBYTES code=2 [cards.Card2] ExcludedPrefix=778=12345678= code=2 mask=hhhhhhhh* bitmask=$7FFFFFFF [cards.Card] ExcludedPrefix=05015005 code=2 CardDecodeType = MASK mask=ddd bitmask=$FFFFFFFF DecodeTypeEx = 0 [cards.card_EM] ExcludedPrefix=arine[ code=2 CardDecodeType = LAST9 [cards.card_MI] ExcludedPrefix=ifare[ code=2 CardDecodeType = MASK mask=hhhhhhhh* [cards.RegularCard] code=22 [cards.StaffCard] code=21 [cards.PDSCard] code=24
[application] AutoStart = 1 AutoHide = 1 [TCP] PORT=7766 IP=0.0.0.0 [READER1] COMPORT=1 COMPORTPARAMS=baud=9600 data=8 parity=N stop=1 Prefix=> 2058 CARD 0 Postfix= useDecodeCards=1 StartTermChars=M FinishTermChars=?#13;#10;#0; [TCPCARDREADER] Prefix=#59; Postfix=#63; useDecodeCards=1 StartTermChars=; FinishTermChars=?#13;#10;#0;
[general] usemask=1 TrackResultLog= [mask] card_EM= arine[* card_MI= ifare[* card = 05015005* card2= 778=12345678=* cardfile=file://cards.txt [cards] CardPrefix = 05015005 CardPrefix = 750= CardPrefix = 778=999999999= CardPrefix = 778=123456789= StaffCardPrefix = 778=87121234= StaffCardPrefix = 778=201050001 RegularCardPrefix = 778=444444444= PDSCardPrefix = 811q [cards.cardREPLACECARDNO] ExcludedPrefix= code=2 CardDecodeType = REPLACECARDNO NewCardNo = 5678956 [cards.ARRAYOFBYTES] CardDecodeType = MASK mask=*cccc* bitmask=$7FFFFFFF MaskType=ARRAYOFBYTES code=2 [cards.Card2] ExcludedPrefix=778=12345678= code=2 mask=hhhhhhhh* bitmask=$7FFFFFFF [cards.Card] ExcludedPrefix=05015005 code=2 CardDecodeType = MASK mask=ddd bitmask=$FFFFFFFF [cards.card_EM] ExcludedPrefix=arine[ code=2 CardDecodeType = LAST9 [cards.card_MI] ExcludedPrefix=ifare[ code=2 CardDecodeType = MASK mask=hhhhhhhh* [cards.RegularCard] code=22 [cards.StaffCard] code=21 [cards.PDSCard] code=24
[general] usemask=1 TrackResultLog= [mask] card_all = * [cards.card_all] code=2 CardDecodeType = MASK mask=ddddddddddd [cards] CardPrefix = 05015005 CardPrefix = 750= CardPrefix = 778=999999999= CardPrefix = 778=123456789= StaffCardPrefix = 778=87121234= StaffCardPrefix = 778=201050001 RegularCardPrefix = 778=444444444= PDSCardPrefix = 811q [cards.cardREPLACECARDNO] ExcludedPrefix= code=2 CardDecodeType = REPLACECARDNO NewCardNo = 5678956 [cards.ARRAYOFBYTES] CardDecodeType = MASK mask=*cccc* bitmask=$7FFFFFFF MaskType=ARRAYOFBYTES code=2 [cards.Card2] ExcludedPrefix=778=12345678= code=2 mask=hhhhhhhh* bitmask=$7FFFFFFF [cards.Card] ExcludedPrefix=05015005 code=2 CardDecodeType = MASK mask=ddd bitmask=$FFFFFFFF DecodeTypeEx = 0 [cards.RegularCard] code=22 [cards.StaffCard] code=21 [cards.PDSCard] code=24
[tourniquet_0] number=Аква device=32 relay=88 direction=0 guesttype=0 identtype=0 IgnoreLastSymbolAtBarCode=0 devicetype=0 entranceState=41 exitState=42 BothDirectionState=43 CmdForAccessDenied=00 CheckDirect=1 ProhibitExitIfMinusBalance=1 ProhibitExitIfPositiveBalance=0 ProhibitExitIfProkatExist=0 ProhibitExitIfIssuedCompleteExist=0 DeactivateCardByExit=1 ActivateCardForShkaff=0 Immediately_to_finish_event=0 RESOLVEDDELAYBETWEENENTRANCE=0 TIMEOUTBETWEENENTRANCEANDEXIT=0 Grouppass=0 GenEventWhenAccessIsAllowed=1 AbonCodesForDeactivateCardByExit= AbonCodesForNotDeactivateCardByExit= VipCodesNotForDeactivateCard= Duration_of_cooling_of_a_sun_deck=0 WaitDuration=0 ProhibitExitIfNoCardRead=1 DisableTraceIntermediateGuestbalance=0 CloseResourcesWhenEntrance= CloseResourcesWhenExit= allaccesscards= IPCamURL= IPCamLogin= IPCamPassword= VipCodesWhenExit= VipCodesWhenEnter= ProhibitVipCodesWhenEnter= ProhibitVipCodesWhenExit= SearchDiaryForInfoTerminal=0 SolaryProtocolVersion=0 WelcomeStr=Поднесите браслет ToBlockWhenAccessDenied=1 DefaultPKCodeForEmptyCard= RequiryDiaryStaffWhenEntering=0 UsePrinterAfterEntrance=0 UsePrinterAfterExit=0 AnotherCardOwnerCanNotCreateEvent=0 AccessDeniedForAnotherCardOwner=0 ProhibitExitIfNotLastVisit=0 ProhibitExitIfLastVisit=0 AfterEventReportName= UseChildOffset=1 CheckBalanceClosedResourcesWhenEntrance=0 AbonCodesForCloseResourcesWhenEntrance= AbonCodesForCloseResourcesWhenExit= AbonCodesWhenExit= ProhibitAbonCodesWhenExit= NeedCheckAccessBySQL=0 SQLFORCHECKACCESS= SQLFORPASS= CanAutoActivateAbonement=0 ExtraCheckAccessForExitBySQL= AttendanteTimeOutAfterExit=0
[AppService]
;Имя сервиса
DisplayName = UCS Служба GKHOSTConnect
;Внутреннее имя сервиса (одно слово. Только латинские символы и цифры. Начинается с буквы)
ServiceName = UCSGKHOSTConnect
Description = Служба-интерфейс контроля доступа UCSGKHOSTConnect
[AppService.Dependencies]
[Application]
AutoHide=0
[log]
name=.\log\gkhostconnect.log
level=30
debuglevel=30
ByMonthes=1
ByDays=1
BYHOURS=1
[LOCK.SERVER]
TCPHost = 127.0.0.1
TCPPort = 1111
[general]
Program = UCS Shelter
EnterpriseTitle = Фитнесс-центр
EnterPriseAddress = Москва
EnterprisePhone = 777-77-77
need_reload_all_dict=0
[database]
dbname=127.0.0.1/3080:D:\_IBDATA\FITNESS_FANT_128.FDB
;dbname=aqua/3080:D:\_UCS\_FITNESS\IBDATA\FITNESS_TEST.FDB
dbuser = ucs
dbcharset = WIN1251
DBPassword = oQKH8n0BFUE=
[devices]
CheckTurnDirect=0
TurniquetTimeOut=10
ToProcessAllCharsInCard=1
NoProcessedCardsNo=CF
[gkhost]
host=127.0.0.1
port=7766
local=0
CanSendData=1
[child]
CategCode=checkin,дет,
cmdOffset=12
DeactivateCardByExit=1
AbonCode=
[solary]
delay=0
[lockcontrol]
dllname=C:\Projects\DELPHI7\GKHOSTCONNECT\GKHOSTCONNECT2\mitucs.dll
[welcome]
delay=10
text=Поднесите браслет
[tcpserver]
port=5560
ip=0.0.0.0
enabled=0
[udpserver]
ip=0.0.0.0
port=57145
enabled=0
[messages]
ProhibitMinusBalance = - у Вас долг
ProhibitPositiveBalance = - У Вас положительный баланс
[locker_parser]
Mask = ********LL
ABCDEF1201
Names = Names = &Locker=L
[Описание параметров Card_parser]
Names = &Locker=L
&Locker=L - признак открытого (0) или закрытого (1) шкафчика
[FRF]
NotUseDisplay2Text=0
[Localization]
CurrentLanguage=default<Monitor>
<Forms>
<Form left="0" top="0" Width="100" Height="50" Caption="Инфо" ID="1" BorderStyle="0" WindowState="0">
<ZOrder>-1</ZOrder>
<ShowPanel>0</ShowPanel>
<Periodicity>1</Periodicity>
<SQLText>
select first 1 IIF(getnamedparamdef(paramstr,'AccessGranted','0')=1,'lightgreen','red') cl
from access_control_log
where action_type='card' and idroom=1
and 1/24/60/60>d2dbl('now')-regdate
order by regdate desc
</SQLText>
<XSLT>plazma.xsl</XSLT>
<HTML>cache\plazma.html</HTML>
<HIDECURSOR>0</HIDECURSOR>
<FormID>1</FormID>
<FORM_FOLDER>cache\Photo</FORM_FOLDER>
</Form>
</Forms>
</Monitor><?xml version="1.0" encoding="WINDOWS-1251" ?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:str="http://user.com/namespace"
version="2.0"
>
<xsl:template match="/">
<header>
<META http-equiv="Content-Type" CONTENT="text/html; charset=WINDOWS-1251" />
</header>
<xsl:for-each select="RecordSet/Record">
<body >
<xsl:attribute name="BGCOLOR">
<xsl:value-of select="CL"/>
</xsl:attribute>
</body>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

Рис. 1. Структурная схема
Intel Pentium G4400,3.3ГГц, 8 ГБ DDR4, 500 Гб, Microsoft Windows (Пример:https://www.oldi.ru/catalog/element/0500424/)
Для подключения устройств работающих по RS232 устанавливаем контроллер PCI-E to RS232.
Важно чтобы материнская плата поддерживала установку дополнительных плат расширения PCI-E или PCI (Пример:https://www.oldi.ru/catalog/element/0208927/)
Монитор Samsung S22D300NY (Пример:http://www.oldi.ru/catalog/element/0283785/). Блок бесперебойного питания ,клавиатура, мышь.
Локальная сеть Ethernet Устанавливаем 8-ми портовый коммутатор TP-LINK TL-SG108. (Пример:http://www.oldi.ru/catalog/element/0218467/)
| Турникет-трипод TTR-07.1 с автоматической «Антипаникой» | 1 шт |
| NES-100-12, Блок питания стабил. 12В; 8,5А; степень защиты IP20 для турникетов серии PERCo-TTR-07 | 1 шт |
| Анкер оригинал PERCo PFG IR M10*15 , болт для крепления калитки и турникета PERCo | 4 шт |
| Игровой контроллер Ethernet UCS | 2 шт |
| Считыватель IronLogic Matrix III RD-ALL | 2 шт |
| Программное обеспечение «Модуль интерфейс с турникетом» | 1 шт |
К месту установки турникета требуется подводка 2 сетевых проводов UTP5 от коммутатора:
- 1 провод ПВС 2*1,5 для питания турникета 12В от места установки блока питания
- 1 провод UTP5 от места установки блока ручного управления
Плазменная панель подключается как второй монитор через HDMI кабель.
Программное обеспечение «Инфоплазма». Настройка под требования Заказчика.
Для ИнфоМонитора (под частный случай его применений на батутных аренах) разработан специализированный скрипт, который необходимо применить к БД "Абонемент" (через IBExpert->Script Execute) перед его использованием:
create or alter procedure SPR_MONITOR_GNOM (
RCODE_LIKE varchar(10))
returns (
N integer,
FULLNAME D_LARGESTR,
NUMBER D_LARGESTR,
GUEST integer,
IDROOM integer,
D_FINISHDATE double precision,
NUMBER_NOMER D_LARGESTR)
as
declare variable FIRSTDIARY_STARTDATE double precision;
declare variable ABONEMENT_PACKAGE integer;
begin
N=1;
for
select distinct g.fullname,d.guest,d.idroom from diary d
inner join rooms r on r.id = d.idroom
left join guests g on g.id = d.guest
left join users u on u.guest = g.id and u.enabled = 1
left join staff sf on sf.guest = g.id and sf.enabled = 1
where d.status=1
and r.number like :RCODE_LIKE
and u.id is null
and sf.id is null
and g.enabled=1
into :fullname,:guest,:idroom do
begin
for
select min(d.startdate), d.abonement_package from diary d
where d.idroom = :idroom and d.guest = :guest and d.status =1
group by d.abonement_package
into :firstdiary_startdate,:abonement_package do
begin
select first (1) d.startdate + p.diaryduration-5/24/60,'№'||a.number||' '||:fullname||' '||info from diary d
left join abonement_packages ap on ap.id = d.abonement_package and ap.enabled = 1
left join packages p on p.id = ap.package and p.enabled = 1
left join rooms r on r.id = d.idroom
left join abonements a on a.id=ap.abonement
where d.abonement_package = :abonement_package
and r.id = :idroom
order by d.id
into :d_finishdate, number_nomer;
suspend;
N=mod(N,2) +1;
end
end
end
Рис.2. Фотография ИнфоПлазмы используемой на батутной арене
1.1. Регистрация клиента. "Список клиентов" -> "Добавить клиента":

1.2. Продажа абонемента "Посещение 1 час". "Профайл клиента" -> "Фолио" -> "Быстрый чек" -> "F12" -> "Наименование абонемента":

1.3. Отметка клиента о прибытии (в ручном режиме). "Профайл коиента" -> "Контроль присутствия" -> "Ресурс "Вход"":

1.4. Аналогичный функционал возможно реализовать и с помощью турникета. Если у клиента есть штраф за превышение времени, турникет выпустит клиента, но клиенту необходимо будет пройти на кассу. На кассе необходимо найти клиента с помощью браслета и считывающего устройства, зайти в: "Контроль присутствия" -> "Ресурс «Вход»"-> "Приостановить тарификацию":

1.5. Далее оплатить штраф:

1.6.Бронирование мероприятий на шахматке. "Список клиентов" -> "Добавить клиента" (Обязательные поля отмечены цветом):

1.7.Создание индивидуального мероприятия. "Шахматка мероприятий" -> "Выбор даты\времени и кабинета" -> Двойной клик левой кнопкой мыши:

2.1. Разовое посещение. Карточка типа абонемента:

2.2. Карточка тарифа:

2.3. Карточка услуги №1:


2.5. Детализация стоимости от расписания:

3.1.Абонемент на 4 посещения. Карточка типа абонемента:

3.2.Карточка тарифа:

3.3.Карточка услуги:

Кассир продает на один из браслетов услугу (абонемент). Далее посетитель прислоняет к считывателю браслет и проходит через турникет на батут, также с этого момента начинается повременная тарификация.
Вопрос: по одному браслету могут проходить несколько клиентов?
Ответ: по одному браслету будет проходить один клиент.
Этот браслет должен отображаться на экране (который будет установлен на арене), с временем начала и временем конца. После окончания времени, на мониторе выделится название браслета, будет подсвечено определенным цветом. Чтобы посетители и тренеры обращали внимание на данную информацию.
Если у клиента закончилось время, он прислоняет браслет к считывателю, проходит через турникет, повременная тарификация останавливается.
Кассир, получив от клиента браслет, выводит его из системы для продажи следующему посетителю. А также, для того чтобы кассир мог отследить через сколько и у какого браслета закончится время.
|
Рис.1 Принципиальная схема взаимодействия r_keeper с Абонемент, как с ПДС системой. |
Абонемент может выступать простой ПДС системой для других продуктов UCS, работающих с дисконтными системами через FarCards.
В данной связке, из Абонемент во внешнюю систему (r_keeper) будет передана информация: ФИО гостя, текущая скидка гостя.
Из внешней системы, в Абонемент будут переданы информация о потратах гостя во внешней системе (r_keeper), о факте применённой скидки и возможно пополнение бонусного счёта в Абонемент.
Доступные операции:
Получение информации по карте в r_keeper, происходит также как и для прочих ПДС систем - карту считывают в главном меню / на окне информация по ПДС карте / в режиме редактирования заказа.
Применение скидки к заказу происходит при просмотре инфо о карте в режиме редактирования заказа после нажатия на поле доступной скидки по данной карте.
При оплате заказа с указанием данной карты происходит передача информации о сумме потрат и о факте применённой скидки.
Используется Farcards версии 6.04
В рабочую директорию FarCards необходимо добавить ConvertFC6to5.dll, ConvertFC6to5.ini, SH_CARDS2.dll, sh_cards2.ini. (Доступны в прикреплённых файлах данной статьи и по пути Fullversion\_INTERFACE\PDS\SH_Cards в поставке Абонемент версии 138 и выше)
В FarCards.ini установить:
[FarServer] Type = 1 DLL=ConvertFC6to5.dll
В ConvertFC6to5.ini установить:
[dll] dllname=SH_CARDS2.dll
Основные настройки связи с Абонемент настраиваются в sh_cards2.ini. Пример содержания:
[DATABASE] ;Данные подключения к БД Абонемент dbname=192.168.1.100/3080:D:\_UCS\FITNESS\IBDATA\FITNESS.FDB dbuser = ucs DBPassword = oQKH8n0BFUE= [PROFILE] ; Диапазоны номеров воспринимаемых как ; Номер карты гостя LockCardRange = 1-2147483646 ; Номер комнаты ; RoomRange = 1-999 ; Номер фолио ; FolioRange = 1000-999999 ; (Более не используется) ; DiscCardRange = 10000000-99999999 ;Префиксы добавляемые r_k (не актуально) ; DiscCardAddPrefix = 77777770 ; LockCardAddPrefix = 0 ; RoomAddPrefix = 5550 ; FolioAddPrefix = 22220 ;Префикс добавляемый Абонемент (не актуально) ; FolioPrefix = 0 ; Код скидки передаваемый по умолчанию (если у клиента нет текущих скидок, передаваться будет данный код) defaultdiscountcode =11 ;;Для r_k 7 не изменять NeedConvertIdent = 1 AutoShelterConnect = 1 ;;Интерпретировать достигнутый уровень как текущий. С версии 1.0.0.2 UseLevelDiscountCodeAsCurrentDiscountCode=1 ;Проверять наличие карты при интерпретации достигнутого уровня как текущего. По умолчанию 0-не проверять. С версии 1.0.0.3 CheckCardAvailability = 0 [child] ;Код категории детских абонементов CategCode=Дет. ;Код неплательщика для отображения в r_keeper для детских абонементов RKUnpay = 10 [Adult] ;Код неплательщика для прочих клиентов RKUnpay = 12 [rk] ;Передавать информацию только для присутствующих гостей onlyattendance=0 ;Настройка кодировки CharToOemHolder=0 [Localization] CurrentLanguage=default
На рис. 2-3 в Абонемент заведён гость, к данному гостю прикреплён идентификатор с типом "Гостевая карта", и назначена текущая скидка "r_keeper discount 10%" с кодом "7".
|
Рис.2 Гость в Абонемент, и прикреплённый к нему идентификатор |
Рис.3 Текущая скидка гостя в Абонемент |
В r_keeper заведена скидка с кодом равным коду скидки в Абонемент. В данном примере, скидка 10% с кодом "7" показана на рис. 4.
Вся информация получаемая по карте гостя при считывании её на кассе r_keeper представлена на рис. 5.
|
Рис. 4 Свойства скидки в r_keeper |
Рис.5 Информация по карте полученная из Абонемент |
История транзакций клиента с участием ПДС карты будет доступна на вкладке "ПДС-транзакции" в детализации гостя в Абонемент. Пример такой детализации представлен на рис.6.
|
Рис.6 История использования карты ПДС |
| Вложение | Размер |
|---|---|
| Сборка библиотек FarCards | 2.42 МБ |
В ходе работы с ПО "Абонемент", специалисты часто сталкиваются с проблемами в работе сетевой инфраструктуры.
При наличии неисправностей в работе сети, в ПО "Абонемент" в свою очередь могут возникнуть проблемы с соединением с БД "Абонемент", с пробитием чеков на рабочем месте и т.д.
Для диагностики сетевого подключения можно использовать проверочный скрипт ping.bat, работающий в фоновом режиме и формирующий в текстовый файл "1.txt" лог следующего вида:
...
DD.MM.YYYY HH:MM:SS: Ответ от XX.XXX.XXX.XXX: число байт=32 время=Nмс TTL=NNN
DD.MM.YYYY HH:MM:SS: Ответ от XX.XXX.XXX.XXX: число байт=32 время=Nмс TTL=NNN
DD.MM.YYYY HH:MM:SS: Ответ от XX.XXX.XXX.XXX: число байт=32 время=Nмс TTL=NNN
...Как результат - высокие значения "время=" будут сигнализировать о проблемах в сетевом подключении.
Скрипт ping.bat имеет следующий вид:
@echo off
setlocal
1>nul chcp 866
:1
1>nul timeout /t 1
for /l %%i in (0,1,9) do (
for /f "tokens=*" %%j in ('"ping -n 1 ya.ru | findstr "TTL=""') do (
if %%i geq 9 goto:1
call:2 %%j
))
goto:eof
:2
1>nul chcp 1251
1>>1.txt echo %date% %time%: %*
1>nul chcp 866
Вместо выделенного значения подставляем IP-Адрес Сервера БД "Абонемент" и запускаем скрипт.
Как вариант использования, ping.bat можно поставить в Автозагрузку или создать задачу в планировщике заданий MS Windows.
| Вложение | Размер |
|---|---|
| ping.zip | 351 байт |
Внимание!!! Скрипт выполняется на чистой базе данных ПО "Абонемент" актуального релиза, в случае если его необходимо применить к базе с клиентами или иных частных случаях - необходимо сообщить об этом в Техническую поддержку ПО "Абонемент" для согласования изменений в скрипте.
Для того, чтобы интерфейс программы (кнопки, таблицы, настройки и т.п.) визуализировался с переводом, необходимо выбрать актуальный файл локализации:

Рис.1. Запускаем ПО "Абонемент", на нижней панели интерфейса выбираем из выпадающего списка "Язык" наш файл локализации (например: SM_ENGLISH_129).

Рис.2. После чего видим, что наш интерфейс перевелся на иностранный язык.
Готово.
Уважаемые коллеги (дилеры)!
При обнаружении неточностей перевода или наличии у вас собственных файлов локализации для иностранных языков - просьба создать задачу на трекере с вложением данных.
Мы учтем ваши предложения и скорректируем файлы локализации в следующих релизах.
Заранее благодарим!
При продолжительном использовании ПО "Абонемент" работающего в связке с утилитами gkHost и GkHostConnect (модуль управления турникетами), вся информация о каждой попытке прохода сохраняется в таблице Access_Control_Log, которая может достигать больших размеров (порядка нескольких гигабайт).
Для данного случая был подготовлен скрипт "AutoDelete_Access_Control_Log", оставляющий в упомянутом выше файле информацию за последние 90 дней.
На Рисунках 1,2,3 отражена последовательность действий в программе IBExpert для уточнения размера служебного файла (имеется ли смысл в применении данного скрипта).

Рис.1 "Заходим в программу IBExpert, щелкаем левой кнопкой мыши (один раз) по алиасу нашей рабочей базы в списке "Database Explorer", далее нажимаем "Services" -> "Database Statistics";

Рис.2 "Откроется окно в котором нужно будет нажать на кнопку "Retrieve Statistics";

Рис.3 "Далее будет выведена статистика базы, переходим на вкладку "Tables" и обращаем внимание на колонку "Size, bytes".
Соответственно из "Рис.3" видим - файл ACCESS_CONTROL_LOG занимает 4.8 Гб, понимаем, что применение скрипта в данном случае актуально.
Скрипт состоит из 2 частей ("*.bat" и "*.sql"):
Содержание файла "AutoDelete_Access_Control_Log.bat":
set isql="C:\Program Files (x86)\Firebird\FireBird_2_5\bin\isql.exe" set sqlPath=%~dp0 set sqlFile=%sqlPath%AutoDelete_access_control_log.sql %isql% -input %sqlFile%
Содержание файла "AutoDelete_Access_Control_Log.sql":
/*Удаляет логи взаимодействия с оборудованием.
Оставляет только последние 90 дней*/
CONNECT '127.0.0.1/3080:D:\_FITNESS\IBData\FITNESS.FDB' USER 'ucs' PASSWORD 'ucs';
delete from access_control_log acl where acl.regdate < d2dbl('now') - 90;
commit work;Совместно со скриптом указанным выше, возможно (на усмотрение Заказчика) удаление логов действий пользователей в БД "Абонемент".
Содержание файла "AutoDelete_IBHistory_Log.bat":
set isql="C:\Program Files (x86)\Firebird\FireBird_2_5\bin\isql.exe" set sqlPath=%~dp0 set sqlFile=%sqlPath%AutoDelete_IBHistory_Log.sql %isql% -input %sqlFile%
Содержание файла "AutoDelete_IBHistory_Log.sql":
/*Удаляет логи до заданной даты. */
CONNECT '127.0.0.1/3080:D:\_FITNESS\IBData\FITNESS.FDB' USER 'ucs' PASSWORD 'ucs';
delete from sys_history;
delete from sys$log sl where sl.regdate<d2dbl('ДД.ММ.ГГГГ');
commit work;Вся история изменений до ДД.ММ.ГГГГ будет удалена.
Скрипт AutoDelete_IBHistory_Log.sql, как и в случае AutoDelete_Access_Control_Log.sql, можно настроить на периодическое выполнение через "Планировщик задач" MS Windows.
При выполнении скрипта отдавайте себе отчет, что вносимые изменения необратимы! Рекомендовано все скрипты выполнять изначально на тестовой БД!





Скрипт для выгрузки клиентов с фотографиями ссылка на файл sql
Результатом работы данного скрипта будет:
1) Формирование файла csv со списком клиентов.
2) Выгружено фотографии в файлы с расширением jpg. Наименование файлов равно ID клиента в программе.
Данная ошибка является ошибкой ОС, а не конкретного ПО, поэтому наблюдается одновременно в интерфейсе разлиных программ (Abonementmanager, Freports и многих других): вместо русских символов мы видим множество знаков "?" или нечитаемые иероглифы. Вероятнее всего, это значит, что система (операционная) установлена криво, либо же устанавливалась изначально не русифицированная версия, например.
Потребуется доступ к ПК с правами администратора, дальше действуем по инструкции:
Запускаем редактор реестра: Пуск -> "Выполнить" и вводим regedit
Находим в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage строковый параметр1252, и меняем его значение на c_1251.nls
В папке C:\WINDOWS\system32\ находим файлы С_1251.nls и С_1252.nls. Делаем их резервную копию. С_1251.nls дополнительно копируем в другое место и переименовываем в С_1252.nls
Файл С_1252 в папке C:\WINDOWS\system32\ удаляем. Копируем измененную версию файла С_1252 в папку C:\WINDOWS\system32\.
Для того, чтобы выполнить этот пункт, необходимо изменить права доступа к файлу - указываем себя владельцем файла (свойства файла -> безопасность -> дополнительно -> владелец). После этого даем себе полный доступ и заменяем файл.
Идём в Пуск -> Панель управления -> Язык и региональные установки -> Дополнительно. Выбраем в пункте "Текущий язык программ, не поддерживающий Юникод" пункт "Русский (Россия)". Если в данном пункте уже стоит русский язык, то может помочь установка английского языка, перезагрузка, установка русского снова, снова перезагрузка.
Мы все чаще сталкиваемся с Заказчиками, которые переходят на использование программы Абонемент с других программных продуктов. Для таких Клиентов возможен перенос определенных данных.
В упрощенном режиме XML файла загружаются следующие поля: ФИО, дата рождения, телефон, e-mail, пол... И служит лишь для того что бы сохранить список клиентов. Данные работы не требуют специфических навыков и могут быть выполнены инженером при установке программы Абонемент. Для этого используется утилита ImportAB.
Для тех Заказчиков, кто переходит с программы A&A возможен более детализированный (развернутый) режим. Загружаются такие сущности, как: справочники услуг, абонементов, групп абонементов. Информация о клиенте: персональные данные, абонементы, остатки по ПТ, остатки по балансам, все приобретенные услуги (детализация по услугам). Процесс загрузки из A&A , является более сложным, многозвенным процессом. Трудностей добавляет множество неоднозначностей хранящихся в базе A&A. Все они правятся в промежуточной базе конвертации. Под большинство ошибочных ситуаций уже разработаны скрипты коррекции. Но бывают моменты, которые необходимо править в индивидуальном порядке под конкретную базу данных. В связи с этим данный процесс загрузки требует высоко квалифицированных технических навыков и знания БД. Данные работы выполняют только сотрудники компании UCS, и только после согласования условий и сроков выполнения работ. Сперва, не менее 2 недель готовится тестовая база с перекаченными данными. Затем. она устанавливается Заказчику и проводится обучение Абонементу. Время финального переноса данных из A&A в Абонемент может достигать до 6 часов и производится ночью перед запуском объекта. Этот процесс длителен и трудоемок, но только так можно получить переход от одной системы управления к другой без потери ключевых данных!
При автоматизации уже работающих объектовчасто возникает задача по загрузке данных в базу данных Абонемент. Для загрузки не сложной структуры данных в комплек FullVersion входит утилита Import AB.
Для использования утилиты Import AB, предварительно нужно преобразовать данные в файл формата XML, это можно сделать с помощью функционала Excel.
В файле schema_abonement_load.txt, входящем в сборку утилиты, можно увидеть пример структуры передаваемых данных.
В случае, если необходимо добавить только имена, фамилии и отчества клиентов, структура упрощается:

Нашей целью будет перенести данные из excel файла в текст и придать им следующий вид для удобства:

Для этого откроем xls файл с данными и с помощью функции «СЦЕПИТЬ» прибавим необходимые префиксы/постфиксы:

После этого можно копировать получившиеся поля в xml файл и загружать его через importab.exe, используя стандартный angel.udl
Если используется более сложная структура данных, то можно действовать следующим образом:
1. Для начала необходимо в Excel создать и заполнить таблицу данных в соответствии со структурой данных. Используйте, пожалуйста, для этого пункт меню Вставка/Таблица (с заголовками).
2. Теперь откройте вкладку Разработчик, нажмите кнопку Источник и укажите файл-источник XML. При необходимости включите пункт меню Разработчик в Настройках Excel (Файл-Параметры-Настройка Ленты).
3. Сопоставьте элементы схемы и колонки таблицы, перетащив элементы на соответствующие заголовки колонок.
По факту нам нужно организовать XML файл следующей контрукции:

4. И последний шаг: экспортировать данные таблицы в XML-файл с помощью контекстного меню. Встаньте на любую ячейку таблицы, нажмите правую кнопку мыши, выберите XML/Экспорт… и сохраните XML-файл под нужным именем. Сохраните Excel-файл для последующего редактирования и дополнения.
Важно! Чтобы файл был в кодировке ANSI
Модули Шелтер и Абонемент в ключе защиты
а также способ их лицензирования
| Проект | Модуль | Наименование в прайсе | Код l.ucs.ru | Наименование на l.ucs.ru | Примечание |
| 1 | 1 | Все функции Connecter | 232 | Shelter модуль Абонемент-Коннектор ПО (полное API) | Лицензируется по количеству одновременно запущенных экземпляров ПО |
| 1 | 2 | Абонемент-Онлайн | 213 | Shelter модуль Абонемент-Онлайн ПО | Один модуль на объект |
| 1 | 3 | Инфо-киоск (с оплатой) | 210 | Shelter модуль Абонемент – Инфо-киоск ПО | Лицензируется по количеству киосков на объекте |
| 1 | 4 | Инфо-киоск (без оплаты) Инфотерминал | 203 | Shelter модуль Абонемент – Инфотерминал ПО | Лицензируется по количеству киосков на объекте |
| 1 | 5 | Монитор для тренера | 200 | Shelter модуль Абонемент-Монитор тренера ПО | Лицензируется по количеству мониторов на объекте |
| 1 | 6 | Модуль управления солярием | 202 | Shelter модуль Абонемент - Интерактивный солярий ПО | Лицензируется по количеству соляриев на объекте |
| 1 | 7 | Монитор для клиента (дисплей покупателя) | 201 | Shelter модуль Абонемент - Дисплей покупателя ПО | Лицензируется по количеству мониторов на объекте |
| 1 | 8 | ------------------------------------------------------------------------------------ | Один модуль на объект | ||
| 1 | 9 | Регулярные списания EFT (Абонемент) | 306 | Shelter модуль Абонемент - регулярные EFT списания | Один модуль на объект |
| 1 | 10 | Интеграция с ПДС UDS Game | 309 | Shelter модуль Абонемент - Интерфейс с внешними ПДС (UDS Game) | Один модуль на объект |
| 1 | 11 |
Интерфейс с CRM 1C Битрикс
|
307 | Shelter модуль Абонемент - интеграция с 1С Битрикс | Один модуль на объект |
| 1 | 12 | Сервер статистики ServStat (Абонемент) | 312 | Shelter модуль Абонемент - Отчеты-онлайн ПО | Одна лицензия на один сервер статистики БД |
|
|
|
|
|
|
|
| 2 | 1 | Cloudshelter | |||
| 2 | 2 | Подписка на обновления для Shelter3 | |||
| 2 | 3 | Модуль очистки данных из базы Shelter | |||
| 2 | 4 | Модуль интеграции Shelter с Wifi системой авторизации гостей | |||
| 2 | 5 | Менеджер мероприятий | Лицензируется по количеству рабочих мест | ||
| 2 | 6 | Модуль Shelter Кубы | |||
| 2 | 7 | ------------------------------------------------------------------------------------ | |||
| 2 | 8 | Монитор Ресурсов | |||
| 2 | 9 | Горничные-мобайл(минибар) | |||
| 2 | 10 | Медицина - (????Личный кабинет гостя Shelter????) | |||
| 2 | 11 | Интерфейс РК-Шелтер | Shelter модуль интерфейс R-KEEPER ПО | ||
| 2 | 12 | Интерфейс РК-Либра(Фиделио) | R-Keeper модуль Интерфейс к гостиничным системам ПО | ||
|
|
|
|
|
|
|
| 3 | 1 | Шелтер-лайт (модуль 1 и 3) | |||
| 3 | 2 | Шелтер-полная версия (модули 1, 2, 3) | |||
| 3 | 3 | Отчеты | |||
| 3 | 4 | Телефонный тарификатор | |||
| 3 | 5 | Интернет-бронирование | |||
| 3 | 6 | ПДС, CRM | 310 | Shelter модуль Абонемент - Интерфейс R-Keeper CRM (ПДС) ПО | |
| 3 | 7 | Выгрузка в XML (УФМС ПО Контур и Радиус) | |||
| 3 | 8 | Банковский протокол | 228 | Shelter модуль Абонемент - Интерфейс Банковский протокол ПО | Один модуль на объект |
| 3 | 9 | Горничные | Один модуль на объект | ||
| 3 | 10 | Channel manager (Wubook, Тревеллай, Нотабене) | |||
| 3 | 11 | IP TV (Hoteza, Видеолюкс, Отрум...) | |||
| 3 | 12 | Замковая система | |||
|
|
|
|
|
|
|
| 4 | 1 | Абонемент | 212 | Shelter модуль Абонемент-Менеджер ПО | Лицензируется по количеству одновременно запущенных экземпляров ПО |
| 4 | 2 | Интерфейс – турникет | 217 | Shelter модуль Интерфейс Абонемент-Турникет ПО | Один модуль на объект |
| 4 | 3 | Отчеты Абонемент | 245 | Shelter модуль Абонемент — Отчеты ПО | Один модуль на объект |
| 4 | 4 | Интерфейс с Gantner, PocketKey, Metra | 240 |
Shelter модуль Интерфейс Абонемент-Турникет + Gantner ПО
|
Один модуль на объект |
| 4 | 5 | Платежные системы Ассист, Робокасса, Резервмастер, CloudPayments | 231 | Shelter модуль Абонемент - Интерфейс связи с системой платежей Assist (Robokassa)ПО | Один модуль на объект |
| 4 | 6 | Монитор контролера | 211 | Shelter модуль Абонемент- монитор контролера ПО | Лицензируется по количеству одновременно запущенных экземпляров ПО |
| 4 | 7 | Инфо-плазма | 236 | Shelter модуль Абонемент- Инфоплазма ПО | Лицензируется по количеству одновременно запущенных экземпляров ПО |
| 4 | 8 | ------------------------------------------------------------------------------------ | |||
| 4 | 9 |
Доступ к базе сторонних программ (connecter) – кроме функций, защищенных 1.2-1.7, 4.5 (Больше не используется. Заменен на проект 1, модуль 1) |
232 | Shelter модуль Абонемент-Коннектор ПО (полное API) |
Лицензируется по количеству одновременно запущенных экземпляров ПО (подробнее про лицензирование Connecter см.статью о Connecter) |
| 4 | 10 | E-Mail и SMS рассылка (GuestAnnoncer) | 229 | Shelter модуль Абонемент - Интернет и СМС рассылка ПО | Один модуль на объект |
| 4 | 11 | Интерфейс связи с Cognitivе, Regula (сканеры паспортов) | 230 |
Shelter модуль Абонемент - Интерфейс к системе сканирования документов ПО
|
Один модуль на объект |
| 4 | 12 | Выгрузка в 1С | 209 |
Shelter модуль Абонемент – интерфейс 1С:Бухгалтерия ПО
|
Один модуль на объект |
|
|
|
|
|
|
|
| 5 | 1 | Атол-Онлайн, CloudKassir | 311 |
Shelter модуль Абонемент - Интерфейс Cloud ФР (Атол-онлайн, CloudKassir) ПО
|
Один модуль на объект |
| 5 | 2 | Абонемент - Прокат | 302 | Shelter модуль Абонемент - Прокат ПО | |
| 5 | 3 | Интеграция с Мобифитнес | 308 | Shelter модуль Абонемент - интеграция с Мобифитнесс | Один модуль на объект |
| 5 | 4 | Мобильный турникет | 315 | Shelter модуль Абонемент - Мобильное приложение 'Мобильный Турникет' ПО | Лицензируется по количеству одновременно работающих мобильных приложений. |
| 5 | 5 | Абонемент Lite | 301 | Shelter модуль Абонемент-Менеджер LITE Фитнесс ПО | Один модуль на объект (2 рабочих места) |
| 5 | 6 | Интерфейс с внешними ПДС через FarCards | 304 | Shelter модуль Абонемент - Интерфейс с внешними ПДС через FarCards | Один модуль на объект |
| 5 | 7 | Автозапуск мероприятий, работа с устройствами | Shelter модуль Абонемент — Автозапуск мероприятий, работа с устройствами | Один модуль на объект | |
| 5 | 8 |
Интеграция с StoreHouse
|
303 |
Shelter модуль Абонемент — Интеграция с StoreHouse
|
Один модуль на объект |
| 5 | 9 | ------------------------------------------------------------------------------------ | |||
| 5 | 10 | ------------------------------------------------------------------------------------ | |||
| 5 | 11 | ------------------------------------------------------------------------------------ | |||
| 5 | 12 | ------------------------------------------------------------------------------------ | |||
| 6 | 1 | Shelter WEB | |||
| 6 | 2 | Интерфейс Shelter с HotBot | Один модуль на объект | ||
| 6 | 3 | Модуль для Хостес (Ресторан) | |||
| 6 | 4 | ------------------------------------------------------------------------------------ | |||
| 6 | 5 | ------------------------------------------------------------------------------------ | |||
| 6 | 6 | ------------------------------------------------------------------------------------ | |||
| 6 | 7 | ------------------------------------------------------------------------------------ | |||
| 6 | 8 | ------------------------------------------------------------------------------------ | |||
| 6 | 9 | ------------------------------------------------------------------------------------ | |||
| 6 | 10 | Горничные WEB |
Примеры форм разработанных для вывода на ФР, имеющиеся в поставке версии Абонемент 1.128: CheckInfo, prechecksmall, guestscheduleFR.
Прочие доступные параметры секции [hw] ini файлов печатных форм для печати на ФР.
Copies - количество печатаемых копий (по умолчанию - 1)
CutAfterEveryCopy - обрезать после каждой копии (1-отрезать, 0- не отрезать. По умолчанию - 0 ). Применяются для PrinterType=1
CutAfterLastCopy - обрезать после последней копии (1-отрезать, 0- не отрезать. По умолчанию - 0 ). Применяются для PrinterType=1
Последние два параметра имеет смысл использовать только на ФР, при установленном в настройках УДФР секции [Main] параметре CutAfterPrint = 0, и только на ФР, позволяющих подобную работу (АТОЛ, ШТРИХ). В таком случае, по умолчанию, после печати нефискальной информации лента отрезаться не будет. Отрезка будет производиться только при передаче соответствующих команд из Абонемент, генерация которых, для конкретной печатной формы, настраивается вышеописанными параметрами.
С версии Абонемент 129, в печатных формах доступны следующие функции:
Таким образом, из печатной формы можно посимвольно производить печать любых данных на ФР.
Обновление БД и ПО.
!!!ВНИМАНИЕ!!!
Перед проведением обновления у Заказчика, рекомендуем сначала проверить все у себя в офисе на сборке клиента. Во избежание возникновения сбоев в работе ПО Абонемент, а так же безвозвратного повреждения рабочей версии программы и базы данных, необходимо сделать резервную копию БД и ПО. В случае сбоя при обновлении уже на объекте, развернуть резервную копию, тем самым восстанавливая работоспособность объекта, после чего все проверить на копии.
0.Подготовка.
Проверяем текущую версию ПО и БД Абонемент. Сделать это можно при загрузке ПО, во время появления окна ввода логина и пароля пользователя:

Проверить версию ПО можно, выбрав пункт меню "Сервис" -> "О программе":

Существует второй метод уточнить версию БД, но использовать его рекомендуется только в случае отсутствия данных об установленной версии ПО и БД, и невозможности произвести запуск ПО Абонемент. Запускаем IBEXPERT.exe и подключаемся к БД объекта (см. инструкцию), открываем procedures, там находим в самом низу SYS$VERSION_FITNESS, открываем данный параметр, и смотрим установленную версию БД.
Заходим в разархивированную папку актуальной версии FullVersion… , и находим там файл version.txt, в нём находится вся необходимая информация для обновления. Находим рекомендации по обновлению поиском в файле по номеру версии программы, которая установлена на данный момент.
1. Обновление базы.
1.1 Запускаем IBEXPERT.exe и подключаемся к БД объекта (см. инструкцию). Запускаем окно выполнения скриптов сочетанием Ctrl+F12. Проверяем, чтобы в верхней строке стояла галочка "Use current connect". В файле version.txt находим рекомендации по обновлению - поиск можно произвести по номеру версии программы.
Встречаются как *.sql файлы типа 1.115.sql, так и файлы developer.sql & housekeeping2.sql - разберем последние два.
Housekeeping2.sql из папки updatesql нужно выполнить после обновления на 114-ую версию, после 116-ой - выполнить \HouseKeeping\SQL\HouseKeeping2.sql
developer.sql в идеальном случае (при обновлениях на одну-две версии) должен устанавливаться только один раз, самым последним по списку. Но на практике, при обновлениях со старых версий, его нужно выполнять несколько раз, так как иначе Вы увидите ошибки при выполнении остальных скриптов. По ссылке вы можете найти архив со всеми developer.sql от всех версий - для безошибочного обновления, нужно выполнять developer, соотвествующий каждой версии (как указано в version.txt).
Вы можете увидеть типовые проблемы, возникающие при неправильном использовании developer, в следующих задачах: #100605 или #100535.
ВНИМАНИЕ! В Файле developer.sql не должно быть следующих строк, если они есть и в обновляемой базе работает только ПО Абонмент, то их нужно удалить:
update RDB$RELATION_FIELDS set RDB$FIELD_SOURCE = 'D_1KMEMO' where (RDB$FIELD_NAME = 'STRVALUE') and (RDB$RELATION_NAME = 'DEFAULT_VALUES');commit;select * from sp_create_object('&Object=DROP_CONSTRAINT&Table=DEFAULT_VALUES&Name=IX_DEFAULT_VALUES_NAME');commit;select * from sp_create_object('&Object=CONSTRAINT&Table=DEFAULT_VALUES&Name=IX_DEFAULT_VALUES_REF_NAME&Params=REFTYPE,REF,NAME');select * from sp_create_object('&Object=INDEX&Table=DEFAULT_VALUES&Name=IX_DEFAULT_VALUES_OLD_NAME&Params=NAME');commit;
1.2 Возвращаемся к рекомендациям по обновлению начиная с текущей версии БД, открываем папку updatesql, и устанавливаем поочерёдно все *.sql файлы включая developer.sql & housekeeping2.sql, в том порядке, который мы определили на предыдущем шаге. ОШИБОК быть не должно!!! ВНИМАТЕЛЬНО отнеситесь к файлам developer.sql & housekeeping2.sql, установите их вовремя!!!
1.3 При обновлении на некоторые версии, требуются обновления FireBird
1.4. Если позволяет время, то рекомендуем после обновления провести backup-restore базы данных абонмент. Восстановленную после restore базу установить как рабочую. Более подробно о этой процедуре см тут.
1.5. При возникновении ошибки вида "This operation is not defined for system tables. unsuccessful metadata update. cannot delete. COLUMN DIARY.CALC_STARTTIME. there are 1 dependencies." отключите на время обновления логирование таблицы, указанной в ошибке (в данном случае - DIARY)
2. Обновление программы
2.1 Выписываем поочередно, какие файлы, программы, DLL`ки и настройки необходимо менять при каждом переходе. Все одинаковые замены сводим до самой актуальной, и проводим обновление файлов, программ, DLL`ок и настроек. (Пример: обновляясь с версии 1.115 до 1.121, видим, что в рекомендациях к переходу на каждую из версий вверх требуется обновлять файл abonementmanager.exe, нам необходимо поменять его только один раз на версию 1.121.
2.2 Если требуется, выполните обновления служебных утилит gkhostconnect, TcpCardReader и д.р. которые заявлены при обновлении.
3. Проверка работоспособности обновлённой версии ПО и БД.
3.1 Замените ПО и БД на рабочих местах на обновлённую версию, и произведите запуск ПО. В случае сбоя разверните на рабочем месте резервную копию для восстановления работоспособности, и повторите действия данной инструкции.
Данная форма поставляется в комплекте ПО "Абонемент" (/../FullVersionVer.../exe/frf/card_print.fr3), для ее работы требуются следующие файлы, при этом файлы card_print_d1_1.jpg, card_print_d1_2.jpg, card_print_d2_1.jpg, card_print_d2_2.jpg отвечают за дизайн печатаемой карточки, их можно видоизменять под собственные требования (при этом необходимо соблюдать размер рисунка и область отображения фотографии гостя):

Рис.1 Файлы требующиеся для работы формы






Для настройки логирования любых изменений в БД Абонемент используется утилита IBHistory.
|
Рис.1 Внешний вид утилиты IBHistory |
Внешний вид окна утилиты представлен на рис.1.
Кнопки:
Сохранить конфигурацию базы
Служит для внесения изменений в базу данных по завершению настройки логируемых полей
Загрузить конфигурацию из cfg-файла
Необходима для загрузки ранее сохраненной конфигурации
Сохранить конфигурацию в cfg-файле
Используется для сохранения текущих настроек, для дальнейшего экспорта.
Обновить (перезагрузить из базы)
Назначение не нуждается в комментариях.
В интерфейс так же имеются две таблицы, в которых перечислены все имеющиеся в выбранной БД таблицы в левой части, и их поля в правой.
В левой таблице имеется колонка «Включить лог», при установке флажка в которой будет включено логирование таблицы.
Рядом с ней расположена колонка «Показывать все», включение флага в которой приведет к включению логирования всех полей этой таблицы.
Если в этом нет необходимости, то нужно в правой части в колонке «Показывать» выбрать какие конкретно поля включить в список логируемых.
|
Рис.2 Внешний вид утилиты IBHistory в процессе настройки |
Колонка «название для отображения» служит для определения названия в колонке «параметр истории изменений» при просмотре истории.
В колонке «SQL-запрос для подмены» можно добавить sql-запросы, для преобразования значений, выводимых в лог в легко читаемом виде.
Например, при изменении скидки на абонемент (поле DISCOUNTID таблицы PACKAGE_KINDS) в полях старое и новое значение отобразятся ID скидки, не имеющие ничего общего с ее реальным размером.
Если же добавить в подмену запрос:
select name from discounts where id=:param
То результатом будет не ID, а наименование скидки, что гораздо удобнее.
:param – переменная, которой присваивается изначальное значение (в данном примере ей присвоился DISCOUNTID)
Алгоритм настройки следующий:
С этого момента будет вестись логирование выбранных полей.
Есть несколько вариантов просмотра лога.
Он ведется в таблице SYS$LOG. Таким образом, первый вариант – смотреть изменения в IBExpert. Конечно, он не годится для обычного пользователя.
Второй вариант – кнопка «История изменений» в Абонементе.
|
Рис.3 Кнопка "Показать историю изменений" в интерфейсе основного модуля Абонемент |
ВАЖНО
История отображается только для выбранного объекта (т.е выбрав, например, тип абонемента, и нажав на кнопку "Показать историю изменений" мы видим только его историю, не других).
|
Рис.4 Просмотр лога изменений, на примере изменения названия объекта в общих параметрах |
К сожалению подробного описания соответствия таблиц и полей их назначения в Абонемент нет. Большая часть таблиц минимально описаны в данной вики.
Не рекомендуется включать логирование частоизменяемых таблиц (например: ACCESS_CONTROL_LOG), поскульку логирование изменения данных таблиц приведёт к увеличению скорости роста БД.
Часто, в следствие использования базы без бэкапирования, для целей обучения и/или обкатки объекта, появляется необходимость очистки базы, с сохранением всех настроек.
Удалить всех клиентов, оплаты и кассовые смены, сохранив при этом все настройки абонементов, тарфов и пр., возможно.
Для этого нужно:
1. Запустить IBExpert, подключится к базе.
2. Запустить sqlEditor и выполнить следующий запрос:
select text from SPADM_CLEARUP_PREPARE('&CHECK_FIELDS_IN_WORKTABLES=1' ||'&CHECK_WORKTABLES=1' ||'&DELETE_STAFF=0' ||'&DELETE_USER=0');3. Результатом выполнения запроса будет скрипт, который требуется выполнить в Script Executive. По окончании выполнения скрипта, база будет очищена в соответствии с указанными параметрами.
Примечание:
Если два первых параметра установлены в 1, то скрипт на выходе, очистит все действия из базы (оплаты, трансферы, посещения, клиенты), третий параметр отвечает за очистку списка специалистов, и четвёртый отвечает за удаление всех зарегистрированных пользователей Абонемент.
ВАЖНО
После выполнения полученного скрипта, на существующих киосках становиться невозможно открыть смену.
Для устранения данной проблемы требуется применить скрипт:
update pos p set p.shift = 1 where p.id = 1 and p.shift = 0
Или же, можно средствами Абонемента создать новый киоск и продолжать работу на нём, деактивировав имеющийся.
Скрипт очистки будет поправлен в ближайших версиях и данная процедура больше не понадобится.
В программе Абонемент доступна возможность контроля занятых шкафчиков.
Благодаря этому функционалу в программе, а также в отчетах видно, какой шкафчик занят конкретным клиентом, что позволяет избежать конфликтных ситуаций, например:
Для настройки данного функционала требуется:
Настроить ресурсы в Абонемент следующим образом:
|
Рис.1 Настройки - Карточка категории ресурса. |
Рис.2 Настройки - Карточка типа ресурса. |
|
Рис.3 Настройки - Карточка ресурса. |
Рис.4 Настройки - Общие параметры. |
Далее создать отдельный ресурс на каждый шкафчик. Для каждого шкафчика в поле "Бар-код" добавить считываемый Абонементом номер идентификатора ключа для данного шкафчика (рис.3).
В настройках, в общих параметрах поставить галку Идентификаторы -> "Отмечать присутствие при выдаче/изъятии идентификатора" (рис.4).
После завершения настроек в Абонемент требуется в IBEXPERT выполнить в script executive следующий скрипт:
execute procedure xx_fill_services_rooms_chayka(ROOMKIND,PHYSTYPE,DELETEPREV,''); commit;
|
Рис.5 Применение скрипта для обновления списка контролируемых ресурсов. |
В текущей конфигурации Абонемент, существует возможность выполнять любые запросы к БД через связку двух файлов .bat и .sql.
Данное решение позволяет решить много небольших задач, по автоматизации некоторых действий в Абонемент. (Например автоматический перевод смены)
Для этого, вам понадобится правильно настроенный .bat файл, например следующего вида:
set mytime=%time% set mydate=%date:~-10% rem set mydate=%mydate:~6,4%%mydate:~3,2%%mydate:~0,2% set mydt=%mydate% %mytime% set isql="C:\Program Files\Firebird\Firebird_2_5\bin\isql.exe" set inputfile=random_query.sql set outputfile=result_random.txt echo %mydt% >> %outputfile% %isql% -input %inputfile% -output %outputfile%
Где:
set isql="C:\Program Files\Firebird\Firebird_2_5\bin\isql.exe" - путь к рабочему экземляру утилиты isql из поставки FireBird;
set inputfile=random_query.sql - путь к файлу с подготовленным для выполнения запросом;
set outputfile=result_random.txt - путь к файлу результатов выполнения запросов.
Файл запроса random_query.sql должен иметь следующий вид:
CONNECT '127.0.0.1/3080:C:\_UCS\FITNESS\IBDATA\FITNESS.FDB' USER 'ucs' PASSWORD 'ucs';
select count(id) from guests where regdate between (floor(d2dbl('now')-1)) and (floor(d2dbl('now')));
commit work;Где:
'127.0.0.1/3080:C:\_UCS\FITNESS\IBDATA\FITNESS.FDB' - адрес БД, на которой необходимо выполнить запрос, далее текст выполняемого запроса.
Файлы описанные в данном примере позволяюют получить в текстовом файле датированные данные о количестве гостей зарегистрированных в БД за предыдущий день. Запуск .bat файла можно производить как вручную, так и любым доступным планировщиком.
Пример файла результата (result_random.txt):
30.07.2018 0:15:34,16
COUNT
============
10 Другие доступные примеры можно найти в поставке Абонемент по пути FullVersion\_UTILS\_BAT\
Порядок действий:
1. Отключить питание, СОМ. Снять кассету.
2. Снять защитную крышку под кассетой. (С надписью "lift here to open")
|
3. Аккуратно отщёлкнуть разъём (рамку) для чипа (похож на разъём для сим карты).
![]() |
4. Вставить чип в рамку. Закрыть и защёлкнуть рамку.
|
![]() |
4. Подать питание на купюроприёмник.
6. Купюроприёмник начинает мигать (зелёный-красный). Дождаться, когда начнёт мигать одним цветом (красным) (около 40 секунд).
7. Отключить питание.
8. Изъять чип. Закрыть защитную крышку. Вернуть кассету на место. Подключить СОМ, подключить питание.
9. Из тестовой утилиты получить таблицу купюр (Get Bill Table). Вписать данные в параметры устройства в ядре киоска.
|
![]() |
10. Запустить киоск (???)
11. Купюроприёмник принимает новые купюры (Profit!)
Важно!!!!
Независимо от протокола по которому купюроприёмник работал до прошивки, конечный протокол зависит от прописанного в новой прошивке.
(В случае, протестированной в офисе - купюроприёмник переводится в протокол CCNet)

iiko при оплате на специальным платежом обращается к Connecter, который обращается к ShelterConnect.dll, которая работает с базой данных Абонемент.
Используемые версии ПО:
Команды для закрытия из iiko защищены ключом, необходимо иметь проект 2 модуль 12 в используемом ключе защиты.
Используются те же файлы, что и при интеграции с RKeeper 7, доступны тут
Выполняются специалистами, устанавливающими iiko (https://ru.iiko.help/articles/#!special-iiko/ucsshelter)
| Кейс | Результат |
|---|---|
| Закрытие по номеру ФОЛИО | После ввода номера фолио в iiko отображается гость, администратор визуально идентифицирует его по фотографии и подтверждает. Заказ закрывается, на фолио гостя начисляется услуга. При просмотре внешнего чека можно увидеть подробную информацию о заказе. |
| Закрытие на номер по номеру карты гостя | После ввода номера карты гсотя/считывания карты гостя в iiko отображается гость, администратор визуально идентифицирует его по фотографии и подтверждает. Заказ закрывается, на фолио гостя начисляется услуга. При просмотре внешнего чека можно увидеть подробную информацию о заказе. |
| Закрытие по номеру карты поселения | После ввода номера карты поселения/считывания карты поселения в iiko отображается гость, администратор визуально идентифицирует его по фотографии и подтверждает. Заказ закрывается, на фолио гостя начисляется услуга. При просмотре внешнего чека можно увидеть подробную информацию о заказе. |
| Закрытие по номеру комнаты | После ввода номера комнаты в iiko отборажается проживающий в ней гость, администратор визуально идентифицирует его по фотографии и подтверждает. Заказ закрывается, на фолио поселения начисляется услуга. При просмотре внешнего чека можно увидеть подробную информацию о заказе. |
| Закрытие на незаселенный номер | После ввода номера в iiko отбражается соответствующая ошибка. |
| Закрытие на номер комнаты с несколькими проживающими | После ввода номера комнаты в iiko отборажаетсясписок проживающих в ней гостей. Если проживающие заселены местами и у каждого собственное фолио, то заказ будет закрыт на фолио поселения выбранного гостя, иначе - на общее фолио поселения. |
| Закрытие с разными TRANSACTION_ID | В iiko есть возможность настроить передачу различных TRANSACTION_ID для начисления разных услуг на фолио, например "Бар" и "Кухня". Как настроить необходимо уточнять у специалистов iiko. |
| Отмена чека | При отмене чека создается соответствующая корректирующая транзакция на целевом фолио. |
| Закрытие на фолио с недостатком баланса | При попытке закрыть заказ iiko сообщает об ошибке |
| Закрытие со скидкой | При закрытии чека со скидкой можно увидеть соответствующую информацию (полную стоимость, сумму и название примененной скидки) при просмотре внешнего чека. |
Недочеты, которые будут устранены в ближайшее время: при нехватке средств на фолио, ошибка не отображается в читабельном виде, вместо нее отображается "SCRK6/6.0.1: Ok".
Просмотр внешнего чека (Shelter)
Для просмотра внешнего чека используется rk6check.fr3 (включена в базовую поставку Shelter актуальных версий).
Для корректного отображения содержимого чека iiko необходимо :
1. В ..\Firebird\udf\ скопировать shrk6udf.dll и shrk6udf.ini (эти файлы можно найти в базовой поставке FullVersion актуальных версий)
2. В shrk6udf.ini настроить так :
3. Перезапустить службы FireBird, выполнить закрытие на номер, проверить результат.

Shelter настроен на первую базу данных и отвечает за автоматизацию гостиничного сектора. Абонемент настроен также на отдельную базу данных и отвечает за автоматизацию СПА сектора заведения. Две базы одновременно возможно использовать на одном физическом сервере под управлением одной СУБД FireBird.
Гость первоначально заселяется в Shelter, и ему автоматически создается фолио поселения. В случае, если гость не планирует использовать СПА услуги, то система Абонемент о нем ничего не узнает.
Если гость заселен по тарифу с услугами СПА комплекса, то необходимо на карточке гостя (бумажный носитель) отметить эту информацию. Затем гость проходит на ресепшен СПА, где гостя должны повторно зарегистрировать - уже в Абонемент - вручную, и добавить гостю предопределенный абонемент с нулевой стоимостью на срок проживания гостя. В следующих версиях появится интерфейс для автоматической регистрации гостя при заселении в Shelter по тарифу для СПА. В Абонемент будет переноситься информация по анкетным данным гостя и создаваться абонемент на посещение. Так же будет автоматически проверяться, не выехал ли ещё гость, для своевременной деактивации абонемента на посещение СПА. Для такой ситуации, отдельная касса для Абонемента не нужна, но желательно подключить ролловый чековый принтер.
Если гость не планирует посещать гостиницу и оплачивать свои услуги там, то все данные о нём будут храниться в ПО Абонемент (со своей отдельной кассой).

Рис.1 - Создание фолио в Шетлер (поселение гостя)

Рис.2 Выбор типа оплаты

Рис.3 Выбор номера\фолио - Вводим номер комнаты/Прикладываем карту (в случае, если требуется использовать ключ от номера (идентификатор в Shelter) для закрытия из Абонемента) - Для выбора фолио, нужно перед номером поставить точку "." или букву F ("F" или "f").

Рис.4 Выбор гостя из проживающих в номере.

Рис.5 Фолио гостя в Гостинице после закрытия на номер.

Рис.6 Фолио гостя в Абонементе после закрытия на номер.

Рис.7 Создание вида платежа
TransactionID в данном случае - это та же переменная, возможные значения которой указаны слева от знака равно в секции [TranslateOperation] ShelterConnect.ini - справа от знака равно там указан соответствующий тип операции в Shelter (бар, ресторан, тд). TransactionID это ID, а не КОД типа оплаты (в данном случае - Закрытия на номер). Если соответствие не задано, возникает ошибка SCRK6/5.3: Error 208. Unsubstituted client operation 77 (тут 77 - айди типа оплаты).
Параметры секции [charset] вкупе с useutf=1 выше отвечают за настройки кодировки и могут меняться - подробнее об этом - в конце статьи. Для подключения к интерфейсу Фиделио нужно использовать PMS_Ifc.dll (настройка производится по аналогии с настройкой интеграции Fidelio и R-Keeper, более подробно см. статью "Интеграция RK6 с гостиничной системой "Opera" ("Fidelio")": http://support.ucs.ru/ru/node/4469).
Внимание! При изменении ini файлов shelterconnect, необходим перезапуск обеих утилит (АМ и Connecter).
Для работы требуется libiconv2.dll - можно найти в папке LIB базовой поставки FullVersion
В секции [TranslateOperation] необходимо задать строку XX=YYY где XX это код (id) типа оплаты "Закрытие на номер", который задаётся внутри программы (рис.7 в инструкции). В случае, если Вы хотите передавать именно его, нужно выставить в abonementmanager.ini TransactionID=-1. Иначе, нужно выставить любую цифру от нуля до 90, не_соответствующую другим типам оплаты, и в ShelterConnect.ini выставить соответствие ей.
[ExternalClient] IdentPhysType = 200
Параметры, отвечающие за кодировку, следующие (приводится пример с настройкой, подходящей большинству установленных объектов):
connecter.ini :
Для данных целей всегда должно быть UseUrlEncode=0
ShelterConnect.ini:
abonementmanager.ini:
Файлы программы лежат в папке \FullVersionVer...\UTILS
[tasks.XXX] exename = C:\Projects\DELPHI7\GKHOSTCONNECT\GKHOSTCONNECT2\gkhostconnect.exe ;Путь до исполняемого файла. Всегда следует использовать полный (абсолютный) путь. Именно этот файл служба ищет в процессах enabled=1 ;0 - не отслеживать этот exe, 1 - отслеживать. По умолчанию enabled=0 - не запускать parameters= ;Параметры командной строки для запуска exe CommandLine=C:\Projects\DELPHI7\GKHOSTCONNECT\GKHOSTCONNECT2\gkhostconnect.exe dodo
[tasks.XXX] DelayAfterStart=3000
Рекомендуется создавать отдельную копию утилиты для контроля запуска каждой необходимой программы. Для удобства, внутри ini-файла следует изменять имя и описание Службы. Например:
[Main] DisplayName = UCS Служба StarterA1 ;Имя сервиса - отображается в графе "Имя" в "Службах" ServiceName = StarterA1_1 ;Внутреннее имя сервиса (одно слово. Только латинские символы и цифры. Начинается с буквы) Description = UCS StarterA1 - ServerT1 ;Описание сервиса - отображается в графе "описание" в "службах"
Неполный список утилит, которым требуется контроль автоматического запуска:
Принципиально существует 2 вида замков для шкафчиков:
Некоторые системы позволяют программировать замок и задавать любой из этих режимов.
Все браслеты прикреплены к своим шкафчикам. При обслуживании гостя на ресепшен, посетителю уже выдают браслет от конкретного шкафчика.
Гостю выдается браслет. Все шкафчики по умолчанию открыты. Гость пройдя в раздевалку выбирает свободный шкафчик и прикладывая браслет к нему, закрывает его. На браслет пишется какой шкафчик может отрываться данным браслетом. Некоторые системы позволяют программировать сколько одновременно шкафчиков можно закрыть одним ключом.
Клиенту на ресепшен выдают браслет «Метра» и прикрепляют его в Абонементе как идентификатор. Гость пытается пройти через турникет, если вход разрешен, и турникет его пропускает, то номер данного браслета автоматически заносится в белый список системы Метра. Все браслеты из белого списка могут открывать шкафчик.
При выходе из ресурса через турникет, номер данного браслета удаляется из белого списка системы Метра. Гость подходит на ресепшен и сдает браслет.
Дополнительно ночью автоматически срабатывает программа, которая очищает весь белый список. Это нужно т.к. гости могли выйти минуя турникет.
Если гость потерял браслет, то его нужно вручную (по фамилии) найти в системе Абонемент и посмотреть номер данного браслета. Скорее всего, нужно зайти в систему Метра через WEB интерфейс и осуществить поиск по данному номеру. Узнать номер шкафчика.
(http://www.pocketkey.ru/e-lektronny-e-zamki/)
Используется формат Mifare. На ресепшен можно использовать считыватель IronLogic Z2 и прикреплять к гостю серийный номер. Когда гость входит в зону раздевалки, он выбирает свободный открытый шкафчик.
При выходе, турникет может считать специальную область памяти с браслета, проверить открыт или закрыт шкафчик и если гость оставил открытым шкафчик, то выпустить его через турникет. Если шкафчик закрытый, то турникет на выход не сработает и гость будет вынужден вернуться к шкафчику.
Для этого на турникете должен быть установлен специальный считыватель ACR122S. На контроллере турникета установлена специальная прошивка gk3_trn_3_0_0_55_ACR122. Тестировалось только на замке ZP-200R.
http://ironlogic.ru/il.nsf/htm/ru_Z495EHT
Предполагаемая схема работы (Аквапарк):
При продаже абонемента на посещение, в момент прикрепления идентификатора (браслета) мы делаем доработку и реализовываем протокол работы со считывателем RF-1996. На браслет всегда записывается LimitLocks = 1, а ID карты сохраняем как идентификатор гостя.
На турникетах на вход установлены контроллеры UCS и считыватели Matrix III RD-All в режиме RS232. Проверяется: разрешено ли посещение и гость проходит штатным образом. Начитается тарификация.
Выход. При выходе гость подходит к турникету, снимает браслет и передает его в окошко кассиру. Кассир прикладывает браслет к считывателю RF-1996. Мы проверяем закрыт или открыт шкафчик (параметр CountBorrow), если нет закрытых шкафов, то устанавливаем параметр LimitLocks = 0 и у себя в программе ставим ID данной карты в очередь на выход. Если шкафчик занят, то в очередь на выход браслет добавлен не будет и гостю нужно будет сходить открыть шкафчик. Кассир сразу же прикладывает браслет гостя к другому считывателю Matrix III RD-All, который подключен к контроллеру и турникета на выход, происходит проверка условий выхода в ПО абонемент, а так же находится ли данный браслет в очереди на выход или нет. Если браслет не в очереди, значит кассир не приложила к первому считывателю и турникет не откроется на выход. Так же предлагаем установить дополнительный считыватель на сам турникет и подключить его к контроллеру на выход — через него будут ходить только сотрудники. Для реализации схемы выхода требуются доработки. Также у кассира на выход установлен модуль инфоплазма, в которой отображаем почему запрещен выход.