Усе детально зі скріншотами та кодом запитів кодом запитів описав на в google docs https://docs.google.com/document/d/1DxK4LOPbYtV7P18RU510pQvNz8-rdhNXKUOnl0rWQKA/edit?usp=sharing
додати колонку з випадаючим списком для вибору ідентифікатора джерела: prom, rozetka, epicentr
додати колонку “токен” (генерація токенів по логіну паролю тут ніде не треба)

Це джерело обирається в замовленні!!! Поле “Источник”(праворуч)

Додати нове поле в замовлення - “№ замов МП” (номер замовлення маркетплейса) яке буде використане для запиту.
в “список замовлень” додати кнопку “Вивантажити ТТН на МП”. при натисканні обираєте виділенні замовлення , згруповує їх по апі ключу, додає мітку “назви джерела” і власне вивантажує ттн на маркетплейси (код нижче)
додаємо колонку в список замовлень “Статус експорту ТТН”: невивантажувалась, успіх, помилка вивантаження
для реалізації я передам вам базу данних і апі ключі. ТТН та номери замовлень можете запросити після реалізії для тестів
Процедура ПередатьТТН(Заказ) // пром
Если ЗначениеЗаполнено(Заказ.НомерЗаказа2ССайта)
И Заказ.ЭтоТТНиз1С Тогда
HTTPСоединение = Новый HTTPСоединение("my.prom.ua",,,,,, Новый ЗащищенноеСоединениеOpenSSL());
КлючAPI = "";
Если ЗначениеЗаполнено(Заказ.ИсточникЗначение) Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КлючИнтернета.КлючAPI
|ИЗ
| РегистрСведений.КлючИнтернета КАК КлючИнтернета // БЕРЕМО З ДЖЕРЕЛ, а не ключів інтернету
|ГДЕ
| КлючИнтернета.Организация = &Организация
| И КлючИнтернета.Источник = &Источник";
Запрос.УстановитьПараметр("Источник", Заказ.ИсточникЗначение);
Запрос.УстановитьПараметр("Организация", Заказ.Организация);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
КлючAPI = ВыборкаДетальныеЗаписи.КлючAPI;
КонецЦикла;
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
Структура = Новый Структура();
Структура.Вставить("order_id", Число(Заказ.НомерЗаказа2ССайта));
Структура.Вставить("declaration_id", Заказ.НомерТТН);
Если Заказ.СпособОтправки = Справочники.СпособыОтправки.НоваяПочта Тогда
Структура.Вставить("delivery_type", "nova_poshta");
Иначе
Структура.Вставить("delivery_type", "ukrposhta");
КонецЕсли;
ЗаписатьJSON(ЗаписьJSON, Структура);
ЗаголовокHTTP = Новый Соответствие();
ЗаголовокHTTP.Вставить("Authorization", "Bearer " + КлючAPI);
ЗаголовокHTTP.Вставить("Content-Type", "application/json");
HTTPЗапрос = Новый HTTPЗапрос("api/v1/delivery/save_declaration_id", ЗаголовокHTTP);
HTTPЗапрос.УстановитьТелоИзСтроки(ЗаписьJSON.Закрыть());
Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
Если Ответ.КодСостояния >= 300 Тогда
ТекстОтвета = Ответ.ПолучитьТелоКакСтроку();
Сообщить("Код состояния: "+ Строка(Ответ.КодСостояния) + Символы.ПС + ТекстОтвета);
Иначе
ЕстьОшибки = Найти(Ответ.ПолучитьТелоКакСтроку(), "error") > 0;
Если ЕстьОшибки Тогда
Сообщить(Ответ.ПолучитьТелоКакСтроку()); // записати відповідь в нове поле "статус вивант ТТН" - успіх, найменування помилки, невивантажувалось
Иначе
Сообщить("Переден номер ТТН на пром.юа: " + Строка(Заказ.НомерТТН));
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//////////////// ROZETKA start
Функция ОбновитьЗаказ(Заказ, Статус=Неопределено, ТТН=Неопределено, Комментарий=Неопределено, ОбновитьТовары=Ложь) Экспорт
Если Статус <> Неопределено ИЛИ ТТН <> Неопределено ИЛИ Комментарий <> Неопределено Тогда
ID = Заказ.НомерЗаказа2ССайта; //КлючПолучить(Заказ, Перечисления.АпиРозеткаТипыКлючей.ID_Order);
Если Статус <> Неопределено Тогда
СтатусКод = НайтиСтатусЗаказаПоОписанию(Статус);
КонецЕсли;
Рез = РедактированиеЗаказаШапка(ID,, СтатусКод, Комментарий, ТТН);
Возврат Рез
КонецЕсли;
КонецФункции //
Функция РедактированиеЗаказаШапка(id, expand=Неопределено, status=Неопределено, seller_comment=Неопределено, ttn=Неопределено)
Токен = ПолучитьТокен();
СтруктураЗапроса = Новый Структура;
Если ЗначениеЗаполнено(status) Тогда
СтруктураЗапроса.Вставить("status", status); // 3 - передан в службу доставки!!!
КонецЕсли;
Если ЗначениеЗаполнено(seller_comment) Тогда
СтруктураЗапроса.Вставить("seller_comment", seller_comment);
КонецЕсли;
Если ЗначениеЗаполнено(ttn) Тогда
СтруктураЗапроса.Вставить("ttn", ttn);
КонецЕсли;
РесурсНаСервере = "/orders/" + ИДвСтроку(ID) + ?(ЗначениеЗаполнено(expand), "?expand=" + expand, "");
Ответ = ОтправитьЗапрос("PUT", РесурсНаСервере, Токен, СтруктураЗапроса); // токен статичний з довідника "джерел"...
Возврат Ответ;
КонецФункции //РедактированиеЗаказа
//////////////// epicentr start
https://mp-api.epicentrm.com.ua/v1/oms/orders/{orderId}/shipment-number
{
"number": "100321569875"
}