Доработать функцию формирования чеков Оранждата согласно изменениям законодательства УТ 10.3

https://1clancer.ru/task/76866

Доработать функцию формирования чеков Согласно изменениям законодательства https://orangedata.ru/news/item/novye-trebovaniya-k-kassovym-chekam-chto-izmenitsya-s-1-sentyabrya-2025-goda

// Формирует JSON-строку запроса // // Параметры: // ПараметрыЗапроса - Структура параметров // ID - Строка(1..64) - ID, который отправляется на сервер Orangedata для однозначной идентификации документа Идентификатор документа // ИНН - Строка - ИНН организации, для которой пробивается чек // Группа - Строка - Группа устройств, с помощью которых будет пробит чек, если ничего не передано будет установлено Main // Ключ - Строка - Ключ, который должен использоваться для проверки подписи // КонтактПокупателя - Строка - Телефон или e-mail покупателя, передается в сообщении на сервер // ТаблицаТоваров - ТаблицаЗначений - таблица товаров, должна быть минимум одна строка // Колонки: // // СуммаОплаты - Число - Сумма оплаты, отправляемая в чеке // ПризнакРасчета - Число - 1 - Приход, 2 - Возврат прихода, 3 - Расход, 4 - Возврат расхода // ТипОплаты - Число - // // Возвращаемое значение: // <Тип.Вид> - <описание возвращаемого значения> // Функция СформироватьТелоЗапроса(ПараметрыЗапроса)

ИдДокумента = ПараметрыЗапроса.ID; ИНН = ПараметрыЗапроса.ИНН; Группа = ?(ПараметрыЗапроса.Свойство("Группа"), ПараметрыЗапроса.group, "Main"); //Группа = ?(ПараметрыЗапроса.Свойство("Группа"), ПараметрыЗапроса.Группа, "null"); Ключ = ПараметрыЗапроса.Ключ; КонтактПокупателя = ПараметрыЗапроса.КонтактПокупателя; ТаблицаТоваров = ПараметрыЗапроса.ТаблицаТоваров; ПризнакРасчета = ПараметрыЗапроса.ПризнакРасчета; СуммаОплаты = ПараметрыЗапроса.СуммаОплаты; ТипОплаты = ПараметрыЗапроса.ТипОплаты;

ПараметрыЗакрытияЧека = Новый Структура("payments, taxationSystem");

МассивТоваров = Новый Массив; Для Каждого СтрокаТЗ Из ТаблицаТоваров Цикл СтруктураТовара = Новый Структура; СтруктураТовара.Вставить("text", СтрокаТЗ.Наименование); СтруктураТовара.Вставить("price", СтрокаТЗ.Цена); СтруктураТовара.Вставить("quantity", СтрокаТЗ.Количество); СтруктураТовара.Вставить("tax", ПолучитьКодСтавкиНДС(СтрокаТЗ.СтавкаНДС)); СтруктураТовара.Вставить("paymentMethodType", 1); // Признак способа расчета, 1214:1 – Предоплата 100% 2 – Частичная предоплата 3 – Аванс 4 – Полный расчет 5 – Частичный расчет и кредит 6 – Передача в кредит 7 – оплата кредита СтруктураТовара.Вставить("paymentSubjectType", СтрокаТЗ.ПризнакПредметаРасчета); // Признак предмета расчета, 1212: 1 – Товар 2 – Подакцизный товар 3 – Работа 4 – Услуга,..

// Временно отключим //Если ЗначениеЗаполнено(СтрокаТЗ.ЗначениеШтрихкода) Тогда // СтруктураТовара.Вставить("nomenclatureCode", (СтрокаТЗ.ЗначениеШтрихкода)); //КонецЕсли;

МассивТоваров.Добавить(СтруктураТовара); КонецЦикла;

СтруктураЗапроса = Новый Структура("id, Inn, group, content, key"); СтруктураЗапроса.ID = ИдДокумента; СтруктураЗапроса.Inn = ИНН; СтруктураЗапроса.group = Группа; СтруктураЗапроса.key = Ключ;

СтруктураСодержимого = Новый Структура; СтруктураСодержимого.Вставить("type", ПризнакРасчета); // Признак расчета (число): 1 - Приход, 2 - Возврат прихода, 3 - Расход, 4 - Возврат расхода СтруктураСодержимого.Вставить("positions", МассивТоваров) ; // Список предметов расчета (Массив структур) СтруктураСодержимого.Вставить("checkClose", ПараметрыЗакрытияЧека); // Параметры закрытия чека Структура п.2.1.1.3 СтруктураСодержимого.Вставить("customerContact", КонтактПокупателя); // !!!! Телефон или электронный адрес покупателя, 1008 //СтруктураСодержимого.Вставить("agentType"); // Признак агента, 1057. Битовое поле, где номер бита обозначает, что оказывающий услугу покупателю (клиенту) пользователь является: // 0 – банковский платежный агент // 1 – банковский платежный субагент // 2 – платежный агент // 3 – платежный субагент // 4 – поверенный // 5 – комиссионер // 6 – иной агент // Кассовый чек (БСО) может содержать реквизиты «признак агента» (тег 1057), только если отчет о регистрации и (или) текущий отчет о перерегист