Запрос по API к МойСклад

1. user1370682 01.11.24 09:11 Сейчас в теме
Добрый день.

Столкнулся с такой задачей, но пока-что ничего не понимаю с HTTP-запросами в 1с. Понимаю как их обрабатывать(ответ), но не понимаю, как отправить запрос.

Нужна отправить два запроса
1. Получить токен https://dev.moysklad.ru/doc/api/remap/1.2/#mojsklad-json-api
2. Создать Заказ с более насыщенным телом https://dev.moysklad.ru/doc/api/remap/1.2/documents/#dokumenty-zakaz-pokupatelq-sozdat-zakaz-pokupatelq

Можете помочь?
По теме из базы знаний
Найденные решения
13. Sashares 35 05.11.24 17:16 Сейчас в теме
(11) Действительно, по документации можно только gzip. Был не прав.
Но платформа не умеет раскодировать gzip, поэтому надо самостоятельно это обрабатывать.

Например, вот https://koder.by/chtenie_gzip.php
или вот https://infostart.ru/1c/tools/844121/
ну и по вашей теме - https://geniy1s.ru/izmeneniya-v-api-moj-sklad-v-2024/

Upd. Поддержка gzip будет в 8.3.26 - https://wonderland.v8.1c.ru/blog/obnovlen-plan-zadach-na-versiyu-8-3-26-platformy-1s-predpriyatie-2/?sphrase_id=1026004
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1671936 1 01.11.24 11:58 Сейчас в теме
(1)
Хост = "api.moysklad.ru";
	ИмяМетода = "/api/remap/1.2/security/token";
	Заголовки = Новый Соответствие;
	Заголовки.Вставить("Authorization", "Basic " + ТокенАвторизации);
    Заголовки.Вставить("Accept-Encoding", "gzip");
	SSL = Новый ЗащищенноеСоединениеOpenSSL();
	Соединение = Новый HTTPСоединение(Хост,,,,,,SSL);
    Запрос = Новый HTTPЗапрос(ИмяМетода, Заголовки);
    HTTPОтвет = Соединение.ОтправитьДляОбработки(Запрос); 
	ТелоОтвета = HTTPОтвет.ПолучитьТелоКакСтроку();
Показать
3. user1370682 01.11.24 12:16 Сейчас в теме
(2) ТокенАвторизации = Логин+Пароль в данном случае?
4. user1671936 1 01.11.24 12:46 Сейчас в теме
(3)
Логин+Пароль в данном случае?
в документации написано закодированная пара логин:пароль
При аутентификации по протоколу Basic Auth вместе с запросом передается заголовок Authorization со значением пары логин:пароль, закодированным в варианте RFC2045-MIME стандарта Base64.
5. user1370682 05.11.24 14:42 Сейчас в теме
(4) Спасибо, отправляю запрос, все ок. Теперь делаю другой запрос, приходят непонятные символы, я так понимаю, надо расшифоровать ответ в формате gzip. Подскажите, как это сделать?
6. user1671936 1 05.11.24 15:23 Сейчас в теме
(5) access_token в ответе приходит? Из примера документации
{
  "access_token": "0cbfc512618efa7d5fa306250bca064c1169b37c"
}
7. user1370682 05.11.24 15:48 Сейчас в теме
(6) Да, токен получил, теперь пытаюсь получить данные, ответ приходит, но не понятные сиволы, черезPostman все ок приходит.
8. user1671936 1 05.11.24 16:21 Сейчас в теме
(7)
теперь пытаюсь получить данные, ответ приходит, но не понятные сиволы
пришлите запрос, и символы хоть поглядеть (если не коммерческая тайна). Код состояния 200 приходит? Или другой?
12. user1370682 05.11.24 17:11 Сейчас в теме
(8) Код ответа приходит 200 с Заголовками, тело прикрепляю в файле
9. user1370682 05.11.24 16:47 Сейчас в теме
Код ответа приходит 200 с Заголовками, тело прикрепляю в файле
Прикрепленные файлы:
10. Sashares 35 05.11.24 16:54 Сейчас в теме
(9) Не нужно gzip.
Удалите эту строку:
Заголовки.Вставить("Accept-Encoding", "gzip");


Или можно попробовать так:
Заголовки.Вставить("Accept-Encoding", "deflate");
11. user1370682 05.11.24 17:11 Сейчас в теме
(10) Не получается. В двух случаях один и тот же ответ
Прикрепленные файлы:
13. Sashares 35 05.11.24 17:16 Сейчас в теме
(11) Действительно, по документации можно только gzip. Был не прав.
Но платформа не умеет раскодировать gzip, поэтому надо самостоятельно это обрабатывать.

Например, вот https://koder.by/chtenie_gzip.php
или вот https://infostart.ru/1c/tools/844121/
ну и по вашей теме - https://geniy1s.ru/izmeneniya-v-api-moj-sklad-v-2024/

Upd. Поддержка gzip будет в 8.3.26 - https://wonderland.v8.1c.ru/blog/obnovlen-plan-zadach-na-versiyu-8-3-26-platformy-1s-predpriyatie-2/?sphrase_id=1026004
14. SlavaKron 05.11.24 17:42 Сейчас в теме
(13) Пользуюсь этой библиотекой https://infostart.ru/1c/articles/709325/ Тут есть поддержка GZip. Сам код библиотеки чистый и академичный.
user1671936; Sashares; +2 Ответить
15. user1370682 06.11.24 17:42 Сейчас в теме
(14) Добрый день. Спасибо. но все равно ошибка. Я получаю ответ

Данные = БОНД_Коннектор.КакJson(Ответ.ПолучитьТелоКакДвоичныеДанные()); Там примерно вот таке данные
7B 22 65 72 72 6F 72 73 2........
Потом передаю это в функцию и одну функцию передела под себя(так как у меня gzip), но в итоге все равно ошибка. На всякий случай прикреплю еще заголовки, которые приходят в ответ.
Нехватает опыта чтобы додавить.
Прикрепленные файлы:
16. user1370682 07.11.24 11:44 Сейчас в теме
Оставьте свое сообщение

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