публикация исходной ИБ (crm) с повторным использованием сеансов отвечает HTTP 400 без заголовка сеанса
This commit is contained in:
@@ -4,6 +4,17 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 1.3.1.54 (2026-08-11)
|
||||||
|
|
||||||
|
### Исправлено
|
||||||
|
|
||||||
|
- `РК_ОбменСВнешнейБазой`: заголовок `IBSession: start` при вызовах Transfer API —
|
||||||
|
иначе публикация с повторным использованием сеансов отвечает HTTP 400
|
||||||
|
(«Не указан заголовок управления сеансами…»).
|
||||||
|
- Краткий текст ошибки HTTP (из `<descr>` XML-ответа платформы) для формы проверки.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## 1.3.1.53 (2026-08-11)
|
## 1.3.1.53 (2026-08-11)
|
||||||
|
|
||||||
### Исправлено
|
### Исправлено
|
||||||
|
|||||||
@@ -99,6 +99,8 @@
|
|||||||
// Р.Успех, Р.Текст, Р.Ответ, Р.Ошибка — GET /v1/health через РК_ОбменСВнешнейБазой
|
// Р.Успех, Р.Текст, Р.Ответ, Р.Ошибка — GET /v1/health через РК_ОбменСВнешнейБазой
|
||||||
```
|
```
|
||||||
|
|
||||||
|
HTTP-клиент передаёт `IBSession: start` (публикация с повторным использованием сеансов) и `X-Transfer-Token`.
|
||||||
|
|
||||||
Пара: расширение **`ws-rhana`** на исходной ИБ (≥ 0.0.0.30 для складов/остатков; health — с ранних версий).
|
Пара: расширение **`ws-rhana`** на исходной ИБ (≥ 0.0.0.30 для складов/остатков; health — с ранних версий).
|
||||||
|
|
||||||
### Обработки и формы
|
### Обработки и формы
|
||||||
|
|||||||
@@ -158,6 +158,8 @@
|
|||||||
?(Разбор.HTTPS, Новый ЗащищенноеСоединениеOpenSSL(), Неопределено));
|
?(Разбор.HTTPS, Новый ЗащищенноеСоединениеOpenSSL(), Неопределено));
|
||||||
|
|
||||||
ЗапросHTTP = Новый HTTPЗапрос(ПутьЗапроса);
|
ЗапросHTTP = Новый HTTPЗапрос(ПутьЗапроса);
|
||||||
|
// Повторное использование сеансов HTTP на публикации 1С (иначе HTTP 400 без IBSession).
|
||||||
|
ЗапросHTTP.Заголовки.Вставить("IBSession", "start");
|
||||||
// X-Transfer-Token не конфликтует с Basic Auth пользователя публикации (см. README ws-rhana).
|
// X-Transfer-Token не конфликтует с Basic Auth пользователя публикации (см. README ws-rhana).
|
||||||
Если Не ПустаяСтрока(Ключ) Тогда
|
Если Не ПустаяСтрока(Ключ) Тогда
|
||||||
ЗапросHTTP.Заголовки.Вставить("X-Transfer-Token", Ключ);
|
ЗапросHTTP.Заголовки.Вставить("X-Transfer-Token", Ключ);
|
||||||
@@ -187,7 +189,7 @@
|
|||||||
Если ОтветHTTP.КодСостояния < 200 Или ОтветHTTP.КодСостояния >= 300 Тогда
|
Если ОтветHTTP.КодСостояния < 200 Или ОтветHTTP.КодСостояния >= 300 Тогда
|
||||||
ЗаписьЖурналаРегистрации("РК_ОбменСВнешнейБазой", УровеньЖурналаРегистрации.Ошибка, , ,
|
ЗаписьЖурналаРегистрации("РК_ОбменСВнешнейБазой", УровеньЖурналаРегистрации.Ошибка, , ,
|
||||||
"HTTP " + ОтветHTTP.КодСостояния + " " + Относительный + ": " + ТекстОтвета);
|
"HTTP " + ОтветHTTP.КодСостояния + " " + Относительный + ": " + ТекстОтвета);
|
||||||
ВызватьИсключение "Ошибка HTTP " + ОтветHTTP.КодСостояния + ": " + ТекстОтвета;
|
ВызватьИсключение КраткийТекстОшибкиHTTP(ОтветHTTP.КодСостояния, ТекстОтвета);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Чтение = Новый ЧтениеJSON;
|
Чтение = Новый ЧтениеJSON;
|
||||||
@@ -228,4 +230,24 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция КраткийТекстОшибкиHTTP(КодСостояния, ТекстОтвета)
|
||||||
|
|
||||||
|
Описание = СокрЛП(Строка(ТекстОтвета));
|
||||||
|
ПозицияDescr = СтрНайти(Описание, "<descr>");
|
||||||
|
Если ПозицияDescr > 0 Тогда
|
||||||
|
Хвост = Сред(Описание, ПозицияDescr + 7);
|
||||||
|
ПозицияКонец = СтрНайти(Хвост, "</descr>");
|
||||||
|
Если ПозицияКонец > 0 Тогда
|
||||||
|
Описание = СокрЛП(Лев(Хвост, ПозицияКонец - 1));
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если СтрДлина(Описание) > 500 Тогда
|
||||||
|
Описание = Лев(Описание, 500) + "…";
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат "Ошибка HTTP " + КодСостояния + ": " + Описание;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|||||||
Reference in New Issue
Block a user