Арете — сервер мессенджеров, Max edition
Решение для 1С:Предприятие, подключающее вашу базу 1С к Max Bot API. Принимает события из Max, маршрутизирует их и вызывает вашу бизнес-логику; отправляет сообщения, файлы, кнопки, рассылки, подпушивания обратно в мессенджер. Встроенный шаблонизатор с версионностью позволяет собирать ответы бота из текстовых шаблонов — с переменными, условиями, циклами и именованными областями.
Поставляется сразу как расширение. Разработку ботов выполняет ваш программист 1С; при необходимости автор продукта участвует как консультант. Решение изначально рассчитано на разработку с привлечением ИИ-агентов.
Хотите сразу "потрогать код"? Скачайте текстовый файл с кодом обработчика: ДемонстрационныйОбработчик.bsl
Для кого
Руководителям и IT — понятная модель: покупаете расширение, сценарии Max↔1С делает ваш программист 1С (при необходимости — с консультациями автора продукта), данные и документы остаются в учётной системе.
Разработчикам 1С — готовая «консоль» интеграции с Max: не нужно с нуля писать HTTP, разбор updates, кэш вложений и обход ограничений API. Вы описываете роуты, шаблоны и прикладную логику в отчуждаемом обработчике — самостоятельно или вместе с ИИ-агентом.
Компетенции с 2017 года
Подсистема опирается на опыт и обратную связь, накопленные с 2017 года при разработке и сопровождении продуктов «Конструктор ботов Telegram для 1С:Предприятие» и «Конструктор ботов Telegram, редакция 2».
За эти годы через «Инфостарт», личные продажи и прямые договоры прошли десятки установок у программистов и компаний: заявки "с полей", согласования, уведомления, сценарии для водителей, сервисных служб и торговли. Типичные ошибки интеграции с мессенджерами, запросы по рассылкам, состоянию диалога, вложениям и отладке — всё это уже учтено в архитектуре АСМ.
Арете — сервер мессенджеров, Max edition — это перенос десятилетнего опыта и рекомендаций пользователей предыдущих решений на мессенджер Max сразу в виде расширения и с упором на разработку через ИИ.
Архитектура "консоль и картридж"
Функционал ботов отчуждаем (через внешнюю обработку). Подсистема АСМ — «игровая консоль»: клиент Max Bot API, роутинг, шаблонизатор, рассылки, журнал, кэш файлов, состояния, эмодзи. Бот — «картридж с игрой»: отдельный обработчик с вашей прикладной логикой, который можно менять, переносить и версионировать независимо от ядра расширения.
- Расширение АСМ — токены, polling или webhook, справочники, роутер, шаблоны, рассылки и подпушивание, состояния, журнал и статистика.
- Обработчик бота — общий модуль, внутренняя или внешняя обработка. В обработчике предусмотрены несколько обязательных процедур и функций: сведения об обработчике, инициализация, сборка роутера, обработка события.
- Max — сотрудники и клиенты работают в мессенджере, 1С выступает источником данных и местом бизнес-логики.
Архитектура «консоль и картридж» даёт программисту 1С и заказчику конкретные выгоды в доставке, доработке и совместной работе:
- Быстрая доставка доработок клиенту. Новый код бота уезжает отдельным «картриджем», а не пересборкой всей конфигурации или расширением ядра АСМ. Программист передаёт обновлённый обработчик — процесс доработки и выката на рабочую базу становится короче и предсказуемее.
- Независимость от информационного наполнения базы. Логика бота живёт в обработчике, а не «размазана» по данным конкретной информационной базы. Сценарий можно перенести на другую базу с той же «консолью», не таща за собой чужие остатки, документы и настройки.
- Ускоренная доработка во внешней обработке. Когда весь код бота сосредоточен во внешней обработке, правки вносятся и проверяются моментально: обновили файл обработки — бот уже с новым поведением, без лишних циклов обновления конфигурации.
- Один бот — несколько клиентов. Один и тот же «картридж» (или его ветка) можно вести для нескольких заказчиков одновременно: общая логика сценария остаётся общей, а различия баз и токенов остаются на стороне консоли и настроек.
- Групповая разработка и Git. Обработку легко выгрузить в XML-файлы и выложить в репозиторий (GitHub и аналоги). Команда работает с diff, ветками и review, а не с монолитной выгрузкой всей базы — как с обычным кодом.
Итог: «консоль» стабильна и лицензируется как продукт, «картриджи» эволюционируют с бизнесом заказчика — быстро, переносимо и удобно для командной разработки.
Примеры кода
Фрагменты на языке 1С через общий модуль АСМ_М —
так выглядит прикладной код в обработчике («картридже»).
Примеры упрощены для чтения; более полные сценарии — в
ДемонстрационныйОбработчик.bsl.
Параметры = Новый Структура;
Параметры.Вставить("text", "Заявка принята. Мы свяжемся с вами.");
АСМ_М.ОтправитьСообщение(Бот, Параметры, Вход);
Параметры = Новый Структура;
Параметры.Вставить("text", "<b>Готово</b> — документ <i>проведён</i>");
Параметры.Вставить("format", "html");
АСМ_М.ОтправитьСообщение(Бот, Параметры, Вход);
// Обозначения из справочника АСМ_Эмодзи подставляются при отправке
Параметры = Новый Структура;
Параметры.Вставить("text", "Заказ оформлен :OK_HAND: Ожидайте уведомление.");
АСМ_М.ОтправитьСообщение(Бот, Параметры, Вход);
Параметры = Новый Структура;
Параметры.Вставить("text", "Фото с объекта");
АСМ_М.ВложитьИзображение(Параметры, ДвоичныеДанные, "photo.jpg");
АСМ_М.ОтправитьСообщение(Бот, Параметры, Вход);
Параметры = Новый Структура;
Параметры.Вставить("text", "Прайс-лист");
АСМ_М.ВложитьФайл(Параметры, ДвоичныеДанные, "price.xlsx");
АСМ_М.ОтправитьСообщение(Бот, Параметры, Вход);
Параметры = Новый Структура;
Параметры.Вставить("text", "Выберите действие:");
Клавиатура = Новый Массив;
АСМ_М.Кнопка_callback(Клавиатура, "Согласовать", "Согласовать", , Истина);
АСМ_М.Кнопка_callback(Клавиатура, "Отклонить", "Отклонить", , Ложь);
АСМ_М.Кнопка_link(Клавиатура, "Открыть в 1С", "https://example.com/doc", Истина);
АСМ_М.ВложитьКлавиатуру(Параметры, Клавиатура);
АСМ_М.ОтправитьСообщение(Бот, Параметры, Вход);
Вложения = АСМ_М.ПолучитьВложения(Бот, Событие); Для Каждого Вложение Из Вложения Цикл // Вложение.ДвоичныеДанные, Вложение.ИмяФайла, Вложение.MIME, Вложение.Расширение ЗаписатьФайлНаДиск(Вложение.ДвоичныеДанные, Вложение.ИмяФайла); КонецЦикла;
// Указание роутов в обязательной функции обработчика
Функция СобратьРоутер(Бот) Экспорт
Роутер = АСМ_Роутинг.ИнициализироватьРоутер(Бот);
АСМ_Роутинг.ДобавитьРоут("СтартБота", Роутер, "ТипСобытия = 'bot_started' ИЛИ Текст = '/start'");
Возврат Роутер;
КонецФункции
// Обработка входящего из бота события в обязательной процедуре обработчика
Процедура ОбработатьСобытие(Бот, Событие, Вход) Экспорт
Роутер = АСМ_НастройкиПовтИсп.СобратьРоутер(Бот);
// Название процедуры и роут ("ключ") рекомендуется делать одинаковыми
СтартБота("СтартБота", Роутер, Бот, Событие, Вход);
КонецПроцедуры
// Отвечающая процедура
Процедура СтартаБота(Ключ, Роутер, Бот, Событие, Вход)
// Проверяет, соответствует ли событие условию роута с ключом "СтартБота"
Если АСМ_Роутинг.Нет(Ключ, Роутер, Событие, Вход) Тогда Возврат; КонецЕсли;
// Если соответствует, то срабатывает ответ на событие
Параметры = Новый Структура("text", "Добро пожаловать!");
АСМ_М.ОтправитьСообщение(Бот, Параметры, Вход);
КонецПроцедуры;
Шаблон "УведомлениеОЗаказе": Поступил заказ от #клиент на сумму #сумма.
ПараметрыШаблона = Новый Структура;
ПараметрыШаблона.Вставить("клиент", "ООО «Ромашка»");
ПараметрыШаблона.Вставить("сумма", 15000);
Текст = АСМ_Шаблонизатор.ВывестиПоШаблону("УведомлениеОЗаказе", "", ПараметрыШаблона);
Параметры = Новый Структура("text", Текст);
АСМ_М.ОтправитьСообщение(Бот, Параметры, Вход);
Совместимость
- Платформа 1С:Предприятие 8.3.25 и выше
- Любые конфигурации на управляемых формах — типовые и нетиповые
Получение событий
Два режима работы с Max Bot API:
- Опрос (long-polling) — регламентное задание или интерактивная обработка «Получение событий» для отладки; позиция опроса хранится в Max-маркере.
- Вебхук — HTTP-сервис расширения с ключом в URL и опциональным секретом; удобен для постоянной эксплуатации на опубликованной базе.
После ввода токена команда «Кто я» проверяет доступ к API: если приходит ответ в JSON — бот подключен корректно.
Роутинг
Роуты и роутинг живут внутри конфигуратора, в коде обработчика. Условия описываются на языке выражений: тип события, текст, команда, имя кнопки, пользователь и чат, вложения (фото, видео, аудио, файл, контакт), состояния диалога, регулярные выражения, сравнение «содержит / начинается с / в списке / в иерархии», логические группы И/ИЛИ.
Обработчик собирает роутер при инициализации; при событии подсистема дополняет контекст (чат, пользователь, состояния, кнопка, текст) и вызывает вашу процедуру обработки. Роуты одинаково легко воспринимаются и человеком, и ИИ-агентом.
Сообщения, кнопки и вложения
«Арете — сервер мессенджеров, Max edition» позволяет сохранять в кнопках мессенджера ссылки на справочники, документы, массивы, структуры и таблицы значений и вообще всё что сохраняется в хранилище 1С. Подсистема сама сохраняет любые привязанные к кнопке данные в регистр, и предоставляет эти значения, когда пользователь Max нажимает кнопку. Теперь не нужно думать, как уместить callback кнопки все связанные с ней ссылочные и прочие значения.
Подсистема закрывает практический набор возможностей ботов Max для прикладных сценариев в 1С. Полноценные мини-приложения Max на платформе 1С не реализуются; при этом обычные сообщения, вложения и inline-кнопки — в фокусе продукта.
- Текст с разметкой HTML или Markdown
- Фото, видео, аудио, файлы, стикеры
- Геолокация, контакты, смешанный контент
- Inline-клавиатуры: callback, ссылка, запрос контакта и геолокации, и другие типы кнопок Max, поддерживаемые API
- К кнопке также можно привязать любые данные, поддерживаемые 1С — справочник, документ, массив, структуру, таблицу значений и так далее
- Справочник «Контент» — готовые сообщения, файлы и клавиатуры для рассылок и обработчиков
Особенности и ограничения Max Bot API учтены в клиентском слое: повторы при временных сбоях вложений и подобные «капризы» платформы обрабатываются подсистемой, чтобы автор обработчика писал прикладную логику, а не обходные пути HTTP.
Кэш двоичных данных
Полноценная и оптимизированная работа с любыми двоичными данными (фото, видео, файлы и прочее). Один и тот же файл можно отправлять сотни раз: на серверы Max он загружается один раз, в дальнейшем подставляется ссылка (token), пока она действительна. Если token истекает или отвергается API, подсистема перезагружает файл и продолжает отправку.
Рассылки и подпушивания
Разовые и периодические рассылки заготовленного контента от имени ботов. К рассылкам прилагаются списки получателей: вручную или динамически по отборам системы компоновки данных; динамические списки обновляются регламентным заданием. Перед запуском доступна тестовая отправка на пользователей, отмеченных как тестовые получатели.
Подпушивание — это дожим незавершённого действия пользователя, а не «спам ради спама». Примеры:
- пользователь добавил товары в корзину, но не перешёл к оплате — через день приходит уведомление: «Ваши товары ждут вас в корзине»;
- пользователь ответил на пять вопросов из шести в опросе — спустя время приходит приглашение допройти опрос.
В интерфейсе подсистемы такие сценарии оформляются вместе с рассылками («Рассылки и подпушивания»): контент, списки получателей, расписание, статусы и прогресс в журнале.
Шаблоны с версионностью
Шаблонизатор АСМ формирует текст сообщений (и при необходимости фрагменты
кода обработчиков) из текстовых шаблонов в справочнике «Шаблоны».
Поддерживаются подстановка переменных (#имя, #объект.поле),
условия (@если / @иначе / @конецесли),
циклы (@для каждого … из … цикл / @конеццикла)
и именованные области (@область / @конецобласти).
История версий шаблона хранится в 1С: конечный заказчик может сам настроить
ответы из 1С, а разработчик — откатить изменения к предыдущей версии.
При инициализации обработчика можно создать шаблоны по умолчанию.
Вызов из кода: АСМ_Шаблонизатор.ВывестиПоШаблону()
и ДобавитьПоШаблону() для сборки текста из нескольких областей.
Здравствуйте, #клиент! @если #оплачен Оплата по заказу #номер получена. Сумма: #сумма. @иначе Заказ #номер ожидает оплаты. Сумма к оплате: #сумма. @конецесли
Состав заказа: @для каждого позиция из #позиции цикл • #позиция.номенклатура — #позиция.количество шт. × #позиция.цена @конеццикла Итого позиций: #количество
@область краткая Статус заявки #номер: #статус @конецобласти @область подробная Заявка #номер Клиент: #клиент.имя Статус: #статус Комментарий: #комментарий @конецобласти
Параметры = Новый Структура;
Параметры.Вставить("номер", "А-1042");
Параметры.Вставить("статус", "В работе");
Текст = "";
Текст = АСМ_Шаблонизатор.ДобавитьПоШаблону(Текст, "СтатусЗаявки", "краткая", Параметры);
// или область «подробная» — по выбору сценария
Состояния диалога
Типизированные переменные состояний чатов и пользователей (план видов характеристик) для многошаговых сценариев: оформление заявки, пошаговый ввод, ветвление диалога. Доступны текущие значения и периодическая история. В роутинге состояния участвуют как именованные поля контекста.
Эмодзи
Источником эмодзи являются репозитории консорциума Unicode — первоисточник первоисточников. В каталоге более 4300 эмодзи, у каждого есть ключевые слова для поиска; плюс пользовательские эмодзи Max. В тексте и кнопках обозначения из справочника перед отправкой преобразуются в формат, ожидаемый API.
Журнал, статистика, администрирование
- Журнал вызовов API, работы обработчиков, рассылок и ошибок (с очисткой по сроку хранения)
- Статистика принятых событий — в том числе раздельно для polling и webhook
- Уведомления администратору при HTTP ≠ 200 и ошибках выполнения 1С
- Просмотрщик JSON для разбора ответов API
- Справочники пользователей и чатов, автоматически наполняемые из событий Max
Документация и быстрый старт
Решение отлично документировано: встроенная справка по объектам подсистемы, требования к обработчику, шаблон обработчика, демонстрационный бот и пояснения к общим модулям API. Дополнительные обучающие материалы усиливают быстрое погружение.
Типовой путь: инициализация подсистемы → токен бота → способ получения событий → «Кто я» → подключение обработчика (или изучение демонстрационного бота) → свой сценарий.
Разработка с ИИ-агентами
В обработчике предусмотрены несколько обязательных процедур и функций; вместе с шаблоном модуля и демонстрационным ботом это позволяет ИИ-агенту выступать помощником программиста 1С: собрать роуты, шаблоны ответов и прикладную логику на языке 1С, опираясь на документированное API подсистемы.
Среди известных ИИ-агентов и сред, способных помогать в программировании:
- Cursor Agent (Agent / Composer в Cursor)
- GitHub Copilot (Chat, Coding Agent, Workspace)
- Claude (Claude Code, Projects / Artifacts в Claude.ai)
- ChatGPT (GPT-4o / o-series, Codex, Canvas)
- Google Gemini (Gemini в IDE, Android Studio Bot, Jules)
- Cline (ранее Claude Dev)
Другие агенты
- Windsurf Cascade (Codeium)
- Amazon Q Developer
- JetBrains AI Assistant / Junie
- Tabnine Agents
- Sourcegraph Cody
- Continue (open-source agent в IDE)
- Aider
- OpenHands (ранее OpenDevin)
- Devin (Cognition)
- Replit Agent
- Bolt.new / StackBlitz Agent
- v0 (Vercel)
- Lovable
- Goose (Block)
- SWE-agent и аналогичные open-source coding agents
Список не исчерпывающий и не является рекомендацией конкретного вендора: важно, что у АСМ есть явный набор обязательных процедур и функций обработчика и эталоны, с которыми такой помощник может работать предсказуемо.
Состав подсистемы
Главное
- Боты
- Получение событий
- Обработчики
- Контент
- Рассылки и подпушивания
- Инициализация подсистемы
- Демонстрационный бот
Настройки ботов
- Токены
- Настройки ботов
- Параметры long-polling («Опросы»)
- Вебхуки
- Состояния, текущие и периодические
- Методы Max и группы методов
- Тестирование вызова методов
Роутинг и шаблоны
- Зарезервированные слова
- Операторы сравнения
- Шаблоны / шаблонизатор с версиями
Служебные списки и фон
- Журнал и статистика
- Чаты и пользователи
- Списки получателей
- Эмодзи и используемые эмодзи
- Загруженные файлы (кэш)
- Содержимое, привязанное к кнопкам
- Администрирование ботов
- Регламентные задания (опрос, рассылка, получатели, очистка журнала)
Лицензия
Решение поставляется по лицензионному соглашению.
Демонстрация
Закажите демонстрацию, договоримся и организуем в удобное для Вас время через.