📖 Руководство: учёт работ 🌐 Инструкции по ролям ↩️ На главную

Полное руководство: учёт работ и заявок для бригад

Версия 2.7.9. То же руководство открывается в боте кнопкой «📖 Инструкция: учёт работ», а пошаговые подсказки по ролям — «🧭 Инструкции по ролям». Страница обновляется вместе с ботом.

Содержание

Учёт работ и заявок (CRM) для бригад: заявки, склад и техника в MAX

Версия шаблона: 2.6.1. Документ описывает профессиональный сценарий работы

строительной/производственной бригады: кто кого подключает, как ходят заявки,

как кладовщик собирает комплект и как техника (автовышка, газель) попадает

на объект.

Главная идея: почта и мессенджеры могут быть заблокированы, а MAX работает всегда —

поэтому весь контур «заявка → согласование → выдача → получение → возврат»

замкнут внутри бота. Ни одно действие не требует звонка или письма.


1. Кто есть кто

РольКто этоЧто делает в ботеКого подключает
👑 Руководительвладелец организациивидит все заявки, склад, сводку, журнал, настраивает согласованиемастеров, любые роли; назначает кладовщика
👷 Мастерначальник участкасогласует заявки бригадиров, отправляет их на склад, назначает водителейбригадиров, водителей
🧑‍🔧 Бригадирстарший бригады (прораб звена)принимает заявки работников, собирает одну заявку бригады, получает комплект у склада и выдаёт работникамработников своей бригады
📦 Кладовщиксклад или мастер бригады (совмещение)собирает комплект («🧰 Комплектовка»), выдаёт бригадиру, оформляет приход, просит закупку выше—
🛒 Снабженецзакупкиполучает «⬆️ Закупка выше», отмечает «✅ Закупил»—
🚚 Водительавтовышка, газельполучает задание с объектом и временем: «✅ Принял» → «🚗 В пути» → «🏁 Выполнено»—
🧰 Работникисполнительсоздаёт заявку бригадиру, подтверждает получение, заявляет возврат—

Один человек может совмещать роли: например мастер + кладовщик

(«✏️ Роли» → «мастер+склад»). Роль кладовщика назначает руководитель,

в том числе мастеру конкретной бригады.


2. Схема подчинения

`

Руководитель

└── Мастер ────────────┬── Бригадир бригады №1 ── Работники бригады №1

├── Бригадир бригады №2 ── Работники бригады №2

└── Водители (автовышка, газель)

Руководитель назначает Кладовщика (отдельный человек ИЛИ мастер бригады)

`

Правила доступа в боте:

Попытка управлять «чужим» сотрудником отклоняется: чужой бригадир не увидит

и не отключит вашего работника.


3. Подключение сотрудников

3.1 По коду бригады (основной путь для работников)

  1. Бригадир берёт код в «🏗 Моя бригада» — например BR-4F2A — и передаёт работникам.
  2. Работник открывает бота → «🔑 Запросить доступ» → пишет Иван; BR-4F2A.
  3. Бригадир получает «🔑 ЗАПРОС В БРИГАДУ» и нажимает «✅ Принять в бригаду» или «⛔ Отклонить».
  4. После подтверждения работник сразу видит свои разделы: «🧾 Новая заявка» и «📋 Мои заявки».

Если кода нет, запрос уходит руководителю (как раньше) — он подключит сотрудника сам.

3.2 Вручную (мастер, бригадир, руководитель)

«👥 Команда» (у бригадира — «👷 Моя бригада») → «➕ Роль» → имя → MAX ID →

должность/техника → объект → подтверждение. Можно одной строкой:

Иван; 123456789; автовышка; Объект №2.

Что видно в карточке сотрудника: роли, звено, объект, техника, кто подключил,

дата отключения. Отключение — кнопка «⏸», возврат — «▶️».

3.3 Бригады

«🏗 Бригады» (руководитель и мастер): создать бригаду, назначить/сменить

бригадира (роль «Бригадир» добавляется автоматически), задать объект,

посмотреть состав, получить код, закрыть/открыть бригаду. Код можно

перегенерировать, создав новую бригаду — старый код перестаёт действовать.


4. Как ходит заявка

`

🧰 Работник ──(🧾 Новая заявка)──▶ 🧑‍🔧 Бригадир

│ «📥 Заявки бригады» → «➕ В заявку бригады»

▼

🧾 Сборная заявка бригады

│ «📤 Кладовщику» или «📤 Мастеру»

┌───────────────┴────────────────┐

▼ ▼

👷 Мастер (согласование) 📦 Кладовщик

│ «✅ Согласовать» │ «🧰 Комплектовка»

└───────────────┬────────────────┘

▼

📦 Комплект собран → «📤 Выдать бригадиру»

▼

🧑‍🔧 Бригадир «📥 Получил у склада»

▼

🧑‍🔧 «📤 Выдать работникам» → 🧰 Работник «✅ Получил»

`

4.1 Работник

позиция (со склада или своя), количество, объект, комментарий, срочность, фото.

4.2 Бригадир

(сохраняется ссылка «заявка #N», работник видит статус «📑 В заявке бригадира»).

или «📤 Мастеру» (сначала согласование).

ставится свой статус («📤 Выдана», «📥 Получена»).

4.3 Мастер

«✅» — на склад, «⛔» — отказ (все заявки работников автоматически

возвращаются бригадиру, никто не «зависает»).

4.4 Кладовщик

(ячейка), «✅ Собрано». Пока позиций не хватает — «⬆️ Закупка выше».

бот прямо скажет: «оформите приход или закупку выше».

(«🧰 Дособрать»).

4.5 Руководитель

«⏳ У бригадиров», «🧰 На складе к выдаче», «🚚 Заданий водителям», «🔑 Запросов доступа».


5. Техника и водители

  1. Водитель подключается мастером: роль «🚚 Водитель», должность/техника —

«Автовышка» или «Газель».

  1. На заявку вида «🚜 Техника» (или любую согласованную) мастер/бригадир нажимает

«🚚 Водитель» и выбирает водителя.

  1. Водитель получает карточку задания: техника, объект, время, заказчик, комментарий.

Кнопки: «✅ Принял», «🚗 В пути», «🏁 Выполнено». Каждый шаг виден заказчику.

  1. «🚚 Мои задания» — список активных заданий у водителя.

6. Если позиции нет на складе

на исходную заявку; уходит снабженцу, мастерам и руководителю.


7. Журнал действий и контроль

«📜 Журнал» (руководитель, мастер) фиксирует: кто подключил/отключил сотрудника,

кто создал бригаду, кто включил заявку в сборную, кто выдал материалы,

кто назначил водителя, кто отклонил заявку. Журнал — основание для разбора:

видно и исполнителя, и время.

Дополнительно бот сам напоминает:


8. Роли и права: краткая матрица

ДействиеРуководительМастерБригадирКладовщикРаботник
Создать заявку✅✅✅✅✅
Согласовать заявку бригады✅✅———
Включить заявку работника в сборную✅✅✅ (своя бригада)——
Комплектовка и выдача со склада✅——✅—
Выдать работнику✅✅✅ (своя бригада)——
Подключить работника✅—✅ (своя бригада)——
Подключить бригадира/водителя✅✅———
Назначить кладовщика✅————
Журнал и сводка✅✅———

9. Настройки (⚙️ Настройки учёта)

Заявки работников всегда сначала идут бригадиру — это часть сценария бригады.


10. Частые вопросы

Работник не видит кнопку заявки. Его не подключили: пусть отправит

«🔑 Запросить доступ» с кодом бригады, бригадир подтвердит.

Бригадир не может добавить работника. Проверьте, что работник из его бригады

(код бригады) и что бригадир не отключён. Работников чужой бригады бот не даст

добавить или отключить.

Заявка «зависла» у бригадира. Заявка ждёт решения бригадира: он должен нажать

«➕ В заявку бригады» либо «⛔ Отклонить». Через сутки бот напомнит автоматически.

Кладовщик не может выдать. Позиции не отмечены «✅ Собрано» или нет остатка —

бот подскажет, по каким позициям не хватает, и предложит закупку.

Работник не подтвердил получение. Заявка бригадира закроется только после

подтверждений всех работников; списки видны в «📤 Выдача по заявке».

Хотим работать без согласования мастера. Отключите «Согласование заявок» в

настройках CRM — заявки бригадира пойдут сразу кладовщику.

Почему MAX, а не почта. Почтовые сервисы и внешние мессенджеры могут быть

недоступны из-за блокировок; MAX в этом контуре работает, поэтому бригада

продолжает получать материалы и технику в срок.


11. Что появилось в 2.6.0

своей бригады; руководитель назначает кладовщика (в том числе из мастера).

что собрано, что выдано, чего нет.


12. Что появилось в 2.6.1

кнопка «🌐 Сайт и тарифы» / «🌐 Сайт платформы» — она открывает сайт с описанием

шаблона, тарифами и презентациями. Тот же адрес указан в «ℹ️ О боте» и в конце

«📖 Инструкция: учёт работ».

переменной окружения SITE_URL (по умолчанию https://maxhomebot.ru/).

(иерархия, цепочка заявок, комплектовка, задания водителям), карточка CRM идёт первой

в разделах «Шаблоны» и «Цены» с меткой «Флагман».


13. Что появилось в 2.7.0 — задание и обеспеченность к дате

Деньги в CRM не используются: бригадир заказывает материалы без сумм, мастер не покупает,

инструмент выдаётся бесплатно. Цель раздела — чтобы бригада вышла на объект вовремя

и полностью обеспеченной, без простоя.

Рабочее окно оповещений

вечером, ночью или в выходной, копится в очереди и доставляется при открытии окна.

зависшие заявки бригадира.

Мастер ставит задание

  1. «🏗 Задания» → «➕ Новое задание».
  2. Кнопками: вид работ → объект (строка; «-» чтобы пропустить) → дата старта → бригада → «✅ Создать задание».
  3. Бригадир получает задание с кнопкой «📝 Заявка по заданию», склад и мастера — уведомление.
  4. Карточка задания: готовность (материалы, инструмент, доставка), список заявок, риски.

Мастер может переставить дату («✏️ Дата»), напомнить о задании и вести статус

(«🔄 Статус задание»: открыто → в работе → закрыто).

Бригадир подаёт заявку по заданию

  1. «🏗 Мои задания» → задание → «📝 Заявка по заданию».
  2. Позиции: «📦 Материал», «🧰 Инструмент», «🚜 Техника» — выбор из справочника склада,

либо «✍️ Своя позиция» вручную. Количество можно с единицей: «150 м», «40 шт».

  1. «🕒 Нужно к» (по умолчанию — дата старта задания), «🚩 Срочно», «🚚 Водитель».
  2. «📤 Отправить завхозу» — заявка уходит сразу завхозу, согласование мастером не требуется.

Мастер получает информацию, бригадир видит заявку в карточке задания.

Завхоз: наличие и свод дефицита

срок и задания. Позиции, попавшие в заказ, из свода уходят.

Лестница заказов

руководитель. Интервалы настраиваются.

бригадир — сообщение, что материалы готовятся к выдаче.

Готовность к дате и риск простоя

не подана — бригадир, склад и мастера получают предупреждение (один раз на задание).

Настройки (руководитель)

«⚙️ Настройки учёта» → «🕗 Начало дня», «🌙 Конец дня», «📅 Все дни / только будни»,

«⏱ Снабженец через», «⏱ Руководитель через», «⚠️ Риск простоя за (ч)».

Что дальше

фото в оповещениях завхоза и руководителя, вложения в очереди рабочего окна.

(см. раздел 18).

(см. разделы 19–20).

(см. раздел 21).


14. Что появилось в 2.7.1 — инструкции по ролям и проверка одним аккаунтом

Релиз про то, чтобы человеку было понятно, что делать, а руководитель мог проверить

весь цикл до подключения сотрудников. Логика CRM, права и таблицы не менялись —

только доступ, подсказки и тексты на сайте.

Инструкции по ролям внутри бота

инструкция CRM» возвращает к общей схеме.

«🤖 Проверить всё по складу», «🛒 Что заказать», «📤 Заказать дефицит выше», «🧰 Комплектовка»,

«📤 Выдать бригадиру», «✅ Получил», «🚗 В пути»).

Проверка одним аккаунтом (руководитель)

сотрудников: если руководитель подключён ещё и как кладовщик — доступны разделы обеих ролей.

Отключается настройкой crm27_owner_all=0 (по умолчанию включено).

интерфейс или проверить вёрстку кнопок. Права на действия не сужаются: действие выполняется

от имени руководителя и попадает в журнал; возврат — «🚪 Обычный режим (руководитель)».

завхоз + мастер или все роли) — разделы этих ролей открываются по-настоящему, и цикл

«задание → заявка к дате → проверка наличия → свод дефицита → заказ → готовность»

проходится одним аккаунтом. В справочник сотрудников записи не добавляются, поэтому

уведомления реальным сотрудникам не дублируются. Выключается кнопкой «🎭 Роли для проверки: выкл».

Что обновлено на сайте

(четыре шага 2.7: задание → заявка по заданию → проверка завхоза → лестница и готовность)

и «Инструкции по ролям — что делать по шагам» для всех семи ролей, со ссылкой «Инструкции

по ролям» рядом с остальными кнопками секции.

«Инструкция: бригадир», «Инструкция: работник», «Инструкция: водитель»,

«Как завхоз проверяет наличие».

«Инструкция: руководитель», «Инструкция: мастер», «Инструкция: завхоз (кладовщик)»,

«Инструкция: снабженец», «Режим „Смотреть как“».

Порядок проверки одним аккаунтом (шпаргалка)

  1. «⚙️ Настройки учёта» → «👁 Смотреть как» → «🎭 Все роли» — включить роли для проверки.
  2. «🏗 Бригады» → «➕ Новая бригада»: название, объект, бригадир (можно себя).
  3. «🏗 Задания» → «➕ Новое задание» — работы, объект, дата старта, бригада.
  4. «🏗 Мои задания» → «📝 Заявка по заданию» — позиции склада, количество, срок «к дате».
  5. «📦 Проверить заявки» → «📦 Проверить заявку» → отметить 🟢 / 🟡 / 🔴 → «🛒 Свести дефицит» →

«📤 Заказать дефицит выше».

  1. «🛒 Заказы» → «✅ Обеспечено» (уровень мастера/снабженца/руководителя видно в списке).
  2. «🧰 Комплектовка» → «✅ Собрано» → «📤 Выдать бригадиру» → «📥 Получил у склада» →

«📤 Выдать работникам».

  1. «✅ Готовность к дате» — проверить, что задание показано как обеспеченное.
  2. Перед тестом с реальными аккаунтами: «🎭 Роли для проверки: выкл» — иначе руководитель

будет видеть лишние разделы.


15. Что появилось в 2.7.2 — учёт работ без юридического блока и согласия на ПДн

Решение руководителя от 02.10.2026: CRM — внутренний инструмент организации, поэтому

публичный юридический пакет и согласие на обработку персональных данных для доступа

сотрудников не запрашиваются. Логика CRM, права, таблицы и отчёты не менялись — только доступ

и тексты.

Что изменилось для сотрудников

оферту/политику и кнопки «✅ Согласен» в CRM больше нет.

согласие на этом шаге не требуется.

Что изменилось для руководителя

«➖ Юридические документы и согласие — для CRM не требуются», вместо блокировки — «🟢 Клиентский

режим разрешён».

платформа (оператор, ИНН, ОГРН, ссылки, erid), и пояснение, что на доступ сотрудников это не влияет.

Чем учёт работ отличается от клиентских шаблонов

сохраняют прежний порядок: без заполненных юридических настроек владельца бот не обслуживает

клиентов, а без согласия на ПДн клиент видит экран «🔐 ПЕРЕД НАЧАЛОМ».

решает руководитель организации своими силами (внутренние приказы и согласия), платформа

в этих отношениях не участвует.

Если руководитель хочет подстраховаться

ознакомление с внутренними регламентами и приказ о работе в мессенджере.


16. Что появилось в 2.7.3 — фото и скриншоты в учёте работ 2.7

Релиз закрывает путь фото в 2.7: снимок, приложенный к заявке по заданию, теперь доходит

до завхоза и руководителя вместе с оповещением, а не остаётся только в карточке. Схема данных

изменена аддитивно — новая колонка очереди оповещений; заявки, склад, задания и персонал

не переписываются.

Как приложить фото к заявке по заданию (бригадир)

  1. «🏗 Мои задания» → нужное задание → «📝 Заявка по заданию».
  2. Позиции → «📷 Приложить фото к заявке» (в строке экрана видно «📷 Фото: N из 5»).
  3. Пришлите картинку или скриншот — можно несколько подряд. Бот ответит «✅ Добавлено фото: N».
  4. «📝 К заявке по заданию» возвращает на экран заявки, «📤 Отправить завхозу» — отправляет.
  5. В подтверждении видно «📷 Фото: N» — фото уехали в заявку и в оповещение завхозу.

Что видит завхоз и руководитель

и сами снимки вложениями; кнопки «📦 Проверить наличие» и «👁 Заявка» на месте.

что нашли, или того, чего не хватает.

часов — уйдёт при открытии окна, а не ночью.

Ограничения и лимиты

он передаёт лишь после отдельной загрузки (POST /uploads), поэтому в ответ на файл бот

поясняет, что нужна картинка. Загрузка файлов — отдельная небольшая задача.

посторонним такая подсказка не отправляется.

Что проверено

(черновик → заявка → оповещения завхоза и руководителя → очередь рабочего окна → фото

к готовой заявке → кнопки экранов → подсказки) и аддитивная миграция crm27_queue.atts

на базе прошлой версии.

CRM_PHOTO_CHECKS_OK.

Что дальше


17. Что появилось в 2.7.4 — файлы в заявках учёта работ

Что можно приложить

К заявке прикладываются не только фото и скрины, но и:

Как приложить

  1. Откройте заявку (или черновик) и нажмите «📎 Фото/файл к заявке» — для заявки по заданию

кнопка называется «📎 Фото или файл к заявке».

  1. Пришлите вложение. Можно несколько подряд, бот считает: «фото 2 из 5, файлы 1 из 5».
  2. Когда закончите — «✅ Готово» (в черновике — «✅ Отправить заявку»).

Файлы уходят тем же людям, что и фото: согласующему, на склад и автору заявки.

Что видит получатель

Это требование MAX: файл и аудио должны быть единственным вложением сообщения, поэтому

кнопок рядом с файлом нет — кнопки остаются в основном сообщении.

Как это устроено (коротко)

Бот не скачивает файл и не загружает его заново. MAX присылает файл вместе с токеном

вложения, и официальная схема MAX (v0.0.33) разрешает использовать этот токен повторно

в другом сообщении. Бот пересылает тот же токен, а файл остаётся на серверах MAX —

на сервере бота место не расходуется.

Ограничения MAX

до 12 картинок в одном сообщении.

(бота это не касается: он не загружает файлы, а пересылает готовые).

Лимиты бота

его задают переменной CRM_FILE_MAX_MB (например, 50).

бот подскажет, куда нажать.

по-прежнему только картинка.

Что проверено

черновик → файл → заявка → уведомление → разбор на отдельные сообщения, лимиты, потолок

размера, файл без токена, посторонний без доступа, справка.

ожидаемый вывод CRM_FILE_CHECKS_OK.

Что дальше

«✅ Принял» и разбор «чего не хватает» (см. раздел 18).

(см. раздел 21).

18. Что появилось в 2.7.5 — задание для работников и раздача бригаде

Раньше задание жило между руководителем, мастером и завхозом: бригадир видел задание и подавал

по нему заявку, а работники о задании не знали. В 2.7.5 задание доходит до каждого работника,

бригадир видит, кто его принял, и разбирает вопросы — «чего не хватает».

Напутствия и вложения к заданию

При создании задания и потом из карточки задания доступны:

вместе с заданием (в задании хранится полем note, раньше он всегда был пустым);

фото едет вместе с сообщением, а файл, видео и аудио — отдельным сообщением без кнопок.

В карточке задания видно «📝 Напутствия: …», «⏰ Раздать бригаде к: 03.10 18:00» и число вложений.

Срок раздачи

кнопка «📣 Раздать бригаде»), копия — мастеру и руководителю.

это его зона ответственности.

«⏱ Эскалация выше (мин)», по умолчанию 120 минут) — задание поднимается мастеру и руководителю:

«⛔ ЗАДАНИЕ #N НЕ РОЗДАНО К 18:00», где видно дату и время срока, имя бригадира и строку

«Прошло: N мин (эскалация выше через 120 мин)». У сообщения две кнопки: «📣 Раздать бригаде»

(раздать может и мастер, и руководитель) и «👁 Задание».

мастеру и руководителю («⏰ ЗАДАНИЕ #N: НЕ ВСЕ ПРИНЯЛИ», список тех, кто ждёт ответа).

Как раздать задание

  1. Бригадир (или мастер, руководитель): «🏗 Задания» → задание → «📣 Раздать бригаде».
  2. На экране раздачи работники бригады уже отмечены (✅). Лишних снимают кнопкой с именем,

своих файлов к заданию добавляют кнопкой «📎 Добавить файлы».

  1. «📣 Отправить (N)» — задание уходит выбранным работникам: работы, объект, дата, напутствия,

вложения задания и вложения бригадира. Мастеру и руководителю приходит строка, что задание роздано.

Задание раздаёт бригадир своей бригады, мастер или руководитель. Если у задания ещё нет бригады,

мастер выбирает бригаду из списка, и дальше раздаёт её бригадир.

Что видит работник

фото, файлом, видео или голосовым сообщением.

Вопросы и нехватка

Бригадир видит сообщения работников в карточке задания и на экране «👁 Кто принял» («❓ #N · имя»).

Дальше — четыре кнопки:

текст и вложения работника переносятся в заявку;

Работнику по каждому действию приходит понятный ответ: «передано на склад», «передано на закупку»,

«закрыто» либо сам текст ответа бригадира.

Контроль принятия

Экран «👁 Кто принял» показывает «Роздано: N · приняли: M · ждут: K» и список работников.

Если часть работников не приняла задание к сроку, бригадиру уходит

«⏰ ЗАДАНИЕ #N: НЕ ВСЕ ПРИНЯЛИ» со списком имён и подсказкой разобрать вопросы,

а через настроенные минуты после срока (по умолчанию 120) — то же сообщение мастеру и руководителю.

Настройки

если бригада не оповещена или не приняла задание (по умолчанию 120, диапазон 5–365 минут).

Все три значения видны в «⚙️ Настройки учёта» и меняются кнопками в этом же экране. Напоминания

и эскалацию считает фоновый цикл CRM (раз в 5 минут), поэтому сообщение приходит в пределах

пяти минут от указанного времени.

Что проверено

напутствия и вложения в задании, выбор работников, «✅ Принял», вопрос с фото,

«📦 На склад», «🚚 Заказать выше», «✍️ Ответить», права и лимиты, настройка эскалации

и то, что выше она подключается не раньше заданных минут.

ожидаемый вывод CRM_WORKER_CHECKS_OK (62 проверки).

Инструкции обновлены

про «📣 Раздать бригаде», «✅ Принял», «❓ Вопрос или не хватает» и настройку «⏱ Эскалация выше (мин)»;

то же добавлено в «📖 Инструкция: учёт работ» (полное руководство) и в подсказку настроек.

разбор бригадиром → срок и эскалация), обновлены карточки ролей и добавлены два вопроса в FAQ

(«Как работник узнаёт о задании?», «Что будет, если бригадир не раздал задание к сроку?»).

«Вопросы работников и срок раздачи», обновлённые инструкции по ролям и экран «Настройки CRM».

Что дальше

сделано, см. раздел 21.


19. Инструкции: одни и те же — в боте и на сайте

С версии 2.7.6 инструкции ведутся в одном месте и открываются и в боте, и на сайте:

(crmh_guide_text + crmh_guide_ext — полное руководство);

и страница полного руководства /guide-crm.html, собранная из этого файла скриптом _guide277.py

(отдаётся платформой — маршрут @app.get("/guide-crm.html") в app/main.py — и указана в sitemap.xml);

«🌐 Руководство на сайте» (SITE_URL + 'guide-crm.html'); с сайта обратно — ссылки на главную и на раздел ролей.

Почему тексты не расходятся

Источник истины — бот: инструкции хранятся в CRM27_HELP_ROLE в bot-runtime/main.py,

а страница руководства собирается из docs/CRM_GUIDE.md. Тест tests/test_instructions_parity.py

сверяет автоматически:

Что можно приложить (инструкция по вложениям)

Раздел «Что можно приложить к заданию и заявке» есть и на сайте, и в интерфейсе бота:

добавляет ещё до 5 + 5 своих вложений;

фото — до 50 МБ, видео — до 250 МБ (до 12 в сообщении), аудио — до 256 МБ или 60 минут;

Как обновлять инструкции в следующем релизе

  1. Правите CRM27_HELP_ROLE и crmh_guide_text/crmh_guide_ext в bot-runtime/main.py и этот файл.
  2. Запускаете _guide277.py — страница /guide-crm.html пересобирается из руководства.
  3. Запускаете _site_roles277.py — блок ролей на сайте пересобирается из CRM27_HELP_ROLE.
  4. Запускаете _mini_runner.py — тест паритета подтверждает, что ничего не потеряно.

20. Имя шаблона: «Учёт работ и заявок» (CRM)

В версии 2.7.6 шаблон получил русское имя — «Учёт работ и заявок (CRM)». Владельцу, который

искал «CRM», ориентироваться по-прежнему просто: прежнее название — «CRM: заявки и склад».

презентации для пользователей и владельца, экраны бота — «📊 Сводка работ», «⚙️ Настройки учёта»,

«📖 Инструкция: учёт работ», «📜 Журнал действий», а также страница /guide-crm.html

(«Полное руководство: учёт работ и заявок для бригад»).

/guide-crm.html, колбэки crm27_* и crmh:*, таблицы и поля базы. Уже выданные боты, ссылки

и инструкции продолжают работать без перенастройки.

работы на объектах: заявки, склад, комплектовка, выдача и задания бригаде. Русское имя объясняет это

с первой строки, а «(CRM)» в скобках оставлено, чтобы прежнее название узнавалось сразу.

Если меняете надписи дальше, держите их в одном виде во всех местах: бот (bot-runtime/main.py),

конструктор (app/platform/max_bot.py, app/platform/pricing.py), юридические карточки

(app/legal.py), сайт (app/static/index.html, app/static/presentations/*.html) и это руководство.

21. Что появилось в 2.7.7 — доставка на объект и склад на объекте

К 2.7.6 у бригады были задания, заявки и выдача со склада. Но материалы появлялись на объекте

«сами собой»: завхоз выдавал по накладной, а что реально привезли на площадку и сколько там

осталось, в боте не отражалось. В 2.7.7 появились два связанных блока — рейс водителя и

склад на объекте (контейнер или бытовка на площадке).

🚚 Рейсы: сборка и водитель

и выбирает водителя; рейс привязывается к заданию и объекту.

«✅ Принял груз» → «🚗 В пути» → «🏁 Привёз, сдал».

📥 Приёмка рейса и расхождения

на склад объекта, а связанные заявки получают статус «получено».

статус «расхождение» и уходит бригадиру, мастеру и завхозу.

📦 Склад на объекте

с отметкой 🟢 / 🟡 / 🔴 по остатку, как на центральном складе.

и встаёт на объектный; привязанные позиции рейса завозятся приёмкой рейса автоматически.

склад, завхоз получает уведомление о возврате.

и чего не хватает.

Что добавилось в меню по ролям

Как проверить

  1. tests/test_crm_trips_277.py — поведенческий тест: завхоз собирает рейс и назначает водителя,

водитель ведёт статусы, бригадир принимает рейс, позиции встают на объектный склад, затем расход,

возврат, ручной завоз и расхождение. Отдельно проверяются права: рейс ведёт только назначенный

водитель, посторонний не может принять рейс, принять до доставки нельзя, расход и возврат —

те же роли, что и раньше.

  1. _mini_runner.py — полный прогон тестов; новых провалов быть не должно.
  2. На сайте: пересобранный блок «Инструкции по ролям» (1:1 с ботом) и два новых вопроса в FAQ —

«Как материалы попадают на объект?» и «Что такое склад на объекте?».

Что дальше

22. Что появилось в 2.7.8 — рассылки по рангам и история объявлений

К 2.7.7 у бригады были задания, заявки, выдача со склада, рейсы и объектный склад. Но объявить

что-то людям было нечем: новость приходилось писать каждому в личку, а мастер и руководитель

не видели, дошло ли сообщение. В 2.7.8 появились рассылки по рангам с историей и отметкой

прочтения — объявление идёт строго вниз по подчинению.

Кто кому объявляет

и своим водителям («🚚 Водители»);

всем сразу («🌐 Все сотрудники») или любому выбранному сотруднику («👥 Выбрать сотрудников»).

Писать «вверх» или соседям нельзя: работник не рассылает вообще, бригадир не пишет мастеру,

мастер — руководителю и чужим бригадам. Каждый получатель отмечается в списке охвата, а при

ручном выборе видно, кто уже отмечен «✅».

Как выглядит рассылка

  1. «📣 Рассылка» → выбор охвата. Бот сразу показывает, сколько получателей и кто именно, и просит

текст объявления (до 1 500 знаков).

  1. Предпросмотр: кому, сколько человек, текст. Кнопки «📤 Отправить», «✍️ Изменить текст»,

«👥 Получатели», «🗑 Отмена».

  1. После отправки: «📣 Объявление #12 отправлено: 6 получателей». Получатели видят объявление

в MAX с кнопкой «✅ Прочитал» и могут вернуться к нему из «📥 Объявления».

История и отметка прочтения

и сколько прочитало. Руководитель видит все рассылки организации, мастер и бригадир — свои.

со статусами «✅ прочитал · время» или «• отправлено».

в истории видно, что это повтор (scope_target указывает на исходное объявление).

и отметкой прочтения; непрочитанные помечены «🆕». Счётчик в меню показывает число непрочитанных.

автору и руководителю прочтение недоступно.

Что добавилось в меню по ролям

Схема

Аддитивно: crm_broadcasts (автор, роль автора, охват, ссылка на исходное объявление, текст,

получателей / дошло / прочитали, создано, отправлено) и crm_broadcast_deliveries (по получателю:

имя, роль, бригада, статус sent/read, отправлено, прочитано) плюс индексы

idx_crm_bcast_author, idx_crm_bcast_del. Alembic остаётся на 0018_crm_template_tariff —

миграции не нужны.

Как проверить

  1. tests/test_crm_broadcasts_278.py — поведенческий тест на настоящем рантайме: ранги

(бригадир → своя бригада, мастер → свои бригадиры с бригадами, склад и водители, руководитель —

всем), запрет писать выше и соседям, доставка объявления, отметка «✅ Прочитал», история автора

с именами и статусами, повтор рассылки, «📥 Объявления» и защита чужого объявления.

  1. _mini_runner.py — полный прогон; новых провалов быть не должно.
  2. На сайте: обновлённый блок «Инструкции по ролям» (1:1 с ботом), блок «Объявления по рангам»

и вопросы FAQ про объявления; в руководстве /guide-crm.html — этот раздел.

  1. Вживую: «📣 Рассылка» → охват → текст → «📤 Отправить»; у получателя — «✅ Прочитал»;

у автора — «📜 История рассылок» → карточка с прочтениями.

Что дальше

23. Что появилось в 2.7.9 — печать, выгрузка файлом, шаблоны заявок и поиск

К 2.7.8 в учёте работ были задания, заявки, склад, рейсы, склад на объекте и рассылки. Не хватало

двух бытовых вещей: отдать документ на бумаге или файлом (прорабу, в бухгалтерию, заказчику)

и не набирать один и тот же состав заявки каждый раз. В 2.7.9 появились «🖨 Печать и выгрузка»,

«📋 Шаблоны заявок» и «🔍 Поиск» — три пункта в меню учёта работ.

Печать и выгрузка

Раздел «🖨 Печать и выгрузка» готовит документы по учёту работ: заявки, задание (наряд), склад,

рейсы, сотрудников и журнал действий. Один и тот же документ можно забрать двумя способами:

«Подпись: ____ Дата: ____»: можно скопировать или распечатать;

разделитель «;», кодировка UTF-8 с BOM, поэтому русские буквы не портятся.

Кому что доступно:

Закрытый для роли документ не открывается: бот отвечает «документ недоступен вашей роли».

Наряд по заданию печатается кнопкой «🖨 Наряд» прямо в карточке задания — с работами, объектом,

бригадой, сроком, напутствиями и всеми заявками по заданию с позициями.

Каждая печать и выгрузка попадает в журнал выгрузок и в общий журнал действий: кто, что, когда,

сколько строк и файл какого размера. Если MAX не принял файл, бот честно предупреждает

и отдаёт тот же состав текстом — данные не теряются.

Шаблоны частых заявок

«📋 Шаблоны заявок» — список с автором и числом позиций. Что можно:

и дать имя (не короче трёх знаков);

позиция уже есть); в сборной заявке бригады — «📋 В заявку бригады» в карточке шаблона;

мягкое: шаблон пропадает из списка, а позиции уже созданных заявок остаются;

Шаблон хранит до 50 позиций, в списке показываются последние 30. Шаблоны общие для организации:

их видит любой сотрудник с доступом к заявкам.

Поиск

«🔍 Поиск» — одно поле вместо листания списков. Ищет по заявкам, заданиям, складу, сотрудникам,

рейсам и журналу действий: по названию, объекту, месту хранения, должности, номеру телефона.

и её задания, завхоз — заявки, склад и рейсы, руководитель — всё, включая сотрудников и журнал;

Мелочи, которые заметны в работе

(tpl_new, tpl_use, print, export) — видно, кто что делал.

Что дальше