Документація/Формати даних

Адміністратору

Схеми документів

Поля замовлень, оплат, стор-чеків і заборгованостей та зв'язки шапок із рядками.

Замовлення, оплати й стор-чеки створює мобільний застосунок. Він передає вибрані поля через профіль обміну, а облікова система отримує XML-документи з inbox. Заборгованості передаються в іншому напрямку — з облікової системи на пристрій.

Таблиці документів

ДокументШапкаТаблична частинаНапрямок
Замовленняdoc_ordersdoc_orders_productsПристрій → облікова система; ім'я у стандартному профілі — order.
Оплатаdoc_invoicesНемає.Пристрій → облікова система; ім'я у стандартному профілі — invoice.
Стор-чекdoc_storechecksdoc_storechecks_productsПристрій → облікова система; ім'я у стандартному профілі — storecheck.
Заборгованістьdoc_debtsdoc_debts_productsОблікова система → пристрій.

Ця сторінка описує поля таблиць застосунку. Набір полів, що потрапляє у вихідний XML, окремо задається в exchange.xml. Він може бути меншим за повну схему.

Спільні поля шапки

ПолеТипПризначення
numberTEXTНомер документа.
date_timeINT64Дата й час документа: кількість мілісекунд від 1970-01-01T00:00:00Z.
save_date_timeINT64Дата й час збереження в тому самому форматі.
customer_codeTEXTКод клієнта з ref_customers.code.
customer_nameTEXTНазва клієнта, збережена в документі.
infoTEXTКоментар.

У замовлень, оплат і стор-чеків також є:

ПолеТипПризначення
send_statusINTEGERСтатус надсилання. У стандартному профілі 0 — не надісланий, 1 — надісланий.
latitude, longitudeREALКоординати, зафіксовані застосунком, якщо вони доступні.

Не вважайте порожні координати помилкою формату. Їхня наявність залежить від дозволів і налаштувань визначення місцезнаходження.

Замовлення

Шапка — doc_orders

До спільних полів додаються:

ПолеТипПризначення
trade_pointTEXTКод торгової точки з vl_trade_points.value.
cat_priceTEXTКод категорії цін.
pay_typeTEXTКод типу оплати.
deliveryINT64Дата доставки в мілісекундах від початку Unix-епохи.
delivery_typeTEXTКод типу доставки.
sum_no_discountREALСума до знижки.
discountREALСума знижки на документ.
sumREALПідсумкова сума після знижки.
weightREALЗагальна вага товарів, якщо для товарів задано вагу.

Рядки — doc_orders_products

ПолеТипПризначення
doc_idINTEGERЗв'язок із шапкою замовлення на пристрої.
numINTEGERНомер рядка.
codeTEXTКод товару з ref_products.code.
nameTEXTНазва товару в документі.
countREALВведена кількість.
koefREALКількість базових одиниць в одній введеній одиниці. Для підбору поштучно — 1.
priceREALЦіна базової одиниці до знижки.
price_discountREALЦіна базової одиниці після знижки.
sum_no_discountREALСума рядка до знижки: count × koef × price, округлена до грошової точності.
discountREALСума знижки на рядок.
sumREALСума рядка після знижки.
weightREALЗагальна вага товару в рядку.

Для ціни 42.5, кількості 2, коефіцієнта 1 і знижки 5 сума до знижки становить 85, а після знижки — 80. Значення discount тут є грошовою сумою, а не відсотком.

Оплата — doc_invoices

Окрім спільних полів, оплата містить sum типу REAL — суму оплати та base_doc типу TEXT — номер вибраного документа-підстави.

Назва invoice у профілі обміну відповідає оплаті. Для стандартного профілю не замінюйте її на payment: облікова система має розпізнавати фактичне значення <docs name="invoice">.

Оплата не має табличної частини.

Стор-чек

doc_storechecks містить спільні поля шапки та trade_point типу TEXT — код торгової точки.

Рядки зберігаються в doc_storechecks_products:

ПолеТипПризначення
doc_idINTEGERЗв'язок із шапкою стор-чеку на пристрої.
numINTEGERНомер рядка.
codeTEXTКод товару.
nameTEXTНазва товару.
priceREALЗафіксована ціна.
countREALЗафіксована кількість.

Заборгованості

Облікова система готує doc_debts.xml і doc_debts_products.xml. У стандартному exchange.xml обидві таблиці входять до профілю Завантажити дані.

Шапка — doc_debts

Схема має містити спільні поля number, date_time, save_date_time, customer_code, customer_name, info, а також:

ПолеТипПризначення
sumREALСума документа.
trade_pointTEXTКод торгової точки.
cat_priceTEXTКод категорії цін.
pay_typeTEXTКод типу оплати.
deliveryINT64Дата доставки в мілісекундах від початку Unix-епохи.
delivery_typeTEXTКод типу доставки.

За потреби додайте debt типу REAL — поточну заборгованість за документом. Якщо поле не використовується, сума документа залишається в sum.

Рядки — doc_debts_products

Схема містить doc_id і num типу INTEGER, code і name типу TEXT, а також price, count, koef, discount і sum типу REAL.

doc_id має відповідати ідентифікатору шапки в doc_debts на пристрої. Для XML-вивантаження ідентифікатори шапок відповідають порядку записів: перший <record> — 1, другий — 2 тощо. Тому рядки першої заборгованості мають doc_id=1.

Формуйте обидва файли як один узгоджений набір і передавайте разом. Якщо змінюєте порядок шапок, перераховуйте doc_id у рядках. Власний код облікової системи в першому полі id або _id не замінює цю нумерацію.

Приклад узгодженого набору: doc_debts.xml і doc_debts_products.xml. Він містить дві заборгованості клієнта C-001 та по одному рядку товару P-001 для кожної. Рядок із doc_id=1 належить документу РН-001, а з doc_id=2 — РН-002. Клієнт і товар відповідають прикладам на сторінці Довідники та маршрути.

Що передавати в облікову систему

Інтегратор вибирає поля шапки в <docHead>, а поля рядків — у <docTable>. Наприклад, щоб облікова система отримала знижку та підсумкову суму рядка, додайте в наявний <docTable> замовлення:

<docTable tableName="doc_orders_products">
  <!-- Решта полів табличної частини -->
  <field name="discount"/>
  <field name="sum"/>
</docTable>

Зв'язок рядків із шапкою у вихідному XML визначає їхня вкладеність: <row> розміщені всередині свого <doc>. Поле doc_id не потрібно передавати лише для відновлення цього зв'язку.

Правила імпорту й захисту від повторів описано на сторінці Документи від пристрою.