Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: https://redmine.artix.su/issues/70587


Panel

Table of Contents


Info
Все настройки обмена задаются в конфигурационном файле /linuxcash/cash/exchangesystems/exchangers/config/cash/exchnagers.ini.

Загрузка справочников

Smag-ukm4

Для загрузки справочников в формате smag-ukm4 необходимо:

  • указать название конвертера в секции [UPLOAD]converter smag-ukm4,
  • сконфигурировать секцию загрузки [upload.converter.smag-ukm4].
Наименование
Тип данных
Возможные значения
Описание
Примечания
flagsстроковый

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

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

Флаг *.upd используется для загрузки справочников в дополнение к уже имеющимся данным.

Флаг *.cng используется для замены справочников в БД новыми

dataстроковый

Список файлов-справочников, разделенный запятыми

В параметре указывается наименование файлов-справочников и полный путь до них
errorDestстроковый
Файл записи ошибок конвертирования

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

Если директория файла или сам файл не создан, то запись ошибки не производится. Файл удаляется при следующем запуске конвертирования

charsetстроковый
  • utf_8
  • U8
  • UTF
  • utf8
  • cp1251
  • windows-1251
  • cp866
  • 866
  • IBM866
Кодовая страница данныхПо умолчанию 866
discountстроковый
  • modern
  • legacy
Режим дисконтной системыПо умолчанию modern
defaultRoleCodeчисловой
Код роли пользователя по умолчаниюПо умолчанию 3
additionallyRoleCodeчисловой
Код дополнительной роли пользователяПо умолчанию 2

relationRolesBy

строковый
  • name
  • code
Связывать роль администратора с пользователем по его имени или коду
substringInAdminNameстроковый
Подстрока, которую необходимо искать в имени пользователя, чтобы он стал администраторомПо умолчанию Администратор
usersWithAdditionallyRoleчисловой
Список кодов пользователей, имеющих дополнительные ролиПо умолчанию ' '


Code Block
languagetext
titleПример настройки
[UPLOAD]
...
; список конвертеров данных, разделенный запятыми (aif, oracle, shtrih, smag-ukm, smag-ukm4, users, crystal, atol)
converter = smag-ukm4
... 
[upload.converter.smag-ukm4]
; Список файлов-флагов, разделенный запятыми
;flags = /tmp/dict/smag/*.cng, /tmp/dict/smag/*.upd

; Список файлов-справочников, разделенный запятыми
;data = /tmp/dict/smag/*.dat

; Файл в который будет записываться текст последней ошибки конвертирования
;errorDest = /tmp/dict/smag/error.txt

; Кодовая страница данных.
; Примеры кодировок: utf_8, U8, UTF, utf8, cp1251, windows-1251, cp866, 866, IBM866 и др.
; По умолчанию 866
;charset = 866

; Режим дисконтной системы (modern, legacy)
; По умолчанию modern
;discount = modern

; Код роли пользователя по умолчанию
; По умолчанию 3
;defaultRoleCode = 3

; Код дополнительной роли пользователя
; По умолчанию 2
;additionallyRoleCode = 2

; Связывать роль администратора с пользователем по его имени или коду (name, code)
;relationRolesBy = name

; Подстрока, которую необходимо искать в имени пользователя, что бы он стал администратором
; По умолчанию Администратор
;substringInAdminName = Администратор

; Список кодов пользователей, которые имеют дополнительные роли, разделенные через запятые
; По умолчанию ''
;usersWithAdditionallyRole = 1,2,3

Для указания местоположения справочников используется параметр data, в котором указывается полный путь до файлов-справочников. При перечислении наименования файлов (вместе с путем до каждого справочника) указываются через запятую.

Загрузка справочников производится при наличии файла-флага, указывающего на то, что справочники полностью сформированы и выгружены на кассу. При отсутствии файла-флага загрузка справочников в БД не производится. Список флагов определяется параметром flags, в котором прописывается полный путь до файлов-флагов. При использовании нескольких флагов они перечисляются через запятую (вместе с путем до каждого файла-флага).

При возникновении ошибок конвертирования справочников в формат AIF описание ошибки указывается в файле, заданном параметром errorDest. В параметре указывается полный путь до файла. Файл с ошибкой конвертирования удаляется при следующем запуске процедуры. Если параметр не определен или директория для размещения файла отсутствует, то файл с ошибками не создается.

При загрузке справочников дисконтных карт может быть указан тип дисконтной системы в параметре  discount:

  • при значении параметра modern выполняется загрузка справочников карт в объектную дисконтную систему (новый дисконт),
  • при значении параметра legacy справочники карт загружаются в традиционную дисконтную систему (старый дисконт).

Связывание роли администратора с пользователем производится по имени или коду. Правила связки определяются параметром  relationRolesBy:

  • при значении параметра name права администратора назначаются пользователю, указанному в параметре substringInAdminName. Пользователю присваивается роль по умолчанию из параметра defaultRoleCode и дополнительная роль из параметра additionallyRoleCode,
  • при значении параметра code права администратора получает пользователь с кодом, указанным в параметре usersWithAdditionallyRoleПользователю присваивается роль по умолчанию из параметра defaultRoleCode и дополнительная роль из параметра additionallyRoleCode.

Подробнее о ролях пользователей и их взаимодействии можно прочитать в разделе "Роли".

Связка товара с каталогом по коду группы

При загрузке справочников товаров группе товаров с указанным кодом назначаются атрибуты каталога с указанным кодом. Если в связке указать несуществующий каталог, то в БД программы запись tmccatalog не будет добавлена.

Code Block
titleПример настройки
[upload.converter.smag-ukm4.group2catalog]
; Связать товар с каталогом по коду группы
; Если товар входит в группу 1, а у группы 1 есть связка с каталогом 2, то в tmccatalog будет связка (код товара, код каталога 2)
; <код группы товара> = <код каталога>
;410 = 16
;413 = 17

О связке товара с каталогом по коду группы при задании формата обмена на кассовом сервере можно прочитать в статье "SUPERMAG, SUPERMAG4, SUPERMAG_XML / Супермаг (КС)".

Smag-ukm

Для загрузки справочников в формате smag-ukm необходимо:

  • указать название конвертера в секции [UPLOAD]converter = smag-ukm,
  • сконфигурировать секцию загрузки [upload.converter.smag-ukm].
Наименование
Тип данных
Возможные значения
Описание
Примечания
flagsстроковый

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

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

Флаг *.upd используется для загрузки справочников в дополнение к уже имеющимся данным.

Флаг *.cng используется для замены справочников в БД новыми

dataстроковый

Список файлов-справочников, разделенный запятыми

В параметре указывается наименование файлов-справочников и полный путь до них
errorDestстроковый
Файл записи ошибок конвертирования

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

Если директория файла или сам файл не создан, то запись ошибки не производится. Файл удаляется при следующем запуске конвертирования

charsetстроковый
  • utf_8
  • U8
  • UTF
  • utf8
  • cp1251
  • windows-1251
  • cp866
  • 866
  • IBM866
Кодовая страница данныхПо умолчанию 866
formatстроковый
  • dat
  • dbf
Формат данныхФормат dat подразумевает обмен данными через текстовые файлы csv (данные, разделенные запятыми).
Формат dbf – обмен данными через dbf файлы
defaultRoleCodeчисловой
Код роли пользователя по умолчанию
additionallyRoleCodeчисловой
Код дополнительной роли пользователя

relationRolesBy

строковый
  • name
  • code
Связывать роль администратора с пользователем по его имени или коду
substringInAdminNameстроковый
Подстрока, которую необходимо искать в имени пользователя, чтобы он стал администраторомПо умолчанию Администратор
usersWithAdditionallyRoleчисловой
Список кодов пользователей, имеющих дополнительные роли
setMinPriceIfDiscountRestrictMissingлогический
  • true
  • false
Устанавливать минимальную цену при отсутствии ограничения по скидкеПо умолчанию true


Code Block
languagetext
titleПример настройки
[UPLOAD]
...
; список конвертеров данных, разделенный запятыми (aif, oracle, shtrih, smag-ukm, smag-ukm4, users, crystal, atol)
converter = smag-ukm
... 
[upload.converter.smag-ukm]
; Список файлов-флагов, разделенный запятыми
;flags = /tmp/dict/smag/*.cng, /tmp/dict/smag/*.upd

; Список файлов-справочников, разделенный запятыми
;data = /tmp/dict/smag/*.dat

; Файл в который будет записываться текст последней ошибки конвертирования
;errorDest = /tmp/dict/smag/error.txt

; Кодовая страница данных.
; Примеры кодировок: utf_8, U8, UTF, utf8, cp1251, windows-1251, cp866, 866, IBM866 и др.
; По умолчанию 866
;charset = 866

; Формат данных (dat, dbf)
; По умолчанию dat
;format = dat

; Код роли пользователя по умолчанию
; По умолчанию 3
;defaultRoleCode = 3

; Код дополнительной роли пользователя
; По умолчанию 2
;additionallyRoleCode = 2

; Связывать роль администратора с пользователем по его имени или коду (name, code)
relationRolesBy = code

; Подстрока, которую необходимо искать в имени пользователя, что бы он стал администратором
; По умолчанию Администратор
;substringInAdminName = Администратор

; Список кодов пользователей, которые имеют дополнительные роли, разделенные через запятые
; По умолчанию ''
usersWithAdditionallyRole = 1,2,3

; Устанавливать минимальную цену при отсутствии ограничения по скидке
; По умолчанию True
;setMinPriceIfDiscountRestrictMissing = True

Для указания местоположения справочников используется параметр data, в котором указывается полный путь до файлов-справочников. При перечислении наименования файлов (вместе с путем до каждого справочника) указываются через запятую.

Загрузка справочников производится при наличии файла-флага, указывающего на то, что справочники полностью сформированы и выгружены на кассу. При отсутствии файла-флага загрузка справочников в БД не производится. Список флагов определяется параметром flags, в котором прописывается полный путь до файлов-флагов. При использовании нескольких флагов они перечисляются через запятую (вместе с путем до каждого файла-флага).

При возникновении ошибок конвертирования справочников в формат AIF описание ошибки указывается в файле, заданном параметром errorDest. В параметре указывается полный путь до файла. Файл с ошибкой конвертирования удаляется при следующем запуске процедуры. Если параметр не определен или директория для размещения файла отсутствует, то файл с ошибками не создается.

Связывание роли администратора с пользователем производится по имени или коду. Правила связки определяются параметром relationRolesBy:

  • при значении параметра name права администратора назначаются пользователю, указанному в параметре substringInAdminName. Пользователю присваивается роль по умолчанию из параметра defaultRoleCode и дополнительная роль из параметра additionallyRoleCode,
  • при значении параметра code права администратора получает пользователь с кодом, указанным в параметре usersWithAdditionallyRole. Пользователю присваивается роль по умолчанию из параметра defaultRoleCode и дополнительная роль из параметра additionallyRoleCode.

Подробнее о ролях пользователей и их взаимодействии можно прочитать в разделе "Роли".

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

  • при значении параметра true минимальная цена товара принимает значение основной цены,
  • при значении параметра false в значение минимальной цены товара устанавливается 0.

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

Связка товара с каталогом по коду группы

Panel

Начиная с версии кассового ПО 4.6.80 связка товара с каталогом по коду группы задается в секции [upload.converter.smag-ukm.group2catalog].

При загрузке справочников товаров группе товаров с указанным кодом назначаются атрибуты каталога с указанным кодом. Если в связке указать несуществующий каталог, то в БД программы запись tmccatalog не будет добавлена.

Code Block
titleПример настройки
[upload.converter.smag-ukm.group2catalog]
; Связать товар с каталогом по коду группы
; Если товар входит в группу 1, а у группы 1 есть связка с каталогом 2, то в tmccatalog будет связка (код товара, код каталога 2)
; <код группы товара> = <код каталога>
;0000.0000.0000.0000.0001 = 1
;0000.0000.0000.0000.0002 = 2

О связке товара с каталогом по коду группы при задании формата обмена на кассовом сервере можно прочитать в статье "SUPERMAG, SUPERMAG4, SUPERMAG_XML / Супермаг (КС)".

Smag-ukm-xml

Для загрузки справочников в формате smag-ukm-xml необходимо:

  • указать название конвертера в секции [UPLOAD]: converter = smag-ukm-xml,
  • сконфигурировать секцию загрузки: [upload.converter.smag-ukm-xml].

Дополнительно можно сконфигурировать секции:

  • соответствие кодов групп ТН ВЭД типам ШК для реализации маркированного товара: [upload.converter.smag-ukm-xml.tmcTypeMapper],
  • cоотнесение кодов единиц измерения Artix и наименований единиц измерения SuperMag UKM: [upload.converter.smag-ukm-xml.measureMapper],
  • соотнесение наименований единиц измерения и опций количества товара: [upload.converter.smag-ukm-xml.quantityOptionsMapper],

  • соотнесение кодов групп товаров и свойств товара/штрих-кода: [upload.converter.smag-ukm-xml.tmcRestrictionsMapper].

Наименование

Тип данных

Возможные значения

Описание

Примечания

flagsстроковый

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

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

По умолчанию /tmp/dict/smag-ukm-xml/pos*.flz

dataстроковый

Список файлов-справочников, разделенный запятыми

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

По умолчанию /tmp/dict/smag-ukm-xml/*.xml

errorDestстроковый
Файл в который будет записываться текст последней ошибки конвертирования

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

Если директория файла не создана, то запись ошибки не производится. Файл удаляется при следующем запуске конвертирования

picklistPicturesPath строковый
Директория с изображениями товаров, входящих в состав пиклиста

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

По умолчанию /tmp/picklist/

cleaningFlagDictsстроковый
Список справочников, для которых нужно учитывать флаг очистки

В параметре указывается список справочников, разделенный запятыми.
Справочники доступные к очистке: updateItems, storePrices, storePricesAdd, taxes, alcocode (очищаются ещё и Items), classif,kit (очищаются ещё и items), storeCashiers, picklists

code
loadMRC
language
логический
text
  • True
titleПример настройки[upload.converter.smag-ukm-
  • False
Загружать альтернативные цены

Если настройка включена, то в качестве итоговой цены используется максимальное значение из списка МРЦ (поле MRCValue). Если настройка выключена, то для формирования итоговой цены используется минимальная цена (поле minprice).
По умолчанию True


Code Block
languagetext
titleПример настройки
[upload.converter.smag-ukm-xml]
; Список файлов-флагов, разделенный запятыми
flags = /tmp/dict/smag-ukm-xml/pos*.flz

; Список файлов-справочников, разделенный запятыми
data = /tmp/dict/smag-ukm-xml/*.xml

; Файл в который будет записываться текст последней ошибки конвертирования
;errorDest = /tmp/dict/smag-ukm-xml/error.txt  

; Директория с изображениями товаров, входящих в состав пиклиста
;picklistPicturesPath = /tmp/picklist/

; Список справочников, для которых нужно учитывать флаг очистки.
; В качестве разделителя названий справочников используются запятые
; Справочники доступные к очистке: updateItems,storePrices,storePricesAdd,taxes,
; alcocode (очищаются ещё и Items),classif,kit (очищаются ещё и items),storeCashiers,picklists
; cleaningFlagDicts =  

; Загружать альтернативные цены
; По умолчанию True
;loadMRC = True

[upload.converter.smag-ukm-xml.tmcTypeMapper]
; <соответствие кодов групп ТН ВЭД типам ШК для реализации маркированного товара>
; <код типа ШК - артикс> = <коды групп ТН ВЭД от ukm через запятую>
;2 = 100,200,1020
;3 = 900,1020,7890

[upload.converter.smag-ukm-xml.measureMapper]
; Соотнесение кодов единиц измерения Artix и наименований единиц измерения SuperMag UKM
; <код единицы измерения - Artix> = <код единицы измерения - SuperMag UKM>
1 = шт
2 = кг

[upload.converter.smag-ukm-xml.quantityOptionsMapper]
; Соотнесение наименований единиц измерения и опций количества товара
;кг = requirequantityscales,enablequantityscales  

[upload.converter.smag-ukm-xml.tmcRestrictionsMapper]
; Соотнесение кодов групп товаров и свойств товара/штрих-кода
;EGAIS = {"tmctype": 1, "age": 18, "alcoholpercent": 1.0, "ageverify": 1, "requiresalerestrict": 1, "egaisverify": 1}
;TOBACCO = {"tmctype": 3, "age": 18, "ageverify": 1, "requiresalerestrict": 1, "tobacco": 1}, "priceoptions" : {"enableexcisemarkprice": 1}}
;MARKED_GOODS = {"tmctype": 7}

Для указания местоположения справочников используется параметр data, в котором указывается полный путь до файлов-справочников. При перечислении наименования файлов (вместе с путем до каждого справочника) указываются через запятую.

Загрузка справочников производится при наличии файла-флага, указывающего на то, что справочники полностью сформированы и выгружены на кассу. При отсутствии файла-флага загрузка справочников в БД не производится. Список флагов определяется параметром flags, в котором прописывается полный путь до файлов-флагов. При использовании нескольких флагов они перечисляются через запятую (вместе с путем до каждого файла-флага).

При возникновении ошибок конвертирования справочников в формат AIF описание ошибки указывается в файле, заданном параметром errorDest. В параметре указывается полный путь до файла. Файл с ошибкой конвертирования удаляется при следующем запуске процедуры. Если параметр не определен или директория для размещения файла отсутствует, то файл с ошибками не создается.

При загрузке справочника с единицами измерения могут быть добавлены опции количества товара. Для этого необходимо в секции [upload.converter.smag-ukm-xml.quantityOptionsMapper] задать соотнесение наименований единиц измерения и опций количества товара.

Panel
titleПример соотнесения наименований единиц измерения и опций количества товара

Пусть необходимо добавить следующие опции для штук:

  • enabledefaultquantity – "Использовать количество по умолчанию из товара",
  • enablequantitymanual – "Разрешить ввод количества вручную".

Пусть необходимо добавить следующие опции для килограммов:

  • enabledefaultquantity – "Использовать количество по умолчанию из товара",
  • enablequantitybarcode – "Разрешить установку количества из штрих-кода".

Тогда соотнесение примет вид

Code Block
[upload.converter.smag-ukm-xml.quantityOptionsMapper]
; Соотнесение наименований единиц измерения и опций количества товара
шт = enabledefaultquantity,enablequantitymanual
кг = enabledefaultquantity,enablequantitybarcode


Загрузка справочников с маркированными товарами

Существует возможность загрузки справочников с маркированными товарами, данная возможность может задаваться как в настройках кассы, так и в настройках Artix Control Center.

При загрузке справочников для алкогольной, табачной продукции и остальных маркированных товаров могут быть добавлены свойства товара/штрих-кода. Для этого необходимо в секции [upload.converter.smag-ukm-xml.tmcRestrictionsMapper] задать соотнесение кодов групп товаров и свойств товара/штрих-кода. Для группы/групп товаров может быть задан собственный набор свойств.

Panel
titleПример соотнесения групп товаров и свойств товаров/штрих-кодов

Пусть есть группы товаров с кодами 123, 456, abc и marked.

Code Block
[upload.converter.smag-ukm-xml.tmcRestrictionsMapper]
; Соотнесение кодов групп товаров и свойств товара/штрих-кода

;Для алкогольной продукции
123,456 = {"tmctype": 1, "age": 18, "alcoholpercent": 40.0, "ageverify": 1, "requiresalerestrict": 1, "egaisverify": 1}
;Для табачной продукции
abc = {"tmctype": 3, "age": 18, "ageverify": 1, "requiresalerestrict": 1, "tobacco": 1, "priceoptions" : {"enableexcisemarkprice": 1}}
;Для любых маркированных товаров
marked = {"tmctype": 7}


Соответствие кодов групп ТН ВЭД типам штрих-кодов для реализации маркированных товаров настраивается в секции [upload.converter.smag-ukm-xml.tmcTypeMapper]. Для корректного соответствия необходимо загружать файл-справочник с ТН ВЭД кодами. 

Panel
titleПример соответствия кодов групп ТН ВЭД типам штрих-кодов

В секции [upload.converter.smag-ukm-xml.tmcTypeMapper] настроено соответствие:

Code Block
[upload.converter.smag-ukm-xml.tmcTypeMapper]
; <соответствие кодов групп ТН ВЭД типам ШК для реализации маркированного товара>
; <код типа ШК - артикс> = <коды групп ТН ВЭД от ukm через запятую>
1 = 0404

Из справочника товара получено значение поля TNVDcode:

Panel

<item>
    <article>004525</article>
    <name>СИДР 1 ШТ</name>
    <measure>шт</measure>
    <measprec>1</measprec>
    <groupId>4</groupId>
    <egaisType>1</egaisType>
    <TNVDcode>15</TNVDcode>
    <barcode>
      <id>4606419017460</id>
      <quantity>1</quantity>
    </barcode>
    <SubExcise>0</SubExcise>
  </item>
</updateItems>

По значению поля TNVDcode получено значение поля id в справочнике ТН ВЭД. По значению поля <id>15</id> определяется значение кода группы найденного товара:

Panel

<group>
    <id>15</id>
    <code>0404</code>
    <name>Сидры и прочие напитки сброженные</name>
 </group>

Осуществляется поиск типа товара по значению поля <code>0404</code>, заданного в секции [upload.converter.smag-ukm-xml.tmcTypeMapper]. При загрузке штрих-кодов товара в БД Dictionaries в таблицу Barcodes в поле tmctype будет загружено значение 1.

Загрузка справочников с альтернативными ценами

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

Если настройка loadMRC ("Загружать альтернативные цены") включена (поведение по умолчанию), то в качестве итоговой цены используется максимальное значение из списка МРЦ (поле MRCValue). 

Panel
titleПример 1. Использование максимального значения из списка МРЦ для формирования итоговой цены

<item article="3154">

   <price>

     <value>253</value>

     <minprice>135</minprice>

     <is_promo_price>0</is_promo_price>

     <MRC>

       <MRCValue>253</MRCValue>

       <MRCValue>243</MRCValue>

     </MRC>

   </price>

 </item>

Если настройка выключена, то в качестве итоговой цены:

  • для переоценок используется значение поля minprice,
  • для дополнительных цен используется максимальное значение среди полей minprice и value.
Panel
titleПример 2. Использование минимальной цены для формирования итоговой цены

<item article="3154">

   <price>

     <value>253</value>

     <minprice>135</minprice>

     <is_promo_price>0</is_promo_price>

     <MRC>

       <MRCValue>253</MRCValue>

       <MRCValue>243</MRCValue>

     </MRC>

   </price>

 </item>