Предыстория: Postman, закрытый PR и «облачное рабство»
Теме тестирования HTTP-сервисов в 1С я посвятил уже несколько публикаций на Инфостарте:
- Тестирование HTTP-сервисов в Postman: от ручных запросов до автотестов
- Автоматизация тестирования HTTP-сервисов 1С: интеграция с CI/CD
В Postman всегда была удобная кнопка «Code snippet» (</>), позволяющая в один клик получить готовый код на Python (requests), JavaScript (fetch/axios), cURL, C# и десятках других языков. Но поддержки 1С там не было.
Ещё в 2021–2022 годах я предпринимал попытку добавить генератор кода на 1С/OneScript (на базе библиотеки Connector) в официальный репозиторий кодогенераторов Postman Issue: postmanlabs/postman-code-generators#546, Pull Request: postmanlabs/postman-code-generators#592
К сожалению, команда Postman со временем закрыла PR со статусом not planned, а сам Postman с тех пор сильно изменился: убрал полноценный offline-режим (Scratchpad), стал требовать обязательную регистрацию в облаке и отправку метаданных запросов на сторонние серверы, что во многих корпоративных контурах 1С просто недопустимо по соображениям безопасности.
Почему Bruno?
На смену Postman пришёл Bruno — легковесный, быстрый и полностью Open Source (MIT) API-клиент.
Его ключевые преимущества для 1С-разработчика:
- Local-first и Git-friendly: коллекции запросов хранятся в виде обычных текстовых файлов
.bruпрямо в папке проекта. Их можно коммитить в Git, версионировать вместе с расширением или конфигурацией и просматривать diff. - Никакой привязки к облаку: нет обязательных аккаунтов, запросы и секреты не улетают на чужие сервера.
- Быстродействие: написан на Electron + React + rsbuild, запускается мгновенно и не перегружен лишними сервисами.
- Встроенный генератор кода (Generate Code): архитектура генерации построена поверх движка HTTPSnippet, что открывает возможность добавлять собственные целевые языки прямо внутри приложения.
Не хватало только одного — кнопки генерации кода для 1С:Предприятия.
Что реализовано: 6 вариантов генерации кода
В диалоге Generate Code для языка 1C доступны 3 библиотеки, каждая в русском и английском варианте:
| Пункт в Bruno | Библиотека | Описание |
|---|---|---|
|
|
Платформа 1С:Предприятие |
Стандартные |
|
|
1C:Enterprise Platform |
|
|
|
Популярная библиотека для 1С ( |
|
|
|
Англоязычный интерфейс библиотеки Connector ( |
|
|
|
Модуль HTTP из Open Integrations Package (fluent-интерфейс) |
|
|
|
Англоязычный fluent-интерфейс библиотеки OPI |
Загрузка файлов и Multipart (Client-Server Wrap)
Если запрос содержит отправку файла, генератор формирует готовый каркас для модуля управляемой формы: помещает файл во временное хранилище на клиенте и передает адрес на сервер, где двоичные данные упаковываются в запрос через ЗаписьДанных с уникальным boundary.
Поддержите добавление 1С в официальный релиз Bruno!
Чтобы этот функционал появился у всех пользователей Bruno «из коробки» в официальных дистрибутивах (Windows, macOS, Linux), созданы официальный Issue и Pull Request в репозиторий проекта:
- Issue (Feature Request): usebruno/bruno#9037
- Pull Request: usebruno/bruno#9038
Как помочь сообществу 1С:
- Перейдите по ссылкам выше на GitHub.
- Поставьте реакции 👍 / 🚀 на Issue и PR.
- Оставьте комментарий в поддержку включения 1С в официальный релиз.
Чем активнее отклик сообщества 1С, тем быстрее разработчики Bruno примут PR в основную ветку!
Как запустить доработанную версию прямо сейчас (Windows)
Вы можете протестировать генерацию кода в рабочем приложении Bruno на своем компьютере.
Требования:
- Git for Windows (скачать)
- Node.js v22.x LTS (скачать с официального сайта)
Пошаговая инструкция (PowerShell или CMD):
-
Клонируем ветку с доработкой:
git clone -b feature/1c-code-generation https://github.com/malikov-pro/bruno.git
cd bruno
-
Устанавливаем зависимости и собираем пакеты:
npm run setup
(Команда установит необходимые модули и соберет внутренние пакеты bruno-common, bruno-filestore и др.)
-
Запускаем Bruno (Web-сервер + Electron):
npm run dev
Либо в двух отдельных терминалах: в первом
npm run dev:web, во втором после старта веб-части —npm run dev:electron. -
Проверяем работу:
- Откройте любую коллекцию или создайте новый запрос.
- Нажмите на значок меню запроса (
...) или кнопку Generate Code. - В списке языков выберите 1C и необходимый клиент (
1C-native-ru,1C-connector-ru,1C-opi-ruи др.). - Скопируйте готовый код в конфигуратор или EDT!
Идея моя, генерация кода Grok, код ревью GPT, статью дополнял Gemini.
Благодарю за внимание.
Вступайте в нашу телеграмм-группу Инфостарт