Всем привет!
Помогите отправить из 1С 8.3 POST запрос на сайт
https://api.uds.app/partner/v2/goods
в теле запроса указать название категории ("name"), id категории ("externalId"), тип - CATEGORY.

{
 "name": "Кофе",
 "nodeId": null,
 "externalId": "category_coffee",
 "data":
   {
   "type": "CATEGORY"
   }
}
---
Попробуйте такой код
```1c
    СтрокаURI = "https://api.uds.app/partner/v2/goods";
    СтруктураURI = СтруктураURI(СтрокаURI);

    Пользователь = "ID компании";
    Пароль = "API Key";

    HTTPСоединение = Новый HTTPСоединение(СтруктураURI.Хост, СтруктураURI.Порт,Пользователь,Пароль,,,Новый ЗащищенноеСоединениеOpenSSL());

    Заголовки = Новый Соответствие();
    Заголовки.Вставить("accept","application/json");
    Заголовки.Вставить("Content-Type","application/json");

    СтруктураДляJSON = Новый Структура("name,nodeId,externalId", "Clothers",,"clothers");
    СтруктураДляJSON.Вставить("data",Новый Структура("type","CATEGORY"));
    Запись = Новый ЗаписьJSON;
    Запись.УстановитьСтроку();
    ЗаписатьJSON(Запись, СтруктураДляJSON);
    ТелоЗапроса = Запись.Закрыть();

    HTTPЗапрос = Новый HTTPЗапрос(СтруктураURI.ПутьНаСервере, Заголовки);
    HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса);
    РезультатЗапроса = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);

    ТекстОтветаJSON = РезультатЗапроса.ПолучитьТелоКакСтроку();
    ЧтениеJSON = Новый ЧтениеJSON();
    ЧтениеJSON.УстановитьСтроку(ТекстОтветаJSON);
    РезультатЧтения = ПрочитатьJSON(ЧтениеJSON);
    ЧтениеJSON.Закрыть();
```

```1c
    Функция СтруктураURI(Знач СтрокаURI) Экспорт

    СтрокаURI = СокрЛП(СтрокаURI);

    // схема
    Схема = ";
    Позиция = Найти(СтрокаURI, "://");
    Если Позиция > 0 Тогда
    Схема = НРег(Лев(СтрокаURI, Позиция - 1));
    СтрокаURI = Сред(СтрокаURI, Позиция + 3);
    КонецЕсли;

    // строка соединения и путь на сервере
    СтрокаСоединения = СтрокаURI;
    ПутьНаСервере = ";
    Позиция = Найти(СтрокаСоединения, "/");
    Если Позиция > 0 Тогда
    ПутьНаСервере = Сред(СтрокаСоединения, Позиция + 1);
    СтрокаСоединения = Лев(СтрокаСоединения, Позиция - 1);
    КонецЕсли;

    // информация пользователя и имя сервера
    СтрокаАвторизации = ";
    ИмяСервера = СтрокаСоединения;
    Позиция = Найти(СтрокаСоединения, "@");
    Если Позиция > 0 Тогда
    СтрокаАвторизации = Лев(СтрокаСоединения, Позиция - 1);
    ИмяСервера = Сред(СтрокаСоединения, Позиция + 1);
    КонецЕсли;

    // логин и пароль
    Логин = СтрокаАвторизации;
    Пароль = ";
    Позиция = Найти(СтрокаАвторизации, ":");
    Если Позиция > 0 Тогда
    Логин = Лев(СтрокаАвторизации, Позиция - 1);
    Пароль = Сред(СтрокаАвторизации, Позиция + 1);
    КонецЕсли;

    // хост и порт
    Хост = ИмяСервера;
    Порт = ";
    Позиция = Найти(ИмяСервера, ":");
    Если Позиция > 0 Тогда
    Хост = Лев(ИмяСервера, Позиция - 1);
    Порт = Сред(ИмяСервера, Позиция + 1);
    КонецЕсли;

    Результат = Новый Структура;
    Результат.Вставить("Схема", Схема);
    Результат.Вставить("Логин", Логин);
    Результат.Вставить("Пароль", Пароль);
    Результат.Вставить("ИмяСервера", ИмяСервера);
    Результат.Вставить("Хост", Хост);
    Результат.Вставить("Порт", ?(Порт <> ", Число(Порт), Неопределено));
    Результат.Вставить("ПутьНаСервере", ПутьНаСервере);

    Возврат Результат;

    КонецФункции
```
---
Я так понимаю, что по каждой строке ТЧ Вам нужно отправлять запрос на сервис и обрабатывать ответ. В таком случае, весь код работы с сервисом нужно вставлять в цикл.

```1c
    Для Каждого СтрокаТабличнойЧасти из Объект.Запасы Цикл
    СтруктураДляJSON = Новый Структура("name,nodeId,externalId", "Clothers",,"clothers");
    СтруктураДляJSON.Вставить("data",Новый Структура("type","CATEGORY"));
    Запись = Новый ЗаписьJSON;
    Запись.УстановитьСтроку();
    ЗаписатьJSON(Запись, СтруктураДляJSON);
    ТелоЗапроса = Запись.Закрыть();

    HTTPЗапрос = Новый HTTPЗапрос(СтруктураURI.ПутьНаСервере, Заголовки);
    HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса);
    РезультатЗапроса = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);

    ТекстОтветаJSON = РезультатЗапроса.ПолучитьТелоКакСтроку();
    ЧтениеJSON = Новый ЧтениеJSON();
    ЧтениеJSON.УстановитьСтроку(ТекстОтветаJSON);
    РезультатЧтения = ПрочитатьJSON(ЧтениеJSON);
    ЧтениеJSON.Закрыть();
    КонецЦикла;
```
---
Попробуйте такой код
```1c
    СтрокаURI = "https://api.uds.app/partner/v2/goods";
    СтруктураURI = СтруктураURI(СтрокаURI);

    Пользователь = "ID компании";
    Пароль = "API Key";

    HTTPСоединение = Новый HTTPСоединение(СтруктураURI.Хост, СтруктураURI.Порт,Пользователь,Пароль,,,Новый ЗащищенноеСоединениеOpenSSL());

    Заголовки = Новый Соответствие();
    Заголовки.Вставить("accept","application/json");
    Заголовки.Вставить("Content-Type","application/json");

    СтруктураДляJSON = Новый Структура("name,nodeId,externalId", "Clothers",,"clothers");
    СтруктураДляJSON.Вставить("data",Новый Структура("type","CATEGORY"));
    Запись = Новый ЗаписьJSON;
    Запись.УстановитьСтроку();
    ЗаписатьJSON(Запись, СтруктураДляJSON);
    ТелоЗапроса = Запись.Закрыть();

    HTTPЗапрос = Новый HTTPЗапрос(СтруктураURI.ПутьНаСервере, Заголовки);
    HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса);
    РезультатЗапроса = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);

    ТекстОтветаJSON = РезультатЗапроса.ПолучитьТелоКакСтроку();
    ЧтениеJSON = Новый ЧтениеJSON();
    ЧтениеJSON.УстановитьСтроку(ТекстОтветаJSON);
    РезультатЧтения = ПрочитатьJSON(ЧтениеJSON);
    ЧтениеJSON.Закрыть();
```

```1c
    Функция СтруктураURI(Знач СтрокаURI) Экспорт

    СтрокаURI = СокрЛП(СтрокаURI);

    // схема
    Схема = ";
    Позиция = Найти(СтрокаURI, "://");
    Если Позиция > 0 Тогда
    Схема = НРег(Лев(СтрокаURI, Позиция - 1));
    СтрокаURI = Сред(СтрокаURI, Позиция + 3);
    КонецЕсли;

    // строка соединения и путь на сервере
    СтрокаСоединения = СтрокаURI;
    ПутьНаСервере = ";
    Позиция = Найти(СтрокаСоединения, "/");
    Если Позиция > 0 Тогда
    ПутьНаСервере = Сред(СтрокаСоединения, Позиция + 1);
    СтрокаСоединения = Лев(СтрокаСоединения, Позиция - 1);
    КонецЕсли;

    // информация пользователя и имя сервера
    СтрокаАвторизации = ";
    ИмяСервера = СтрокаСоединения;
    Позиция = Найти(СтрокаСоединения, "@");
    Если Позиция > 0 Тогда
    СтрокаАвторизации = Лев(СтрокаСоединения, Позиция - 1);
    ИмяСервера = Сред(СтрокаСоединения, Позиция + 1);
    КонецЕсли;

    // логин и пароль
    Логин = СтрокаАвторизации;
    Пароль = ";
    Позиция = Найти(СтрокаАвторизации, ":");
    Если Позиция > 0 Тогда
    Логин = Лев(СтрокаАвторизации, Позиция - 1);
    Пароль = Сред(СтрокаАвторизации, Позиция + 1);
    КонецЕсли;

    // хост и порт
    Хост = ИмяСервера;
    Порт = ";
    Позиция = Найти(ИмяСервера, ":");
    Если Позиция > 0 Тогда
    Хост = Лев(ИмяСервера, Позиция - 1);
    Порт = Сред(ИмяСервера, Позиция + 1);
    КонецЕсли;

    Результат = Новый Структура;
    Результат.Вставить("Схема", Схема);
    Результат.Вставить("Логин", Логин);
    Результат.Вставить("Пароль", Пароль);
    Результат.Вставить("ИмяСервера", ИмяСервера);
    Результат.Вставить("Хост", Хост);
    Результат.Вставить("Порт", ?(Порт <> ", Число(Порт), Неопределено));
    Результат.Вставить("ПутьНаСервере", ПутьНаСервере);

    Возврат Результат;

    КонецФункции
```
---
Спасибо! Получилось!
---
Как выгрузить из табличной части документа
Выгружает только последнюю строку

```1c
    Для Каждого СтрокаТабличнойЧасти из Объект.Запасы Цикл
    Товар=СтрокаТабличнойЧасти.Номенклатура.Родитель;
    //Цена=СтрокаТабличнойЧасти.Цена;
    //КодТ=СтрокаТабличнойЧасти.Номенклатура.Код;
    //Сообщить(товар);
    КонецЦикла;

    СтруктураДляJSON = Новый Структура("name,nodeId,externalId",СокрЛП(Товар),,СокрЛП(Товар));
    СтруктураДляJSON.Вставить("data",Новый Структура("type","CATEGORY"));

    Запись = Новый ЗаписьJSON;
    Запись.УстановитьСтроку();
    ЗаписатьJSON(Запись, СтруктураДляJSON);
    ТелоЗапроса = Запись.Закрыть();
```
---
Я так понимаю, что по каждой строке ТЧ Вам нужно отправлять запрос на сервис и обрабатывать ответ. В таком случае, весь код работы с сервисом нужно вставлять в цикл.

```1c
    Для Каждого СтрокаТабличнойЧасти из Объект.Запасы Цикл
    СтруктураДляJSON = Новый Структура("name,nodeId,externalId", "Clothers",,"clothers");
    СтруктураДляJSON.Вставить("data",Новый Структура("type","CATEGORY"));
    Запись = Новый ЗаписьJSON;
    Запись.УстановитьСтроку();
    ЗаписатьJSON(Запись, СтруктураДляJSON);
    ТелоЗапроса = Запись.Закрыть();

    HTTPЗапрос = Новый HTTPЗапрос(СтруктураURI.ПутьНаСервере, Заголовки);
    HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса);
    РезультатЗапроса = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);

    ТекстОтветаJSON = РезультатЗапроса.ПолучитьТелоКакСтроку();
    ЧтениеJSON = Новый ЧтениеJSON();
    ЧтениеJSON.УстановитьСтроку(ТекстОтветаJSON);
    РезультатЧтения = ПрочитатьJSON(ЧтениеJSON);
    ЧтениеJSON.Закрыть();
    КонецЦикла;
```
---
Получилось. Спасибо!

Как теперь в категорию закинуть товар с ценой
Для этого нужно отправить POST запрос на https://api.uds.app/partner/v2/goods и в теле запроса указать название товара ("name"), id категории ("nodeid"), id товара ("externalId"), тип товара - ITEM (обычный товар), VARYING_ITEM (товар с вариантами), описание товара ("description"), артикул( "sku"). Если товар имеет несколько вариантов, то необходимо добавить названия вариантов товара и их цены.

"name": "Капучино",\ "nodeId": 641108, \ "externalId": "coffee_cappuccino",\ "data": { "type": "VARYING_ITEM", "description": "Классический капучино", "variants": [ { "name": "Маленький 100 мл", "price": 100.0, "sku": 1 }, { "name": "Средний 200 мл", "price": 150.0, "sku": 2 }, { "name": "Большой 300 мл", "price": 200.0, "sku": 3
---
Массив создать? Потом в структуру в массиве?
---
ТаблицаТоваров = Новый Массив;
    Для Каждого СтрокаТабличнойЧасти из Объект.Запасы Цикл
 Товар=СтрокаТабличнойЧасти.Номенклатура.Родитель;

 СтруктураДляJSON = Новый Структура("name,nodeId,externalId",СокрЛП(Товар),,СокрЛП(Товар));
      СтруктураДляJSON.Вставить("data",Новый Структура("type","CATEGORY"));

       ТаблицаТоваров.Добавить(СтруктураДляJSON);

    КонецЦикла;

    Запись = Новый ЗаписьJSON;
    Запись.УстановитьСтроку();
    ЗаписатьJSON(Запись,ТаблицаТоваров );
    ТелоЗапроса = Запись.Закрыть();
---
Что то не получилось
---
Что именно не получилось-то?
---
Пусто, не выгружает
---
Пусто где - в теле запроса? В ответе?