Система данных (АРМ кассира “Кассовая система РКМ”) Общие сведения. В данном документе рассмотрены следующие вопросы: Структура каталогов и файлов (исполнимых и данных) кассовой системы РКМ Структура (описание) файлов данных Обмен данными с Бэк-офисом с использованиенм файлсервера Меню 4.Система данных в 4.Настройка и коррекция параметров и 7.Обмен с сервером данных (БДТ,ЭЖ,ДСК) Структура каталогов и файлов За основу была взята система данных, разработанная мной для более ранних решений ТВД, которая на практике зарекомендовала себя наилучшим образом. Прежде всего необходимо отметить, что все данные, с которыми работает система хранятся в виде файлов, большинство из них текстовые. При этом, при каждом чтении данных из файла производится проверка их корректности. Если данные испорчены, то производятся соответствующие действия по восстановлению или иной обработке. Так что никаких эксепшенов и прочих безобразий по вине системы данных происходить не должно. Общая структура каталогов системы данных имеет вид (головной каталог): borlndmm.dll cc3270mt.dll rkm_tvd.exe <DIR> dat – системная библиотека – системная библиотека - исполняемый модуль - каталог данных системы Каталог dat содержит следующие подкаталоги: bd_tov - Каталог справочника (БД) товаров для хранения рабочих (актуальных) данных card - Каталог для хранения рабочих данных при обмене с карточным (банковским) терминалом dsk - Каталог справочника дисконтных скидок и журналов предоставленя дисконтных скидок - Каталог хранения рабочих данных электронного журнала eg (ЭЖ) exch - Каталог обмена с внешними (верхними) программами (Бэк-офисом) справочника товаров (загрузка файлов формата tov и/или spr) и электроннного журнала (выгрузка ЭЖ формата tvd и rep) gprs - Каталог файлов настройки соединения по GPRS (при использовании внешнего модема с работой по AT-командам) korzina чека - Каталог файлов 'корзина'(заказ) для пакетной пробивки lic - Каталог файлов лицензий log - Каталог лог-файлов nastr - Каталог файлов конфигурации num_sm_no_fisk - Каталог хранения номера смены для нефискального режима и контроля операций сторно tmp - Каталог временных данных В каждом каталоге есть файл read_me.txt, в котором кратко приведено назначение каталога и хранимых в нем файлов. Структура (описание) файлов данных Система данных РКМ состоит из Электронного журнала (журнал проведенных расчетных операций – ЭЖ), Базы данных (БД) товаров – справочника товаров, файлов дисконтных скидок, файлов лицензии, Лог-файла, файлов настройки и конфигурации и рабочих (временных) файлов. Наличие ЭЖ обеспечивает возможность получения различных отчетов (на чековой ленте и в электронном виде) для последующего анализа выполненных операций, а также реализации функции Сторно в соответствии с выполненными расчетными операциями. Наличие БД обеспечивает выполнение расчетных операций по коду (штрих-коду) товара, что позволяет существенно ускорить процесс обслуживания клиента, особенно при использовании сканера ШК. Дисконтные скидки обеспечивают возможность предоставлении процентной скидки на чек по цифровому индикатору. Перечисленные выше данные рассматриваются в данном документе, а остальные (файлы лицензии, Лог-файлы) – в соответствующих отдельных документах. Справочник товаров (БД товаров) Общие сведения о БД товаров Используемая в работе РКМ, БД товаров (внутренняя, или актуальная) состоит из 5 таблиц (файлов), которые формируются из исходного файла БД из каталога exch. Вся информация хранится в ТЕКСТОВОМ виде. При включении РКМ производится быстрая проверка корректности БД (на допустимость значений символов, соответствия длины записи заданному, количеству записей в каждой таблице между собой) и в случае обнаружения ошибок выставляется флаг, блокирующий работу с БД. В этом случае можно либо попытаться восстановить целостность БД (4.Настройка и коррекция параметров /4.Система данных /1.Рабочие данные / 1.БД товаров /7.Проверка структуры БД ) при этом сбойные записи будут помечены как некорректные, а при невозможности восстановления необходимо выполнить 4.Настройка и коррекция параметров /4.Система данных /1.Рабочие данные / 1.БД товаров /2.Очистить БД товаров) и актуализировать БД заново целиком. Исходные файлы БД товаров Структура исходного файла БД «bd_tov.tov» (Формат «TOV») Д Описание лина 1 '7' – действительная запись 1 Штрихкод (13 цифровых символов в ASCII коде) Код товара (8 цифровых символов в ASCII 3 коде) 8 Наименование (40 алфавитно-цифровых символов в ASCII коде, все символы с кодом менее 33 4 будут автоматически заменяться на символ 'пробел' с 0 кодом 32) Цена за 1 шт/кГ (в копейках) Номер отдела, к которому приписан товар Номера используемых налоговых групп 1 0x0D (13 десятичное) 0x0A (10 десятичное) 0 2 4 1 1 Итого 80 байт на запись В последней строке данного файла может присутствовать команда требования очистки БД перед ее загрузкой: "$$$CLR" Пример (4 записи): 7000000000001000000001Наименование товара 00001 .0000000001090000 7000000000002000000002Наименование товара 00002 .0000000002090000 7000000000003000000003Наименование товара 00003 .0000000003090000 7000000000004000000004Наименование товара 00004 .0000000004090000 2.2.2. Формат «SPR» С целью совместимости с РМК (Мини-POS), в качестве исходного файла БД может быть использован файл загрузки формата «SPR». Однако, поскольку данный файл может содержать много дополнительной информации, напрямую не относящейся к БД товаров, то при загрузке она будет игнорирована. Т.е. из этого файла будет взята только информация о записях товаров (поле 1 – код товара, поле 2 – штрих-код товара, поле 3 – наименование, поле 5 – цена товара и поле 9 – номер отдела). При этом, если данная запись полностью не удовлетворяет признакам того, что эта запись реквизитов товара (наличие управляющих символов в начале строки, количество полей, определяемых символами ";"), то данная запись игнорируется. Из всех управляющих команд поддерживается только команда требования очистки БД перед ее загрузкой "$$$CLR". Замечание. В данном формате в текущей версии работа с налогами не предусмотрена. Кроме того, никакие действия, кроме считывания информации, с данным файлом не производятся. Пример: ##@@&& -заголовок # -заголовок 7693;2400000076933;Автошампунь полирующий;Автошампунь;75.5 ;0;;0;1;0;0;0; 0;1; 0;7957;1; #7473;0000000000006;Автошампунь "Люкс";Автошампунь "Люкс";68.5;0;0;0;0;1–игнорир.зап. 7692;2400000076926;Автошампунь "Люкс";Автошампунь;112;0;;0;1;0;0;0;0;1;0;7957;1; …… |ОбъединениеСкидокНаЧек=2 –игнорируемая запись |РазрешитьНакопительныеСкидки=1 –игнорируемая запись $$$CLR –команда требования предварительной очистки БД перед загрузкой новой БД Примечание: Используются только выделенные поля записи. Кроме того, поле 3 "Наименование" будет приведено до длины в 40 символов (усечено, если больше или добавлено пробелами справа). Структуры таблиц БД при работе с ТВД (внутренний формат) Таблица SN Назначение. Хранение информации о действительности текущей записи Итого 3 байта на запись Имя файла "num.tov" Пример (4 записи): 7 7 7 7 Таблица SH. Назначение. Хранение информации о штрихкоде товара Длина Описание 13 Штрихкод (13 цифровых символов в ASCII коде) 1 0x0D (13 десятичное) 1 0x0А (10 десятичное) Итого 15 байт на запись Имя файла "sh.tov" Пример (4 записи): 0000000000010 0000000000020 0000000000030 0000000000040 Таблица KD. Назначение. Хранение информации о коде товара Длина Описание 8 Код (8 цифровых символов в ASCII коде) 1 0x0D (13 десятичное) 1 0x0А (10 десятичное) Итого 10 байт на запись Имя файла "kd.tov" Пример (4 записи): 00000001 00000002 00000003 00000004 Таблица NM. Назначение. Хранение информации о наименовании товара Длина Описание 40 Наименование (40 алфавитно-цифровых символов в ASCII коде, все символы с кодом менее 33 будут автоматически заменяться на символ 'пробел' с кодом 32) 1 0x0D (13 десятичное) 1 0x0А (10 десятичное) Итого 42 байта на запись Имя файла "name.tov" Пример (4 записи): Наименование товара 00001 . Наименование товара 00002 . Наименование товара 00003 . Наименование товара 00004 . Таблица OP. Назначение. Хранение информации о цене товара, отделе и налоговых группах Длина Описание 10 Цена за 1 шт/кГ (в копейках) 2 Номер отдела, к которому приписан товар 41 1 1 Номера используемых налоговых групп 0x0D (13 десятичное) 0x0А (10 десятичное) Итого 18 байт на запись Имя файла "opt.tov" Пример (4 записи): 0000000001090000 0000000002090000 0000000003090000 0000000004090000 Актуализация БД товаров во внутреннее представление из файла исходного файла из каталога обмена exch "вручную" В качестве источника могут быть использованы файлы разных форматов. В настоящее время поддерживаются два формата: Формат 'TOV' (наиболее близкий к формату хранения данных внутри РКМ) и формат обмена данными РМК (Мини-POS) 'SPR'. В дальнейшем список поддерживаемых форматов (и соответственно вариантов загрузок) может быть расширен. Данное действие осуществляется в 4.Настройка и коррекция параметров /4.Система данных /1.Рабочие данные / 1.БД товаров /1.Загрузить БД из каталога обмена. После выбора данной операции будет осуществлен поиск файлов, доступных для загрузки. Далее, в соответствии с найденными файлами, будет сформировано меню выбора загружаемых файлов по следующим правилам: Наименование пункта Загрузочные файлы на SD карте меню 1.БД ТВД:1 файл инд. xxxx_tvd.tov * 2.БД ТВД:1 файл общ. bd_tov.tov 3.БД мини-POS индив. xxxx_tvd. spr * 4.БД мини-POS общий bd_tov.spr *хххх - идентификационный номер ТВД. При этом, после выбора файла будет выполнена проверка корректности структуры и данных исходного файла. В случае ошибки будет выдано соответствующее сообщение и загрузка будет прервана. Кроме того, если существующая БД в терминале (ранее загруженная) будет находиться в сбойном состоянии, то загрузка также будет прервана (в этом случае необходимо выполнить очистку БД – 4.Настройка и коррекция параметров /4.Система данных /1.Рабочие данные / 1.БД товаров /2.Очистить БД товаров Поскольку загрузка данных производится всегда в продолжение существующей БД, при необходимости загрузки полностью новой БД, старую БД необходимо стереть (4.Настройка и коррекция параметров /4.Система данных /1.Рабочие данные / 1.БД товаров /2.Очистить БД товаров). Вместе с тем, предусмотрен механизм, делающий данную операцию обязательной. Для этого предусмотрена команда "$$$CLR",которая может присутствовать в файле загрузки. В этом случае (при наличии команды "$$$CLR" в файле) после выполнения проверки данных в файле загрузки, будет выдано сообщение о необходимости выполнения очистки и предложено выполнить очистку. При отказе от очистки загрузка выполнена не будет. Если предполагается добавить к существующей БД новые записи, то необходимо учитывать, что при загрузке БД проверка на "дублированность" кодов не производится. Иными словами, при поиске по коду, будет найден товар, код которого встретится первым. В связи с этим реализован механизм поиска таких дублированных (плохих) кодов 4.Настройка и коррекция параметров /4.Система данных /1.Рабочие данные / 1.БД товаров / 6.Поиск дублированных кодов. Не смотря на то, что процесс выполнения данной операции может занять достаточно длительное время, рекомендуется его выполнить, особенно если БД загружалось с нескольких различных исходных файлов. В случае нахождения дублированных кодов, используя встроенный редактор БД (4.Настройка и коррекция параметров /4.Система данных /1.Рабочие данные / 1.БД товаров /3.Редактировать БД товаров) следует или удалить одну из записей, либо отредактировать (изменить) код товара, сделав его уникальным. Как уже отмечалось выше, загружать БД можно из нескольких разных файлов. При этом предусмотрен механизм, когда могут находиться разные файлы загрузок для разных РМК. При этом РМК, в соответствии со своим номером (4.Настройка и коррекция параметров /2.Настройка РМК /30.Идентификатор РМК-номер в торговой сети) предложит в списке загрузки тот файл ("1.БД ТВД:1 файл инд." или "3.БД мини-POS индив."), который предназначается только для РМК с данным идентификационным номером. Если в процессе загрузки будет обнаружена ошибка будет выдано соответствующее сообщение. При этом обеспечивается сохранение без сбоев загруженной части БД (той части, которая уместилась). Редактирование БД товаров с клавиатуры ТВД Данный режим доступен в 4.Настройка и коррекция параметров /4.Система данных /1.Рабочие данные / 1.БД товаров /3.Редактировать БД товаров. Также можно распечатать БД товаров в 4.Настройка и коррекция параметров /4.Система данных /1.Рабочие данные / 1.БД товаров /4.Печать БД товаров. Все операции, связанные с изменением старой (существующей) записи в БД, при открытой смене запрещены. Это связано с необходимостью сохранения целостности данных при получении отчетов по продажам по кодам товаров. Загрузка БД производится всегда в конец существующей БД (происходит дозапись). Если необходимо выполнить создание полностью новой БД, то необходимо предварительно существующую БД очистить (стереть) с клавиатуры терминала 4.Настройка и коррекция параметров /4.Система данных /1.Рабочие данные / 1.БД товаров /2.Очистить БД товаров. Электронный журнал Общие сведения ЭЖ при работе состоит из одного файла "el_gurn.dat" и дкублирующего файла "el_gurn.tmp". Данные хранятся в виде записей следующего формата: - Тип записи - Порядковый номер чека - Данные - Контрольная сумма - 0x0D (13 десятичное) - 0x0А (10 десятичное Для экономии места записи хранятся в сжатом виде. Для контроля каждая запись защищена контрольной суммой. Типы записей Каждая запись имеет свой код, в зависимости от которого данные (набор полей) будут разные. Предусмотрены следующие типы записей: Тип записи Описание S продажа по свободной цене K продажа по коду (штрих-коду) R возврат по свободной цене V возврат по коду (штрих-коду) С сторно по свободной ценен T сторно по коду (штрих-коду) D скидка N наценка X сторно скидки M сторно надбавки Z закрытие чека A аннулирование чека Поля записей ЭЖ Запись продажи, возврата или сторно по свободной цене Позиц. Длина 0 1 6 16 22 24 28 Описание 1 5 10 6 2 4 3 Тип записи S,R,C Порядковый номер чека Цена за единицу товара (Цена за 1 шт/кГ) Количество (вес) Отдел номер Номера используемых налоговых групп Контрольная сумма Запись продажи, возврата или сторно по коду Позиц. Длина 0 1 6 16 22 24 32 33 37 Описание 1 5 10 6 2 8 1 4 3 Тип записи К,V,T Порядковый номер чека Цена за единицу товара (Цена за 1 шт/кГ) Количество (вес) Отдел номер Код товара Ссылочный номер кода товара Номера используемых налоговых групп Контрольная сумма Запись скидки, наценки (надбавки), сторно скидки, сторно наценки (надбавки) Позиц. Длина 0 1 6 16 20 Описание 1 5 10 4 3 Тип записи D,N,X,T Порядковый номер чека Сумма операции Номера используемых налоговых групп Контрольная сумма Запись операции закрытия чека Позиц. Длина Описание 1 Тип записи Z 5 Порядковый номер чека 4 Время 6 Дата 2 Кассир 10 Итоговая сумма чека 10 Сумма наличных от покупателя (тип оплаты 1) 10 Сумма типа оплаты 2 10 Сумма типа оплаты 3 10 Сумма типа оплаты 4 10 Сумма сдачи 4 Номера используемых налоговых групп 4 Процент скидки на чек 3 Контрольная сумма 0 1 6 10 16 18 28 38 48 58 68 78 82 86 Запись аннулирования чека Позиц. 0 Длина Описание 1 Тип записи A 1 6 10 16 18 19 5 4 6 2 1 3 Порядковый номер чека Время Дата Кассир Резерв Контрольная сумма Выходной файл ЭЖ Выходной (результирующий) файл ЭЖ формируется в текстовом виде из "внутреннего" (сжатого) файла ЭЖ в виде файла на SD карте или на компьютере (с использованием сервисной программы "Фронт сервис"). Начинается данный файл с 5 строк со служебной информацией: Электронный журнал на SD карте Терминал : 0001 Закрытие смены: 0001 Дата выгрузки : 22.08.14 Время выгрузки: 12:57:00 Далее следует содержательная часть ЭЖ, которая имеет следующий формат (одна запись): Тип записи 6 19-86 1 1 Описание Номер записи (6 байт с лидирующими нулями) Поле записей (см. п.3.3) 0x0D (13 десятичное) 0x0А (10 десятичное) Особое внимание необходимо обратить на то, что длины записей зависят от типа записей. Запись "концевик", состоит только из номера записи. Ниже следует пример файла: Электронный журнал Терминал : 0001 Закрытие смены: 0001 Дата выгрузки : 22.08.08 Время выгрузки: 12:57:00 000001S000900000012300001000010000106 000002K000900000000012001000090000001270000077 000003K000900000000045001000090000004570000077 000004S000900000001000023000080000098 000005S000900000004500001000010000107 000006Z000901255220808010000039857000004000000000000000000000000 0000000000000000014300000000099 000007S000910000007856001000010000103 000008K000910000000456001000090000045670000076 000009K000910000007891001000090000789170000076 000010K000910000000078005123090000007870000072 000011Z000911256220808010000016603000001660300000000000000000000 0000000000000000000000000000099 000012S000920000000723001000010000110 000013S000920000004500001000010000105 000014K000920000000007001000090000000770000079 000015N0009200000000000000117 000016S000920000010010001000010000104 000017D0009200000003000000124 000018Z000921257220808010000014940000001500000000000000000000000 0000000000000000006000000000107 000019 Имя файла формируется в зависимости от номера РКМ и номера смены по следующим правилам: XXXXYYYY.tvd, где XXXX – номер ТВД (задается в настройке РКМ), YYYY – номер смены. Например 00090123.tvd – ТВД номер 9, смена 123 Файл ЭЖ в формате 'REP' Данный файл формируется в случае, если в настройке РКМ (4.Настройка и коррекция параметров /2.Настройка РМК /33.Создание отчета формата 'REP') уcтановлена соответствующая опция (2). Данный формат предназначается для режима совместимости с форматом выгрузки данных РМК (Мини-POS) и имеет соответствующий ему формат. Имя файла формируется в зависимости от номера ТВД и номера смены по следующим правилам: XXXXYYYY.rep, где XXXX – номер ТВД (задается в настройке ТВД), YYYY – номер смены. Например 00090123.rep – РКМ номер 9, смена 123. Вместе с тем при формировании данного отчета имеются следующие ограничения. В ЭЖ при работе ТВД не заносится информация о внесении наличных в кассу и выплатах из кассы. Соответственно данной информации в отчете "REP" не будет. Кроме того, РКМ привязывает информацию к номеру документа в ФР. Соответственно эта особенность будет присутствовать и в отчете "REP". Также данный отчет будет правильно сформирован (средствами РКМ) только если в чеке будет не более 150 расчетных операций (включая операции аннулирования и сторнирования). Информация о налогах не формируется. Все скидки и надбавки регистрируются как суммовые. Преобразование (формирование) записей производится только для закрытого чека. Записи незакрытого чека при выгрузке (преобразовании) игнорируются. Кроме того, в записи аннулирования чека с (команда 56) сумма чека будет нулевой. Кроме этого, предусмотрена возможность формирования суммарного отчета "REP" за период смен в одном файле XXXX_tvd.rep, где XXXX – номер ТВД (4.Настройка и коррекция параметров /4.Система данных /1.Рабочие данные /2.Электронный журнал/8.Создать отчет 'REP' за период смен). Также необходимо учитывать, что в записи команд закрытия смены (команда 61) все значения сумм будут нулевые. Дисконтные скидки Данная скидка начисляется только на чек. Вычисление процента скидки осуществляется по правилам, приведенным ниже исходя из введенного кода (идентификационного номера, идентификатора) специального числового кода заданной длины. Предусмотрена настройка: 4.Настройка и коррекция параметров /2.Настройка РМК /13,Дисконтные скидки, определяющая порядок ввода кода: - Запрещены дисконтные скидки - Разрешен ввод кода со сканера ШК и с клавиатуры терминала - Разрешен ввод кода только со сканера ШК - Разрешен ввод кода только с клавиатуры терминала Правила вычисления процента дисконтной скидки следующие. В каталоге dsk карте ищется файл справочника дисконтных скидок DSK_TVD.SKD. В случае его отсутствия выполняется отказ в предоставлении дисконтной скидки. Считывается первая запись. Определяется, введенный идентификационный код соответствует коду, находящемуся в считанной из файла записи Если да - то дальнейшее считывание записей из файла прекращается и возвращается процент скидки, определенной в записи. Если нет, то производится считывание следующей записи с ее последующим анализом. Если записи в файле закончились и ничего не найдено, то возвращается отказ в предоставлении дисконтной скидки. Все записи, определяющие начисление дисконтных скидок находятся в файле DSK_TVD.SKD. Файл хранится в каталоге dsk. Файл DSK_TVD.SKD текстовый. Состоит из неограниченного количества записей. При нахождении первой записи, соответствующей условию, дальнейший поиск не производится. В случае, если запись содержит недопустимые символы и формат записи недопустимый - данная запись игнорируется. Формат записи: YYYYYY PPPP . Разделитель между полями - от одного до 50 пробелов (НЕ табуляций!!!). Каждая запись должна закрываться символами 0x0D, 0x0A. При этом после поля PPPP не должно быть пробелов. Для удобства рекомендуется в качестве последней строки использовать "закрывающую" (недействующую) строку вида //**************, поскольку это гарантирует, что в последней действующей записи будут присутствовать символы переноса строки. Поле YYYYYY - идентификатор. Возможны 2 варианта - по одному значению и по диапазону. Формат "по одному значению". Строка, содержит цифровые символы от 0 до 9, с максимальной длиной не более 18. Формат "по диапазону". Используется в случае, если необходимо задать не конкретное значение строки символов для поиска, а диапазона. Начальное и конечное значение разделяются символом "тире". Например: 1234-4567. Длина строки до тире должна быть равна длине строки после тире и не должна превышать 18 символов. Поле PPPP. Определяет процент скидки на чек. Формат поля "целые проценты" (2 разряда) + "сотые процента"(2 разряда). Правила определения соответствия введенного идентификационного кода коду, считанному из файла дисконтных скидок. Формат "по одному значению". Проверяется соответствие строки цифрового кода, считанного из файла, введенному коду. Если длина строки введенного кода более длины строки считанного из файла, то при проверке введенная строка усекается до длины строки кода, считанного из файла. Например: 123 0500 - на все введенные коды, начинающиеся с 123 начисляется скидка в 5%. Это может быть 123, 1234, 12345678 и т.д. Формат "по диапазону". Проверяется соответствие считанной записи на соответствие диапазону (включительно). Правила выравнивания длин строк аналогичны правила в формате "по одному значению". Например: 2345-7890 0350 - на все считанные записи, начинающиеся с 2345 по 7890 (включительно) начисляется скидка в 3.5% Примеры некорректных записей: 123а 0500 - наличие недопустимого (нецифрового) символа 123 05.00 - точка в поле проценты - недопустимый символ 123-4567 0500 - ошибка в диапазоне номеров строк - разная длина Формат файла результатов начисления дисконтных скидок Имя файла формируется в зависимости от номера ТВД и номера смены по следующим правилам: XXXXYYYY.DSK, где XXXX – номер ТВД (задается в настройке ТВД), YYYY – номер смены. Например 00090123.DSK – ТВД номер 9, смена 123. Файл хранится в каталоге dsk. Файл записей. текстовый. Состоит из неограниченного количества Формат записи запроса дисконтной скидки: DDDDD NNNN PPPP. Разделитель между полями - пробел. DDDDD - номер документа NNNN - идентификатор (считанный ШК, трек с магнитной карты и т.д. - длиной не более 18 символов) Поле PPPP. Определяет процент скидки на чек. Формат поля "целые проценты" (2 разряда) + "сотые процента"(2 разряда). Запись-подтверждение закрытия чека с данной скидкой OK XXXX OK - признак, что с данной (последней ) скидкой был закрыт чек ХХХХ - сумма итога чека в копейках. Замечание. Данная запись необходима для избежания коллизии, когда скидка предоставлена, а затем чек отменен или не закрыт с данной скидкой и на чек начислена иная скидка или скидка вообще не начислена. При формировании отчета в формате REP (в РКМ), команда 71 детализация скидки, в поля 8 и 9 включается информация о дисконтной скидке (признак и идентификатор) Пример файлов дисконтных скидок Пример файла справочника скидок "DSK_TVD.SKD" 234-237 0100 123456789000-123456789199 0500 314 0100 97851-97858 0200 55-77 0300 227 0400 4 0500 Пример файла результатов начисления дисконтных скидок "DSK" 22 314 1000 OK 10000 23 55 3000 23 55 3000 23 55 3000 OK 20000 24 3141725002270 1000 OK 30000 25 3141725002270 1000 OK 50000 26 2270978001301 4000 OK 60000 27 3141725002270 1000 OK 90000 Обмен данными с Бэк-офисом Общие сведения. Наряду с существующей схемой ручного обмена, добавлена возможность обмена в автоматическом режиме (при закрытии смены) и полуавтоматическом ("по кнопке" – 2 варианта). При этом режим обмена является настраиваемым (программируем), когда предоставляется возможность указать, какие типы файлов загружать и выгружать, причем сделать это можно независимо для всех 3-х вариантов. Пункт 4.Настройка и коррекция параметров /4.Система данных состоит из следующих пунктов: 1. Рабочие данные 2. Настройка обмена 3. Ручной обмен В свою очередь пункт подменю "1.Рабочие данные" состоит из 0. 1. 2. 3. Файловый менеджер БД товаров Электронный журнал Технологические операции Меню "2.Настройка обмена" состоит из следующих пунктов: 0. 1. 2. 3. 4. 9. Подключение сервера Автоматическ.обмен Полуавт.обмен,вар.1 Полуавт.обмен,вар.2 Ручной обмен Сброс настроек Подменю "0.Подключение сервера" - назначение данного пункта – задание типов коммуникаций при обмене с файл-сервером. Задание непосредственных вариантов схем обмена, использующих указанные выше варианты связи, а именно разрешенозапрещено выполнять тот или иной обмен и если разрешено, то через какой вариант связи устанавливать связь (которые задаются в 0.Подключение сервера /2.Настройка TCP/IP и там 3 варианта задания связи – пары адрес-порт) и какими типами файлов необходимо обмениваться. Более подробно о настройке вариантов обмена в приложении 1, а в приложении 2 приведен типовой порядок настройки обмена. В данной версии РКМ в Главном меню добавлен пункт 7.Обмен данными, который может состоять из следующих подпунктов. 1. Полуавт.обмен,вар.1 2. Полуавт.обмен,вар.2 3. Ручной обмен Если в настройке соответствующего обмена было задано предъявление пароля, то будет выполнен запрос соответствующего пароля соответствующего уровня. Если тот или иной вариант обмена данными в настройке запрещен, то в списке меню он будет отсутствовать. Если запрещены все варианты обмена, будет выдано сообщение "Обмен запрещен". Во всех случаях успешного завершения обмена в части загрузки справочника товаров для автоматического и полуавтоматических обменов, рабочие данные будут автоматически обновлены, а для ручного обмена – будет сделан автоматический вход в соответствующее меню для выполнения данных операций вручную. Настройка вариантов обмена данными В зависимости от выбранного и настраиваемого варианта обмена количество пунктов меню настройки будет разное. Например при настройке автоматического обмена будет отсутствовать "8.Пароль", а при настройке ручного обмена будут отсутствовать настройки выбора типов файлов обмена. В максимальном случае будут присутствовать следующие пункты меню настройки: 0.Разрешение обмена 1.Выгрузка ЭЖ 2.Загрузка БД товаров 3.Выгрузка рез.д.скид. 4.Загрузка диск.скид. 5.Кол-во циклов связи 6.Задержка повт.связи 7.Печать протокола 8.Пароль 9.Печать настройки 0.Разрешение обмена в свою очередь состоит из 0.Обмен запрещен 1.Разрешен,вар.св.1 2.Разрешен,вар.св.2 3.Разрешен,вар.св.3 4.Разрешен,вар.св.1+2 5.Разрешен,вар.св.1+3 6.Разрешен,вар.св.2+3 7.Разрешен,в.св.1+2+3 для автоматического и полуавтоматический обменов и 0.Обмен запрещен 1.Обмен разрешен для ручного. Вариант связи определяет, на какие адреса и на какой порт будет производится вызов файл-сервера. Эти адреса и порты (парой) задаются в "0. Подключение сервера". Соответственно 1 – первый вариант установления связзи, 1+2 – первый вариант, и если неудача, то второй, и т.д. 1.Выгрузка ЭЖ состоит из: 0.Не производится (ЭЖ не выгружается, действие пропускается) 1.'TVD' с удалением (при успешной выгрузке ЭЖ удаляется) 2.'TVD'без удаления (ЭЖ не удаляется) 3.'REP' с удалением (при успешной выгрузке ЭЖ удаляется) 4.'REP'без удаления (ЭЖ не удаляется) 2.Загрузка БД товаров состоит из: 0.Не производится (БД не загружается, действие пропускается) 1.'TOV' общий (Загружается TOV общий, если есть на сервере) 2.'TOV'индивидуальный (Загружается TOV индивидуальный, если есть на сервере) 3.'SPR' общий (Загружается SPR общий, если есть на сервере) 4.'SPR'индивидуальный (Загружается SPR индивидуальный, если есть на сервере) 3.Выгрузка рез.д.скид. (результатов дисконтных скидок) состоит из: 0.Не производится (результаты не выгружаются, действие пропускается) 1.Выгрузка с удалением (при успешной выгрузке данные удаляются) 2.Выгр.без удаления" 4.Загрузка диск.скид. состоит из: 0.Не производится 1.Производится 5.Кол-во циклов связи определяет количество попыток установления связи (1 – 99, только для автоматического обмена). 6.Задержка повт.связи. Здесь определяется задержка между повторами установления связи (1 – 99 сек, только для автоматического обмена). 7.Печать протокола. Включение распечатки протокола обмена с сервером. 8.Пароль. Задание уровня пароля доступа для выполнения операции обмена в полуавтоматическом и ручном вариантах. Доступно: 0.Без пароля 1.Пароль пользователя 2.Пароль адм.и сисад. (администратора и системного администратора) 3.Пароль сисадминист. (системного администратора) 9.Печать настройки позволяет распечатать заданные настройки. Типовые варианты обмена и их настройка Прежде всего необходимо запустить файл-сервер и настроить его. Например: Вариант 1. Требуется в автоматическом режиме выгружать ЭЖ (формат TOV), при удачной передаче удалять, загружать БД в формате TVD "общий". Протокол обмена не печатать. Обмен производить по TCP/IP. Количество попыток связи – 10, задержка повтора вызова – 5 сек. В РКМ выполняем следующие действия. 1. 2. В 4.Настройка и коррекция параметров/ 2.Настройка ТВД/ 01.Электроный журнал устанавливаем "3.Сохранять при закрытии смены" В 4.Настройка и коррекция параметров/ 3.Система данных/ 2.Настройка обмена/ 0.Подключение сервера устанавливаем: 1.Тип коммуникаций -> 1.TCP/IP(Ethernet) 2.Настройка TCP/IP -> 1.Адрес сервера в.1 -> Адрес компьютера, на которой установлен сервер, например 192.168.000.009, Порт вызов 1 5555 3. В 4.Настройка и коррекция параметров/ 3.Система данных/ 2.Настройка обмена/ 1.Автоматическ.обмен устанавливаем: 0.Разрешение обмена -> 1.Разрешен,вар.св.1 1.Выгрузка ЭЖ -> 1.'TVD' с удалением 2.Загрузка БД товаров -> 1,'TOV' общий 3.Выгрузка рез.д.скид. -> 0.Не производится 4.Загрузка диск.скид. -> 0.Не производится 5.Кол-во циклов связи -> (1-99) 10 6.Задержка повт.связи -> (1-99) 5 7.Печать протокола -> 0.Не производится Вариант 2. Требуется в полувтоматическом режиме (вариант 1) выгружать ЭЖ (формат REP), при удачной передаче удалять, загружать БД в формате SPR "индивидуальный". Протокол обмена печатать. Действия выполнять под паролем кассира. Связь устанавливать по двум вариантам, которые не пересекаются с вариантом связи, указанном в Варианте обмена 1. Обмен производить по TCP/IP/ В РКМ выполняем следующие действия. 1 В 4.Настройка и коррекция параметров/ 2.Настройка ТВД/ 01.Электрон.журнал устанавливаем "3.Сохранять при закрытии смены", в 33.Создание отчета формата 'REP' (0,2) устанавливаем 2 2 В 4.Настройка и коррекция параметров/ 3.Система данных/ 2.Настройка обмена/ 0.Подключение сервера устанавливаем: 1.Тип коммуникаций -> 1.TCP/IP(Ethernet) 2.Настройка TCP/IP -> 3.Адрес сервера в.2 -> Адрес компьютера, на которой установлен сервер, например 192.168.000.009, Порт вызов 1 5556 4.Адрес сервера в.3 -> Адрес компьютера, на которой установлен сервер, например 192.168.000.009, Порт вызов 1 5557 3 В 4.Программирование 3.Система данных 2.Настройка обмена 2.Полуавт.обмен,вар.1 устанавливаем: 0.Разрешение обмена -> 1.Разрешен,вар.св.2+3 1.Выгрузка ЭЖ -> 3.'REP' с удалением 2.Загрузка БД товаров -> 4,'SPR' индивидуальный 3.Выгрузка рез.д.скид. -> 0.Не производится 4.Загрузка диск.скид. -> 1.Не производится 7.Печать протокола -> 1.Производится 8. Пароль -> 1.Пароль пользователя. Схема обмена с файл-сервером КС "РКМ-ТВД" Внутренние (рабочие) данные Справочник (БД) товаров Актуализация Файловое хранилище БД товаров каталог EXCH каталог BD_TOV Электронный журнал каталог EG Выгрузка ЭЖ Справочник товаров Электронный журнал Справочник дисконтных .скидок Результаты дисконтных .скидок Интерфейсы обмена TCP/IP и RS-232 Перенос файлов "как есть" Файл-сервер 1. Справочник товаров: файлы индивидуальные и общие формата TOV и SPR 2. Справочник дисконт.скидок: файл dsk_tvd.skd 3. Электронный журнал файлы формата TVD и REP 4. Результаты дисконт.скидок: файлы формата DSK Файловое хранилище Входящие данные Справочник товаров Справочник диск.скидок Исходящие данные Электронный журнал Результаты диск.скидок Справочник товаров. Поддерживаются два формата: Формат 'TOV' (наиболее близкий к формату хранения данных внутри РКМ) и формат обмена данными РМК (Мини-POS) 'SPR'. При этом файл и того и другого формата может быть как "общим" (ориентированным для использованиями всеми РКМ данной торговой сети), так и индивидуальным (ориентированным для использования конкретным РКМ ). Файл индивидуальный формат TOV - xxxx_tvd.tov * Файл общий TOV - bd_tov.tov Файл индивидуальный формат SPR - xxxx_tvd.spr * Файл общий SPR - bd_tov.spr *хххх - идентификационный номер ТВД. Электронный журнал Выходной (результирующий) файл ЭЖ формируется в текстовом виде из "внутреннего" (сжатого) файла ЭЖ в виде файла формата XXXXYYYY.tvd, где XXXX – номер ТВД (задается в настройке ТВД), YYYY – номер смены. Например 00090123.tvd – ТВД номер 9, смена 123 Дополнительно может быть сформирован выходной файл формата REP, имя которого формируется по вышеприведенным правилам. Обобщенная Блок-схема работы с ЭЖ Выгрузка ЭЖ Внутренние (рабочие) данные Формируются при регистрации каталог EG ЭЖ формата TVD каталог exch ЭЖ формата REP каталог exch Хранилище данных файл-сервера Системы Бэкофис на базе 1С Формируются при закрытии смены (файлы посменные) Перенос/копирование данных на файлсервер (автоматически при закрытии смены, полуавтоматически "по кнопке" по заданному варианту или вручную) EG_TVD из состава "МиниБэк ТВД" Обработка ЭЖ в Бэк-офисной системе Обобщенная Блок-схема работы со справочником (БД) товаров Системы Бэкофис на базе 1С BD_TVD из состава "Мини-Бэк ТВД" Хранилище данных файл-сервера Подготовка справочника (БД) товаров Перенос файлов БД. Варианты типов файлов Файл индивидуальный формат TOV Файл общий TOV Файл индивидуальный формат SPR Файл общий SPR Перенос/копирование файлов в терминал (по запросу из терминала) Файловая система терминала Каталог обмена EXCH Актуализация БД товаров Внутренние (рабочие) данные каталог BD_TOV Работа с БД товаров при регистрации Сообщения и коды ошибок. При обмене на дисплей выводятся сообщения, характеризующие процесс обмена, а в случае в настройке обмена установки "7.Печать протокола", данные сообщения будут также выводиться на принтер. Ошибка соед.Код=ХХ, где XX: 1 – ошибка связи с сервером или ошибка параметров связи с сервером Ошиб.связи.Код=XX, где XX: 1 – ошибка формата посылки в сервер 2 – ошибка передачи посылки в сервер 3 – ошибка приема посылки(ответа) из сервера 10, 11, 21, 24, 66, 69, 70 - сбой протокола обмена подтверждение от сервера (NAK – 21, CAN – 24, BAD – 66, OF – 70, ERR – 69) Ош.типа.файла.Код=XX, где XX: 1 – ошибка формата посылки в сервер 2 – ошибка передачи посылки в сервер 5 - внутренняя ошибка 7 – нет файлов для загрузки 7, 8 – ошибка принятых данных от сервера 10, 11, 21, 24, 66, 69, 70 - сбой протокола обмена – подтверждение от сервера (NAK – 21, CAN – 24, BAD – 66, OF – 70, ERR – 69) 11, 12 - сбой протокола обмена – посылка от сервера 99 - отказ от выбора файла (ручной обмен) или неверный тип запрошенного файла (автомат.обмен). Ош.кол.зап.Код=XX, где XX: 1 – ошибка формата посылки в сервер 2 – ошибка передачи посылки в сервер 3 – ошибка принятых данных от сервера 5 - внутренняя ошибка 7 – нет файлов для загрузки 7, 8 – ошибка принятых данных от сервера 10, 11, 21, 24, 66, 69, 70 - сбой протокола обмена подтверждение (NAK – 21, CAN – 24, BAD – 66, OF – 70, ERR – 69) 11, 12 - сбой протокола обмена – посылка от сервера Ош.уст.указ.Код=XX, где XX: 1 – ошибка формата посылки в сервер 4 – ошибка передачи посылки в сервер 3 – ошибка приема посылки(ответа) из сервера 4 – ошибка значения указателя записи 5 - внутренняя ошибка 10, 11, 21, 24, 66, 69, 70 - сбой протокола обмена подтверждение (NAK – 21, CAN – 24, BAD – 66, OF – 70, ERR – 69) Ош.загр.зап.Код=XX, где XX: 1 – не удалось открыть приемный файл для записи 2 – ошибка записи в файл 3 – ошибка загрузки файла с сервера Ош.закр.сес.Код=XX, где XX: 1 – ошибка формата посылки в сервер 2 – ошибка передачи посылки в сервер 3 – ошибка приема посылки(ответа) из сервера 10, 11, 21, 24, 66, 69, 70 - сбой протокола обмена подтверждение (NAK – 21, CAN – 24, BAD – 66, OF – 70, ERR – 69) Ош.пос.имени.Код=XX, где XX: 1 – ошибка формата посылки в сервер 2 – ошибка передачи посылки в сервер 3 – ошибка приема посылки(ответа) из сервера 10, 11, 21, 24, 66, 69, 70 - сбой протокола обмена подтверждение (NAK – 21, CAN – 24, BAD – 66, OF – 70, ERR – 69) Ош.запр.файла.Код=XX, где XX: 1 – ошибка формата посылки в сервер 2 – ошибка передачи посылки в сервер 3 – ошибка получения посылки (ответа) от сервера подтверждение 7 – ошибка получения посылки (ответа) от сервера сообщение 4,5 – ошибка принятых данных от сервера 10, 11, 21, 24, 66, 69, 70 - сбой протокола обмена подтверждение (NAK – 21, CAN – 24, BAD – 66, OF – 70, ERR – 69) Ошиб.передачи.Код=XX, где XX (GPRS модем): 2 – нет приема 7 – нет ответа 3,8 – внутренняя ошибка 11 – неверный ответ (превышена длина) В случае обмена через GPRS рекомендуется значительно увеличить значения тайм-аутов обмена до 30-60сек (Тайм-аут подтв.(сек) и Тайм-аут ответа(сек))