Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

Версия 1 Следующий »

Конвертер импорта данных, работающий при помощи собственной базы данных MySQL, позволяет загружать информацию о покупателях, скидках, товарах, кассирах, налогах и т.д. на сервер УКМ 4 из внешней торговой системы.

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


Окно настройки конвертера на сервере УКМ показано на рисунке:

Форма создания.png


Описание полей конвертера:


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

Запускается - Указывается служба, через которую будет осуществляться обмен данными (при условии, что пользователь имеет право доступа к ресурсам). Существуют следующие варианты значений:

На сервере - обмен будет осуществляться через УКМ Сервера;

На терминале - обмен будет осуществляться через УКМ Клиент;

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

Путь для хранения журнала импорта - укажите путь до каталога, в котором будет храниться файл журнала импорта. Файл журнала будет сформирован в каталоге: "указанный_каталог/id_конвертера";

Срок хранения журнала импорта, дни - по умолчанию установлено значение 30 дней.


Магазины - Кликните по ссылке "Добавить магазины" для выбора магазинов и назначения им уникальных идентификаторов с которыми выгружаются данные из торговой системы;


Имя базы данных - Имя базы данных в СУБД MySQL, которая будет создана или к которой необходимо подключиться;
Примечание:
Если базы данных конвертера не существует, то ее необходимо создать с помощью SQL скрипта, который открывается по ссылке Скрипт создания БД.

Имя хоста - Имя или ip-адрес сервера базы данных (место расположения базы данных);

Имя пользователя - Имя пользователя для подключения к базе данных;

Пароль пользователя - Пароль пользователя, который подключается к базе данных;


Рекламная акция, в которую загружать скидки - Наименование рекламной акции (из списка зарегистрированных в системе), для которой будут загружаться данные о скидках;

Тип дисконтной системы, в которую загружать дисконтные карты - Наименование типа дисконтной системы (из списка зарегистрированных в системе), для которой будут загружаться данные о дисконтных картах;

Типы счетов в УКМ - Если в магазине ведется учет товара по счетам, то в данном поле указывается идентификатор счета в торговой системе, с которым будут выгружаться данные;


Скрипт создания БД - Ссылка на скрипт для создания базы данных предназначенной для обмена между сервером УКМ и торговой системой.

Принцип организации импорта данных

Обмен информацией производится через дополнительную базу данных MySQL. База создается самими пользователями. SQL-скрипт для создания структуры базы находится в дистрибутиве УКМ4 и доступен в момент создания конвертера (раздел Администрирование – Конвертеры). При создании базы указываются ее имя, пользователь и его пароль для подключения к ней. Примеры SQL-скриптов для создания базы:

create database import4; GRANT ALL ON import4.* TO ukm_import@'192.168.10.23' IDENTIFIED BY '1234' WITH MAX_USER_CONNECTIONS 10;

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

Стандартный импорт 4 структура.PNG

Протокол импорта данных основан на обмене сигналами между торговой системой и стандартным конвертером СуперМаг-УКМ V.4.0. Обмен сигналами производится системами через таблицу signal. Каждая операция по импорту данных сопровождается записью в таблице signal.

Значения сигнала о состоянии процесса


Внимание!
Начиная с версии MySQL 5.5, при написании запроса название таблицы "Signal" необходимо заключать в апострофы, т.к. слово "signal" является ключевым.

Пример запроса:

select count(*) from `signal` where `signal`='busy'

Значение сигнала о состоянии процесса импорта хранится в поле signal таблицы signal. Поле может принимать одно из следующих значений:

  • cumm – сигнал помещается торговой системой и означает, что торговая система подготовила данные, которыми необходимо полностью заменить данные в СуперМаг-УКМ V.4.0 (полная загрузка данных);
  • incr – сигнал помещается торговой системой и означает, что торговая система подготовила данные, которые содержат в себе только изменения (частичная загрузка данных);
  • busy – сигнал помещается СуперМаг-УКМ V.4.0 и означает, что конвертер выполняет импортирование данных (конвертер занят).

Первые два сигнала выставляются торговой системой по окончании операции экспортирования, поскольку являются сигналами начала процесса импортирования в СуперМаг-УКМ V.4.0.

Схема взаимодействия систем

Взаимодействие систем состоит из следующих шагов: 1. торговая система проверяет готовность СуперМаг-УКМ V4.0 принять данные. Если СуперМаг-УКМ V4.0 готов принять данные, то торговая система выполняет экспорт данных. Если СуперМаг-УКМ V4.0 не готов принять данные, то торговая система приостанавливает экспорт данных.

Для того чтобы убедиться в том, что СуперМаг-УКМ V4.0 готов принять данные, следует выполнить запрос:

select count(*) from signal where signal='busy'

Нулевое значение означает, что СуперМаг-УКМ V4.0 готов к приему данных.

2. Если СуперМаг-УКМ V4.0 готов принять данные, торговая система проверяет закончился ли предыдущий экспорт данных в СуперМаг-УКМ V4.0 (т.е. сигналов cumm или incr нет).

Если эти сигналы есть, то торговая система удаляет их.

3. Торговая система заполняет таблицы данных и формирует соответствующую запись в таблице signal. Запись в таблице signal информирует сервер СуперМаг-УКМ V4.0 о произведённых изменениях и одновременно является сигналом для начала операции импортирования.

4. Стандартный конвертер СуперМаг-УКМ V4.0 проверяет запись таблицы signal. Если запись хранит информацию о том, что торговая система подготовила данные, конвертер СуперМаг-УКМ V4.0 помещает значение busy в поле signal и начинает импорт данных. После чтения информации СуперМаг-УКМ V4.0 удаляет ее из таблиц.

5. По окончании процесса импорта конвертер СуперМаг-УКМ V4.0 удаляет сигнал о занятости из таблицы signal.

Очередь сигналов и данных

Приведенная схема взаимодействия систем работает для случая, когда экспортированные из торговой системы данные сразу импортируются в СуперМаг-УКМ V4.0. Если есть вероятность того, что СуперМаг-УКМ V4.0 не успеет обработать предыдущий экспорт данных из торговой системы до готовности нового, следует организовать очередь сигналов и данных. Для этого используется поле version, хранящее номер версии данных (номер экспорта данных из торговой системы).

Поле version хранится в каждой таблице данных и таблице сигналов. При подготовке данных поле version заполняется значением счётчика. При формировании сигнала поле signal.version имеет тоже самое значение, что и в данных. То есть, если к моменту готовности новой порции данных конвертер СуперМаг-УКМ V4.0 сообщает, что находится в процессе импортирования данных, либо не приступал к импортированию предыдущих данных, то необходимость в приостановке экспорта данных из торговой системы отпадает. В этом случае торговая система увеличивает номер версии на 1 и формирует новый пакет.

Полная и частичная загрузка данных

Стандартный конвертер поддерживает полную и частичную загрузку данных в СуперМаг-УКМ V4.0. В случае полной загрузки данные импортируются в СуперМаг-УКМ V4.0 без сохранения предыдущего состояния.

В случае частичной загрузки следует выделять две операции: добавление новой (или корректировка старой) и удаление записи. В последнем случае в поля delete в таблице данных установить значение «1». Значения всех полей, кроме ключевых, при удалении роли не играют. Эти поля могут оставаться пустыми или иметь значение по умолчанию.

Правила работы со свойствами товаров

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

Следует различать 2 разных типа свойств товаров. Свойства 1-го типа характеризуются тем, что их значения редко повторяются для разных товаров (как крайний случай, значения индивидуальны для каждого товара). К таким свойствам можно отнести артикул производителя, состав товара, сроки годности и т.д.

Свойства 2-го типа характеризуются тем, что их значения могут повторяться для многих товаров. Например, страна происхождения товара.

В данном конверторе нельзя загрузить произвольные типы и значения свойств 1-го типа. Загружаемый список ограничен полями в таблице item.

Для загрузки свойств 2-го типа предназначены следующие таблицы:

  • properties
  • property_values
  • available_receipt_item_properties
  • item_properties_type
  • item_property_values
  • var_property_values

Таблица properties содержит идентификаторы и названия типов свойств (например, свойства «СОРТ», «РАЗМЕР», «ПРОДАВЕЦ»):

Стандартный импорт 4 структура2.PNG

Возможные значения свойств загружаются в таблицу property_values:

Стандартный импорт 4 структура3.PNG

В таблице available_receipt_item_properties перечисляются те значения свойств, которые доступны кассиру при указании значения свойства:

Стандартный импорт 4 структура4.PNG

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

Для связи ТИПА свойства с конкретным артикулом, предназначена таблица item_properties_type. Наличие в этой таблице записи приводит к тому, что при выборе данного товара на кассе кассиру выводится список значений данного свойства (ограниченный таблицей available_receipt_item_properties) для выбора значения. Если требуется на кассе указывать значения свойства, которое не привязано к артикулу, то необходимо воспользоваться соответствующей кассовой операцией.

Таблица item_property_values предназначена для указания связи артикула с конкретным значением свойства товара. Если такая связь установлена, то кассир не будет выбирать значение свойства, оно будет присвоено строке чека автоматически. Существует аналогичная таблица var_property_values предназначенная для автоматического присвоения значения свойства при вводе товара по штрихкоду.

Передача данных о заказах в УКМ 4

Загрузка информации о заказах в УКМ 4 производится из таблиц order_order и order_var.

Требования к загрузке налоговых ставок

В связи с добавлением в УКМ 4 функционала автоматического мапирования ставок НДС со стороны УКМ 4 имеются новые требования к загрузке налоговых ставок через конвертеры: Для работы алгоритма автоматического выбора индекса ставки для ККТ при передаче данных о налогах через конвертеры УКМ 4 требуется указанием формулы налоговой ставки НДС в заданном виде.

Список НДС ставок ожидаемых конвертерами УКМ 4:

Рекомендуемое значение ставки до 01.01.2019Рекомендуемое значение ставки после 01.01.2019Допустимые варианты значенийОписание
118%20%18.00%, 20.00%НДС 18%/ НДС 20%
210%10%10.00%НДС 10%
30%0%0.00%НДС 0%
4Не облагаетсяНе облагается
Без НДС
518/118%20/120%
НДС 18/118 / НДС 20/120
610/110%10/110%
НДС 10/110

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

Примечание: Для ставок НДС 10%, 18%, 20% допустима форма передачи процента ставки: "XX%" и "XX.00%", например, 10.00% является допустимым значением ставки при передаче через конвертер.

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

3. Ставка не облагается может отсутствовать в справочнике налогов в нескольких случаях (это не вызовет проблем в работе кассовой системы):

  • При использовании опции "Формировать налоговые ставки автоматически, в соответствии с ФЗ РФ" для заказчиков с не основной системой налогообложения в чек всегда будет добавляться корректная ставка "не облагается" не зависимо от того, как заданы параметры ставки для списка карточек товаров для импорта.

Актуально для конвертеров:

 Стандартный 2 DBF импорт
 Стандартный 2 CSV импорт
 Супермаг Плюс CSV импорт
  • Ставка не облагается будет автоматически использоваться УКМ 4 при пустом справочнике налогов для добавления товаров в чек. Актуально для пользователей с не основной системой налогообложения, которые не выгружают налоги в УКМ 4 с любыми конвертерами.
  • Ставка не облагается будет использоваться УКМ 4 для объектов пользователя с не основной системой налогообложения во всех случаях: даже если эта ставка не загружена в справочник налогов УКМ 4 и не выбрана для товаров и справочник налогов не пуст. Актуально для пользователей, которые в одной системе УКМ 4 поддерживают работу как магазинов с основной системой налогообложения, так и магазинов с любой не основной системой налогообложения (например, ЕНДВ). Поддерживаются все конвертеры.

Таблицы

assortment_group_items

Предназначена для загрузки информации в весовые ассортименты (весы).

Название поля

Тип данных

Признак ключа

Значение

Описание

storevarchar(40)PKNOT NULLКод магазина в рамках значений ТС
ag_idint(11)PKNOT NULLИд.весового ассортимента (весов)
varvarchar(40)PKNOT NULL
pluvarchar(40)

Номер ячейки в весах
hot_keyvarchar(40)

Код «горячей клавиши»
exp_date1datetime

Срок годности (дата)
exp_date2int(11)

Срок годности (в днях)
versionint(11)PKNOT NULLНомер версии данных
statusint(11)
NOT NULLПризнак того, что запись устарела и должна быть удалена из БД кассового терминала: 1 – запись устарела; 0 – запись актуальна
deletedtinyint(1) unsigned
NOT NULLПризнак того, что запись устарела и должна быть удалена из БД кассового терминала: 1 – запись устарела; 0 – запись актуальна

assortment_groups

Весовые ассортиментные группы.

Название поля

Тип данных

Признак ключа

Значение

Описание

storevarchar(40)PKNOT NULLКод магазина в рамках значений ТС
idint(11)PKNOT NULLИд. ассортиментной группы
namevarchar(80)
NOT NULLНазвание ассортиментной группы
versionint(11)PKNOT NULLНомер версии данных
deletedtinyint(1)
NOT NULLПризнак того, что запись устарела и должна быть удалена из БД кассового терминала: 1 – запись устарела; 0 – запись актуальна

available_receipt_item_properties

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

Название поля

Тип данных

Признак ключа

Значение

Описание

property_codevarchar(20)PKNOT NULLКод свойства
value_idint(11) unsignedPKNOT NULLИдентификатор значения свойства
versionbigint(20)PKNOT NULLНомер версии данных
deletedtinyint(3) unsigned
NOT NULLПризнак того, что запись устарела и должна быть удалена из БД кассового терминала: 1 – запись устарела; 0 – запись актуальна

classif

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

  • Нет меток