GetManHTTP - HTTP-клиент для 1С:Предприятие: REST-запросы, коллекции, авторизация, импорт из Postman
Бесплатные
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Узнавайте о новых бесплатных решениях в нашей телеграм-группе Инфостарт БЕСПЛАТНО
Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Зачем это нужно
Рано или поздно у любого, кто интегрирует 1С с внешними сервисами, возникает одна и та же история: нужно быстро проверить, как отвечает API, прежде чем писать код HTTPСоединение/HTTPЗапрос в конфигураторе. Как правило большинство разработчиков, думаю используют для этих целей Postman, однако, как правило иногда есть и внутренние и внешние ограничения которые не позволяют с пользовательского ПК отправлять запросы к определенным эндпоинтам. И доступ может быть открытым для клиента, но закрытым для сервера, а также возможна и обратная ситуация. Данная обработка позволяет решить проблему контекстной отправки и здесь реализована возможность как и отправки с клиента, так и отправки с сервера. Проект молодой и находится в стадии развития, поскольку я постоянно работаю с интеграциями и пишу инструмент "для себя" и хотел бы поделится им с другими разработчиками, поэтому распространение данной обработки осуществляется абсолютно бесплатно.
GetManHTTP - это внешняя обработка, которая переносит логику Postman-подобного HTTP-клиента прямо внутрь 1С. Не расширение, не изменение конфигурации - один файл .epf, который открывается через Файл → Открыть в любой базе.
Что умеет обработка
Формирование и отправка запроса
- Методы GET, POST, PUT, DELETE, PATCH.
- Свои заголовки и query-параметры, с синхронизацией: правите строку URL - таблица параметров обновляется сама, и наоборот.
- Заголовок можно временно отключить переключателем «активен», не удаляя его из списка.
- Тело запроса - JSON, XML, form-data или бинарные данные, либо запрос вообще без тела.
- Ответ 1С форматирует автоматически: JSON и XML приходят в читаемом виде, а не одной строкой.
Файлы в form-data
Каждое поле form-data можно сделать текстовым или файловым - то есть в одном multipart-запросе можно одновременно отправить несколько файлов и обычные текстовые поля. Тело собирается в памяти (лимит 50 МБ), Content-Type можно задать вручную, и всё это одинаково работает и в клиентском, и в серверном режиме выполнения (см. ниже).
Авторизация - с наследованием, а не копипастой
Поддерживаются Basic Auth, Bearer/Token и API Key (заголовок или query-параметр). Ключевая деталь - авторизация иерархическая: можно задать логин/пароль или токен один раз на уровне коллекции, и все запросы внутри неё унаследуют эти параметры автоматически, вместо того чтобы копировать одни и те же креды в каждый запрос вручную.
Клиент или сервер - то, чего нет ни в одном браузерном REST-клиенте
Каждый сохранённый запрос хранит свой режим выполнения:
| Режим | Что происходит |
| Клиент | HTTP уходит с рабочей станции пользователя (сеанс толстого клиента). |
| Сервер | HTTP выполняется на сервере приложений 1С (рабочий процесс кластера). |
В серверном режиме запрос идёт от имени сети и учётной записи сервера, а не ПК пользователя - это значит, что можно достучаться до внутренних адресов, недоступных с клиента, и одновременно значит, что нужно понимать, какие риски это несёт (в репозитории есть отдельная памятка SECURITY.md на этот счёт). Это ровно то различие, которое имеет смысл только внутри 1С и которое ни один браузерный инструмент вроде Postman в принципе не может показать, потому что у него просто нет понятия «сервер 1С».
Дерево запросов и коллекции
Запросы - не одноразовая форма, а библиотека, которая сохраняется между сеансами 1С: иерархическое дерево с папками, добавление/переименование/ удаление через контекстное меню, группировка в именованные коллекции со своими настройками (включая авторизацию, которую и наследуют дочерние запросы).
Импорт и экспорт коллекций - в том числе из Postman
Коллекцию можно выгрузить и загрузить обратно двумя способами:
- Нативный JSON-формат GetManHTTP (
GetManHTTP.Collection, схема v1) - с полным сохранением UUID коллекции и элементов, чтобы можно было безопасно гонять коллекцию туда-обратно между разными базами и версиями обработки без потерь. Формат задокументирован отдельно и двуязычно - docs/collection-format.md. - Postman Collection v2.1 - можно принести уже существующую коллекцию из Postman и продолжить работать с ней в 1С, либо выгрузить свою коллекцию в Postman-совместимый JSON. То, чего Postman не умеет (скрипты, JWT/более сложные типы авторизации, сохранённые ответы) при импорте просто игнорируется, без падений.
Ответ запроса
Код статуса, время выполнения, индикатор «Выполнен: клиент/сервер», заголовки ответа и форматированное тело - всё на одной панели. Тело ответа можно сохранить в файл, расширение (JSON/XML/HTML) подбирается автоматически по Content-Type ответа.
Настройки
HTTP-таймаут, интервал автосохранения (само автосохранение по умолчанию выключено), контекст выполнения по умолчанию для новых запросов.
Пример: как это выглядит в работе
Типичный сценарий: перед тем как писать интеграционный код в конфигураторе, открываете GetManHTTP прямо в тестовой базе, собираете запрос к API (со всеми заголовками и авторизацией, какие потребуются в проде), сразу проверяете его в серверном режиме - то есть именно так, как он реально пойдёт из рабочей системы, а не с вашего ПК разработчика - и только после этого переносите проверенную логику в код. Это снимает целый класс проблем «у меня в Postman работает, а с сервера - нет», которые иногда всплывают уже на этапе тестирования готовой интеграции.
Куда развивается проект
Разработка ведётся открыто, весь план - в issues репозитория на GitHub. Ближайшие и не очень направления:
Новые типы авторизации (сейчас есть Basic / Token / API Key / Bearer / JWT):
- OAuth 1.0
- OAuth 2.0
- Hawk Authentication
- AWS Signature (SigV4)
- NTLM
- ASAP (Atlassian JWT-based auth)
- Akamai EdgeGrid
Удобство работы с запросами:
- Переменные и подстановки в URL, заголовках, теле, авторизации (
{{variable}}, по аналогии с окружениями Postman) - Заголовки по умолчанию в настройках
- Индивидуальные настройки для каждого запроса (таймаут, редиректы и т.п., не только глобально)
- Поддержка Cookie
- Автоматические заголовки по типу тела запроса
- История выполненных запросов
Интеграция и импорт/экспорт:
- Импорт/экспорт спецификации OpenAPI (Swagger)
- Выгрузка кода примера запроса (curl, PowerShell, BSL)
- Скрипты до/после запроса
Добавлено
- Авторизация при помощи JWT Bearer RS256, RS384 и RS512 через платформенный
ТокенДоступа: поле схемыprivateKey(PEM без пароля); для HS* по-прежнемуsecret. Кнопка выбора рядом с сертификатом загружает.pem/.txtв поле приватного ключа. Импорт/экспорт PostmanjwtсохраняетprivateKey. - JWT Bearer PS256, PS384 и PS512 (RSA-PSS) через то же поле
privateKey. - JWT Bearer ES256, ES384 и ES512 (ECDSA) через то же поле
privateKey.
Изменено
- В форме JWT Bearer поле Секрет только для HS*, Приватный ключ (PEM) для RS*/PS*/ES* (как в Postman); оба ключа остаются в таблице параметров для round-trip.
- Подпись JWT Bearer переведена с самописного HMAC (
ХешированиеДанных) на платформенныйТокенДоступа/АлгоритмПодписиТокенаДоступадля HS256, HS384 и HS512.
Для желающих принять участие в развитии
- Баги и идеи - через issues на GitHub (есть готовые шаблоны для бага и для фичи), также можете писать в комментариях, я буду учитывать и заводить issues самостоятельно и вводить предложенный функционал в новые версии.
- Хотите помогать с доработками - структура проекта, требования к окружению для сборки и линта, порядок оформления PR описаны в CONTRIBUTING.md.
Установка
- Скачайте последний релиз (
GetManHTTP.epf) — GitHub Releases или файл, приложенный к этой публикации. - Откройте в 1С через Файл → Открыть.
Требования: 1С:Предприятие 8.3.26 (на более ранних версиях не тестировал, однако есть предположение что будет запускаться начиная с версии 8.3.24) или выше, доступ в интернет/локальную сеть, разрешение на использование внешних обработок.
Стоимость - бесплатно, или же скачать можно тут
Проверено на следующих конфигурациях и релизах:
- 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.12.281
Вступайте в нашу телеграмм-группу Инфостарт