Готова обробка обміну
Універсальна обробка обміну з ApexSFA для облікових систем BAS і сумісних: карта відповідностей, шаблони, перевірка карти, встановлення.
Завантажити обробку
Бета · 0.1Один файл .epf — підключається через «Додаткові звіти та обробки». Перед роботою на робочій базі перевірте карту на копії або запросіть допомогу з налаштуванням.
Для облікових систем на платформі BAS і сумісних є універсальна обробка обміну з ApexSFA (бета-версія 0.1) — зовнішня обробка, яка реалізує весь протокол обміну без програмування: підпис запитів, передачу довідників і документів, забір заявок.
8.1. Що вона робить
- Універсальний обмін за картою відповідностей. Ви самі обираєте, з яких обʼєктів вашої бази брати дані: довідник товарів, контрагентів, точок, регістри залишків і боргів, документи продажів. Для кожного поля ApexSFA вказується реквізит, табличну частину, вимір або ресурс регістру — або константа.
- Шаблони карт для поширених конфігурацій: заповнюють карту одним кліком, далі її можна підправити під доопрацювання вашої бази.
- «Перевірити карту» — звірка кожного шляху з метаданими бази й тестова вибірка по 5 записів кожного розділу без відправки: видно, що саме піде в ApexSFA, і де карта посилається на неіснуючі реквізити.
- Вивантаження в ApexSFA: довідники, ціни, залишки, продажі, борги — пакетами, з повтором при перевищенні ліміту чи збоях звʼязку.
- Прийом з ApexSFA: заявки торгових — у документ вашої бази, з підтвердженням кожного документа й без дублів при повторах.
- Журнал обміну в самій обробці та на порталі ApexSFA.
8.2. Як встановити
- Завантажте й підключіть обробку. Файл — на apexsfa.com/developers/ready-exchange. Підключіть його через «Додаткові звіти та обробки» (у конфігураціях з БСП — BAS, УТ 11) або відкрийте як зовнішню через «Файл → Відкрити».
- Налаштування підключення: адреса API
https://api.apexsfa.com/api/v1,Tenant Idі ключ обміну — їх видає команда ApexSFA при підключенні точки синхронізації. Кнопка перевірки звʼязку робить підписаний тестовий запит. - Шаблон карти: оберіть шаблон своєї конфігурації — розділи обміну заповняться автоматично; заповніть параметри (наприклад, перелік виробників в обміні).
- «Перевірити карту»: обробка звіряє кожен шлях карти з метаданими вашої бази й робить тестову вибірку по 5 записів у кожному розділі. Виправте поля, позначені помилкою. Перший обмін запускайте на копії бази, а не на робочій; якщо потрібна допомога з налаштуванням карти під вашу конфігурацію — запросіть її.
- Розклад: додайте команди «Повний обмін», «Вивантаження», «Завантаження» в розклад «Додаткових звітів та обробок» (рекомендовано: довідники й залишки — кожні 15–30 хв, продажі, борги й забір заявок — кожні 5–15 хв) або запускайте обмін вручну.
8.3. Вимоги
- Платформа 8.3, керовані форми (тонкий клієнт або веб-клієнт).
- Право на підключення зовнішніх обробок; для розкладу — підсистема «Додаткові звіти та обробки» (БСП) або регламентне завдання конфігурації.
- Вихідний HTTPS-доступ до
api.apexsfa.com(порт 443), кореневі сертифікати операційної системи. - Окремий ключ обміну на кожну базу (точку синхронізації).
8.4. Що вміє перша версія
| Напрям | Розділи |
|---|---|
| Вивантаження в ApexSFA | контрагенти, торгові точки, групи номенклатури, виробники, номенклатура, типи цін, ціни, склади, залишки, продажі й повернення, борги, торгові, привʼязки точок до торгових |
| Завантаження з ApexSFA | заявки торгових — у документ, вказаний у карті (записати або провести); скасування — помітка на видалення |
| Шаблони карт | «Управление складом», BAS Бухгалтерія 2.1, УТ 11 / BAS УТ (перевіряється на базі клієнта під час підключення) |
Далі в планах: оплати, каса, постачальники, водії й рейси, коди мереж.
Захист даних: обробка нічого не записує в облік, крім документів із розділів завантаження; якщо джерело залишків чи боргів не прочиталося — нічого не відправляє (щоб не обнулити дані в ApexSFA); карта не може виконати довільний код — лише звірені з метаданими імена й параметри.
8.5. Формат карти відповідностей
Карта зберігається в налаштуваннях обробки й експортується файлом JSON (без ключа обміну) — так її зручно переносити між базами й передавати нашій підтримці.
{
"format": "apexsfa.map/1",
"name": "Моя конфігурація",
"params": [
{"name": "Производители", "type": "Справочник.Производители", "list": true, "title": "Виробники в обміні"}
],
"sections": [
{
"id": "products", "entity": "product", "title": "Номенклатура", "enabled": true,
"sources": [{
"table": "Справочник.Номенклатура",
"filters": [
{"field": "ЭтоГруппа", "op": "=", "value": false},
{"field": "Производитель", "op": "В", "param": "Производители", "skip_if_empty": true}
],
"fields": {
"external_id": {"path": "Ссылка", "as": "guid"},
"name": {"path": "НаименованиеПолное", "fallback": "Наименование"},
"sku": {"path": "Артикул"},
"manufacturer_external_id": {"path": "Производитель.Код", "as": "string"},
"vat_rate": {"const": 20}
}
}]
},
{
"id": "stock", "entity": "product_stock", "title": "Залишки", "enabled": true,
"sources": [{
"table": "РегистрНакопления.ТоварыНаСкладах", "virtual": "Остатки",
"fields": {
"warehouse_code_1c": {"path": "Склад", "as": "guid"},
"product_code_1c": {"path": "Номенклатура", "as": "guid"},
"qty": {"path": "КоличествоОстаток", "agg": "sum"}
}
}]
}
],
"imports": [
{
"id": "orders", "entity": "order", "order_type": "sale",
"document": "Документ.РеализацияТоваров", "write_mode": "write",
"dedupe": {"attribute": "НомерВходящего", "payload": "order_number", "days": 180},
"lookups": {
"client": {"table": "Справочник.Контрагенты", "payload": "client_code_1c", "by": "guid", "required": true},
"product": {"table": "Справочник.Номенклатура", "payload": "product_code_1c", "by": "guid", "level": "line", "required": true}
},
"header": {"Контрагент": {"lookup": "client"}},
"lines": {"table": "Товары", "fields": {
"Номенклатура": {"lookup": "product"},
"Количество": {"line": "quantity", "as": "number"},
"Цена": {"line": "unit_price", "as": "number"}
}}
}
]
}Розділ вивантаження (sections[]): entity — тип сутності ApexSFA з розділу 3a; sources[] — одне або кілька джерел (кожне — простий запит до однієї таблиці); table — обʼєкт метаданих (Справочник.…, Документ.…[.ТабличнаЧастина], РегистрСведений.…, РегистрНакопления.…); virtual — віртуальна таблиця (СрезПоследних, Остатки, Обороты); filters[] — відбори.
Способи заповнення поля (fields.<поле ApexSFA>):
| Спосіб | JSON |
|---|---|
| Реквізит, зокрема через посилання | {"path": "Точка.Владелец.КодПоЕДРПОУ"} |
| Запасний реквізит | {"path": "НаименованиеПолное", "fallback": "Наименование"} |
| Константа | {"const": "buyer"} |
| Параметр з налаштувань | {"param": "Филиал"} |
| Складене значення | {"concat": [{"path": "ТипЦен.Код", "as": "string"}, {"path": "Номенклатура", "as": "guid"}], "sep": ":"} |
| Входження в список | {"path": "Ссылка", "in_param": "ТорговыеДляКПК", "then": "mobile", "else": "accounting"} |
| Перетворення | "as": guid, guid_nodash, presentation, enum, filled, string, number, date |
| Відповідність значень | "map": [["безнал", "noncash"], ["нал", "cash"]], "match": "contains" |
| Агрегат | "agg": "sum" або "max" |
Відбір (filters[]): field — шлях; op — =, <>, >, >=, <, <=, В, НЕ В, В ИЕРАРХИИ, ЗАПОЛНЕНО, НЕ ЗАПОЛНЕНО, ССЫЛКА; значення — value або param (+ skip_if_empty).
Розділ завантаження (imports[]): документ обліку, режим write/post, захист від дублів dedupe (реквізит документа ↔ номер заявки), пошук посилань lookups (за GUID, кодом або реквізитом), заповнення шапки header і рядків lines з полів заявки (payload, line, lookup, const, param).