[[Описание решения: Telegram-бот для симуляции IT-профессий
- Основные преимущества решения
1.1. Уникальная концепция
· Практическая профориентация: Пользователь не просто читает о профессиях, а выполняет реальные рабочие задачи · Эффект погружения: Имитация первого рабочего дня с интерактивным сценарием · Три траектории развития: 1С-разработчик, Unreal Engine разработчик, бэкенд-разработчик
1.2. Технические преимущества
· Простая интеграция: Работает через Telegram, не требует установки дополнительных приложений · Сохраняемость состояния: Прогресс пользователя сохраняется между сессиями · Мультимедийность: Поддержка видео-контента и интерактивных клавиатур · Масштабируемость: Архитектура позволяет легко добавлять новые профессии и задания
1.3. Бизнес-преимущества
· Низкий порог входа: Пользователи начинают взаимодействие за 2 клика · Автоматизация профориентации: Не требует участия HR-специалистов · Сбор аналитики: Трекер выполнения заданий для анализа интересов аудитории
- Используемый технологический стек
2.1. Основная платформа
· 1С:Предприятие 8.3 (версия 8.3.17 и выше) · Встроенный язык программирования 1С
2.2. База данных
· PostgreSQL или Microsoft SQL Server (через платформу 1С)
2.3. Интеграции и API
· Telegram Bot API (через стандартные механизмы 1С) · HTTP-сервисы для обработки webhook-запросов
2.4. Архитектурные компоненты
· Регистры сведений: · ТелеграмСостояние - текущий прогресс и состояние пользователя · ТелеграмСтатусЗадач - результаты выполнения заданий · Очередь задач - для асинхронной обработки сообщений · Динамические клавиатуры - для интерактивного взаимодействия
2.5. Внешние ресурсы
· Видеофайлы для интро и итоговых роликов · Файловое хранилище для медиаконтента
- Как работает система
3.1. Общая схема работы
Пользователь → Telegram → Webhook → 1С → Обработка → Ответ пользователю 3.2. Основной цикл взаимодействия
- Старт: /start → Приветствие → Выбор профессии
- Выбор профессии: 1С / Unreal Engine / Бэкенд
- Введение: Описание первого рабочего дня
- Выполнение заданий: 3 практических кейса по каждой профессии
- Проверка ответов: Автоматическая валидация с обратной связью
- Итоги: Видео-результат в зависимости от успешности выполнения
3.3. Ключевые обработчики
· ПриОбработкеЭлементаОчереди() - главный обработчик входящих сообщений · Управление состоянием: · УстановитьСостояние() - сохранение текущего прогресса · ПолучитьСостояние() - восстановление состояния пользователя · Проверка заданий: · УстановитьСтатусЗадания() - запись результата · ПолучитьПравильныйВариант() - валидация ответов
3.4. Логика заданий
· Каждая профессия: 3 тематических задания · Формат: вопрос + 4 варианта ответа · Автоматическая проверка с объяснением · Прогресс сохраняется в регистрах сведений
- Инструкция по запуску
4.1. Предварительные требования
· 1С:Предприятие 8.3 (не ниже версии 8.3.17) · Доступ к серверу с публичным IP для webhook · Telegram аккаунт для создания бота
4.2. Шаг 1: Создание Telegram-бота
-
Открыть Telegram
-
Найти @BotFather
-
Команда: /newbot
-
Задать имя бота (например: NextWW Career Bot)
-
Получить токен (сохранить для шага 4)
-
Настроить webhook командой: https://api.telegram.org/bot{ВАШ_ТОКЕН}/setWebhook?url={URL_вашего_сервера} 4.3. Шаг 2: Подготовка среды 1С
-
Создать новую информационную базу
-
Импортировать структуру метаданных:
- Регистры сведений: ТелеграмСостояние, ТелеграмСтатусЗадач
- Общие модули с обработчиками
-
Настроить HTTP-сервис для приема webhook 4.4. Шаг 3: Настройка конфигурации
// Основные параметры:
-
Токен бота: установить в константы или параметры
-
URL webhook: указать внешний адрес сервера
-
Пути к медиафайлам:
- C:\Video\intro.mp4
- [другие видеофайлы]
-
Настройки базы данных: подключение к PostgreSQL/MS SQL 4.5. Шаг 4: Развертывание кода
-
Скопировать предоставленный код в соответствующие модули
-
Настроить обработчик HTTP-запросов
-
Создать фоновое задание для обработки очереди
-
Протестировать локально с использованием ngrok (для разработки)
4.6. Шаг 5: Запуск и тестирование
- Запустить информационную базу в режиме предприятия
- Активировать фоновые задания
- Отправить /start вашему боту
- Пройти полный цикл по каждой профессии
- Проверить сохранение состояния
4.7. Шаг 6: Мониторинг и поддержка
- Настроить логирование ошибок
- Реализовать панель мониторинга прогресса пользователей
- Настроить уведомления об ошибках
- Подготовить backup-стратегию для базы данных
- Структура проекта
- Возможности расширения
· Добавление новых IT-профессий · Интеграция с CRM-системами · Система достижений и рейтингов · Поддержка многоязычности · Аналитика и отчетность по выбору профессий При получении первого сообщения предлагает выбрать вопрос на клавиатуре в поле ввода
Каждый вопрос сопровождается вариантами ответа, пользователю дается одна попытка ответа
Для работы режима необходимо предварительное заполнение справочников Вопросы теста с расшифровкой и Расшифровка теста с расшифровкой
Подразумевается, что варианты ответа пронумерованы и включены в текст вопроса. Бот выводит номерные кнопки, для каждого ответа. Количество баллов для расшифровки оказывается в табличной части вопроса.
Расшифровка результата отправляется пользователю после ответа на все вопросы, выбирается элемент справочника, в диапазон значений которого попадает сумма набранных пользователем баллов.
Дополнительном можно настроить приветственное и финальное сообщение. Настройки выполняются в обработке Настройка теста с расшифровкой в разделе Тест с расшифровкой.
При желании пользователь может перезапустить тест командой "/start" и пройти заново.
Для создания своего режима работы бота необходимо:
- Добавить режим работы бота в перечисление
РежимРаботыБота - Создать свой общий модуль (можно скопировать
ТелеграмЭхо) - В методе
ИнтеграцияТелеграмПереопределяемый.ПриОбработкеЭлементаОчередидобавить обработку нового элемента перечисления с передачей управления в новый общий модуль - Реализовать в своем общем модуле небходимые функции, добавить необходимые объекты метаданных для работы алгоритма
- Создать новую подсистему и включить в нее все добавленные объекты
При недостаточной функциональности методов взаимодействия с API оставляейте пожелания в https://github.com/matvey-seregin/game-tg-1c-bot/issues или самостоятельно реализуйте необходимую функциональность и направляйте Pull requests для включения новых функций в основную ветку. ](https://github.com/Triler1/1C_bot/blob/main/readme.md)](https://github.com/Triler1/1C_bot/blob/main/readme.md)