Перейти до вмісту

XML 1С

Матеріал з K2 ERP Wiki

Если ЧтениеXML.Имя = "Number" Тогда

<Name>ТОВ Ромашка</Name>
</Characteristic>

Для взаєморозрахунків XML має змогу містити:

<Item> </syntaxhighlight>

!;

</Item>

Перед міграцією потрібно зібрати: XSD — це XML Schema Definition, тобто формальний характеристика структури XML.; Через XML можна вивантажити:

<Quantity>1</Quantity>
  • REST API;
  • JSON;
  • webhooks;
  • черги повідомлень;
  • інтеграційну шину;
  • EDI-конектори;
  • BI-шар;
  • контрольовані імпорти;
  • логування і статуси.; Формат

<?xml version="1.0" encoding="UTF-8"?> це використання формату XML у / 1С:організація та BAS; додатково реалізовано вивантаження і завантаження довідників, документів, замовлень, цін, залишків, банківських або регламентованих даних, інтеграції з сайтами, CRM, WMS, MES, електронним документообігом, зовнішніми системами та міграційними інструментами виступає ключовою рисою обміну даними забезпечується через XML 1С.;== Помилка: відсутній external_id ==

<SKU>SKU-001</SKU>

!; При вивантаженні цін істотно передавати тип ціни, валюту, дату актуальності та зовнішній код товару.;<ID>SKU-001</ID>

XML-обміни можуть навантажувати систему.; XML

== XML у сучасній ERP-архітектурі ==

<Date>2026-05-15</Date>

 <Name>Розмір</Name>

Зовнішні обробки з XML часто використовувалися як швидкий спосіб інтеграції без зміни основної конфігурації.; Один і той самий XML-файл не повинен створити платежі двічі.; # Записати статус.; Об’єктів
== XML і електронний електронний документообіг ==
 <Code>12345678</Code>
 <Article>A-001</Article>
[[Категорія:Рухи документа]]
Причини:

!; # Якщо є собою  оновити або пропустити.; !; Указ Президента України №601/2024 ввів у дію рішення для бізнесу РНБО від 2 вересня 2024 року щодо сфера застосування, скасування та внесення змін до персональних спеціальних економічних та інших санкцій.;<?xml version="1.0" encoding="UTF-8"?>

</Item>

* завантажити замовлення з XML-файлу;
* вивантажити номенклатуру в XML;
* імпортувати контрагентів;
* сформувати файл для сайту;
* розібрати відповідь зовнішньої системи;
* підготувати файл для міграції;
* сформувати XML для електронного документообігу.; переважні аспекти

Для документа істотно передавати:

 <Code>12345678</Code>

* довге читання;
* велике споживання пам’яті;
* таймаути;
* зависання клієнта;
* помилки мережі;
* часткове завантаження;
* дублікати при повторі.;== Реплікатор K2 і XML  ==

Приклад: XML — це текстовий формат із тегами, який надає можливість описувати структуровані інформаційні дані.; |- | Що найчастіше ламається?; Якщо такі обміни працюють у ризиковому або підсанкційному ПЗ, компанії потрібно оцінити юридичні, технічні й кібербезпекові ризики та планувати перехід на безпечну ERP-платформу.;== Помилка: неправильне кодування ==

</Order>

  • дату і час;
  • напрямок обміну;
  • файл;
  • зовнішній ID;
  • кількість об’єктів;
  • кількість успішних записів;
  • кількість помилок;
  • текст помилки;
  • користувача або задача;
  • статус;
  • час виконання.; Приклад платежу:

ЗаписьXML.ЗаписатьТекст("2026-05-15");

!; Для сучасних API частіше краще JSON.;

* номенклатура;
* контрагенти;
* склади;
* одиниці виміру;
* валюти;
* типи цін;
* характеристики;
* договори;
* працівники;
* підрозділи.; |}

Результат:

ЧтениеXML.Закрыть();

Типові сценарії:

 </Item>
== Коротко ==
{| class="wikitable" style="width:100%;"

== Висновок ==

ЗаписьXML.ЗаписатьНачалоЭлемента("Date");

У типових сценаріях використовують:

* [[1С]]
* [[BAS]]
* [[BAS ERP]]
* [[K2 ERP]]
* [[ERP]]
* [[Інтеграція через JSON]]
* [[Інтеграція з банками]]
* [[Мова 1С]]
* [[Зовнішня обробка 1С]]
* [[Зовнішній звіт 1С]]
* [[Регламентні завдання 1С]]
* [[СКД 1С]]
* [[Запити 1С]]
* [[Адміністрування 1С]]
* [[Конфігуратор 1С]]
* [[Товстий клієнт 1С]]
* [[Клієнт-серверний режим 1С]]
* [[Сервер 1С]]
* [[Розширення 1С]]
* [[Проведення документа 1С]]
* [[Рухи документа 1С]]
* [[Регістри 1С]]
* [[Регістр накопичення 1С]]
* [[Регістр відомостей 1С]]
* [[Регістр бухгалтерії 1С]]
* [[Регістр розрахунків 1С]]
* [[Взаєморозрахунки 1С]]
* [[Характеристики номенклатури 1С]]
* [[Партії 1С]]
* [[Типи цін 1С]]
* [[ПДВ 1С]]
* [[Зарплата 1С]]
* [[Виробництво 1С]]
* [[Специфікація 1С]]
* [[Power BI]]
* [[BI система]]
* [[Вивантаження даних 1С]]
* [[Міграція даних з 1С]]
* [[Міграція з 1С]]
* [[Міграція з BAS]]
* [[Заміна BAS]]
* [[Реплікатор K2]]
* [[Права доступу в ERP]]
* [[Аудит дій]]
* [[Українське програмне забезпечення]]
* [[Цифрова незалежність]]

 <Quantity>100</Quantity>

* [https://www.president.gov.ua/documents/6012024-52009 Указ Президента України №601/2024]
* [https://cip.gov.ua/ua/statics/perelik-zaboronenogo-do-vikoristannya-programnogo-zabezpechennya-ta-komunikaciinogo-merezhevogo-obladnannya Перелік забороненого до використання програмного забезпечення та комунікаційного мережевого обладнання]
* [https://erp.kyiv.ua Сайт K2 ERP]
* [https://wiki.erp.kyiv.ua Wiki K2 ERP]
* [https://cloud.corp2.eu хмарна інфраструктура K2 ERP]

[[Категорія:Міграція даних]]
== Приклад XML замовлення для  ==
Одна з найчастіших проблем XML  кодування.; * каталог товарів;
* групи товарів;
* характеристики;
* одиниці виміру;
* ціни;
* залишки;
* замовлення;
* контрагентів;
* статуси замовлень.; Наслідок

<syntaxhighlight lang="xml">

Для старих 1С-обмінів і CommerceML часто застосовується XML.; |-
| Що найважливіше?; Суми можуть не збігатися через:
== Де застосовується XML у  ==
Такий файл має змогу передаватися на сайт або в WMS.;<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

 <soap:Body>
=== Для чого XML застосовується в 1С? ===
 <Date>2026-05-15</Date>
== XML і ПДВ ==
 КонецЕсли;
 <ExternalID>BANK-98765</ExternalID>
 <Name>Товар А</Name>
 <ExternalID>WEB-10025</ExternalID>

XML і зовнішні ID

У XML можуть зустрічатися різні формати дат:

Характеристики номенклатури 1С у XML потрібно передавати дуже обережно.; JSON як ілюстрація:

</Order>

<VATRate>20</VATRate>

У реальному коді потрібно враховувати вкладеність, кодування, відсутні теги, помилки формату і перетворення типів.; У 1С XML часто застосовують, коли потрібно у зовнішніх обробках, обмінах, CommerceML, web-сервісах, універсальному обміні даними, вивантаженні конфігураційних або довідкових даних, інтеграціях із сайтами та підготовці даних для міграції.;

== XML у зовнішніх обробках ==
</div>

У [[K2 ERP]] старі XML-обміни варто переглядати не механічно, а архітектурно: які інформаційні дані реально потрібні, які правила актуальні, які формати краще замінити на API або JSON, а які XML-схеми залишити для сумісності.;</Product>

XML був одним із найпоширеніших форматів інтеграції в старих 1С-рішеннях.; !; Він добре підходить для структурованих довідників, документів, замовлень, цін, залишків і CommerceML, але потребує контролю схеми, кодування, тегів, обов’язкових полів і помилок завантаження.; Він має змогу використовуватися для:

[[Категорія:Взаєморозрахунки]]

<?xml version="1.0" encoding="UTF-8"?> |- | CommerceML із сайтом | API або новий конектор | Краще перейти на сучасний формат |- | XML-файл замовлень | REST API / JSON / імпорт | Потрібен external_id |- | XML цін | API цін або міграційна таблиця | Важливі типи цін і валюти |- | XML залишків | API залишків або BI-шар | Важливі склади, партії, характеристики |- | XML для ЕДО | Новий EDI/API-конектор | Потрібні сертифікати і статуси |- | Міграційний XML | Разовий імпорт у K2 ERP | Потрібні контрольні суми |}

Для партій істотно передавати:

<ID>SKU-001</ID>

Простий XML-документ із замовленням:

<SKU>SKU-002</SKU>
</Items>

|- | Product | Номенклатура | Item / Product | SKU, назва, одиниця |- | Customer | Контрагент | Customer / Partner | Код, ЄДРПОУ, дублікати |- | Order | Замовлення | Sales order | ExternalID, дата, статус |- | Item | Рядок документа | Document line | Кількість, ціна, ПДВ |- | Warehouse | складський облік | Warehouse | Код складу |- | Price | Ціна | Price list | Тип ціни, валюта |- | StockBalance | Залишок | Stock balance | Кількість, партія, характеристика |}

<SKU>SKU-001</SKU>
  • кількість товарів;
  • кількість контрагентів;
  • кількість документів;
  • кількість рядків документів;
  • суми документів;
  • ПДВ;
  • залишки по складах;
  • залишки по партіях;
  • характеристики;
  • ціни;
  • валюти;
  • взаєморозрахунки;
  • зовнішні ID;
  • кількість помилок;
  • кількість пропущених записів.;
Для номенклатури істотно передавати:
|-
| 15.05.2026 10:30
| orders_20260515.xml
| Успішно
| 125
| 0
|-
| 15.05.2026 11:30
| orders_20260515_2.xml
| Помилка
| 80
| 3
|}

 <Email>office@example.com</Email>

 <Batch>LOT-2026-05</Batch>

* контрагентів;
* персональні інформаційні дані;
* банківські реквізити;
* зарплату;
* ціни;
* знижки;
* собівартість;
* комерційні умови;
* податкові інформаційні дані;
* виробничі рецептури.;<Наименование>Товар А</Наименование>
Для [[ПДВ 1С]] у XML потрібно передавати податкові параметри.; У сучасних інтеграціях часто застосовується [[Інтеграція через JSON|JSON]], але XML досі зустрічається у CommerceML, старих обмінах, банківських форматах, державних і корпоративних інтеграціях.; # Залогувати результат.; У сучасній ERP-архітектурі XML має змогу залишатися для сумісності, але нові інтеграції частіше будуються через:

ЗаписьXML.ЗаписатьКонецЭлемента();

'''XML''' або '''Extensible Markup Language'''  це текстовий формат для зберігання і передачі структурованих даних.; Для чого

ЗаписьXML.ЗаписатьОбъявлениеXML();

Через XML можуть передаватися:

* довідники;
* контрагентів;
* номенклатуру;
* склади;
* одиниці виміру;
* ціни;
* залишки;
* документи;
* взаєморозрахунки;
* партії;
* характеристики;
* виробничі інформаційні дані;
* зовнішні ID;
* контрольні суми.; Файл
 <Number>10025</Number>

!;== XML у регламентних завданнях ==

* список XML-обмінів;
* хто їх запускає;
* де лежать файли;
* які системи беруть участь;
* формат XML;
* приклади файлів;
* XSD-схеми, якщо є собою;
* зовнішні ID;
* правила зіставлення;
* логіку створення документів;
* правила ПДВ;
* правила округлення;
* правила статусів;
* журнал помилок;
* регламентні задача;
* відповідальних користувачів.; | Кодування, структура, external_id, схема, логування, контроль дублів.; Указ Президента України №601/2024 ввів у дію рішення для бізнесу РНБО від 2 вересня 2024 року щодо сфера застосування, скасування та внесення змін до санкцій.; Через XML можна завантажувати або вивантажувати документи.;== Помилка: дублювання документів ==
 <Date>2026-05-15</Date>
== XML і банк ==
 </PriceType>
<syntaxhighlight lang="xml">

рішення для бізнесу:

!;</Order>

XML добре підходить для структурованих даних, але потребує дисципліни: правильної схеми, кодування, зовнішніх ID, контролю дублів, журналу обміну, обробки помилок, захисту файлів і контрольних звірок.; Час
<syntaxhighlight lang="xml">
 <Value>Чорний</Value>
Потрібно зібрати всі XML-формати, приклади файлів, правила зіставлення, external_id, схеми, статуси, журнали помилок і вирішити, що переносити як XML, а що краще замінити на API або JSON.; |-
| Що істотно при міграції?; * які теги дозволені;
* які атрибути дозволені;
* які поля обов’язкові;
* які типи даних допустимі;
* яка вкладеність правильна;
* які значення дозволені.; Старий XML-обмін у 1С
'''Головне.''' XML у   це один із класичних форматів обміну даними.;<Order>
|-
| Структура
| Теги
| Ключі й значення
|-
| Людиночитність
| Читабельний, але громіздкий
| Зазвичай компактніший
|-
| Схеми
| Часто застосовується XSD
| Часто застосовується JSON Schema
|-
| Старі інтеграції
| Дуже поширений
| Менш типовий для старих систем
|-
| Web API
| Зустрічається рідше
| Дуже поширений
|-
| CommerceML
| Використовує XML
| Не застосовується як ключовий формат
|}

 <Price>1200</Price>

Приклади:

Найчастіше для обміну товарами, цінами, залишками, замовленнями, контрагентами, документами, CommerceML, електронним документообігом і міграцією даних.;[[Категорія:Реплікатор K2]]

* розбивати файли на частини;
* використовувати відбір по даті;
* передавати тільки зміни;
* використовувати пагінацію в API;
* запускати обмін на сервері;
* вести статуси обробки.;
<Number>WEB-10025</Number>

|- | XML | Добре підходить для старих 1С-обмінів, CommerceML, складних ієрархій | Якщо вже є собою XML-обробки або зовнішня платформа очікує XML |- | JSON | Компактний, зручний для сучасних API | Якщо міграція йде через REST API або сучасні сервіси |- | CSV/Excel | Простий для таблиць | Для простих довідників і ручної перевірки |- | Пряме підключення | Швидке для великих обсягів | Для контрольованої технічної міграції |}

<Order>

Регламентні завдання 1С можуть автономно виконувати XML-обміни.; Коли підходить

<Item>

XML і XSD

Причини: !; Це бізнес-дані, які потрібно захищати як частину ERP.;== XML чи JSON для міграції ==

<Product>

У сучасних інтеграціях частіше використовують REST API і JSON, але SOAP/XML досі зустрічається в старих корпоративних системах.; Регламентний XML-обмін має мати журнал, статуси, повтори і контроль помилок.;== Приклад XML вивантаження залишків == </Order> ЗаписьXML.ЗаписатьНачалоЭлемента("Order");

<Items>
</soap:Envelope> <Item>
<Date>2026-05-15T10:30:00</Date>

 <Characteristic>

!; як ілюстрація:

 <SKU>SKU-001</SKU>

У таких інтеграціях особливо важливі схема, підпис, кодування, сертифікати і контроль статусів.; Приклад журналу:
Деякі банківські або платіжні інтеграції можуть використовувати XML.;<Item>
  • замовлення покупця;
  • рахунок;
  • реалізація;
  • надходження;
  • повернення;
  • переміщення;
  • списання;
  • платіж;
  • акт;
  • виробниче замовлення.;== Варіанти перенесення XML-обміну в K2 ERP ==
  • зовнішній ID;
  • номер;
  • дату;
  • організацію;
  • контрагента;
  • договір;
  • валюту;
  • складський облік;
  • рядки;
  • суми;
  • ПДВ;
  • статус;
  • коментар.; Об’єкт

Партії 1С можуть передаватися в XML, якщо потрібен партійний обліковий облік.; як ілюстрація, файл заявлений як UTF-8:

</Item>
<Name>ТОВ Ромашка</Name>

Приклади:

</Characteristic>
XML не читається Помилка структури або кодування Обмін не виконується
Не знаходиться товар Немає SKU або зовнішнього ID Замовлення не завантажується
Дублюються документи Немає контролю external_id Створюються дублікати
Неправильна дата Різні формати дат Документ потрапляє не в той період
Неправильна сума Різні правила округлення або ПДВ Розбіжності у взаєморозрахунках
Не ті символи Проблема кодування Зіпсовані назви товарів або контрагентів
XML занадто великий Вивантажують усе без відборів Повільний обмін або помилки пам’яті
<Amount>2400</Amount>

XML має змогу використовуватися для міграції з або BAS у K2 ERP.; КонецЦикла; {{SEO

КонецЕсли;

Потрібно контролювати:

== Типові проблеми XML у  ==
!; ЗаписьXML.ОткрытьФайл("C:\Exchange\order.xml", "UTF-8");
[[Категорія:Обмін даними 1С]]
!; * ID транзакції;
* дата;
* рахунок;
* контрагент;
* ЄДРПОУ;
* сума;
* валюта;
* призначення платежу;
* статус;
* комісія.;<Item>
[[Категорія:BAS ERP]]
 <Name>Товар Б</Name>

</КоммерческаяИнформация> ЗаписьXML.ЗаписатьКонецЭлемента(); Через CommerceML зазвичай передають: <Order> істотно про та BAS. В Україні продукти екосистеми і частина продуктів BAS пов’язані з санкційними, юридичними, кібербезпековими та репутаційними ризиками.;<ExternalID>WEB-10025</ExternalID>

</syntaxhighlight> У XML платежу можуть бути:

</soap:Body>

</syntaxhighlight> </Item> Потрібно використовувати external_id, зберігати його в 1С, перевіряти перед створенням документа і вести журнал обміну.; Після початку російської агресії проти України використання такого програмного забезпечення стало питанням не тільки бухгалтерії, а й кібербезпеки, комплаєнсу, репутації та цифрової незалежності.;<Currency>UAH</Currency> <Prices date="2026-05-15">

<TaxNumber>123456789012</TaxNumber>
<Characteristic>
Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
Погано:
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;">
 <CustomerCode>12345678</CustomerCode>
__TOC__
=== Що істотно при міграції XML-обмінів у K2 ERP? ===
== Зовнішні посилання ==
 <Каталог>
 <OrderNumber>WEB-10025</OrderNumber>
{| class="wikitable" style="width:100%;"
[[Категорія:XML]]
переважні аспекти серверного виконання:
 <Quantity>10</Quantity>

</div>

 <Amount>5000</Amount>

'''CommerceML'''  це XML-формат, який широко використовувався в обмінах між  і сайтами, особливо інтернет-магазинами.; |-
| Де застосовується?; Держспецзв’язку веде офіційно затверджений перелік забороненого до використання програмного забезпечення та комунікаційного обладнання, де згадуються продукти 1С/BAS, зокрема 1C:організація 8 і [[BAS ERP]].;== XML і довідники ==
 <Customer>ТОВ Ромашка</Customer>

У старих 1С-обмінах XML зустрічається частіше.; Результат Найкраще використовувати ISO-подібний формат: Помилки з ПДВ в XML можуть призвести до неправильних сум у документах і звітності.; !; | Перенести не без ускладнень файл, а логіку обміну, зіставлення, статуси і контрольні суми.;

<Item>
  • використовувати external_id;
  • шукати об’єкти за кодом або зовнішнім ID;
  • не шукати товари тільки за назвою;
  • розбивати великий XML на частини;
  • обробляти тільки зміни;
  • запускати важкі обміни вночі;
  • не проводити документи без потреби під час імпорту;
  • вести журнал обміну;
  • використовувати статуси;
  • робити повторну обробку без дублів;
  • тестувати на копії бази.;

Реплікатор K2 має змогу допомогти при переході з XML-обмінів або BAS у K2 ERP.; Статус

<Warehouse code="MAIN">

XML і JSON: різниця

<SKU>SKU-002</SKU>

|- | Що таке XML у 1С?; | Формат обміну структурованими даними через теги.;<Payment> Правильна міграція XML — це не перенесення старих файлів “як є собою”, а перенесення корисної логіки обміну в сучасну, контрольовану і безпечну ERP-архітектуру.;

!;</syntaxhighlight>

Що перевірити перед міграцією XML-обмінів

</Item>
<SKU>SKU-001</SKU>

Чому XML не завантажується в 1С?

XML і номенклатура

<Date>15.05.2026</Date> |- | Товар | SKU / ProductID | Зіставлення номенклатури |- | Контрагент | CustomerID / ЄДРПОУ | Зіставлення клієнта |- | Замовлення | ExternalID | Захист від дублів |- | Платіж | TransactionID | Захист від повторного завантаження |- | складський облік | WarehouseCode | Зіставлення складу |}

</Customer>

!;<GetOrder>

Що таке XML у 1С

ЗаписьXML.ЗаписатьКонецЭлемента(); // Order

<Currency>UAH</Currency>
</GetOrder>
НомерЗаказа = ЧтениеXML.Значение;

</Order>

Що таке XML 1С?

<Date>2026-05-15T10:30:00</Date>
<Price>1200</Price>
<SKU>SKU-002</SKU>
<Item>
<Quantity>2</Quantity>
<Quantity>2</Quantity>

</syntaxhighlight>

!; Великий XML має змогу створювати проблеми:

XML і взаєморозрахунки

!;== Приклад запису XML у 1С ==

Проблеми виникають, якщо сайт і 1С по-різному називають характеристики: “Колір”, “Цвет”, “Color”, “colour”.; !; Що означає

</Каталог>
</syntaxhighlight> <Characteristics> <Order> XSD визначає:
  • зовнішній ID;
  • артикул;
  • назву;
  • групу;
  • одиницю виміру;
  • штрихкод;
  • характеристики;
  • вагу;
  • ставку ПДВ;
  • тип товару;
  • характеристика;
  • зображення або посилання на нього.; | Кодування, дати, ПДВ, округлення, зовнішні ID, дублікати, великі файли.; * різне округлення ціни;
  • різне округлення ПДВ;
  • різну кількість знаків після коми;
  • різну логіку знижок;
  • різну валюту;
  • суму з ПДВ або без ПДВ;
  • округлення по рядку або по документу.; Причина
<Name>Товар А</Name> Якщо інтеграційні функціональні можливості критична, краще мати XSD-схему і перевіряти XML перед завантаженням.; Проблема Приклад: <Price>850</Price> <Date>2026-05-15T10:30:00</Date>

Як оптимізувати XML-обмін

Мова 1С має механізми для роботи з XML.; # Прочитати external_id.; | Сайти, CommerceML, CRM, WMS, MES, ЕДО, документи, довідники, міграція.; Головне — правильно зіставити бізнес-сутності між старою і новою системою.; ([cip.gov.ua](https://cip.gov.ua/ua/statics/perelik-zaboronenogo-do-vikoristannya-programnogo-zabezpechennya-ta-komunikaciinogo-merezhevogo-obladnannya), [president.gov.ua](https://www.president.gov.ua/documents/6012024-52009))

<VATAmount>400</VATAmount>
  1. знайти або створити контрагента;
  2. знайти номенклатуру за SKU;
  3. створити замовлення покупця;
  4. заповнити табличну частину;
  5. записати зовнішній ID;
  6. встановити статус обміну;
  7. залогувати результат.; * щогодини завантажувати замовлення із сайту;
  • щодня вивантажувати залишки;
  • раз на день оновлювати ціни;
  • щоночі формувати XML для зовнішньої системи;
  • перевіряти папку з XML-файлами;
  • обробляти чергу імпорту;
  • відправляти результати обробки.; # Якщо немає — створити.; Джерело
<Price>1200</Price>

XML і логування

Після XML-міграції потрібно звірити:

;
{| class="wikitable" style="width:100%;"
<Customer>
'''Критично.''' XML-файл із замовленнями, контрагентами, банківськими даними або зарплатою  це не “без ускладнень файл”.; Логіка

CommerceML часто застосовується для синхронізації 1С/BAS з сайтами на CMS або інтернет-магазинами.; Після завантаження  має змогу:

!;<Currency>UAH</Currency>

[[Категорія:BI]]
ЧтениеXML.ОткрытьФайл("C:\Exchange\order.xml");
 <Date>2026-05-15</Date>

== Приклад читання XML у  ==
== XML і мова  ==

Карта міграції XML

Через XML часто обмінюються довідниками.; У нових API частіше використовують JSON.; ЗаписьXML = Новый ЗаписьXML;

Для банку критично істотно контролювати дублікати.;
ЗаписьXML.ЗаписатьТекст("WEB-10025");
Приклади:

 <Quantity>25</Quantity>

Спрощений приклад формування XML-файлу:

Спрощений приклад читання XML-файлу:

XML   це використання XML-файлів або XML-повідомлень для обміну даними між 1С/BAS та іншими системами: сайтами, CRM, банками, WMS, MES, електронним документообігом або міграційними інструментами.; Контроль
{| class="wikitable" style="width:100%;"
Приклад:

Приклад спрощеної структури:
 <Unit>шт</Unit>
 <Name>Футболка</Name>

!;<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;">
 <Price>1200</Price>
Але при міграції XML  це лише транспортний формат.;[[Категорія:K2 ERP]]
Потрібно домовитися про єдиний формат.; Коментар
</StockBalances>
{{DISPLAYTITLE:XML 1С}}

[[Категорія:Клієнт-серверний режим 1С]]

Назви класів і методів можуть відрізнятися залежно від версії платформи, але загальний принцип однаковий: відкрити XML, прочитати вузли, перетворити їх у об’єкти  або навпаки.;== XML і документи ==

Погана практика  коли менеджер вручну запускає важкий XML-обмін зі свого комп’ютера, і від його робочого місця залежить весь сайт.; Питання
<syntaxhighlight lang="text">
!;<Name>Колір</Name>

XML і партії

XML і CommerceML

  • стабільніший доступ до файлів або сервісів;
  • менша залежність від комп’ютера користувача;
  • легше логувати;
  • зручніше запускати за розкладом;
  • краще контролювати права;
  • простіше виконувати фонові обробки.; !; Перед підтримкою, використанням або міграцією таких систем потрібно перевіряти актуальні офіційні обмеження.;</Товар>

Санкції та ризики використання 1С/BAS в Україні

Для інтеграцій дуже важливий зовнішній ідентифікатор.; # Перевірити, чи такий документ уже є собою.;== XML і безпека ==

Приклад XML вивантаження цін

<Product> Такі правила потрібно описувати в специфікації обміну.; Аналог у K2 ERP

  • читання XML;
  • запис XML;
  • обхід вузлів;
  • отримання атрибутів;
  • запис елементів;
  • перетворення значень;
  • роботу з кодуванням;
  • обробку помилок;
  • логування результатів.;

XML і сервер 1С

  • обміну довідниками;
  • обміну документами;
  • вивантаження замовлень;
  • завантаження замовлень із сайту;
  • передачі цін;
  • передачі залишків;
  • обміну з інтернет-магазинами;
  • обміну через CommerceML;
  • обміну з CRM;
  • обміну з WMS;
  • обміну з MES;
  • обміну з електронним документообігом;
  • формування службових файлів;
  • міграції даних;
  • інтеграції зі старими системами.; * обмін із сайтом;
  • обмін з інтернет-магазином;
  • CommerceML;
  • завантаження замовлень;
  • вивантаження товарів;
  • вивантаження цін;
  • вивантаження залишків;
  • обмін із CRM;
  • обмін із WMS;
  • обмін із MES;
  • електронний електронний документообіг;
  • завантаження банківських або службових файлів;
  • обмін між базами 1С;
  • вивантаження для міграції;
  • імпорт довідників;
  • імпорт номенклатури;
  • обмін із державними або корпоративними системами.; Поле XML

У клієнт-серверному режимі XML-обміни краще виконувати на сервері 1С, а не на клієнті.;

<Order> <Purpose>Оплата за рахунком WEB-10025</Purpose> У старих інтеграціях часто використовувалися SOAP web-сервіси, де інформаційні дані передаються в XML.; Причини можуть бути в неправильній структурі, кодуванні, відсутніх тегах, неправильних датах, невідомих товарах, дублях external_id або помилках у коді обробки.;<Товар>
'''істотно.''' XML-обміни 1С/BAS можуть передавати критичні бізнес-дані: замовлення, контрагентів, банк, ціни, залишки, ПДВ, зарплату, персональні інформаційні дані, виробничі специфікації та комерційні умови.; Такий файл можна передати з сайту в  або з  у зовнішню систему.; * де зберігаються XML-файли;
* хто має доступ;
* чи шифрується передача;
* чи є собою HTTPS або захищений канал;
* чи не логуються паролі;
* чи не зберігаються токени у відкритому вигляді;
* чи очищуються тимчасові файли;
* чи є собою аудит обміну.; XML-елемент

== Помилка: неправильне округлення ==

 <PriceType code="RETAIL">

Типова SOAP-структура:

!; Відповідь

 <Items>

ЗаписьXML.Закрыть();

XML часто застосовується в електронному документообігу.;<syntaxhighlight lang="xml">

<syntaxhighlight lang="xml">
 </Warehouse>
При описі XML-інтеграцій [[1С]] і [[BAS]] в українському контексті потрібно згадувати санкційні та безпекові ризики.; Частину можна тимчасово залишити, частину варто замінити на JSON/API, частину  перенести в Power BI або інтеграційний шар, а застарілі обміни  прибрати.;<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;">
== Контрольні суми після XML-міграції ==
ExternalID потрібен, щоб не створити документ повторно при повторному завантаженні.;

<StockBalances date="2026-05-15"> Держспецзв’язку веде перелік забороненого до використання програмного забезпечення та комунікаційного обладнання; у переліку згадуються продукти 1С/BAS, зокрема 1C:організація 8 і BAS ERP.; ([cip.gov.ua](https://cip.gov.ua/ua/statics/perelik-zaboronenogo-do-vikoristannya-programnogo-zabezpechennya-ta-komunikaciinogo-merezhevogo-obladnannya), [president.gov.ua](https://www.president.gov.ua/documents/6012024-52009))

</Product>

<Item>
  • немає external_id;
  • external_id не зберігається в 1С;
  • при повторному завантаженні створюється новий документ;
  • помилка сталася після запису, але до відповіді зовнішній системі;
  • не ведеться журнал обміну;
  • немає унікального ключа.;=== Що краще: XML чи JSON? ===

Для K2 ERP частіше зручні JSON/API або контрольовані міграційні таблиці, але XML має змогу бути проміжним форматом, якщо він уже застосовується в старій 1С.;<Ид>SKU-001</Ид>

<Item>
  • рахунки;
  • акти;
  • накладні;
  • податкові документи;
  • кадрові документи;
  • статуси підписання;
  • квитанції;
  • службові відповіді.; Приклад контрагента:

Помилка: неправильні формати дат

  • контрагента;
  • договір;
  • документ розрахунків;
  • суму боргу;
  • суму оплати;
  • валюту;
  • дату оплати;
  • призначення платежу;
  • зовнішній ID.; Пока ЧтениеXML.Прочитать() Цикл

Правильний підхід:

;</Prices>
</Items>

</Payment> XML-обмін — це не без ускладнень файл у папці. Це частина бізнес-процесу, яка має змогу створювати документи, змінювати залишки, оновлювати ціни, впливати на замовлення, ПДВ, банк і формування звітів.; Варіант у K2 ERP

  • номер партії;
  • дату партії;
  • строк придатності;
  • постачальника;
  • складський облік;
  • кількість;
  • серію, якщо застосовується.; Вибір залежить від систем, які інтегруються.; | XML частіше в старих обмінах, JSON частіше в сучасних API.; |-
XML чи JSON?; Для XML-обміну потрібно логувати:

Див.; додатково

але фактично збережений в іншому кодуванні.;</syntaxhighlight>

XML і web-сервіси

Краще: Без зовнішніх ID інтеграційні функціональні можливості стає нестабільною.;<Customer>

{| class="wikitable" style="width:100%;"
<КоммерческаяИнформация ВерсияСхемы="2.07" ДатаФормирования="2026-05-15">
ЧтениеXML = Новый ЧтениеXML;
== XML і міграція з 1С/BAS ==
 <Number>WEB-10025</Number>

 <SKU>SKU-001</SKU>

Наслідки:

</div>
 </Item>
як ілюстрація:
 </Товары>
[[Категорія:Номенклатура]]
Зовнішній ID  ключовий елемент стабільного обміну.;[[Категорія:Партії 1С]]

У  XML застосовується для:

== XML і продуктивність ==
 <SKU>SKU-001</SKU>
[[Категорія:XML 1С]]
'''XML 1С'''  це важливий механізм обміну даними, який багато років використовувався для інтеграцій 1С/BAS із сайтами, банками, CRM, WMS, MES, електронним документообігом, CommerceML і зовнішніми системами.; |-
| Сайт
| ПДВ рахується по документу
| 1000,01 грн
|-
| 1С
| ПДВ рахується по рядках
| 1000,00 грн
|}

!;[[1С]] історично є собою російською програмною екосистемою.; '''Проста аналогія.''' XML  це як анкета з підписаними полями: кожне значення лежить усередині тегу, а програма розуміє, де номер документа, дата, контрагент, товар, кількість і ціна.;== XML і характеристики номенклатури ==

XML-файли можуть містити чутливі інформаційні дані:

<syntaxhighlight lang="text">

 </Item>

!;[[Зовнішня обробка 1С]] має змогу читати або формувати XML.; Приклад проблеми:
== Типові питання ==
!; * аналізу старих XML-обмінів;
* вивантаження довідників;
* вивантаження документів;
* вивантаження регістрів;
* формування контрольних сум;
* підготовки JSON замість XML;
* перевірки зовнішніх ID;
* зіставлення старих і нових сутностей;
* підготовки даних для [[Power BI]];
* паралельного запуску 1С/BAS і K2 ERP.;<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;">

 </Characteristics>
 ЧтениеXML.Прочитать();
Приклад:

== Помилка: XML занадто великий ==

 <Price>850</Price>

* українські літери відображаються неправильно;
* XML не читається;
* назви товарів спотворені;
* контрагенти створюються з “кракозябрами”;
* обмін завершується помилкою.;[[Категорія:Аудит дій]]

При переході з [[1С]] або [[BAS]] у [[K2 ERP]] XML-обміни потрібно інвентаризувати окремо.; Помилок
Практичні поради:
 <AmountWithVAT>2400</AmountWithVAT>
 <Value>M</Value>

!;<Товары>

* ставка ПДВ;
* сума без ПДВ;
* сума ПДВ;
* сума з ПДВ;
* податкова ознака;
* тип операції;
* країна;
* код пільги, якщо застосовується.; Критерій

* великий файл;
* багато довідників;
* багато документів;
* пошук номенклатури по назві замість коду;
* створення об’єктів у циклі без оптимізації;
* проведення кожного документа одразу;
* відсутність пакетної обробки;
* запис у робочий час;
* HTTP-запити в циклі;
* відсутність індексів для пошуку external_id.;
<ExpiryDate>2027-05-15</ExpiryDate>
<VAT>20</VAT>

Приклад XML

<Quantity>2</Quantity>

</Customer>

Як уникнути дублів при XML-імпорті?

<Number>10025</Number>
</Item>

ЗаписьXML.ЗаписатьНачалоЭлемента("Number");