Я - разработчик 1С с 10-летним стажем.
Однажды утром захотелось разработать что-то свое - не сложное, но нужное и я решил обратиться к своему искусственному другу Qwen3.5:
- Привет, дружище. Подскажи прибыльный и интересный проект, который можно не сложно продать (монетизировать). Что спрашивают пользователи 1С в основном на форумах? Дай топ 10 идей для разработки интересного приложения на 1С.
Немного подумав, друг выдал мне довольно развёрнутый ответ. Первой в Топ-10 идеей был именно он: Телеграм-бот «Директор в кармане».
ИИ расписал его так:
#### 1. Телеграм-бот «Директор в кармане» - **Суть:** Бот, который по запросу присылает ключевые показатели (Остатки денег, Прибыль за день, Долги клиентов, План продаж). - **Почему купят:** Руководители не хотят лезть в 1С. Им нужна цифра в телефоне за 5 секунд. - **Монетизация:** Подписка (SaaS) 500–1000 руб./мес. или разовая покупка лицензии. - **Сложность:** Низкая (HTTP-сервисы + Telegram API).
Всё! Я загорелся.
Я всё это могу!!! Тем более, если 90% кода я буду писать с помощью Cursor.
В этой статье я расскажу, с какими трудностями мне пришлось с толкнуться, поделюсь архитектурой решения, кодом расширения-агента и тем, как обеспечена безопасность данных.
Проблема и решаемая задача
В большинстве систем «1С:Предприятие» доступ к данным вне офиса - это боль.
Web-клиент - тяжеловесен, требует хорошего интернета и лицензий.
RDP/Thin Client - неудобен на телефоне.
Отчеты на почту - не дают ощущения «здесь и сейчас».
Задача: дать директору возможность простыми командами в Telegram (/balance, /sales, /debts) получать актуальные метрики, с минимальными усилиями на настройку и с гарантией безопасности передаваемых данных.
Архитектура системы
Я решил не строить «монолит на монолите» и разделил систему на три независимых компонента. Это позволило развязать базы клиентов и серверную логику.
Схема взаимодействия состоит из трех звеньев: Агент (в базе клиента) → Сервер (VPS) → Telegram Bot.
1. Расширение-агент (Client-side)
Это единственное, что устанавливается в базу клиента.
Роль: Шлюз. Не содержит бизнес-логики, только отправляет метрики на сервер по HTTPS.
Настройка: Минимум метаданных. Ввели ключ → нажали «Подключить».
Безопасность: Агент не авторизуется на сервере по паролю, он отправляет зашифрованный пакет с метриками и токеном. Если сервер взломают - злоумышленник получит только агрегированные числа, а не проводки.
Почему код агента открыт? Я принципиально открыл исходный код расширения. Любой квалифицированный специалист может подключить его к своей конфигурации, посмотреть, какие именно данные уходят, и убедиться, что «под капотом» ничего лишнего не происходит. Доверие строится на прозрачности на стороне клиента.
Почему нет БСП? Для лёгкого API-шлюза я взял пустую конфигурацию + 3 модуля. Работает быстрее, обновлять проще.
2. Сервер-«мозг» (Server-side)
Здесь живет 1С, Apache и Windows VPS.
Функции: Принимает данные от агентов, проверяет подписку, формирует ответы для бота.
Логика: Проверки безопасности, валидация подписки, маршрутизация запросов реализованы здесь.
Архитектура: Использован паттерн «Адаптер». Сейчас работает Telegram, но архитектура позволяет легко добавить VK, MAX или любой другой мессенджер, не переписывая ядро.
3. Telegram-бот
Простой интерфейс для пользователя.
Обработка команд через вебхуки (Webhooks).
Кэширование ответов для скорости отклика (< 1 сек).
Интеграция с платежной системой (для управления подпиской).
Защита данных
Вопрос безопасности был ключевым. Клиенты не хотят, чтобы их детальные проводки утекли в интернет. Как это решено:
1. От взлома расширения
Вся логика проверки подписки вынесена на сервер. Код расширения (.cfu) у клиента «глупый» - он просто отправляет то, что попросили. Даже если переписать расширение, обмануть сервер и получить ответ без оплаты не получится.
2. От утечки данных
Протокол: Все запросы идут по HTTPS с валидацией сертификата.
Хранилище: На сервере хранятся только агрегированные метрики (сальдо, обороты). Детальные проводки и персональные данные на сервер никогда не попадают.
Контексты: Данные разных клиентов изолированы на уровне базы сервера 1С.
3. Криптография (RSA)
Используется асимметричное шифрование. Агент и сервер обмениваются публичными ключами. Если злоумышленник попытается организовать «Man-in-the-Middle» атаку (встать посередине и притвориться сервером), агент не выполнит его код, так как подпись не пройдет проверку.
4. Двухфакторная привязка
Авторизация в боте требует двух факторов: Лицензионный ключ + Telegram ChatID. Даже если кто-то украдет ключ, без доступа к телефону (Telegram) он не получит данные.
Как это работает: сценарий подключения
Хотелось сделать процесс максимально простым («Plug and Play»).
Шаг 1: Пользователь заходит в бота, принимает оферту и получает уникальный ключ.
Шаг 2: Скачивает расширение
.cfuи добавляет его в свою базу (УТ, УНФ или БП).Шаг 3: Вставляет ключ в настройки расширения и нажимает «Записать».
Всё. Далее расширение само начинает отправлять данные по расписанию или по требованию бота.
Требования к расширению
Платформа: 1С:Предприятие 8.3.20+
Конфигурации: УТ 11.5, УНФ 3.0, БП 3.0 (и выше).
Сеть: Возможность исходящих HTTPS-запросов.
Особенности реализации и бизнес-модель
Проект работает по модели SaaS. Серверная часть закрыта, так как это коммерческий сервис, который требует поддержки и аптайма. Однако, как я упоминал выше, код расширения полностью открыт.
Это позволяет использовать решение как:
Готовый продукт для малого бизнеса (есть бесплатный тариф для старта).
Референс-архитектуру для разработчиков, которые хотят построить своего бота, но не хотят «изобретать велосипед» с безопасностью и обменом данными.
Дорожная карта
Что уже работает и что в планах:
[Done] Мультипользователь: один аккаунт на директора, финдира и РОП.
[Done] Поддержка нескольких баз в одном аккаунте.
[Planned] Автоматическое обезличивание данных
[Planned] Бот для VK Мессенджер.
[Planned] ИИ-классификатор запросов (безопасный, только чтение).
[Planned] Генерация графиков и PDF-отчетов прямо в чат.
[Planned] Автоматическое обезличивание данных
Куда двигаться дальше?
будет зависеть от просьб активных пользователей. Напишите мне, что для вас важнее?
Добавить разнообразие команд 1С
Написать бот для других мессенджеров
Что ожидаете от внедрения ИИ?
Полезные ссылки
Бот: @DirectorInPocketBot
Видео-инструкция: Rutube
Исходный код агента: GitHub
