Обмен данными между АСТУ и программой происходит с помощью текстовых файлов. Обмен данными возможен в двух режимах:
- автоматическом – без участия оператора ККМ,
- ручном – с участием оператора ККМ.
С технической точки зрения первый режим отличается от второго только необходимостью формирования товароучетной программой запросов на обмен, а сам формат файлов передачи данных абсолютно одинаков.
Формату файлов передачи данных и механизму работы в автоматическом и ручном режимах обмена посвящены следующие разделы.
Формат даты - ДД.ММ.ГГ
Формат времени – ЧЧ:ММ:СС
Разделитель целой и дробной части – "."
Используемые обозначения:
"Строка X" – строка в кодировке Win1251, длина до X символов.
"Дробное X.Y" – тип поля "Дробное2, длина (X + Y + 1), где X – количество целых разрядов, Y – количество дробных разрядов.
Файл загрузки
Файл загрузки служит для загрузки в рабочее место кассира справочника товаров, автоматических скидок и накоплений по дисконтным картам. Файл состоит из двух частей: шапки файла и непосредственно информации.
Шапка файла состоит из двух строк:
- Первая строка – строка инициализации файла "##@@&&" (6 символов)
- Вторая строка – признак загрузки данного файла "#" (1 символ).
После того, как файл успешно загружен программой рабочего места кассира признак загрузки файла меняется с "#" на "@". После шапки файла следует информация о реквизитах товара и управляющие команды.
В одной строке файла записывается информация об одном товаре. Реквизиты товара разделяются ";" и располагаются в порядке, приведенном в таблице ниже:
Для загрузки единиц измерения товаров (упаковки, пачки и т.п.), имеющих свой штрих-код, строка начинается со знака "#", а формат строки следующий:
Для загрузки схем автоматических скидок/надбавок строка начинается со знака "!", а формат строки следующий:
Для загрузки автоматических скидок/надбавок каждой из схем строка начинается со знака "@", а формат строки следующий:
Пропущенные поля не используются.
Для полей 12,13: "0" и "7"-воскресенье, "1"-понедельник, "2"-вторник, "3"-среда, "4"-четверг, "5"-пятница, "6"-суббота.
Для загрузки товаров-условий в автоматических скидках строка начинается со знака "{+", а формат строки следующий:
Для загрузки товаров-результатов в автоматических скидках строка начинается со знака "{-", а формат строки следующий:
Для загрузки дисконтных карт строка начинается со знака "%", а формат строки следующий:
Для загрузки накопительных скидок и их схем строка начинается со знака "№", а формат строки следующий:
Примечание: Если загружается несколько скидок с одинаковом кодом схемы, то название схемы скидок будет считаться по соответствующему полю в последней из загруженных скидок схемы.
Для загрузки фиксированных скидок строка начинается со знака «^», а формат строки следующий:
Для загрузки платежных карт строка начинается со знака ")", а формат строки следующий:
Для загрузки наборов прав строка начинается со знака "~", а формат строки следующий:
Для загрузки пользователей строка начинается со знака "&", а формат строки следующий:
Для загрузки весовых штрих-кодов строка начинается со знака "(", а формат строки следующий:
Налоговые схемы загружаются так, на одну позицию в налоговой схеме идет одна строка, начинающаяся со знака "*". Формат строки следующий:
Например, нам нужна группа с кодом 1 и названием "Моя группа", порядок начисления налогов: "А_БВ", Тогда нужно три строки:
*1;Моя группа;1;1
*1;Моя группа;3;2
*1;Моя группа;4;3
Для загрузки продавцов строка начинается со знака "[", а формат строки следующий:
Для загрузки дополнительных цен строка начинается со знака "?", а формат строки следующий:
Для загрузки схем бонусов строка начинается со знака "_", а формат строки следующий:
Для загрузки сертификатов строка начинается со знака ",", а формат строки следующий:
Для загрузки схем синхронизации товаров строка начинается с 2-х знаков "{=", а формат строки следующий:
Для загрузки изменений накоплений по дисконтной карте строка начинается со символов "{=%", а формат строки следующий:
Для загрузки изменения кредита платежной (кредитной) карты строка начинается со символов "{=)", а формат строки следующий:
Для загрузки контрагентов и видов алкогольной продукции строка начинается с 2-х знаков "{*", а формат строки следующий:
Для загрузки дополнительных реквизитов товара формат файла следующий:<goods_attr id="code" attr_id="attr"> где: code – код товара, реквизит которого загружается, attr – код типа реквизита документа.
Могут быть следующие типы:
- 22 Вид алкогольной продукции
- 23 Емкость тары
- 24 Неакцизная алкогольная продукция
- 25 ИНН производителя
- 26 КПП производителя
- 27 Содержание спирта
- 28 Запрашивать цену
- 29 Код проверки при добавлении
- 30 Код ЕГАИС
- 39 Код поставщика
- 33 Разливной алкоголь
- 34 Запрашивать штрихкод
- 42 Тип агента
Для загрузки правил запрета продажи алкоголя строка начинается со знаков "`b", а формат строки следующий:
Также имеется возможность загружать константы-настройки в следующем формате:
|<ИмяКонстанты>=<Значение> где <ИмяКонстанты> - идентификатор константы-настройки, как задан в конфигураторе (знакозависим), <Значение> - значение данной константы.
Имена констант:
ОСНОВНЫЕ
ККМПоУмолчанию
СекцияПоУмолчанию
ВыборСекции
ВИД ЧЕКА
ПечататьИмяКассираПечататьНумерациюПозицийПечататьОтступОднаСтрокаНаПРодажу ПечататьКредитнуюКарту
ПечататьПодытогПриСкидкеНадбавкеНаЧекПечататьНаименованиеТовараПереноситьДлинныеНазванияТоваровПечататьКодТовараПечататьЦифрыШтрихКодаТовараПечататьШтрихКодЕАНПечататьНазваниеСкидокНадбавокПечататьРазделительМеждуПродажами
РЕЖИМЫ
РазрешитьБлокировкуРабочегоМестаРазрешитьСменуПользователяПриБлокировкеАвторизацияПослеКаждогоЧекаВыгружатьПродажиПриZОтчетеПодаватьНаККМЗвуковойСигналПриОшибкеИгнорироватьТочкуВКоличествеИгнорироватьТочкуВСуммеСоздаватьТоварыПриВозвратеЗапретитьПродажиПоНулевойЦенеЗапретитьОплатуБезВводаСуммыКонтрольПродажиДробногоКоличестваЗапретитьОтрицательныеОстаткиДополнятьШтрихКодНулямиДо13ЗнаковВыбиратьЕдиницуПриРегистрацииПоКодуЗапрашиватьКоличествоПриПодбореРазделятьТриадыЗапретитьВводКоличестваРазрешитьПродажуПоСвободнойЦенеЗапретитьЗакрытиеНулевогоЧека
ДОПОЛНИТЕЛЬНЫЕ
РазрешитьВидОплаты2НазваниеВидаОплаты2
РазрешитьВидОплаты3НазваниеВидаОплаты3
РазрешитьВидОплаты4НазваниеВидаОплаты4
ПечататьШтрихКодЧекаПрефиксШтрихКодаЧека
ВыборПлатежнойКартыПриОплате
ОБМЕН
СпособОбменаДанными
ВремяВозобновленияСвязи
АвтоматическаяЗагрузка
АвтоматическаяВыгрузка
ИмяФлагаЗагрузки
ИмяФлагаВыгрузки
ИмяФайлаСправочника
ИмяФайлаОтчета
ЗапросРеквизитов
ИмяФайлаЗапросаРеквизитов
ИмяФайлаВыгрузкиРеквизитов
ОБОРУДОВАНИЕ
ИспользоватьККМ
ТипСканера
РаботаСДисплеем
ТипДисплея
СтрокаПриПростое1
СтрокаПриПростое2
ИнтервалСтрокиПриПростое
СообщениеВНерабочемСостоянии1
СообщениеВНерабочемСостоянии2
ВыводитьПромИтогНаДисплей
РаботаСВесами
СКИДКИ
МаксПроцентнаяСкидкаНаПозицию
МаксПроцентнаяНадбавкаНаПозицию
МаксСуммоваяСкидкаНаПозицию
МаксСуммоваяНадбавкаНаПозицию
МаксПроцентнаяСкидкаНаЧек
МаксПроцентнаяНадбавкаНаЧек
МаксСуммоваяСкидкаНаЧек
МаксСуммоваяНадбавкаНаЧек
РазрешитьАвтоматическиеСкидкиАвтоматическаяСкидкаНаПозицию
АвтоматическаяСкидкаНаЧек
РазрешитьФиксированныеСкидкиРазрешитьНакопительныеСкидкиОбъединениеСкидокНаЧек
ДИСКОНТНАЯ СИСТЕМА «AVANTAGE»
AvantageКодМагазина
AvantageТерминал
AvantageПрефикс
AvantageФИО
AvantageТекст
AvantageСервер
AvantageЛогин
AvantageПароль
AvantageОкругление
AvantageНазваниеОплаты
AvantageДопРеклама
AvantageТаймаут
AvantageСтрокаКлише
AvantageСтрокаМультипликатора
ДЛЯ ЗАГРУЗКИ
ВключитьЗапретПродажиАлкоголя
AvantageПрефиксПартнера1
AvantageПрефиксПартнера2
ПечататьОтчетПоНалогамПередСнятиемZОтчета
ПечататьОтчетПоСекциямПередСнятиемZОтчета
ПечататьИННкассира
ИспользоватьВесовыеШтрихкоды
СНПоУмолчанию
СНПоСекциям
ОтключениеПечатиНаЧековойЛенте
ОтключениеПечати_ЗадаватьВопрос
ОтключениеПечати_ФискальныеОтчеты
ОтключениеПечати_ВнесениеВыплата
ОтключениеПечати_НефискальныеОтчеты
ОтключениеПечати_БанковскиеСлипы
ПрименятьДанныеПокупателяИзДК
СохранятьДанныеПокупателяВДК
ВводДанныхПокупателяПередЗакрытиемЧека
ОтключениеПечати_ПочтаПоУмолчанию
ОтключениеПечати_ОтложенныеЧеки
ОтключениеПечати_СкладскиеДокументы
РазрешитьОтказОтВводаМарки
ОтказОтВводаМарки_ТипыМаркировки
РАБОТА С КАРТАМИ
АвтоматическаяСкидкаНаКарту
УчитыватьСуммуТекущегоЧекаВестиУчетКредитаПоКартамКонтрольКредитаПоказы атьРеквизитыКартыСпособВыбораПлатежнойКарты
НАЛОГИ
ИспользоватьНалогиНалоговаяСхемаПоУмолчанию
ПРОДАВЦЫ
ОбязательныйВыборПродавцаСпособВыбораПродавца
ВыбиратьПродавца
*- данные константы могут принимать значение 0 или 1. 0 – соответствует выключенному состоянию (у константы флаг сброшен), 1 – включенному.
Кроме нужных данных файл загрузки может содержать служебные команды, необходимые для корректной загрузки данных. Служебные команды располагаются или в первой или в последней строке файла загрузки и начинаются с символов "$$$".
Допускаются следующие служебные команды:
"$$$ADD" - добавление количества товара;
"$$$RPL" - замещение количества товара;
"$$$CLR" - очистка справочника товаров перед загрузкой;
"$$$DEL" - выборочное удаление.
Вместе с командой "$$$CLR" допустимы следующие команды (должны содержаться в той же строке, что и "$$$CLR"):
{NO_TOV} – очистка справочника товаров не производится
{AUT_S} – очистка схем автоматических скидок
{ACC_S} – очистка накопительных скидок
{DIS_C} – очистка списка дисконтных карт
{USR} – очистка справочника пользователей
{NAB_P} – очистка наборов прав
{FIX_S} – очистка фиксированных скидок
{V_SHK} – очистка весовых штрих-кодов
{PAY_C} – очистка списка платежных карт
{GR_NL} – очистка налоговых групп
{PROD} – очистка списка продавцов
Файл выгрузки продаж
Файл отчета о продажах товара состоит из двух частей: шапки файла и информации о продажах.
Шапка файла состоит из двух строк:
- Первая строка – признак обработки данного файла товароучетной программой "#" (1 символ). После обработки файла АСТУ символ "#" должен быть заменен на "@" для возможности выгружать другие отчеты в файл с тем же именем.
- Вторая строка содержит логический номер ККМ.
- Третья строка содержит порядковый номер отчета.
После шапки файла следует информация о продажах товара. Отчет о продажах представлен в виде последовательности транзакций, правила формирования которых представлены ниже. Одна строка текстового файла содержит информацию об одной транзакции. Данные в строке разделяются «;» и располагаются в порядке, приведенном в таблице ниже:
Назначение 1-7 полей фиксированное, а 8-12 зависит от типа транзакции и приводится в следующей таблице:
Расшифровка параметров:
(1) Вид скидки: 0 – ручная скидка, 1 – фиксированная скидка, 2 – автоматическая скидка, 3 – скидка по дисконтной карте;
(2) Параметр скидки 1 = код схемы скидки в случае автоматической скидки, код дисконтной карты в случае скидки по дисконтной карте;
(3) Параметр скидки 2 = код автоматической скидки в случае автоматической скидки, сумма чека в случае скидки по дисконтной карте при скидке на чек в 71 транзакции;
(4) Вид отчета: 1 – отчет по кассирам, 2 – отчет по часам, 3 – отчет по товарам, 4 – отчет по секциям.
(5) Код плат. cистемы: 0 – отчет по картам Сбербанка, 1 – отчет по картам STB.
Расшифровка принятых цветовых обозначений:
Товароучет для ШТРИХ-М: Торговое предприятие*
При выгрузке транзакций сразу после одной из этих транзакций идет выгрузка самого документа в одном из следующих форматов:
Для транзакций 301, 302, 308, 310:
<Document store=”КодСклада”>
КодТовара;Количество;
КодТовара;Количество;
…
КодТовара;Количество;
</Document>
Для транзакций 307:
<Document store=”КодСклада” storeto=КодСкладаПолучателя”>
КодТовара;Количество;
КодТовара;Количество;
…
КодТовара;Количество;
</Document>
Где: КодСклада – числовой код склада из документа
КодСкладаПполучателя – числовой код склада получателя из документа
КодТовара – код товара из строки табличной части документа
Количество – количество товара из строки табличной части документа
СтараяЦена – старая цена товара из строки табличной части документа переоценки
НоваяЦена –новая цена товара из строки табличной части документа переоценки
Файл прихода товара
Файл создается АСТУ и обрабатывается РМК при переходе в режим "Приход товара". Файл состоит из двух частей: шапки файла и информации о поступившем товаре.
Шапка файла состоит из трех строк:
- Первая строка содержит признак загрузки файла (# - файл не загружался, @ - файл загружался).
- Вторая строка содержит логический номер ККМ.
- Третья строка содержит идентификатор и порядковый номер приходной накладной.
После шапки файла следует информация о приходе товара. Данные в строке разделяются ";" и располагаются в порядке, приведенном в таблице ниже:
Файл результатов прихода товара
Файл создается РМК после закрытия документа "Приход товара". Файл создается с тем же именем и в той же папке, что и соответствующий файл прихода товара, только меняется расширение на '.out".
Файл состоит из двух частей: шапки файла и списка оприходованных товаров.
Шапка файла состоит из трех строк:
- Первая строка содержит признак загрузки файла (# - файл не загружался, @ - файл
загружался).
- Вторая строка содержит логический номер ККМ.
- Третья строка содержит идентификатор и порядковый номер приходной накладной.
После шапки файла идет список оприходованных товаров. Данные в строке разделяются ";" и располагаются в порядке, приведенном в таблице ниже:
При создании файла результатов в соответствующем файле прихода товаров выставляется признак загрузки @ - файл загружался
Файл результатов инвентаризации
Файл создается РМК после закрытия документа "Инвентаризация". Файл создается в папке, указанной в поле "Каталог обмена" с именем 'inv.out".
Файл состоит из двух частей: шапки файла и списка инвентаризованных товаров. Шапка файла состоит из трех строк:
- Первая строка содержит признак загрузки файла (# - файл не загружался, @ - файл загружался).
- Вторая строка содержит логический номер ККМ.
- Третья строка зарезервирована для будущего использования.
После шапки файла идет список инвентаризированных товаров. Данные в строке разделяются ";" и располагаются в порядке, приведенном в таблице ниже:
Файл остатков товара
Файл остатков товара состоит из двух частей: шапки файла и информации о продажах.
Шапка файла состоит из двух строк:
- Первая строка содержит идентификатор что это "Остатки товара" .
- Вторая строка содержит логический номер ККМ.
После шапки файла следует информация об остатках товара. Данные в строке разделяются ";" и располагаются в порядке, приведенном в таблице ниже:
Файл прихода алкогольной продукции
Файл создается АСТУ и обрабатывается РМК при переходе в режим "Приход алкогольной продукции". Формат файла следующий:
....
<document_object store="store" date="date" doctype="8"
supplier=”supplier” inn=”inn”>
КодТовара;Количество;
КодТовара;Количество;
. . .
КодТовара;Количество;
</document_object>
....
где:
store – код склада,
date – дата документа,
doctype - тип документа (для прихода алкогольной продукции равен 8), supplier – код контрагента, inn – ИНН контрагента.
В автоматическом режиме обмена возможны два вида передачи данных:
- загрузка данных (товаров);
- выгрузка данных (продаж);
- Во всех случаях инициатором обмена выступает АСТУ. Командами о необходимости загрузить или выгрузить данные являются служебные файлы, настраиваемые в Настройках программы/Обмен/Загрузка данных (или Выгрузка данных соответственно). После выполнения команды или в случае возникновения ошибки в процессе ее выполнения программа удаляет служебный файл-флаг.
Загрузка данных (товаров)
Последовательность передачи товаров в программу следующая:
1) Если служебный файл-флаг уже находится по указанному пути, программа осуществляет обработку предыдущей команды, возможно сформированной другой рабочей станцией. В этом случае необходимо в течение определенного времени (рекомендуется 10 сек) подождать, пока программа обработает "чужой" запрос, т.е. дождаться удаления служебного файла.
2) АСТУ формирует файл с загружаемыми товарами.
3) АСТУ создает служебный файл-флаг.
4) Программа загружает файл с товарами.
5) Программа удаляет служебный файл-флаг.
Выгрузка данных (продаж)
Последовательность выгрузки продаж из программы следующая:
1) Если служебный файл уже находится по указанному пути, программа осуществляет обработку команды, сформированной другой рабочей станцией. В этом случае необходимо в течение определенного времени (рекомендуется 10 сек) подождать, пока программа обработает чужой запрос, т.е. дождаться удаления служебного файла.
2) АСТУ создает служебный файл-флаг, в котором можно указать какие транзакции выгружать в отчете.
3) Программа записывает файл с продажами.
4) Программа удаляет служебный файл-флаг.
5) АСТУ в течение определенного времени (рекомендуется 30 сек) ожидает обработки своего запроса, т.е. дожидается удаления служебного файла.
Файл-флаг
Файл-флаг может содержать от 0 до 3-х строк и иметь следующий формат:
Если в строке с диапазоном не указан первый параметр, то выгрузка будет произведена с самой первой транзакции в таблице; если не указан второй параметр, то выгрузка будет произведена по самую последнюю транзакцию.
В ручном режиме обмена возможны два вида передачи данных:
- Загрузка данных (товаров).
- Выгрузка данных (продаж).
Загрузка данных (товаров)
Последовательность передачи товаров в программу следующая:
1) АСТУ записывает файл с товарами.
2) Оператор ККМ выполняет функцию "Загрузить справочник"
Выгрузка данных (продаж)
Последовательность выгрузки продаж из программы следующая:
1) Оператор ККМ выполняет функцию "Выгрузка отчета".
2) АСТУ загружает файл с продажам.