ВНИМАНИЕ!
В данной статье приведены только некоторые настройки, необходимые для корректной работы конвертера Импорт XML. Ознакомиться с подробным описанием структуры файлов импорта можно ЗДЕСЬ.
Настройка выполняется в конфигурационном файле xml5_import.conf (services\converters\xml5_import.conf), расположенном на кассовом сервере по адресу: Магазин – Типы касс, где нужно выбрать тип кассы и нажать кнопку Настройки:
Загрузка данных о кассирах
В настройках есть три параметра для управления загрузкой кассиров:
- defaultRoleIdForUser – роль по-умолчанию;
- roleIdMap;
- createUserCard:
[ {externalId = 1, internalId = 1} {externalId = 2, internalId = 2} ] (соответствие между ролями во внешней системе (externalId) и в кассовой системе (internalId))
Правила загрузки параметров defaultRoleIdForUser и roleIdMap следующие:
- если в записи в файле storeCashiers отсутствует тег roleId или если тег roleId есть, но для него не указано мапирование во внутреннюю роль, то:
- если в базе нет кассира с идентификатором id, то в базу будет добавлена новая запись с ролью, указанной в параметре defaultRoleIdForUser=1;
- если базе есть идентификатор с таким id, то назначенная ему роль изменена не будет, но в остальные параметры будут записаны значения из файла;
- если в записи присутствует тег roleId, и для него указано мапирование данной роли во внутреннюю роль, то:
- если в базе нет кассира с идентификатором id, то в базу данных будет добавлена новая запись с ролью в соответствии с мапированием;
- если базе есть идентификатор с таким id, то существующая запись будет полностью заменена.
Пример:
<?xml version="1.0" encoding="UTF-8"?> <storeCashiers fullness="F" storeId="00-000001"> <cashier> <id>12</id> <name>Лисник М. В.</name> <password>123345</password> </cashier> <cashier> <roleId>3</roleId> <id>10</id> <name>Иванюк И. В.</name> <password>34567</password> </cashier> </storeCashiers>
Если параметр createUserCard установлен в значении true, то для каждого кассира создается карта. В дальнейшем, кассир может индентифицироваться на кассе по данной карте (либо по имени и паролю). В содержимое карты записывается содержимое поля password при ее создании или при изменении записи о кассире.
Конвертирование из "внешнего" XML-формата во "внутренний" документ
{ "converters.xml5_import_converter_plugin": { params : { inputFolderName = "/home/ukm5/mint/exchange/converters/in" (каталог, куда торговая система выкладывает данные) outputFolderName = "/home/ukm5/mint/exchange/items/in" (каталог, куда конвертер выгружает входную информацию, преобразованную во внутренний формат) archiveFolderName = "/home/ukm5/mint/exchange/converters/xml_in_archive" (каталог, куда конвертер «складывает» обработанные файлы) tempFolderName = "/home/ukm5/mint/exchange/converters/xml_in_tmp" scanDelay = 60 seconds (частота, с которой конвертер просматривает входной каталог inputFolderName) storeIdMap: [ (соответствие кодов магазинов во внешней системе (externalId) и магазинов в УКМ 5 (internalId). Коды магазинов во внешней системе – это storeId в описанных выше файлах) {externalId = 11, internalId = 1} {externalId = 22, internalId = 2} {externalId = 33, internalId = 3} {externalId = 44, internalId = 4} ] roleIdMap: [ {externalId = 1, internalId = 1} {externalId = 2, internalId = 2} ] defaultRoleIdForUser = 1 createUserCard = true groupItemsConvertEnable = true itemsConvertEnable = true pricesConvertEnable = true sellersConvertEnable = true taxesConvertEnable = true usersConvertEnable = true } } }
Если для магазина мапирование не указано, то файлы будут загружаться с идентификатором, указанным в настройках магазина на кассовом сервере по адресу Магазин – Описание – Интеграция – Id во внешней системе. Другими словами, отсутствие записи для магазина в данном параметре эквивалентно следующей записи:
{externalId = 1144, internalId = 39}.
Здесь значения взяты из Справочника магазина:
roleIdMap:[ (соответствие идентификаторов ролей кассиров во внешней системе (externalId) и магазинов в УКМ 5 (internalId). Код роли во внешней системе – это roleId в файле storeCashiers) {externalId = 1, internalId = 1} {externalId = 2, internalId = 2} ] defaultRoleIdForUser = 1 (роль, к которой будет привязана новая запись о кассире, если в файле storeCashiers для неё не указан параметр roleId (подробнее см. описание файла storeCashiers)) createUserCard = true (если этот параметр установлен в true, то для всех загружаемых записей будут созданы карты кассиров и в них будет записано содержание поля storeCashiers.password)
Описание, какую информацию необходимо загружать конвертеру
groupItemsConvertEnable = true – товарная иерархия itemsConvertEnable = true – товары (и штрихкоды) pricesConvertEnable = true – цены sellersConvertEnable = true – продавцы taxesConvertEnable = true – налоги usersConvertEnable = true – кассиры
Если внешняя система выгружает файлы определенного типа, а конвертер их не загружает (из-за соответствующей настройки), то выгруженные файлы будут оставаться во входном каталоге (inputFolderName).
Требования к загрузке налоговых ставок
Правила заполнения справочника налогов
На текущий момент, в России существует только один налог, учитываемый в розничной торговле. Это НДС, имеющий 2 ставки: 10% и 20%.
Пример заполнения справочника групп налогов (таблица tax_group в базе данных):
Id (код группы) | Tax_id | Percent | Fp_code | Advanced_tax_id | Is_preferential | Примечание |
1 | 1 | 10 | 5 | fasle | НДС=10% | |
2 | 1 | 20 | 6 | fasle | НДС=20% | |
3 | 1 | 0 | fasle | НДС=0% | ||
4 | 1 | 0 | true | НДС не облагается | ||
5 | 1 | 10 | fasle | 10/110 | ||
6 | 1 | 20 | fasle | 20/120 |
Товары со ставкой НДС в 10% в торговой системе привязаны к группе с id=1.
Товары со ставкой НДС в 20% в торговой системе привязаны к группе с id=2.
Если в товарном справочнике в торговой системе есть товары, облагаемые по ставке НДС=0 (не путать с «НДС не облагается»!), то:
- в справочнике должна быть группа со ставкой НДС=0% и значением Is_preferential=false (в данном примере – id=3).
Если предполагается продажа товара без расчета НДС (например, продажа на кассах юр. лица, освобожденного от уплаты НДС), то:
- в справочнике должна быть группа, «отвечающая» за ставку «НДС не облагается» (в данном примере – id=4) с установленным признаком Is_preferential=true;
- независимо от того, какая группа указана у товара, в чеке он будет зарегистрирован с группой id=4.
Если предполагается получение на кассе предоплаты за товары, то:
- в справочнике должны быть группы, «отвечающие» за расчетные ставки (в данном примере – id=5 и 6, соответственно);
- для групп с «обычными» ставками должны быть указаны соответствующие им расчетные группы (в параметре Advanced_tax_id);
- при получении предоплаты за товар с группой id=2, товар будет зарегистрирован в чеке с группой 6 (для группы id=2 указано значение Advanced_tax_id=6);
- при получении предоплаты за товар с группой id=1, товар будет зарегистрирован в чеке с группой 5 (для группы id=1 указано значение Advanced_tax_id=5).
Если предполагается получение на кассе авансовых платежей (например, продажа подарочного сертификата), то:
- в справочнике должна быть группа, «отвечающая» за расчетную ставку (в данном примере – id=6);
- товар, который регистрируется в чеке для получения аванса, должен иметь атрибут Аванс;
- если для SKU указана налоговая ставка с признаком Is_preferential=true, то с этой ставкой он и будет регистрироваться в чеке;
- если SKU продается в магазине, для которого задано, что он не является плательщиком НДС, то SKU регистрируется в чеке с налоговой группой, для которой установлено значение Is_preferential=true;
- если для SKU указана налоговая ставка с заполненным значением Advanced_tax_id (в справочнике налоговых групп), то SKU регистрируется с налоговой группой, указанной в Advanced_tax_id;
- если для SKU указана налоговая ставка с незаполненным Advanced_tax_id, то SKU регистрируется с указанной для него налоговой группой.
Следует помнить о том, что для правильной регистрации товаров в ККТ необходимо устанавливать соответствие между налоговыми группами в кассовой программе и в конкретных моделях ККТ. Установка соответствия происходит в разделе fiscalprinter настроек оборудования.
Например, для ККТ СП-801 и справочника налогов, приведенного выше, соответствие должно быть установлено следующим образом:
# Соответствие налога в ККТ СП и налоговой группы в УКМ 5
# Налоги в ККТ СП-801
# tax0 – НДС 20;
# tax1 – НДС 10;
# tax2 – НДС 0;
# tax3 – без НДС;
# tax4 – 20/120;
# tax5 – 10/110.
taxes: {
tax0 = 2
tax1 = 1
tax2 = 3
tax3 = 4
tax4 = 6
tax5 = 5
}