Все настройки обмена задаются в конфигурационном файле /linuxcash/cash/exchangesystems/exchangers/config/cash/exchnagers.ini
.
Загрузка справочников
Smag-ukm4
Для загрузки справочников в формате smag-ukm4
необходимо:
- указать название конвертера в секции
[UPLOAD]
:converter
= smag-ukm4
, - сконфигурировать секцию загрузки
[upload.converter.smag-ukm4]
.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
flags | строковый | Список файлов-флагов, разделенный запятыми | В параметре указывается наименование файла-флага и полный путь до него. Наличие файла-флага в исходной директории указывает на то, что справочники полностью сформированы и могут быть загружены. Если файл-флаг отсутствует, то загрузка справочников не выполняется. Флаг Флаг | |
data | строковый | Список файлов-справочников, разделенный запятыми | В параметре указывается наименование файлов-справочников и полный путь до них | |
errorDest | строковый | Файл записи ошибок конвертирования | В параметре указывается полный путь до файла, в который записывается текст последней ошибки конвертирования. Если директория файла или сам файл не создан, то запись ошибки не производится. Файл удаляется при следующем запуске конвертирования | |
charset | строковый |
| Кодовая страница данных | По умолчанию 866 |
discount | строковый |
| Режим дисконтной системы | По умолчанию modern |
defaultRoleCode | числовой | Код роли пользователя по умолчанию | По умолчанию 3 | |
additionallyRoleCode | числовой | Код дополнительной роли пользователя | По умолчанию 2 | |
relationRolesBy | строковый |
| Связывать роль администратора с пользователем по его имени или коду | |
substringInAdminName | строковый | Подстрока, которую необходимо искать в имени пользователя, чтобы он стал администратором | По умолчанию Администратор | |
usersWithAdditionallyRole | числовой | Список кодов пользователей, имеющих дополнительные роли | По умолчанию ' ' |
[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
не будет добавлена.
[upload.converter.smag-ukm4.group2catalog] ; Связать товар с каталогом по коду группы ; Если товар входит в группу 1, а у группы 1 есть связка с каталогом 2, то в tmccatalog будет связка (код товара, код каталога 2) ; <код группы товара> = <код каталога> ;410 = 16 ;413 = 17
О связке товара с каталогом по коду группы при задании формата обмена на кассовом сервере можно прочитать в статье "SUPERMAG, SUPERMAG4 / Супермаг (КС)".
Smag-ukm
Для загрузки справочников в формате smag-ukm
необходимо:
- указать название конвертера в секции
[UPLOAD]
:converter
=
smag-ukm
, - сконфигурировать секцию загрузки
[upload.converter.smag-ukm]
.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
flags | строковый | Список файлов-флагов, разделенный запятыми | В параметре указывается наименование файла-флага и полный путь до него. Наличие файла-флага в исходной директории указывает на то, что справочники полностью сформированы и могут быть загружены. Если файл-флаг отсутствует, то загрузка справочников не выполняется. Флаг Флаг | |
data | строковый | Список файлов-справочников, разделенный запятыми | В параметре указывается наименование файлов-справочников и полный путь до них | |
errorDest | строковый | Файл записи ошибок конвертирования | В параметре указывается полный путь до файла, в который записывается текст последней ошибки конвертирования. Если директория файла или сам файл не создан, то запись ошибки не производится. Файл удаляется при следующем запуске конвертирования | |
charset | строковый |
| Кодовая страница данных | По умолчанию 866 |
format | строковый |
| Формат данных | Формат dat подразумевает обмен данными через текстовые файлы csv (данные, разделенные запятыми).Формат dbf – обмен данными через dbf файлы |
defaultRoleCode | числовой | Код роли пользователя по умолчанию | ||
additionallyRoleCode | числовой | Код дополнительной роли пользователя | ||
relationRolesBy | строковый |
| Связывать роль администратора с пользователем по его имени или коду | |
substringInAdminName | строковый | Подстрока, которую необходимо искать в имени пользователя, чтобы он стал администратором | По умолчанию Администратор | |
usersWithAdditionallyRole | числовой | Список кодов пользователей, имеющих дополнительные роли | ||
setMinPriceIfDiscountRestrictMissing | логический |
| Устанавливать минимальную цену при отсутствии ограничения по скидке | По умолчанию true |
[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
.
Если ограничение по скидке задано, то правило установки минимальной цены игнорируется.
Связка товара с каталогом по коду группы
Начиная с версии кассового ПО 4.6.80 связка товара с каталогом по коду группы задается в секции [upload.converter.smag-ukm.group2catalog]
.
При загрузке справочников товаров группе товаров с указанным кодом назначаются атрибуты каталога с указанным кодом. Если в связке указать несуществующий каталог, то в БД программы запись tmccatalog
не будет добавлена.
[upload.converter.smag-ukm.group2catalog] ; Связать товар с каталогом по коду группы ; Если товар входит в группу 1, а у группы 1 есть связка с каталогом 2, то в tmccatalog будет связка (код товара, код каталога 2) ; <код группы товара> = <код каталога> ;0000.0000.0000.0000.0001 = 1 ;0000.0000.0000.0000.0002 = 2
О связке товара с каталогом по коду группы при задании формата обмена на кассовом сервере можно прочитать в статье "SUPERMAG, SUPERMAG4 / Супермаг (КС)".
Smag-ukm-xml
Для загрузки справочников в формате smag-ukm-xml
необходимо:
- указать название конвертера в секции
[UPLOAD]
:converter = smag-ukm-xml
, - сконфигурировать секцию загрузки:
[upload.converter.smag-ukm-xml]
.
Дополнительно можно сконфигурировать секции:
- соответствия кодов единицы измерения
[upload.converter.smag-ukm-xml.measureMapper]
, - соответствие кодов групп ТН ВЭД типам ШК для реализации маркированного товара
[upload.converter.smag-ukm-xml.egaisTypeMapper]
.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
flags | строковый | Список файлов-флагов, разделенный запятыми | В параметре указывается наименование файла-флага и полный путь до него. Наличие файла-флага в исходной директории указывает на то, что справочники полностью сформированы и выгружены. Если файл-флаг отсутствует, то загрузка справочников не выполняется. По умолчанию | |
data | строковый | Список файлов-справочников, разделенный запятыми | В параметре указывается наименование файлов-справочников и полный путь до них. Для загрузки справочников с маркированными товарами необходимо чтобы в общей директории со справочником товаров располагался справочник TNVDCodes. По умолчанию | |
errorDest | строковый | Файл в который будет записываться текст последней ошибки конвертирования | В параметре указывается полный путь до файла, в который записывается текст последней ошибки конвертирования. Если директория файла или сам файл не создан, то запись ошибки не производится. Файл удаляется при следующем запуске конвертирования. По умолчанию | |
mapTnvdCodeToTmcType | логический |
| Маппинг маркированных товаров по кодам ТН ВЭД | По умолчанию |
[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 ; Маппинг маркированных товаров по кодам ТН ВЭД ; При отключенном маппинге маркированные товары будут выгружены ;mapTnvdCodeToTmcType = False [upload.converter.smag-ukm-xml.measureMapper] ; <соответствие кодов единицы измерения> ; <код единицы измерения - артикс> = <код единицы измерения - ukm> 1 = шт 2 = кг [upload.converter.smag-ukm-xml.egaisTypeMapper] ; <соответствие кодов групп ТН ВЭД типам ШК для реализации маркированного товара> ; <код типа ШК - артикс> = <коды групп ТН ВЭД от ukm через запятую> ; маппинг работает для товаров с egaisType 1 ; если код ТН ВЭД, указанный у товара, не найден в маппинге, товар будет прогружен с tmcType = 7 ;2 = 100,200,1020 ;3 = 900,1020,7890
Для указания местоположения справочников используется параметр data
, в котором указывается полный путь до файлов-справочников. При перечислении наименования файлов (вместе с путем до каждого справочника) указываются через запятую.
Загрузка справочников производится при наличии файла-флага, указывающего на то, что справочники полностью сформированы и выгружены на кассу. При отсутствии файла-флага загрузка справочников в БД не производится. Список флагов определяется параметром flags
, в котором прописывается полный путь до файлов-флагов. При использовании нескольких флагов они перечисляются через запятую (вместе с путем до каждого файла-флага).
При возникновении ошибок конвертирования справочников в формат AIF описание ошибки указывается в файле, заданном параметром errorDest
. В параметре указывается полный путь до файла. Файл с ошибкой конвертирования удаляется при следующем запуске процедуры. Если параметр не определен или директория для размещения файла отсутствует, то файл с ошибками не создается.
Возможность загрузки справочников с маркированными товарами определяется параметром mapTnvdCodeToTmcType
в секции [upload.converter.smag-ukm-xml]
. Соответствие кодов групп ТН ВЭД типам штрих-кодов для реализации маркированных товаров настраивается с помощью маппинга в секции [upload.converter.smag-ukm-xml.egaisTypeMapper]
. Если соответствие задано, то загрузка справочников с маркированнами товарами будет происходить следующим образом:
При значении mapTnvdCodeToTmcType
:
true
еслиegaisType
> 1, то поиск группы товаров будет осуществляться по соответствию значения поляTNVDcode
из справочника товаров значению поляID
из справочника ТН ВЭД. Код группы товаров, полученный по полюID
, сравнивается со значениями, заданными в маппинге:- если код группы товаров найден в маппинге, то при загрузке штрих-кодов товара в БД
Dictionaries
в таблицуBarcodes
будет загружен соответствующий тип товара в полеtmctype
, - если код группы товаров не найден в маппинге, то при загрузке штрих-кодов товара в БД
Dictionaries
в таблицуBarcodes
будет загружен тип маркированного товара(7)
в полеtmctype
.
- если код группы товаров найден в маппинге, то при загрузке штрих-кодов товара в БД
false
:- если
egaisType=3
илиegaisType=4
, то при загрузке штрих-кодов товара в БДDictionaries
в таблицуBarcodes
будет загружен тип маркированного товара(7)
в полеtmctype
, - если
egaisType
принимает любое другое значение (например,egaisType=10
), то при загрузке штрих-кодов товара в БДDictionaries
в таблицуBarcodes
будет загружен тип товара в полеtmctype
, который соответствует заданному вegaisType
значению.
- если
egaisType=1
) при любом значении настройки mapTnvdCodeToTmcType
считываются и загружаются в справочниках с признаком акцизного алкоголя tmctype=1
.Значение поля article
должно быть уникальным среди всех товаров и штрих-кодов в справочнике.
Заданы настройки:
Параметр mapTnvdCodeToTmcType
в секции [upload.converter.smag-ukm-xml]
включен в положение true
:
; Маппинг маркированных товаров по кодам ТН ВЭД mapTnvdCodeToTmcType = true
Маппинг в секции [upload.converter.smag-ukm-xml.egaisTypeMapper]
настроен следующим образом:
[upload.converter.smag-ukm-xml.egaisTypeMapper] 3 = 900,2402
Загрузка справочника с товаром с egaistype=3
осуществляется следующим образом:
Если у товара в справочнике значение поля
egaisType>1
(в данном случае<egaisType>3</egaisType>
), то будет получено значение поляTNVDcode
(в данном случае<TNVDcode>1</TNVDcode>
).Содержимое справочника товаров<item> <article>000019</article> <name>СИГАРИЛЛЫ КАФЕ КРЕМ 1/10 ШТ</name> <measure>шт</measure> <measprec>1</measprec> <groupId>6521</groupId> <egaisType>3</egaisType> <TNVDcode>1</TNVDcode> <taxgroupId>4</taxgroupId> <barcode> <id>8720400246144</id> <quantity>1</quantity> </barcode> <barcode> <id>8720400000210</id> <quantity>1</quantity> </barcode> <SubExcise>1</SubExcise> </item>
По значению поля
TNVDcode
в справочнике ТН ВЭД будет получено значение поляid
(в данном случае<id>1</id>
). После этого будет определено значение кода группы найденного товара в полеcode
(в данном случае<code>
2402</code>
).Содержимое справочника ТН ВЭД<group> <id>1</id> <code>2402</code> <name>Сигары, сигары с обрезанными концами, сигариллы и сигареты из табака или его заменителей</name> </group>
- По значению поля
<code>
2402</code>
будет осуществлен поиск типа товара, заданного в маппинге в секции[upload.converter.smag-ukm-xml.egaisTypeMapper]
(значения должны совпасть).
В данном случае значения совпали, значение типа товара будет загружено в БДDictionaries
в таблицуBarcodes
в полеtmctype
при загрузке штрих-кодов данного товара (в данном случаеtmctype=3
, что означает табачную продукцию).