на веб-клиенте выполнить post

1. wrooom 220 08.08.24 20:20 Сейчас в теме
Нужно на веб-клиенте выполнить post . но при выполнении ОтправитьДляОбработкиАсинх возникает ошибка. А НаСервере нет этой процедуры. Что делать?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
16. user2033930 09.08.24 13:37 Сейчас в теме +2 $m
(15)
Методы ВызватьHTTPМетод(), Записать(), Изменить(), ОтправитьДляОбработки(), Получить(), ПолучитьЗаголовки() и Удалить() объекта HTTPСоединение объявлены устаревшими при работе на стороне клиентских приложений и их работа поддерживается для совместимости. Указанные методы доступны только на стороне серверных приложений.


Источник: https://dl03.1c.ru/content/Platform/8_3_21_1849/1cv8upd_8_3_21_1849.htm#d5347cf7-04a5-11ec-8371-0050569f678a

На файловых базах я ОтправитьДляОбработки() даже в СП не вижу. А на серверных - вижу.

UPD. При режиме совместимости от 8.3.21 и выше - такого метода нет в СП. При 8.3.20 и ниже - есть.
Да, он работает, но в явном виде его хрен найдёшь.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
8. wrooom 220 08.08.24 21:34 Сейчас в теме
С заголовками решил вопрос. Теперь полный код:

ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
	Соединение = Новый HTTPСоединение("retailers-gw.sbermarket.ru",,,,,,ЗащищенноеСоединение);
	
	ЗапросОтправки = Новый HTTPЗапрос("/ofm/api/v1/notifications");
	
	ЗапросОтправки.УстановитьТелоИзСтроки(ОтветБазы);
	ЗапросОтправки.Заголовки.Вставить("Content-Type", "application/json");
	ЗапросОтправки.Заголовки.Вставить("Client-Token", "***");
	ЗапросОтправки.Заголовки.Вставить("Api-Version", "3.0");
	
	Обещание = Соединение.ОтправитьДляОбработкиАсинх(ЗапросОтправки); 
	Результат = Ждать Обещание;
Показать

Подробный текст ошибки:
Ошибка при вызове метода контекста (Ошибка установки соединения)
{СБЕР Обработка.Сборка.Форма.Сборка.Форма(60)}: Результат = Ждать Обещание;

[ScriptRuntimeError]
по причине:
Ошибка установки соединения
Результат = Ждать Обещание;
[ScriptUseError]
9. wrooom 220 08.08.24 21:35 Сейчас в теме
(8) Без Асинх там же ошибка
21. pashamak 327 11.08.24 06:48 Сейчас в теме
(1) Какая ошибка?
Возможно отправляемый http метод не поддерживается.
Попробуй ВызватьHTTPМетодАсинх("POST") или ВызватьHTTPМетодАсинх("PUT")
22. wrooom 220 11.08.24 14:52 Сейчас в теме
23. pashamak 327 11.08.24 16:13 Сейчас в теме
(22) Ошибка установки соединения, смотри контракт на подключение.
Должно ли соединение быть защищенным. Какая аутентификация. Уточни годен ли токен. Попробуй обработкой с обычного клиента подключиться.
24. wrooom 220 11.08.24 16:20 Сейчас в теме
(23) с тонкого клиента работает
(23)
25. pashamak 327 11.08.24 16:23 Сейчас в теме
(24) Веб клиент с той же машины что и тонкий запускается?
Стоит посмотреть логи с их стороны чтобы понять причину отказа.
26. wrooom 220 11.08.24 16:26 Сейчас в теме
(25) с той же
А где логи посмотреть у клиентов?
27. pashamak 327 11.08.24 16:29 Сейчас в теме
(24)
(26) На ресурсе retailers-gw.sbermarket.ru.
Посмотри что по сети уходит https://ruprogi.ru/software/wireshark с тонкого и веб клиентов.
Если код тот же работает по разному то проблема может быть в сертификатах/разрешениях браузеров.
2. user2033930 08.08.24 20:26 Сейчас в теме
3. wrooom 220 08.08.24 20:52 Сейчас в теме
(2) Ошибка возникает на предыдущей строке
ЗапросHttp.Заголовки = Заголовки;
4. wrooom 220 08.08.24 20:54 Сейчас в теме
Весь код:

Заголовки = Новый Соответствие();
	Заголовки.Вставить("Content-Type", "application/json");
	Заголовки.Вставить("Client-Token", "***");
	Заголовки.Вставить("Api-Version", "3.0");  
	
	ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
	Соединение = Новый HTTPСоединение("retailers-gw.sbermarket.ru",,,,,, ЗащищенноеСоединение);
	
	ЗапросОтправки = Новый HTTPЗапрос("/ofm/api/v1/notifications");
	
	ЗапросОтправки.УстановитьТелоИзСтроки(ОтветБазы);
	ЗапросОтправки.Заголовки = Заголовки;
	Результат = Соединение.ОтправитьДляОбработки(ЗапросОтправки);
Показать
5. wrooom 220 08.08.24 20:55 Сейчас в теме
(4) ОтветБазы = строка json
6. user1880116 08.08.24 20:58 Сейчас в теме
(4)
Соединение = Новый HTTPСоединение("retailers-gw.sbermarket.ru",,,,,, ЗащищенноеСоединение);
Давай я почитаю синтакс-помощник за тебя
Прикрепленные файлы:
7. gml 08.08.24 21:32 Сейчас в теме
Попробуйте сначала создать объект HTTPЗапрос, а потом вставлять элементы в его соответствие Заголовки:

ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
Соединение = Новый HTTPСоединение("retailers-gw.sbermarket.ru",,,,,, ЗащищенноеСоединение);

ЗапросОтправки = Новый HTTPЗапрос("/ofm/api/v1/notifications");

ЗапросОтправки.Заголовки.Вставить("Content-Type", "application/json");
ЗапросОтправки.Заголовки.Вставить("Client-Token", "***");
ЗапросОтправки.Заголовки.Вставить("Api-Version", "3.0");

ЗапросОтправки.УстановитьТелоИзСтроки(ОтветБазы);

Результат = Соединение.ОтправитьДляОбработки(ЗапросОтправки);

10. wrooom 220 08.08.24 21:39 Сейчас в теме
Может как то можно POST на сервере сделать?
11. Sashares 35 08.08.24 23:22 Сейчас в теме
(10) Какие сложности возникают? В (7) и (4) код на сервере должен работать.
user1880116; +1 Ответить
12. wrooom 220 09.08.24 13:10 Сейчас в теме
(11) ОтправитьДляОбработкиАсинх и ОтправитьДляОбработки нет НаСервере
13. Sashares 35 09.08.24 13:22 Сейчас в теме
(12)
ОтправитьДляОбработки нет НаСервере

Ищите лучше. У всех есть.

Синтаксис:
ОтправитьДляОбработки(<HTTPЗапрос>, <ИмяВыходногоФайла>)
...
Доступность:
Сервер, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
user1880116; +1 Ответить
14. wrooom 220 09.08.24 13:29 Сейчас в теме
15. Sashares 35 09.08.24 13:32 Сейчас в теме
(14) ОтправитьДляОбработки
Доступен, начиная с версии 8.0.
user1880116; +1 Ответить
16. user2033930 09.08.24 13:37 Сейчас в теме +2 $m
(15)
Методы ВызватьHTTPМетод(), Записать(), Изменить(), ОтправитьДляОбработки(), Получить(), ПолучитьЗаголовки() и Удалить() объекта HTTPСоединение объявлены устаревшими при работе на стороне клиентских приложений и их работа поддерживается для совместимости. Указанные методы доступны только на стороне серверных приложений.


Источник: https://dl03.1c.ru/content/Platform/8_3_21_1849/1cv8upd_8_3_21_1849.htm#d5347cf7-04a5-11ec-8371-0050569f678a

На файловых базах я ОтправитьДляОбработки() даже в СП не вижу. А на серверных - вижу.

UPD. При режиме совместимости от 8.3.21 и выше - такого метода нет в СП. При 8.3.20 и ниже - есть.
Да, он работает, но в явном виде его хрен найдёшь.
18. Sashares 35 09.08.24 14:02 Сейчас в теме
(16)
UPD. При режиме совместимости от 8.3.21 и выше - такого метода нет в СП.

Имхо, косяк СП, потому что остальные не асинх методы - Записать, Изменить, Получить и тд. есть.
И только ОтправитьДляОбработки сломали описание в СП.
19. user2033930 09.08.24 14:05 Сейчас в теме
(18) Да. Поэтому
Ищите лучше. У всех есть.
не совсем корректно утверждать.
20. Sashares 35 09.08.24 14:07 Сейчас в теме
(19) Ну как сказать. Кто ищет - тот найдет. =)
Прикрепленные файлы:
17. Sashares 35 09.08.24 13:40 Сейчас в теме
(14)
Версия 8.3.21

Источник: https://dl04.1c.ru/content/Platform/8_3_26_1318/1cv8upd_8_3_26_1318.htm#bb572410-f9ba-11eb-8371-0050569f678a

В клиентских приложениях (тонкий, мобильный, толстый и веб-клиенты) реализована возможность асинхронного использования HTTP-запросов.

Для объекта HTTPСоединение реализованы методы ВызватьHTTPМетодАсинх(), ЗаписатьАсинх(), ИзменитьАсинх(), ОтправитьДляОбработкиАсинх(), ПолучитьАсинх(), ПолучитьЗаголовкиАсинх() и УдалитьАсинх().

Методы ВызватьHTTPМетод(), Записать(), Изменить(), ОтправитьДляОбработки(), Получить(), ПолучитьЗаголовки() и Удалить() объекта HTTPСоединение объявлены устаревшими при работе на стороне клиентских приложений и их работа поддерживается для совместимости. Указанные методы доступны только на стороне серверных приложений.


Таким образом, ОтправитьДляОбработки всегда работал на клиенте (кроме веб) и на сервере . Но с появлением методов Асинх (которые нужны в первую очередь чтобы работало в веб), его использование на клиенте не рекомендуется.
user1880116; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот