обратная связь max +7 (999) 881-15-11 zakirovdamir@vk.com

Арете — сервер мессенджеров, Max edition

Решение для 1С:Предприятие, подключающее вашу базу 1С к Max Bot API. Принимает события из Max, маршрутизирует их и вызывает вашу бизнес-логику; отправляет сообщения, файлы, кнопки, рассылки, подпушивания обратно в мессенджер. Встроенный шаблонизатор с версионностью позволяет собирать ответы бота из текстовых шаблонов — с переменными, условиями, циклами и именованными областями.

Поставляется сразу как расширение. Разработку ботов выполняет ваш программист 1С; при необходимости автор продукта участвует как консультант. Решение изначально рассчитано на разработку с привлечением ИИ-агентов.

Хотите сразу "потрогать код"? Скачайте текстовый файл с кодом обработчика: ДемонстрационныйОбработчик.bsl

Для кого

Руководителям и IT — понятная модель: покупаете расширение, сценарии Max↔1С делает ваш программист 1С (при необходимости — с консультациями автора продукта), данные и документы остаются в учётной системе.

Разработчикам 1С — готовая «консоль» интеграции с Max: не нужно с нуля писать HTTP, разбор updates, кэш вложений и обход ограничений API. Вы описываете роуты, шаблоны и прикладную логику в отчуждаемом обработчике — самостоятельно или вместе с ИИ-агентом.

Схема решения
Схема решения: взаимодействие между 1С и Max Bot API

Компетенции с 2017 года

Подсистема опирается на опыт и обратную связь, накопленные с 2017 года при разработке и сопровождении продуктов «Конструктор ботов Telegram для 1С:Предприятие» и «Конструктор ботов Telegram, редакция 2».

За эти годы через «Инфостарт», личные продажи и прямые договоры прошли десятки установок у программистов и компаний: заявки "с полей", согласования, уведомления, сценарии для водителей, сервисных служб и торговли. Типичные ошибки интеграции с мессенджерами, запросы по рассылкам, состоянию диалога, вложениям и отладке — всё это уже учтено в архитектуре АСМ.

Арете — сервер мессенджеров, Max edition — это перенос десятилетнего опыта и рекомендаций пользователей предыдущих решений на мессенджер Max сразу в виде расширения и с упором на разработку через ИИ.

Архитектура "консоль и картридж"

Функционал ботов отчуждаем (через внешнюю обработку). Подсистема АСМ — «игровая консоль»: клиент Max Bot API, роутинг, шаблонизатор, рассылки, журнал, кэш файлов, состояния, эмодзи. Бот — «картридж с игрой»: отдельный обработчик с вашей прикладной логикой, который можно менять, переносить и версионировать независимо от ядра расширения.

  1. Расширение АСМ — токены, polling или webhook, справочники, роутер, шаблоны, рассылки и подпушивание, состояния, журнал и статистика.
  2. Обработчик бота — общий модуль, внутренняя или внешняя обработка. В обработчике предусмотрены несколько обязательных процедур и функций: сведения об обработчике, инициализация, сборка роутера, обработка события.
  3. Max — сотрудники и клиенты работают в мессенджере, 1С выступает источником данных и местом бизнес-логики.

Архитектура «консоль и картридж» даёт программисту 1С и заказчику конкретные выгоды в доставке, доработке и совместной работе:

Итог: «консоль» стабильна и лицензируется как продукт, «картриджи» эволюционируют с бизнесом заказчика — быстро, переносимо и удобно для командной разработки.

Обработчик бота
Указание обработчика бота

Примеры кода

Фрагменты на языке 1С через общий модуль АСМ_М — так выглядит прикладной код в обработчике («картридже»). Примеры упрощены для чтения; более полные сценарии — в ДемонстрационныйОбработчик.bsl.

Отправка простого сообщения
Параметры = Новый Структура;
Параметры.Вставить("text", "Заявка принята. Мы свяжемся с вами.");
АСМ_М.ОтправитьСообщение(Бот, Параметры, Вход);
Сообщение с HTML-разметкой
Параметры = Новый Структура;
Параметры.Вставить("text", "<b>Готово</b> — документ <i>проведён</i>");
Параметры.Вставить("format", "html");
АСМ_М.ОтправитьСообщение(Бот, Параметры, Вход);
Отправка эмодзи
// Обозначения из справочника АСМ_Эмодзи подставляются при отправке
Параметры = Новый Структура;
Параметры.Вставить("text", "Заказ оформлен :OK_HAND: Ожидайте уведомление.");
АСМ_М.ОтправитьСообщение(Бот, Параметры, Вход);
Прикладывание фотографии
Параметры = Новый Структура;
Параметры.Вставить("text", "Фото с объекта");
АСМ_М.ВложитьИзображение(Параметры, ДвоичныеДанные, "photo.jpg");
АСМ_М.ОтправитьСообщение(Бот, Параметры, Вход);
Прикладывание файла
Параметры = Новый Структура;
Параметры.Вставить("text", "Прайс-лист");
АСМ_М.ВложитьФайл(Параметры, ДвоичныеДанные, "price.xlsx");
АСМ_М.ОтправитьСообщение(Бот, Параметры, Вход);
Прикладывание inline-клавиатуры
Параметры = Новый Структура;
Параметры.Вставить("text", "Выберите действие:");

Клавиатура = Новый Массив;
АСМ_М.Кнопка_callback(Клавиатура, "Согласовать", "Согласовать", , Истина);
АСМ_М.Кнопка_callback(Клавиатура, "Отклонить", "Отклонить", , Ложь);
АСМ_М.Кнопка_link(Клавиатура, "Открыть в 1С", "https://example.com/doc", Истина);

АСМ_М.ВложитьКлавиатуру(Параметры, Клавиатура);
АСМ_М.ОтправитьСообщение(Бот, Параметры, Вход);
Скачивание пришедшего файла
Вложения = АСМ_М.ПолучитьВложения(Бот, Событие);
Для Каждого Вложение Из Вложения Цикл
	// Вложение.ДвоичныеДанные, Вложение.ИмяФайла, Вложение.MIME, Вложение.Расширение
	ЗаписатьФайлНаДиск(Вложение.ДвоичныеДанные, Вложение.ИмяФайла);
КонецЦикла;
Роутинг: условие и обработка
// Указание роутов в обязательной функции обработчика
Функция СобратьРоутер(Бот) Экспорт

	Роутер = АСМ_Роутинг.ИнициализироватьРоутер(Бот);
	АСМ_Роутинг.ДобавитьРоут("СтартБота", Роутер, "ТипСобытия = 'bot_started' ИЛИ Текст = '/start'");
	Возврат Роутер;

КонецФункции

// Обработка входящего из бота события в обязательной процедуре обработчика
Процедура ОбработатьСобытие(Бот, Событие, Вход) Экспорт
	
	Роутер = АСМ_НастройкиПовтИсп.СобратьРоутер(Бот);

	// Название процедуры и роут ("ключ") рекомендуется делать одинаковыми
	СтартБота("СтартБота", Роутер, Бот, Событие, Вход);

КонецПроцедуры

// Отвечающая процедура
Процедура СтартаБота(Ключ, Роутер, Бот, Событие, Вход)

	// Проверяет, соответствует ли событие условию роута с ключом "СтартБота"
	Если АСМ_Роутинг.Нет(Ключ, Роутер, Событие, Вход) Тогда Возврат; КонецЕсли;

	// Если соответствует, то срабатывает ответ на событие
	Параметры = Новый Структура("text", "Добро пожаловать!");
	АСМ_М.ОтправитьСообщение(Бот, Параметры, Вход);
			
КонецПроцедуры;
Вызов шаблонизатора из кода обработчика
Шаблон "УведомлениеОЗаказе": Поступил заказ от #клиент на сумму #сумма.

ПараметрыШаблона = Новый Структура;
ПараметрыШаблона.Вставить("клиент", "ООО «Ромашка»");
ПараметрыШаблона.Вставить("сумма", 15000);

Текст = АСМ_Шаблонизатор.ВывестиПоШаблону("УведомлениеОЗаказе", "", ПараметрыШаблона);

Параметры = Новый Структура("text", Текст);
АСМ_М.ОтправитьСообщение(Бот, Параметры, Вход);

Совместимость

Получение событий

Два режима работы с Max Bot API:

После ввода токена команда «Кто я» проверяет доступ к API: если приходит ответ в JSON — бот подключен корректно.

Роутинг

Роуты и роутинг живут внутри конфигуратора, в коде обработчика. Условия описываются на языке выражений: тип события, текст, команда, имя кнопки, пользователь и чат, вложения (фото, видео, аудио, файл, контакт), состояния диалога, регулярные выражения, сравнение «содержит / начинается с / в списке / в иерархии», логические группы И/ИЛИ.

Обработчик собирает роутер при инициализации; при событии подсистема дополняет контекст (чат, пользователь, состояния, кнопка, текст) и вызывает вашу процедуру обработки. Роуты одинаково легко воспринимаются и человеком, и ИИ-агентом.

Роутинг
Роутинг входящий событий

Сообщения, кнопки и вложения

«Арете — сервер мессенджеров, Max edition» позволяет сохранять в кнопках мессенджера ссылки на справочники, документы, массивы, структуры и таблицы значений и вообще всё что сохраняется в хранилище 1С. Подсистема сама сохраняет любые привязанные к кнопке данные в регистр, и предоставляет эти значения, когда пользователь Max нажимает кнопку. Теперь не нужно думать, как уместить callback кнопки все связанные с ней ссылочные и прочие значения.

Значения в кнопке
В кнопке мессенджера можно хранить любые данные 1С, а не только строки

Подсистема закрывает практический набор возможностей ботов Max для прикладных сценариев в 1С. Полноценные мини-приложения Max на платформе 1С не реализуются; при этом обычные сообщения, вложения и inline-кнопки — в фокусе продукта.

Особенности и ограничения Max Bot API учтены в клиентском слое: повторы при временных сбоях вложений и подобные «капризы» платформы обрабатываются подсистемой, чтобы автор обработчика писал прикладную логику, а не обходные пути HTTP.

Кэш двоичных данных

Полноценная и оптимизированная работа с любыми двоичными данными (фото, видео, файлы и прочее). Один и тот же файл можно отправлять сотни раз: на серверы Max он загружается один раз, в дальнейшем подставляется ссылка (token), пока она действительна. Если token истекает или отвергается API, подсистема перезагружает файл и продолжает отправку.

Отслеживание загруженных файлов
Подсистема сама отслеживает, был ли файл ранее загружен в мессенджер. Если был — подставляет ссылку при повторной отправке этого же файла.

Рассылки и подпушивания

Разовые и периодические рассылки заготовленного контента от имени ботов. К рассылкам прилагаются списки получателей: вручную или динамически по отборам системы компоновки данных; динамические списки обновляются регламентным заданием. Перед запуском доступна тестовая отправка на пользователей, отмеченных как тестовые получатели.

Подпушивание — это дожим незавершённого действия пользователя, а не «спам ради спама». Примеры:

В интерфейсе подсистемы такие сценарии оформляются вместе с рассылками («Рассылки и подпушивания»): контент, списки получателей, расписание, статусы и прогресс в журнале.

Рассылка
Оформление рассылки

Шаблоны с версионностью

Шаблонизатор АСМ формирует текст сообщений (и при необходимости фрагменты кода обработчиков) из текстовых шаблонов в справочнике «Шаблоны». Поддерживаются подстановка переменных (#имя, #объект.поле), условия (@если / @иначе / @конецесли), циклы (@для каждого … из … цикл / @конеццикла) и именованные области (@область / @конецобласти).

История версий шаблона хранится в 1С: конечный заказчик может сам настроить ответы из 1С, а разработчик — откатить изменения к предыдущей версии. При инициализации обработчика можно создать шаблоны по умолчанию. Вызов из кода: АСМ_Шаблонизатор.ВывестиПоШаблону() и ДобавитьПоШаблону() для сборки текста из нескольких областей.

Шаблон: переменные и условие
Здравствуйте, #клиент!

@если #оплачен
Оплата по заказу #номер получена. Сумма: #сумма.
@иначе
Заказ #номер ожидает оплаты. Сумма к оплате: #сумма.
@конецесли
Шаблон: цикл по коллекции
Состав заказа:

@для каждого позиция из #позиции цикл
• #позиция.номенклатура — #позиция.количество шт. × #позиция.цена
@конеццикла

Итого позиций: #количество
Шаблон: именованные области
@область краткая
Статус заявки #номер: #статус
@конецобласти

@область подробная
Заявка #номер
Клиент: #клиент.имя
Статус: #статус
Комментарий: #комментарий
@конецобласти
Сборка текста из областей одного шаблона
Параметры = Новый Структура;
Параметры.Вставить("номер", "А-1042");
Параметры.Вставить("статус", "В работе");

Текст = "";
Текст = АСМ_Шаблонизатор.ДобавитьПоШаблону(Текст, "СтатусЗаявки", "краткая", Параметры);
// или область «подробная» — по выбору сценария
Шаблоны
Шаблоны для формирования сообщений

Состояния диалога

Типизированные переменные состояний чатов и пользователей (план видов характеристик) для многошаговых сценариев: оформление заявки, пошаговый ввод, ветвление диалога. Доступны текущие значения и периодическая история. В роутинге состояния участвуют как именованные поля контекста.

Эмодзи

Источником эмодзи являются репозитории консорциума Unicode — первоисточник первоисточников. В каталоге более 4300 эмодзи, у каждого есть ключевые слова для поиска; плюс пользовательские эмодзи Max. В тексте и кнопках обозначения из справочника перед отправкой преобразуются в формат, ожидаемый API.

Эмодзи, добавленный в используемые
Эмодзи, добавленный в список используемых
Список эмодзи
Список доступных эмодзи огромен

Журнал, статистика, администрирование

Журнал
Ничто не остаётся незамеченным
Запись журнала
Записи журнала содержат исчерпывающую информацию — это важно в циклах разработки

Документация и быстрый старт

Решение отлично документировано: встроенная справка по объектам подсистемы, требования к обработчику, шаблон обработчика, демонстрационный бот и пояснения к общим модулям API. Дополнительные обучающие материалы усиливают быстрое погружение.

Типовой путь: инициализация подсистемы → токен бота → способ получения событий → «Кто я» → подключение обработчика (или изучение демонстрационного бота) → свой сценарий.

Разработка с ИИ-агентами

В обработчике предусмотрены несколько обязательных процедур и функций; вместе с шаблоном модуля и демонстрационным ботом это позволяет ИИ-агенту выступать помощником программиста 1С: собрать роуты, шаблоны ответов и прикладную логику на языке 1С, опираясь на документированное API подсистемы.

Среди известных ИИ-агентов и сред, способных помогать в программировании:

Другие агенты
  • 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 и группы методов
  • Тестирование вызова методов

Роутинг и шаблоны

  • Зарезервированные слова
  • Операторы сравнения
  • Шаблоны / шаблонизатор с версиями

Служебные списки и фон

  • Журнал и статистика
  • Чаты и пользователи
  • Списки получателей
  • Эмодзи и используемые эмодзи
  • Загруженные файлы (кэш)
  • Содержимое, привязанное к кнопкам
  • Администрирование ботов
  • Регламентные задания (опрос, рассылка, получатели, очистка журнала)

Лицензия

Решение поставляется по лицензионному соглашению.

Демонстрация

Закажите демонстрацию, договоримся и организуем в удобное для Вас время через.