База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как загрузить JSON-заказ с маркировкой в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 26 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
27 июля 2026 в 18:11 #38223
{
«OrderNum»:»S128-1-markType»,
«OrderDate»:»2024-06-16T15:08:56″,
«OrderState»:»open»,
«OrderType»:»sale»,
«OrderDesc»:»Адрес, дата\время, тел.»,
«RRN»:»»,
«TID»:»»,
«OrderItems»:[
{
«code»:2155899,
«barCode»:»4810268040337″,
«extCode»:»8607-f9d296666914″,
«sku»:»100069″,
«name»:»Наименование маркированного товара СИ»,
«productType»:0,
«quantity»:1.0,
«value»:20.00,
«discount»:0.00,
«markType»:1,
«tax»:{
«taxRate»:20.00
}
}
],
«prepaymentAmount»:10.00,
«prepPmtDetail»:[
{
«PrepDetailAmount»:10.00,
«PrepDetailMethod»:»Кредит/Рассрочка»
}
],
«currency»:»BYN»,
«totalAmount»:20.00
} -
27 июля 2026 в 18:11 #38224
Это JSON-структура заказа с маркированным товаром. Если нужно загрузить или обработать такой заказ в 1С, то обычно делают так:
1. Создаёшь объект документа (например, ЗаказПокупателя или другой документ продажи).
2. Заполняешь реквизиты документа:
— Номер (OrderNum)
— Дата (OrderDate)
— Состояние (OrderState) — можно использовать для статуса документа
— Тип заказа (OrderType)
— Описание (OrderDesc)
— Валюта (currency)
— Сумма (totalAmount)
— Предоплата (prepaymentAmount) и детали предоплаты (prepPmtDetail)3. Табличную часть (OrderItems) перебираешь и для каждой строки создаёшь строку табличной части документа:
— Номенклатура (по коду или штрихкоду)
— Количество (quantity)
— Цена (value)
— Скидка (discount)
— Налог (tax.taxRate)
— Дополнительные реквизиты, например, markType (тип маркировки), extCode (внешний код маркировки)4. Если в конфигурации есть поддержка маркировки (например, в УТ, ERP или ТОРГ-12 с маркировкой), то markType и extCode нужно записать в соответствующие реквизиты или свойства табличной части.
5. Для предоплаты можно создать отдельный документ оплаты или заполнить реквизиты предоплаты в заказе.
Пример кода на 1С (упрощённо):
1С (Код)1234567891011121314151617181920212223242526272829303132Док = Документы.ЗаказПокупателя.СоздатьДокумент();Док.Номер = JSON.OrderNum;Док.Дата = ДатаВремя(Лев(JSON.OrderDate, 10), Сред(JSON.OrderDate, 12, 8));Док.Валюта = Справочники.Валюты.НайтиПоКоду(JSON.currency);Док.Комментарий = JSON.OrderDesc;Док.СуммаДокумента = JSON.totalAmount;Для Каждого Товар Из JSON.OrderItems ЦиклСтрока = Док.Товары.Добавить();Строка.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(Товар.code);Строка.Количество = Товар.quantity;Строка.Цена = Товар.value;Строка.Сумма = Товар.value * Товар.quantity;Строка.Скидка = Товар.discount;// Если есть реквизиты маркировкиЕсли Строка.Свойства.Свойство("markType") <> Неопределено ТогдаСтрока.markType = Товар.markType;КонецЕсли;Если Строка.Свойства.Свойство("extCode") <> Неопределено ТогдаСтрока.extCode = Товар.extCode;КонецЕсли;// НалогСтрока.СтавкаНалога = НайтиСтавкуНалога(Товар.tax.taxRate);КонецЦикла;// ПредоплатаЕсли JSON.prepaymentAmount > 0 ТогдаДок.СуммаПредоплаты = JSON.prepaymentAmount;// Можно заполнить детали предоплаты, если есть соответствующие реквизитыКонецЕсли;Док.Записать();Если нужно именно загрузить такой JSON из внешней системы, то можно использовать встроенный парсер JSON (ВстроенныйОбъект «JSON»):
1С (Код)12Парсер = Новый ВстроенныйОбъект("System.Text.Json.JsonDocument");ДокументJSON = Парсер.Parse(СтрокаJSON);Или через стандартные методы 1С (например,
ЧтениеJSON).Если нужна помощь с конкретным кодом загрузки или интеграции — уточните, какая конфигурация и что именно хотите сделать с этим JSON.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.