Руководство администратора — Версия 2.7.6
Административная панель управляет:
- ФСНБ-2022 — загрузка ZIP-архивов от Минстроя, активация версий, навигация по каталогу
- Индексами цен — импорт XLSX от ФГИС ЦС, ручной и автоматический (робот), ночное автообнаружение квартала
- Справочниками — кварталы, страны, регионы, ед. изм., ставки НДС, характеристики, обоснования коэффициентов
- Привязкой НР и СП — сопоставление нормативов с работами
- Шаблонами отчётов и НПА документами
- ИИ-ассистентом — чаты пользователей, телеметрия подбора, модели ИИ и расходы
- Разметкой и качеством подбора — характеристики ФСНБ деревом, RAG-примеры, оценка качества, Профи.ру
- Пользователями — список зарегистрированных, признак «Эксперт», обращения, статистика
- Тестированием — запуск автоматических сценариев из админки (на тестовом контуре)
Содержание
- 1.Вход в систему
- 2.Главная и навигация
- 3.ФСНБ
- 4.Импорт ФСНБ
- 5.Привязка НР и СП
- 6.Индексы цен
- 7.Робот загрузки ИЦ
- 8.Справочники
- 9.Технологические группы
- 10.Шаблоны отчётов
- 11.НПА документы
- 12.Обращения пользователей
- 13.Пользователи
- 14.Тестирование
- 15.Документация
- 16.Чаты пользователей
- 17.Телеметрия подбора
- 18.Модели ИИ и расходы
- 19.Разметка ФСНБ (характеристики)
- 20.Оценка качества подбора
- 21.Профи.ру
- 22.Продуктовая аналитика (Метрика)
1. Вход в систему
Административная панель — https://smeta.net.ru (рабочий
контур) или https://smeta-admin-test.softlancer.ru
(тестовый).
1.1. Форма входа
| Поле | Описание |
|---|---|
| Логин | имя администратора (например admin) |
| Пароль | пароль администратора |
Кнопка: «Войти» — заблокирована при пустых полях или во время запроса; во время загрузки показывает индикатор. При неверных учётных данных под полем появляется красное сообщение.
1.2. Учётные данные
Учётные записи администраторов создаются вручную в системе. В админке нет формы регистрации — администратор не саморегистрируется. Для создания нового администратора обратитесь к ответственному за инфраструктуру.
1.3. После входа
Система запоминает вас — повторное открытие сразу попадает в кабинет (если не выходить через «Выйти»).
Открывается главная страница — статистика по системе и быстрые ссылки на разделы. Выход — кнопка «Выйти» в нижней части бокового меню.
1.4. Сессия
Срок жизни сессии — 24 часа. По истечении приложение возвращает на форму входа с сообщением «Сессия истекла».
1.5. Безопасность
- Соединение всегда по HTTPS.
- Передача авторизации защищена и подписана секретным ключом сервера.
- Если у администратора в системе сменился пароль, активные сессии остаются действительными до истечения 24 часов.
2. Главная и навигация
После входа открывается главная страница и боковое меню — оно доступно со всех экранов.
2.1. Главная страница
Содержит:
- Заголовок «Администрирование Смета.Нет.Ру».
- Версия приложения (например, 2.6.2).
- Виджеты статистики: количество загруженных ФСНБ, активный ФСНБ, количество пользователей, обращений.
- Быстрые ссылки на основные разделы.
2.2. Боковое меню
Меню структурировано по группам:
Каталог ФСНБ
| Пункт | Назначение |
|---|---|
| 🏠 Главная | Возврат на главную |
| 📚 ФСНБ | Список загруженных ФСНБ, активация, удаление, навигация по каталогу |
Справочники
| Пункт | Назначение |
|---|---|
| 📅 Кварталы | управление кварталами (год, номер, письмо Минстроя) |
| 🌐 Страны | управление списком стран |
| 🗺️ Регионы | управление регионами (с привязкой к ФГИС ЦС, многозонные регионы) |
| 📏 Ед. измерения | конвертация единиц (категория + множитель) |
| 📋 Характеристики | словарь характеристик для применения коэффициентов |
| 📖 Обоснования коэф. | справочник обоснований применения коэффициентов (приказы 421/пр, 571/пр, 812/пр, 774/пр) |
Индексы цен
| Пункт | Назначение |
|---|---|
| 📊 Индексы цен | просмотр загруженных индексов |
| ⬆️ Импорт ИЦ | ручная загрузка XLS-файла |
| 🤖 Робот ИЦ | автоматическая загрузка из ФГИС ЦС |
НР и СП
| Пункт | Назначение |
|---|---|
| 💰 Привязка НР и СП | сопоставление таблиц нормативов накладных расходов и сметной прибыли с работами ФСНБ |
Загрузка
| Пункт | Назначение |
|---|---|
| 📥 Загрузка ФСНБ | импорт ZIP-архива с XML-файлами ФСНБ |
Управление пользователями и обратной связью
| Пункт | Назначение |
|---|---|
| 👥 Пользователи | список зарегистрированных пользователей (только просмотр) |
| 💬 Обращения | список обращений пользователей (ошибки и предложения) |
| 📄 НПА документы | управление приказами, методиками, СП, МДС с PDF-файлами |
| 📊 Шаблоны отчётов | управление шаблонами экспорта (Стандарт / ФСНБ. Ресурсы и индексы) |
ИИ-ассистент и аналитика (в боковом меню — раздел «Система»)
| Пункт | Назначение |
|---|---|
| Чаты пользователей | просмотр диалогов пользователей с ассистентом (см. главу 16) |
| Аналитика чата | дашборд телеметрии: эпизоды и исходы подбора (см. главу 17) |
| Модели ИИ | доступные модели ИИ (см. главу 18) |
| Настройки агента | параметры агента: модель, итерации, токены, матрица качества (см. главу 18) |
| Расход API | расход по обращениям к API моделей (см. главу 18) |
| Расходы | сводный расход ресурсов ИИ (см. главу 18) |
Разметка и качество подбора (в боковом меню — разделы «Система» и «Алгоритмы»)
| Пункт | Назначение |
|---|---|
| Оси хар-к (ФСНБ) | параметры работ для разметки ФСНБ (см. главу 19) |
| Разметка ФСНБ | присвоение характеристик деревом (см. главу 19) |
| RAG-примеры | база знаний подбора (см. главу 19) |
| Eval | оценка качества подбора, кейсы, покрытие, очередь ревью (см. главу 20) |
| Профи.ру | пайплайн каталога услуг (см. главу 21) |
Тестирование
| Пункт | Назначение |
|---|---|
| Тестирование | запуск автоматических сценариев из админки (только на тестовом контуре) |
Документация
| Пункт | Назначение |
|---|---|
| 📖 Документация | ссылки на руководства (HTML / PDF / Markdown) и Release Notes |
2.3. Принципы навигации
- Клик по пункту меню — переход в соответствующий раздел.
- Кнопка «← Назад» в шапке (если есть история) — возврат на предыдущий экран.
- При перезагрузке страницы (F5) состояние сбрасывается на главную.
2.4. Шапка приложения
Над содержимым — название текущего раздела + кнопки действий, специфичные для каждой страницы.
В нижней части бокового меню — кнопка «Выйти».
2.5. Доступ
Ролей и прав внутри админки пока нет — авторизованный администратор видит весь интерфейс; разграничение прав запланировано. Отдельно существует признак «Эксперт» для пользователей калькулятора (см. главу 13) — он расширяет их возможности в пользовательском приложении, а не в админке.
3. ФСНБ
«ФСНБ» (Федеральная сметная нормативная база) — корневой справочник системы. Каждая загруженная ФСНБ содержит сборники (ГЭСН, ГЭСНм, ГЭСНр и т. д.), разделы, группы, работы и ресурсы.
3.1. Список ФСНБ
Открывается по пункту меню «ФСНБ».
Колонки таблицы:
| Колонка | Что показано |
|---|---|
| ID | внутренний идентификатор |
| Название | например «ФСНБ-2022 (приказ Минстроя 696/пр от 12.11.2025)» |
| Номер приказа | например «696/пр» |
| Дата приказа | например «12.11.2025» |
| Статус | «Активна» / «Не активна» |
| Кол-во сборников / разделов / работ | счётчики |
Действия в строке:
| Кнопка | Назначение |
|---|---|
| Открыть | детали этой ФСНБ (см. 3.2) |
| Активировать / Деактивировать | переключить статус |
| Удалить | удаление ФСНБ со всеми связанными данными (с подтверждением); в процессе показывается индикатор |
Кнопки страницы: + Загрузка ФСНБ — переход на форму импорта (см. главу 4).
3.2. Карточка ФСНБ
Открывается из списка по «Открыть».
Шапка
- Название ФСНБ (редактируемое).
- Номер и дата приказа.
- Статус.
- Кнопки: «Сохранить» (после редактирования), «Деактивировать», «Удалить».
Сборники
Таблица: тип, название, дата создания, уровень цен. Клик переходит в карточку сборника.
Привязка НР / СП
Выпадающий список «Привязка НР/СП» — выбор активного маппинга (см. главу 5).
Расчёт НР / СП
Кнопки:
- «Рассчитать НР/СП» — запускает расчёт для всех работ ФСНБ.
- Прогресс — индикатор обновляется автоматически.
- «Список нерассчитанных» — показывает работы без НР / СП.
3.3. Сборник
Список разделов. Колонки: код, название, кол-во групп, кол-во работ. Поиск (для ФСБЦ_Маш, ФСБЦ_Мат) — на сервере, с задержкой ~400 мс.
3.4. Раздел
Список групп и подразделов. Иерархия раскрывается через хлебные крошки.
3.5. Группа
Список работ в группе. Колонки: код, название, единица измерения. Клик по работе открывает её карточку.
3.6. Карточка работы
Полная карточка работы (только просмотр):
- Код, название, единица измерения, сборник.
- Ресурсы — таблица: № / Тип / Код / Название / Кол-во / Ед. Бейдж «П» для ресурсов с количеством из проекта.
- НР / СП — таблица: НР или СП, % от ФОТ, обоснование.
- Технологические группы — список групп с привязкой к абстрактным ресурсам.
- Абстрактные ресурсы — материалы, замещаемые конкретными в калькуляторе через выбираемые материалы.
4. Импорт ФСНБ
Загрузка ZIP-архива с XML-файлами ФСНБ. Источник архивов — официальные публикации Минстроя на ФГИС ЦС.
4.1. Открытие
Меню → «Загрузка ФСНБ».
4.2. Загрузка файла
Поле «Выберите файл ZIP» — стандартный выбор файла, принимаются ZIP-архивы стандартного формата ФСНБ Минстроя (с XLSM-файлами по сборникам и спецификациями XML).
Кнопка «Загрузить» — отправляет архив на сервер. После загрузки запускается фоновый процесс импорта.
4.3. Список загрузок
| Колонка | Что показано |
|---|---|
| Имя файла | как загружено пользователем |
| Размер | в МБ |
| Дата загрузки | |
| Статус | «Загружен» / «Импортируется» / «Готов» / «Ошибка» |
| Прогресс | прогресс-бар при импорте |
Прогресс импорта обновляется автоматически. Показывает:
- % выполнения общего импорта;
- Текущий шаг (например, «Импорт ГЭСН: раздел 5 из 67»);
- Количество обработанных строк.
4.4. Обработка ошибок
При ошибке статус меняется на «Ошибка», в детальной строке выводится сообщение. Типичные ошибки:
- «Файл не является ZIP» — неверный формат файла.
- «Не найден файл XLSM» — структура ZIP не соответствует ожидаемой.
- «Конфликт ссылок» — попытка удалить ФСНБ, на которую ссылаются индексы цен.
- «Слишком длинное значение» — поле в XLSM длиннее допустимого.
4.5. После успешного импорта
- Загруженная ФСНБ появляется в списке.
- Статус — «Не активна» по умолчанию. Активировать вручную.
- Расчёт НР / СП — отдельным шагом (см. главу 5).
4.6. Что включено в импорт
| Сущность | Источник в архиве |
|---|---|
| Сборник | заголовочные листы |
| Раздел | таблицы разделов |
| Группа | подзаголовки |
| Работа | строки расценок (с обоснованием, единицей измерения, разрядом) |
| Ресурсы | оплата труда, эксплуатация машин, материалы по каждой работе |
| Базисные цены ресурсов | из сборников ФСБЦ_Маш и ФСБЦ_Мат |
| Технологические группы | раздел технологических групп |
| Абстрактные ресурсы | шаблоны материалов в работах |
| Ставки НР / СП | через отдельную привязку (см. главу 5) |
4.7. Размер и время
Полный импорт ФСНБ-2022 занимает 5–15 минут на тестовом контуре и до 30 минут на рабочем (зависит от ресурсов сервера). Размер архива — обычно 50–80 МБ.
Во время импорта система остаётся работоспособной, но активный ФСНБ не меняется до явной активации.
5. Привязка НР и СП
«НР / СП» (накладные расходы и сметная прибыль) — нормативные процентные ставки от ФОТ, применяющиеся к каждой работе. В ФСНБ они не приходят в составе работы напрямую — их нужно сопоставить из таблиц приказа Минстроя 812/пр (НР) и 774/пр (СП).
Меню → «Привязка НР и СП» (раздел «Алгоритмы»).
5.1. Открытие
Меню → «Привязка НР и СП».
5.2. Список привязок
Колонки таблицы:
| Колонка | Что показано |
|---|---|
| ID | |
| Название | например «Стандартный (812/пр_2020 + 774/пр_2020)» |
| Кол-во строк | сколько кодов работ покрыто |
| Активна | флаг |
Действия: Открыть / Удалить / Скачать XLSX / Загрузить XLSX.
5.3. Создание новой привязки
Кнопка «+ Новая привязка» открывает форму:
- Название привязки.
- Файл XLSX — таблица с колонками: код работы / процент НР / процент СП / обоснование НР / обоснование СП.
После загрузки система разбирает XLSX и создаёт записи привязки.
5.4. Применение привязки
В карточке ФСНБ (см. главу 3) у каждой ФСНБ — выпадающий список «Привязка НР / СП». Выбор привязки и кнопка «Рассчитать НР/СП» запускает расчёт.
Система проходит по всем работам ФСНБ и для каждой создаёт записи НР и СП с процентами и обоснованиями из привязки.
Прогресс отображается в виде полосы.
5.5. Структура XLSX-файла
Шапка таблицы:
| Код | Вид работ | НР % | НР обоснование | СП % | СП обоснование |
|---|---|---|---|---|---|
15 |
Отделочные работы | 100 |
812/пр_2020_прил.т_п.15 |
60 |
774/пр_2020_прил.т_п.15 |
49.3 |
Электромонтажные | 97 |
812/пр_2020_прил.т_п.49.3 |
51 |
774/пр_2020_прил.т_п.49.3 |
| … |
Сопоставление по коду вида работ (первая колонка) — система соотносит с кодом группы или работы в ФСНБ.
5.6. Множественные пары
Одна работа может иметь несколько пар «НР + СП» (например, для разных видов: монтажный + ремонтный). В таком случае в XLSX повторяются строки с одинаковым кодом.
В смету пользователя всегда попадает ровно одна пара (с версии 2.7.0). Если вариантов несколько, при добавлении работы берётся пара с минимальным процентом НР (тай-брейк: минимальный СП, затем шифр), пользователь видит пометку «выбран минимальный норматив» и может сменить привязку вручную (см. руководство пользователя, главы 6 и 7.7). Ручной выбор пользователя сохраняется в смете и не перезатирается пересчётами.
Практическое следствие для администратора: порядок и состав дублирующихся строк в XLSX влияет на автоматический выбор. Если по коду загружены лишние или ошибочные виды работ, сметы систематически получат заниженный НР — выверяйте дубли по коду перед загрузкой.
5.6.1. Лечение смет, созданных до 2.7.0
Сметы, сгенерированные раньше, содержат в БД все пары сразу и
завышают итог. Разовое лечение выполняется DML-скриптом
docs/migrations/v2.7.0-d2-nrsp-collapse.sql (репозиторий
admin-backend):
- скрипт идемпотентен — повторный запуск безопасен;
- перед удалением лишних пар делается резервная копия в таблицу
backup_smeta_nr_sp_d2— не удалять её до приёмки релиза; - после прогона обязателен пересчёт итогов смет (см. §5.6.2) — иначе в списке смет останутся старые суммы;
- порядок: TEST → проверка → PROD (только в согласованное окно).
Пользователь после этого увидит в смете информационный баннер об уменьшении итога — руками чинить ничего не нужно.
5.6.2. Пересчёт итогов: как читать отчёт
Пересчёт запускает приложение smeta-user-backend:
POST http://<хост-контура>/api/internal/recalc-all
Массовый вызов на PROD — только в согласованное окно.
⚠️ Открытие сметы в интерфейсе пользователя итоги НЕ
пересчитывает — GET /api/smeta/{id} только читает,
ни одной записи в БД не делает. Не считайте смету вылеченной на том
основании, что её открыли. Точечная альтернатива массовому пересчёту
одна: попросить владельца сметы открыть у нужной работы «Сменить
привязку» и повторно применить уже выбранный
вариант — привязка не изменится, а итоги работы, раздела и сметы
пересчитаются (подробнее — §5.6.3).
⚠️ Endpoint работает без аутентификации — звать только изнутри контура, снаружи не дёргать.
Смотреть надо на тело ответа, а не только на код
возврата. В версиях до 2.7.0 пересчёт отдавал
200 «Пересчитано смет: N», даже если часть итогов не
посчиталась и была затёрта в пустое значение (на TEST 21.07 так
потерялись итоги 37 работ в 5 сметах). С 2.7.0 ответ — JSON-отчёт:
| Поле | Что означает |
|---|---|
smetaCount |
сколько смет обработано |
rabotaFailedCount |
по скольким работам расчёт не удался |
smetaFailedCount |
по скольким сметам не удалось поднять сумму наверх |
failedRabotaIds / failedSmetaIds |
перечень идентификаторов (усечён до 200 — об усечении сказано в
message; полный перечень в журнале
smeta-user-backend) |
message |
текстовая сводка |
Как читать:
- HTTP 200,
rabotaFailedCount = 0,smetaFailedCount = 0— пересчитано полностью, идти дальше по процедуре; - HTTP 500 с тем же отчётом в теле — часть работ не посчиталась. Итоги этих работ не пересчитаны, но и не затёрты: прежние значения остались на месте, деньги в смете не «схлопываются» в пустоту.
Ненулевой rabotaFailedCount на PROD — СТОП
процедуры: разобрать причину по стеку в журнале
smeta-user-backend (строки
[recalc] rabotaId=…), устранить, повторить пересчёт. На
TEST — то же самое, но без остановки окна.
Контрольный запрос после пересчёта (до сверки сумм) — сколько работ вылеченных смет осталось без итога:
SELECT count(*) FROM smeta_rabota r
JOIN smeta_razdel z ON z.id = r.razdel_id
WHERE z.smeta_id IN (SELECT id FROM smeta WHERE nr_sp_collapsed_at IS NOT NULL)
AND r.itogo_summa IS NULL;Ожидание — только заведомо пустые работы (без ресурсов и цен). Внезапный рост этого числа после пересчёта = потеря итогов, откатывать по блоку ОТКАТ в самом скрипте миграции.
5.6.3. Смены привязки в версиях 2.7.0 — 2.7.4: итоги надо пересчитать
В этих сборках смена привязки НР/СП пользователем сохраняла
новую пару вместе со старым итогом работы: проценты и
суммы НР/СП в БД обновлялись, а itogo_summa работы
оставалась посчитанной по предыдущей паре. Расхождение поднималось в
итог раздела, сметы и в выгрузку XLSX; обновление страницы его не
лечило, ошибка «отставала ровно на одну смену».
Исправлено в smeta-user-backend. Выкат кода
лечит только последующие действия — уже сохранённые итоги остаются
неверными, их надо пересчитать.
Кандидаты на пересчёт — сметы, где вид работ выбирал человек:
SELECT DISTINCT z.smeta_id
FROM smeta_nr_sp p
JOIN smeta_rabota r ON r.id = p.rabota_id
JOIN smeta_razdel z ON z.id = r.razdel_id
WHERE p.origin = 'USER';Выборка шире реально затронутых:
origin = 'USER' ставится и когда вид работ выбрали прямо
при добавлении работы (такие итоги верны). Лишний пересчёт безвреден,
поэтому уточнять её не нужно.
Лечение — тот же пересчёт итогов, что и после DML-лечения: массово по §5.6.2 либо точечно (пользователь открывает «Сменить привязку» и повторно применяет уже выбранный вариант — привязка не меняется, итоги работы, раздела и сметы пересчитываются).
На PROD массовый пересчёт — только в согласованное окно и со снятыми
суммами смет до и после: у смет, ссылающихся на
отсутствующий индекс цен (сплит-форму), пересчёт даёт «законный ноль» —
итог обнуляется, а отчёт остаётся зелёным
(rabotaFailedCount = 0).
5.7. Ручное редактирование
В таблице привязки можно вручную править строки (если зайти через «Открыть»):
- Колонки кликабельны для редактирования на месте.
- Кнопка ✕ — удалить строку.
- Кнопка «+ Добавить» — новая строка с пустыми полями.
Сохранение — пополе. Изменения не пересчитывают уже посчитанные НР / СП — нужно повторно запустить «Рассчитать НР/СП» в карточке ФСНБ.
5.8. Привязка по умолчанию
При первом запуске системы привязка создаётся вручную (загрузить XLSX или попросить готовый файл от Минстроя). Значений по умолчанию нет.
5.9. Особенности 2.2.21
В 2.2.20+ добавлены коэффициенты 812/пр_2020_п.25 (НР × 0,9) и 774/пр_2020_п.16 (СП × 0,85), применяемые при капитальном ремонте через ГЭСН вместо ГЭСНр. Их не нужно включать в привязку — это отдельные обоснования (см. главу 8 «Справочник обоснований»). Они применяются сверх базовых ставок.
6. Индексы цен
«Индексы цен» (раньше называлось «Сплит-форма») — таблицы пересчёта базисных цен ресурсов в текущие. Каждая запись = ресурс × регион × квартал → текущая цена + индекс.
Индексы загружаются напрямую с ФГИС ЦС по паре «регион + квартал»: администратор выбирает регион и квартал, система сама формирует ссылку, скачивает сплит-форму (xlsx) и разбирает её. Загрузки файлом с компьютера в системе нет.
6.1. Открытие
- Меню → «Индексы цен» — список загруженных индексов и их содержимое.
- Меню → «Импорт ИЦ» — загрузка индексов нового региона/квартала.
6.2. Список импортов
Колонки таблицы:
| Колонка | Что показано |
|---|---|
| Регион | код ценовой зоны и название региона |
| Квартал | номер квартала (Q1…Q4) и название, например «4 квартал 2025 г.» |
| Ресурсов | сколько строк загружено |
| Дата импорта | когда выполнена загрузка |
| Статус | кнопка «Активно» / «Не активно» |
Действия:
| Действие | Как | Что делает |
|---|---|---|
| Открыть содержимое | клик по строке | раскрывает панель ресурсов (см. 6.4) |
| Переключить статус | клик по кнопке в колонке «Статус» | «Не активно» ↔︎ «Активно»; на время запроса кнопка заблокирована |
Удаления индексов в интерфейсе нет — повторный импорт той же пары «регион + квартал» полностью заменяет данные (см. 6.8).
6.3. Фильтры
| Фильтр | Что фильтрует |
|---|---|
| Страна | ограничивает список регионов |
| Регион | конкретный регион (в скобках — код ценовой зоны ФГИС ЦС) |
| Квартал | сгруппирован по годам; в скобках — код периода ФГИС ЦС |
6.4. Панель ресурсов
Открывается кликом по строке списка. Сверху — поиск по коду или наименованию ресурса, справа — общее число строк.
Колонки: Код ресурса, Наименование, Ед.изм, Отп. цена 01.01.2022, Смет. цена 01.01.2022, Гр., Наименование группы, Смет. цена текущая, Индекс.
Заполнены не все колонки у всех строк, и это нормально:
- у машин и механизмов обычно есть текущая сметная цена и нет индекса;
- у материалов — отпускная и базисная цены плюс индекс пересчёта.
Панель — основной способ убедиться, что импорт действительно привёз
данные, а не создал пустой заголовок: найдите знакомый код (например
91.05.05-015) и проверьте, что цены непустые.
6.5. Импорт индексов с ФГИС ЦС
Меню → «Импорт ИЦ».
- Страна → Регион. Под полем зелёным
выводятся собранные параметры:
priceZoneId(Код ФСНБ региона) иcountrySubjectId(ФГИС ЦС ID региона). - Квартал (список сгруппирован по годам). Под полем —
periodId(Код ФСНБ квартала). - Появляется блок «URL для скачивания» — та самая ссылка на ФГИС ЦС, которая будет вызвана, и предупреждение: «Существующие данные для выбранных региона и квартала будут удалены и заменены новыми».
- Сверьте параметры до нажатия кнопки — особенно
periodId: именно он определяет квартал, данные которого будут перезаписаны (см. 6.8). - Кнопка «Скачать и импортировать» запускает процесс. Кнопка неактивна, пока не выбраны регион и квартал или пока не хватает кодов ФГИС ЦС.
Экран прогресса (не закрывайте и не перезагружайте вкладку до конца — прогресс хранится по идентификатору задания в памяти сервера):
- строка фазы: «Проверка параметров…» → «Удаление старых данных…» → «Скачивание файла с ФГИС ЦС…» → «Импорт: N строк прочитано…» → «Завершено»;
- два счётчика: «Прочитано строк» и «Записано в БД» (в норме совпадают — расходятся только за счёт пропущенных пустых строк файла);
- ссылка на источник — то, что реально скачивается.
Терминальные состояния:
| Состояние | Что значит | Что делать |
|---|---|---|
| Готово | данные загружены | перейти к активации (6.7) |
| Ошибка | текст ошибки на экране | см. 6.6 и 6.8 |
Типичные тексты ошибок:
HTTP 404/500 при скачивании файла с ФГИС ЦС — проблема на
стороне внешнего источника (повторить позже);
не задан Код ФСНБ / «Регион не найден» / «Квартал не
найден» — не заполнены справочники (см. 6.6).
Загрузка одного крупного региона занимает порядка полминуты (файл ~8 МБ, сотни тысяч строк); ограничение на скачивание — 10 минут.
6.6. Что должно быть заполнено в справочниках
Импорт возможен, только если заданы три кода ФГИС ЦС:
| Код | Где заполняется | Роль в ссылке |
|---|---|---|
| Код ФСНБ региона | справочник «Регионы» (глава 8) | priceZoneId |
| ФГИС ЦС ID региона | справочник «Регионы» | countrySubjectId |
| Код ФСНБ квартала | справочник «Кварталы» | periodId |
Если чего-то не хватает, пункт списка помечается «⚠ нет кодов ФГИС» / «⚠ нет Кода ФСНБ» и недоступен для выбора, а вместо URL показывается красный блок «Невозможно сформировать URL». Это же — признак испорченного справочника: если ранее доступный квартал вдруг стал недоступен, сначала проверьте его карточку, а не источник.
Кварталы прошлых периодов ФГИС ЦС отдаёт наравне с текущим — восстановить индексы за уже прошедший квартал можно в любой момент (проверено на 4 квартале 2025 г.).
6.7. Активация — обязательный шаг после импорта
Импорт всегда создаёт запись со статусом «Не активно» и сам её не активирует. Это относится и к загрузке вручную, и к работе робота (глава 7).
Пользовательское приложение показывает в форме создания сметы только активные индексы: пока статус не переключён, ни регион, ни квартал в списках у сметчика не появятся, хотя данные уже в базе.
Итого после импорта: список «Индексы цен» → найти новую строку → нажать кнопку статуса → «Активно».
Активных индексов у одного региона может быть несколько (разные кварталы) — это штатное состояние, конфликта не создаёт: сметчик выбирает нужный квартал сам. Деактивация делает индекс невидимым для новых смет, но не влияет на уже созданные — в смете регион и квартал фиксируются при создании и не меняются.
6.8. Перезапись данных: что важно знать
- Импорт удаляет данные строго по паре «регион + квартал» и загружает их заново. Другие регионы и другие кварталы того же региона не затрагиваются.
- Удаление выполняется до скачивания файла. Отсюда
два следствия:
- ошибка в выборе квартала уничтожает уже загруженные данные раньше,
чем система обратится к ФГИС ЦС — поэтому сверка
periodIdна шаге 4 (6.5) обязательна; - обрыв связи оставляет пустой заголовок (0 ресурсов, «Не активно») — это нормальное состояние отката.
- ошибка в выборе квартала уничтожает уже загруженные данные раньше,
чем система обратится к ФГИС ЦС — поэтому сверка
- Повторный запуск безопасен и идемпотентен: он снова чистит пару и грузит заново. Перед повтором дождитесь завершения предыдущего задания.
- Не перезапускайте сервис администрирования во время импорта — прогресс задания хранится в памяти и будет потерян (данные останутся в том состоянии, в котором прервались).
6.9. Как добавить или восстановить квартал (типовая процедура)
- «Импорт ИЦ» → Страна → Регион → Квартал; сверить
priceZoneId/countrySubjectId/periodIdи URL. - «Скачать и импортировать» → дождаться «Завершено»; убедиться, что «Прочитано» и «Записано» совпадают и это десятки–сотни тысяч строк (несколько сотен строк — признак неполной загрузки, импорт повторить).
- «Индексы цен» → новая строка → переключить статус на «Активно».
- Клик по строке → в панели ресурсов найти пару кодов и проверить, что цены и индексы непустые.
- Проверить пользовательскую сторону: у сметчика в окне «Новая смета» для этого региона появился нужный квартал и смета на нём создаётся.
Ориентир по объёму: Московская область, 4 квартал 2025 г. — 165 716 строк, загрузка заняла около 36 секунд.
6.10. Состав сплит-формы зависит от квартала
Число строк в формах разных кварталов одного региона может заметно отличаться (например, 165 716 за 4 квартал 2025 г. против 281 327 за 2 квартал 2026 г. по Московской области — расхождение даёт в основном блок перевозок). Это свойство самих файлов ФГИС ЦС, а не признак неполного импорта. Критерий корректности загрузки — совпадение счётчиков «Прочитано» и «Записано» и статус «Завершено».
6.11. Состав файла ФГИС ЦС
Разбирается первый лист книги, данные читаются с 17-й строки (выше — шапка формы). Строки без кода ресурса пропускаются. Колонки:
| Колонка | Содержимое |
|---|---|
| A | код ресурса |
| B | наименование |
| C | единица измерения |
| D | отпускная цена на 01.01.2022 |
| E | сметная цена на 01.01.2022 |
| F | номер группы |
| G | наименование группы |
| H | сметная цена текущая |
| I | индекс |
Числа принимаются и в формате 1 167,70, и в формате
1,167.70; нечисловое значение сохраняется как пустое.
6.12. Связь с ФСНБ
Каждый ресурс в индексе цен ссылается на запись из ФСНБ по коду. Если в активной ФСНБ нет такого кода, цена применяется через справочную текущую цену (без индекса). Это нормальное поведение для не-ФСНБ ресурсов (например, перевозок «47-1», «47-2»).
7. Робот загрузки ИЦ
«Робот ИЦ» — автоматическая загрузка индексов цен по всем регионам России из ФГИС ЦС. Запускается ночью или вручную.
7.1. Открытие
Меню → «Робот ИЦ».
7.2. Таблица задач
Каждая задача — пара (регион + квартал), которая должна быть загружена.
| Колонка | Что показано |
|---|---|
| ID | внутренний идентификатор |
| Регион | название |
| Квартал | например «4 квартал 2025 г.» |
| Статус | «Новая» / «В работе» / «Ошибка» / «Успех» |
| Сообщение | для статуса «Ошибка» — текст ошибки |
| Создано | |
| Обновлено |
Действия:
| Кнопка | Назначение |
|---|---|
| Запустить | в строке — запустить эту задачу; если статус «Ошибка», перезапуск |
| Удалить | очистить задачу |
7.3. Создание задач для квартала
Кнопка «+ Создать задачи для квартала» открывает форму:
| Поле | Описание |
|---|---|
| Квартал | выбор из существующих |
После выбора создаются по одной задаче для каждого региона (со статусом «Новая»). Это пакетная операция, после которой можно запустить робота.
Внимание: операция массовая и перезаписывающая. Задачи заводятся на все регионы (их около 170), и робот отработает их сам в ближайшее ночное окно. Загрузка каждой задачи — это тот же импорт, что и в главе 6: он сначала удаляет уже загруженные индексы пары «регион + квартал» и только потом обращается к ФГИС ЦС. Если по какому-то региону файл не скачается, ранее загруженные индексы этого квартала окажутся потеряны, а на их месте останется пустой заголовок.
Поэтому: заводите задачи на квартал осознанно, когда действительно нужно обновить всю страну. Чтобы догрузить один регион или один квартал, пользуйтесь экраном «Импорт ИЦ» (см. 6.9) — он затрагивает ровно одну пару.
7.4. Расписание
Робот настроен на автоматический запуск:
- Окно работы — ночь, с 02:00 до 05:00 по часовому поясу сервера (обычно московское время); внутри окна робот просыпается каждые 10 минут.
- Алгоритм (за одно срабатывание — одна задача):
- Берёт одну задачу со статусом «Новая» или «Ошибка» (по очереди создания).
- Меняет статус на «В работе».
- Запускает загрузку и разбор файла из ФГИС ЦС.
- После успеха — «Успех». После ошибки — «Ошибка» с сохранением сообщения.
- Следующее срабатывание берёт следующую задачу — и так, пока в очереди есть «Новые» и «Ошибки» либо пока окно не закроется.
Если задач со статусом «Новая» или «Ошибка» нет, робот ночью ничего не делает и загруженные индексы не трогает.
Загруженные роботом индексы остаются «Не активными». Робот, как и ручной импорт, не активирует записи — после его работы зайдите в «Индексы цен» и переключите статус нужных строк на «Активно» (см. 6.7), иначе сметчики новый квартал не увидят.
7.5. Обновление статусов
При открытии страницы статусы задач обновляются автоматически — изменения отображаются в таблице без перезагрузки.
7.6. Журнал
Каждое действие робота записывается в журнал сервера. Формат:
[Робот] Взята задача id=42, регион=Московская область, квартал=4кв 2025
[Робот] Загрузка из ФГИС ЦС…
[Робот] Задача id=42, успех, импортировано 1234 ресурса
При ошибке — стек ошибки с пометкой «[Робот] ОШИБКА».
7.7. Известные ошибки
| Сообщение | Причина | Решение |
|---|---|---|
| «Тайм-аут соединения с ФГИС ЦС» | сайт ФГИС ЦС недоступен | повторить через час |
| «Файл не найден» | публикация для региона+квартала ещё не выпущена | ждать релиза квартала |
| «Конфликт ссылок» | удалена запись индекса во время загрузки | проверить целостность данных |
| «Не задан идентификатор региона в ФГИС ЦС» | у региона не заполнен внутренний идентификатор ФГИС ЦС | заполнить через справочник «Регионы» (см. главу 8) |
7.8. Ручной запуск
Кнопка «Запустить все задачи» вверху страницы — последовательно проходит по всем задачам со статусом «Новая» и «Ошибка». Используется для ручного восстановления после массовой ошибки.
7.9. Особенности на рабочем контуре
На рабочем контуре робот может работать несколько часов (если квартал свежий и нужно загрузить ~85 регионов). Это нормально. Систему он не перегружает — задачи выполняются последовательно по одной.
7.10. Ночные роботы обнаружения (новое в 2.6.2)
Помимо робота загрузки индексов, в системе работают роботы обнаружения — они автоматически следят за появлением новых данных и сообщают администратору. Работают в ночном окне 02:00–05:00.
Автообнаружение нового квартала индексов
Робот периодически проверяет ФГИС ЦС на публикацию индексов нового квартала.
- При обнаружении нового квартала он заводит его автоматически, после чего можно запускать загрузку индексов (см. 7.3).
- Это полная автоматизация: администратору не нужно вручную отслеживать выход новых кварталов.
Детект новой редакции ФСНБ
Робот следит за реестром нормативной базы (ФРСН) на появление новой редакции ФСНБ. Запуск — ежедневно в 03:00; вручную — кнопкой «Проверить сейчас» на экране «Загрузка ФСНБ».
Как робот определяет новейшую редакцию (уточнено в
2.7.0). Реестр ФРСН не отсортирован — запись более нового
приказа может лежать раньше более старого. Поэтому робот выбирает
новейшую редакцию по дате приказа (при равных датах —
по более поздней записи реестра), а не по порядку записей. Затем сверяет
её с уже загруженными редакциями по трём признакам: номер
приказа (нормализованный — 696пр и
696/пр считаются одним приказом), дата
приказа и номер дополнения
(доп. №18 и доп. №18.1 — разные редакции, даже
если приказ один и тот же).
Что администратор видит в журнале:
| Статус | Когда | Что делать |
|---|---|---|
| FOUND_NEW | новейшая по дате редакция ещё не загружена | скачать ZIP редакции с ФГИС ЦС вручную и импортировать (см. главу 4) |
| NO_NEW | новейшая по дате редакция уже загружена | ничего |
| ERROR | реестр ФРСН недоступен или ответ не разобран | повторить проверку позже |
Строка FOUND_NEW называет редакцию однозначно —
номер приказа, дату приказа и номер дополнения,
например: «Новая редакция ФСНБ: доп. №18.1, приказ 435/пр от
09.07.2026».
- Если скачивание заблокировано проверкой (captcha), робот всё равно фиксирует факт появления редакции и сообщает о нём — импорт выполняется вручную (см. главу 4).
- Записи реестра, у которых дату приказа разобрать не удалось (старые записи без приказа в названии), в выборе не участвуют, но не теряются молча — их количество указывается в сообщении журнала.
Ограничение. Сверка «запись реестра ↔︎ загруженная
редакция» выполняется по признакам из названия (приказ + дата +
дополнение), прямой ссылки на запись реестра в базе пока нет. Если
название загруженной редакции заполнено вручную и сильно отличается от
реестрового, возможен повторный FOUND_NEW на уже
загруженную редакцию — заполняйте название при импорте в формате
реестра.
Журнал обнаружений
Все срабатывания роботов обнаружения записываются в журнал (robot_discovery_log) — что и когда было найдено. Журнал помогает убедиться, что система вовремя замечает новые кварталы и редакции.
8. Справочники
В админке поддерживаются несколько справочников, влияющих на расчёты и интерфейс пользовательского приложения.
8.1. Кварталы
Справочник кварталов: год, номер (1–4), название, дополнительные поля.
Колонки таблицы
| Колонка | Описание |
|---|---|
| ID | внутренний |
| Год | например 2025 |
| Номер | 1 / 2 / 3 / 4 |
| Название | например «4 квартал 2025 г.» |
| Письмо Минстроя — название | нормативное основание |
| Письмо Минстроя — номер | |
| Письмо Минстроя — дата | |
| Код ФСНБ | код для ФГИС ЦС |
Действия
| Кнопка | Назначение |
|---|---|
| + Создать | окно с формой |
| Редактировать | в строке — окно |
| Удалить | если на квартал не ссылаются индексы — удаляет; иначе показывает ошибку |
Поля формы (создание/редактирование)
- Год / Номер / Название (генерируется автоматически из года и номера, можно переопределить).
- Письмо Минстроя: название (полное), номер, дата (для отчёта «02 ФСНБ»).
- Код ФСНБ.
8.2. Страны
Простой справочник: ID, код (ISO), название.
| Действие | Описание |
|---|---|
| + Создать | окно |
| Редактировать | окно |
| Удалить | если нет регионов — удаляет |
8.3. Регионы
Список регионов России (и других стран при расширении).
| Колонка | Описание |
|---|---|
| ID | |
| Страна | связь со справочником стран |
| Код | например «RU-MOW» |
| Название | «Москва» |
| Идентификатор ФГИС ЦС | для робота загрузки индексов цен |
| Код ФСНБ | для импорта индексов |
В версии 2.0.0 справочник регионов России заполнен (с учётом многозонных — берётся первая зона).
Особенности
- Идентификатор ФГИС ЦС обязателен для работы робота (см. главу 7).
- Многозонные регионы (Якутия, Красноярский край, Иркутская область, Дальний Восток) — добавлены отдельные строки для каждой зоны.
- Удаление региона невозможно, если есть индексы цен; нужно сначала удалить их.
8.4. Единицы измерения
Конвертация единиц для подмены выбираемых материалов (см. руководство пользователя, главу 10).
| Колонка | Описание |
|---|---|
| Из | например «кг» |
| В | например «т» |
| Множитель | 0,001 (для кг → т) |
| Категория | масса / длина / площадь / объём / прочее |
Создание / редактирование / удаление через окна.
Используется системой при подмене абстрактного ресурса конкретным с другой единицей измерения.
Это не «удобство», а условие подбора. С версии 2.7.2 количество выбираемого материала хранится в единицах абстрактного ресурса, а в смету идёт умноженным на множитель из этого справочника. Нет пары единиц — количество вычислить нечем, поэтому материал не подбирается автоматически и не выбирается вручную (кнопка «Применить» у пользователя заблокирована), а у ресурсов «количество определяется проектом» позиция считается нулевой суммой с пометкой «⚠ ед.изм. не переводится». Полнота этого справочника — администраторская задача, и она влияет на деньги в смете.
Особенности
- Множитель применяется к количеству независимо от источника — и к норме расхода из ФСНБ, и к количеству, заданному пользователем (с 2.7.2). До 2.7.2 два источника жили по разным правилам, из-за чего на паре т/кг смета расходилась в 1000 раз (дефект D-24); формулировка «множитель только к норме» из 2.7.1 отменена.
- Пользователь по-прежнему вводит количество в единицах выбранного материала — приведение к единицам абстрактного ресурса система делает при сохранении. У ресурсов с признаком «количество определяется проектом» поля ввода нет вовсе: количество берётся из ВОР (руководство пользователя, 10.8).
- Смена материала на материал в других единицах внутри окна выбора: множитель приводит уже введённое количество к новой единице, чтобы физический объём не изменился (пользователю это видно как «⇄ пересчитано из 20 кг»).
- Достаточно одной строки на пару: обратное направление система считает как 1 / множитель.
- Нет пары — нет подбора. Так разбираются три обращения:
| Обращение пользователя | Что смотреть |
|---|---|
| «в окне выбора не подставляется количество и не нажимается „Применить“» | найдите единицу абстрактного ресурса и единицу материала, добавьте пару — поведение восстановится без перезапуска |
| «материал не подобрался сам, стоит „⚠ не подобран“» | автоподбор берёт кандидата с совпадающей единицей, иначе — с переводимой; если ни того, ни другого нет, он намеренно не подставляет ничего |
| «позиция в смете стоит нулевой суммой, пометка „⚠ ед.изм. не переводится“» | ресурс «из проекта», пары единиц нет; после добавления пары сумма появится при ближайшем пересчёте сметы |
- Пару, которой не существует физически (например «м3 → шт» — штуки из кубометров без объёма изделия не выводятся), в справочник добавлять нечего: здесь верное действие — подобрать материал в единице абстрактного ресурса.
8.5. Характеристики
Меню → «Характеристики» (раздел «Алгоритмы»).
Словарь характеристик объекта, сметы, раздела и работы (см. руководство пользователя, главу 11).
| Колонка | Описание |
|---|---|
| Код | например «altitude_m» |
| Название | «Высота над уровнем моря, м» |
| Тип | Логический / Целое / Дробное / Список |
| Категория | для группировки в форме |
| Описание | подсказка в интерфейсе |
| По умолчанию | значение по умолчанию |
| Уровни | на каких уровнях может задаваться (объект, смета, раздел, работа) |
| Активна | флаг |
Для типа «Список» — отдельный справочник пар «код → название».
8.6. Обоснования коэффициентов
Меню → «Обоснования коэф.» (раздел «Алгоритмы»).
Справочник обоснований применения поправочных коэффициентов (см. руководство пользователя, главу 8). Используется в калькуляторе при выборе обоснования.
Колонки таблицы
| Колонка | Описание |
|---|---|
| Код | например «421/пр_2020_п.58_пп.б» |
| Нормативный документ | приказ Минстроя (421/пр_2020, 571/пр_2022, 812/пр_2020, 774/пр_2020) |
| Название | заголовок |
| Тип | Технологический / ВСПМ / Перевозка / Снижение производительности / Повышенный ОТ / Коэф. НР / Коэф. СП / Прочее |
| Сборники | к каким типам работ применим («ГЭСН, ГЭСНм» или «*» — везде) |
| Активен | флаг |
Форма редактирования
Полная форма с вкладками:
- Основное: код, название, описание, нормативный документ, тип, сборники, активность, типы объектов, ссылка на раздел в PDF.
- Значения: какие элементы (ОТ / ЭМ / ОТм / МАТ / НР / СП) и как (множитель × N / по расчёту / по диапазону / процент от другого элемента) применяются.
- Режим объединения: как несколько применённых коэффициентов взаимодействуют (умножение / максимум / альтернатива).
- Альтернативная группа: код группы — внутри одной группы можно выбрать только один.
- Исключения: какие коэффициенты отменяет.
- Связи с характеристиками: какие характеристики делают этот коэффициент применимым.
Связь с характеристиками
В форме обоснования можно задать связи с характеристиками: «применимо, если тип объекта = ремонт» или «применимо, если высота над уровнем моря > 1500». При выборе обоснования в калькуляторе значение из диапазона может предвыбираться.
В версии 2.2.21 эта функциональность присутствует в схеме данных, но автозаполнение в интерфейсе ещё не активно.
8.7. Резервная копия перед массовым редактированием
Перед массовым обновлением справочников (особенно обоснований) рекомендуется бэкап базы данных. Изменения в справочнике обоснований сразу влияют на все будущие применения коэффициентов в калькуляторе.
9. Технологические группы
«Технологическая группа» — справочник, объединяющий конкретные ресурсы для замены абстрактных в работах. Например, ТГ «28.18.023» = «Плитки керамогранитные» содержит варианты разных производителей и размеров.
В админке доступен только просмотр (чтобы отлаживать выбор материалов в пользовательском приложении).
9.1. Доступ к технологическим группам
Отдельного пункта меню нет — список технологических групп доступен:
- из карточки ФСНБ (см. главу 3.2) — кнопка «Технологические группы»;
- из карточки работы (см. главу 3.6) — раздел «Технологические группы» внизу страницы — клик по конкретной группе открывает её содержимое.
| Колонка | Описание |
|---|---|
| ID | внутренний идентификатор |
| Код ТГ | например «28.18.023» |
| Название | «Плитки керамогранитные» |
| ID ФСНБ | к какой версии ФСНБ привязана |
| Кол-во ресурсов | в группе |
Поиск по коду или названию.
9.2. Содержимое группы
Клик по строке ТГ — список конкретных ресурсов:
| Колонка | Описание |
|---|---|
| № | порядковый |
| Код ресурса | например «06.2.05.03-0003» |
| Название | полное наименование |
| Ед. изм. | |
| Базисная цена | |
| Тек. цена | если есть в активном индексе |
| Индекс |
Используется для проверки: какие конкретные коды доступны для замены абстрактного ресурса в окне выбора материала пользовательского приложения.
9.3. Откуда берутся технологические группы
Загружаются вместе с ФСНБ при импорте ZIP (см. главу 4). В файлах ФСНБ есть отдельный лист с описанием технологических групп и их составом.
В админке группы только для просмотра — редактирование не предусмотрено (структура задаётся Минстроем).
9.4. Связь с абстрактными ресурсами
Каждый абстрактный ресурс работы имеет привязку к технологической группе (одной или нескольким). Например, для абстрактного ресурса «Плиты керамогранитные» в работе ГЭСН 11-01-047-01:
технологические группы: 28.18.023
Система ищет все ресурсы для этой группы, выбирает первый подходящий (или предпочитает того, у кого есть индекс цены). Пользователь может переопределить через окно выбора материала.
9.5. Использование при отладке
Если в калькуляторе в выбираемых материалах выбран не тот материал (например, показывается «Дно колодца» вместо «Плитка керамогранитная») — проверьте:
- Связь абстрактного ресурса с правильной технологической группой.
- Содержимое группы в этом разделе — нужный ресурс есть в списке.
- Если ресурс есть, но не выбирается — система выбирает по «первой попавшейся» цене. Решение — пользователь явно выбирает в окне выбора материала (выбор сохраняется в конкретной смете).
9.6. Пустая технологическая группа (с версии 2.7.1)
В колонке «Кол-во ресурсов» встречаются группы с 0. Это штатное состояние справочника, а не сбой импорта: в активной редакции ФСНБ пустых групп около четверти (1 653 из 6 710). Разметка групп задаётся Минстроем, в админке не редактируется, донаполнение вручную не предусмотрено.
Раньше пустая группа приводила к тупику в калькуляторе: у абстрактного ресурса не было ни материала, ни кнопки подбора, а его стоимость выпадала из сметы. С версии 2.7.1 это закрыто на стороне пользовательского приложения:
- если группа пуста, калькулятор ищет материалы в группе
кода каталога ФСБЦ — коды вида
04.3.01.12-0001,-0002… для абстрактного кода04.3.01.12(такой канал закрывает ≈76 % «осиротевших» абстрактных кодов); - при добавлении новой работы подходящий материал (совпадает единица измерения, есть цена в текущих индексах, первый по коду) подставляется автоматически и помечается пользователю бейджем «авто»;
- в уже существующих сметах ничего не подставляется и суммы не меняются — пользователь подбирает материал сам кнопкой «🔍 Подобрать»;
- если и группа кода пуста, пользователю остаются поиск по каталогу и ручной ввод.
Обращение вида «материал не считается в смете». Порядок проверки: открыть группу абстрактного ресурса в этом разделе → если ресурсов 0, это ожидаемо, и пользователю нужно подобрать материал в окне выбора (руководство пользователя, глава 10); если ресурсы есть, но не выбираются — см. 9.5.
Аварийный рубильник. Автоподбор из группы кода
отключается переменной окружения SMETA_VM_AUTO_PICK=false
на пользовательском бэкенде (по умолчанию включён). Отключение не
возвращает старый дефект: кнопка подбора, окно выбора и ручной ввод
остаются, меняется только то, что материал не подставляется сам.
9.7. Известные особенности
- Один абстрактный ресурс может ссылаться на несколько технологических групп; система проверяет по очереди.
- Технологические группы привязаны к версии ФСНБ — при смене ФСНБ сметы тот же абстрактный ресурс может вести в другие группы.
- Один и тот же ресурс может входить в несколько групп (например, плитка одна и та же, но входит и в группу «Облицовка», и в группу «Полы»).
10. Шаблоны отчётов
«Шаблоны отчётов» — справочник доступных форматов экспорта сметы в Excel. Каждый шаблон имеет код (01, 02, …), название, описание и флаг активности.
10.1. Открытие
Меню → «Шаблоны отчётов».
10.2. Таблица
| Колонка | Описание |
|---|---|
| ID | внутренний идентификатор |
| Код | 01, 02, … — используется в адресе экспорта |
| Название | например «Смета. Стандарт» |
| Описание | расширенный текст |
| Активен | флаг — отображать ли в выпадающем списке экспорта в калькуляторе |
| Порядок сортировки | порядок в выпадающем списке |
10.3. Действия
| Кнопка | Назначение |
|---|---|
| Редактировать | окно — изменить название и описание |
| Активировать / Деактивировать | переключение активности |
Важно: добавление новых шаблонов через интерфейс не реализовано — каждый шаблон требует кода в системе. Текущие шаблоны:
- 01 — стандартный отчёт ЛСР
- 02 — отчёт по Приложению №3 Приказа 421/пр
10.4. Шаблоны в системе
01 — Смета. Стандарт
Полная локальная смета: разделы → работы → ресурсы (ЗТ / ЭМ / МАТ / ВМ) → ФОТ → НР / СП → итоги. Формулы Excel во всех итоговых ячейках. См. руководство пользователя, главу 12.
02 — Смета. ФСНБ. Ресурсы и индексы
Формат по Приложению №3 Приказа 421/пр. Расширенная шапка, детализация по видам затрат и видам работ. См. руководство пользователя, главу 12.
10.5. Связь с пользовательским приложением
В пользовательском приложении выпадающий список «↓ Экспорт» в шапке сметы показывает только активные шаблоны.
Деактивация шаблона немедленно скрывает его из выпадающего списка (после обновления страницы у пользователя).
10.6. Известный недочёт
В версии 2.2.21 фильтр активности не применяется на сервере — список шаблонов возвращает все шаблоны. На тестовом контуре временно неактивные шаблоны включены принудительно. После исправления деактивация в админке должна сразу скрывать шаблон. Это будет в одном из ближайших релизов.
10.7. Прямой запрос экспорта
Если в адресе пользовательского приложения указан код шаблона напрямую, система всё равно выдаст файл (для сценариев и тестов). Если код невалидный (например, «99») — ответ с ошибкой.
10.8. Будущие шаблоны
Планируются:
- 03 — Смета по форме №2 Приказа Минстроя (расширенный для энергетики).
- 04 — Сводный сметный расчёт (ССР).
- 05 — Локальная смета по форме госконтракта.
Каждый новый шаблон требует:
- Реализации логики в системе.
- Добавления записи в справочник «Шаблоны отчётов».
- Описания в этой главе.
11. НПА документы
«НПА» (нормативно-правовые акты) — справочник приказов Минстроя, методик, СП, МДС. Хранятся вместе с PDF-файлами.
11.1. Открытие
Меню → «НПА документы».
11.2. Таблица
| Колонка | Описание |
|---|---|
| ID | внутренний идентификатор |
| Тип | Приказ / Методика / СП / МДС / Прочее |
| Номер | например «421/пр» |
| Дата | |
| Название | заголовок |
| Файл | имя оригинального PDF |
| Размер | в КБ / МБ |
| Активен | флаг отображения в пользовательском приложении |
11.3. Действия
| Кнопка | Назначение |
|---|---|
| + Добавить | окно создания (см. 11.4) |
| Редактировать | окно редактирования (без замены файла) |
| Заменить файл | загрузка нового PDF |
| Скачать PDF | скачивание файла |
| Удалить | удалить запись и файл (с подтверждением) |
11.4. Создание / редактирование
| Поле | Описание |
|---|---|
| Тип | выпадающий список |
| Номер | например «421/пр» |
| Дата | календарь |
| Название | заголовок |
| Описание | расширенный текст (необязательно) |
| PDF файл | выбор файла (только при создании; для замены — отдельная кнопка) |
| Активен | флажок |
Кнопки: Отмена / Сохранить.
11.5. Привязка к объекту / смете
В будущих версиях (не реализовано в 2.2.21):
- Привязка НПА к конкретному объекту → отображение в шапке сметы пользователя.
- Привязка к ФСНБ → автоматическая ссылка из окна выбора обоснования коэффициента.
11.6. Хранение PDF
PDF хранится в базе данных. В версии 2.1.0 проведена миграция формата хранения, улучшившая производительность и упростившая создание резервных копий.
11.7. Размер
Стандартные приказы — 50–500 КБ. Большие (с приложениями и таблицами) — до 5 МБ. Лимит загрузки — 10 МБ.
11.8. Безопасность
- Загрузка только PDF.
- Имя файла очищается от опасных символов.
- Скачивание доступно для авторизованных пользователей системы.
11.9. Стандартные документы (рекомендуется загрузить)
| Документ | Использование |
|---|---|
| Приказ 421/пр от 04.08.2020 | методика применения сметных норм |
| Приказ 571/пр от 22.06.2022 | новая редакция методики |
| Приказ 696/пр от 12.11.2025 | расширенная редакция ФСНБ-2022 |
| Приказ 812/пр от 21.12.2020 | методика накладных расходов |
| Приказ 774/пр от 11.12.2020 | методика сметной прибыли |
| МДС 81-35.2004 | методика определения стоимости (старая) |
| СП 81-2.04.2020 | свод правил по сметному нормированию |
После загрузки они появляются в окне «Методика» в пользовательском приложении (см. руководство пользователя, главу 13).
12. Обращения пользователей
«Обращения» — таблица сообщений от пользователей: ошибок и пожеланий.
12.1. Открытие
Меню → «Обращения».
12.2. Таблица
| Колонка | Описание |
|---|---|
| № | автонумерация |
| Дата | когда отправлено |
| Тип | «Ошибка» (красный бейдж) / «Предложение» (синий) |
| Тема | краткое описание |
| Пользователь | логин и ФИО |
| для связи | |
| Телефон | если есть |
| Версия | системы на момент отправки (например «2.2.20») |
| Статус | «Новое» / «В работе» / «Закрыто» (планируется в будущих версиях) |
Действия в строке:
| Кнопка | Назначение |
|---|---|
| Открыть | окно с полным сообщением (см. 12.3) |
12.3. Окно просмотра
| Поле | Описание |
|---|---|
| Тема | заголовок |
| Сообщение | полный текст с переносами строк |
| Пользователь | логин, ФИО, email, телефон |
| Дата | |
| Версия системы | |
| ID объекта / сметы | если упомянут пользователем (для контекста) |
В версии 2.2.21 нет полей «Статус», «Ответ администратора», «История» — это запланировано.
12.4. Фильтры
| Фильтр | Что фильтрует |
|---|---|
| Тип | Ошибки / Предложения / Все |
| Дата от / до | |
| Поиск | подстрока в теме или сообщении |
12.5. Сортировка
По дате (по умолчанию — новые сверху). Клик по заголовку колонки переключает сортировку по этой колонке.
12.6. Уведомления администратору
При новом обращении:
- Email на адрес администратора.
- Telegram — сообщение в чат-канал.
12.7. Экспорт
Кнопка «Экспорт в CSV» — выгрузка списка обращений в CSV для отчётов.
12.8. Удаление
Удаление обращений не предусмотрено — все обращения хранятся в истории. Это сделано для аудита и анализа.
12.9. Что делать с обращением
После просмотра администратор должен:
- Если ошибка — воспроизвести, завести задачу в трекере, исправить и сообщить пользователю по email.
- Если предложение — оценить приоритет, добавить в бэклог, ответить пользователю с примерным сроком (если будет реализовано).
В будущих версиях планируется встроенное обсуждение обращения внутри приложения.
13. Пользователи
«Пользователи» — список зарегистрированных пользователей системы (только просмотр).
13.1. Открытие
Меню → «Пользователи».
13.2. Таблица
| Колонка | Описание |
|---|---|
| ID | уникальный идентификатор |
| Логин | |
| ФИО | имя и фамилия |
| Телефон | если есть |
| Дата регистрации | |
| Статус верификации | «Подтверждён» / «Не подтверждён» |
| Объектов | счётчик |
| Смет | счётчик |
| Последний вход | дата (если есть) |
13.3. Фильтры
| Фильтр | Что фильтрует |
|---|---|
| Поиск | подстрока в логине, ФИО или email |
| Верификация | только подтверждённые / не подтверждённые / все |
| Дата регистрации от / до |
13.4. Действия
Список работает в режиме просмотра. Доступно одно управляющее действие — признак «Эксперт» (см. 13.5).
Операции «Заблокировать», «Сбросить пароль», «Удалить пользователя» через интерфейс пока не реализованы и выполняются через прямые запросы к базе данных.
13.5. Признак «Эксперт»
В списке пользователей есть переключатель «Эксперт».
- Эксперту в пользовательском приложении становятся доступны дополнительные возможности по пополнению базы знаний подбора — кнопки «Сохранить в RAG» (см. главу 19).
- Признак включается и снимается администратором прямо в списке.
- Используется для привлечения опытных пользователей к разметке и улучшению качества подбора.
Запланировано в будущих версиях:
- блокировка пользователя;
- просмотр обращений конкретного пользователя;
- сброс пароля по запросу администратора (отправка временного кода на email).
13.6. Просмотр объектов и смет пользователя
Клик по строке пользователя в будущих версиях откроет страницу с его объектами и сметами. Сейчас это не реализовано.
13.7. Лимит выгрузки
Максимум 1000 пользователей за один запрос. Для больших систем (более 1000) запланирована постраничная навигация.
13.8. Регистрация
Регистрация пользователей контролируется флагом в настройках сервера. Если флаг выключен, новые пользователи не могут регистрироваться сами — только через прямые операции с базой данных.
13.9. Подтверждение email
Новый пользователь после регистрации получает 6-значный код на email и должен ввести его в форме входа в калькуляторе. До подтверждения — статус «Не подтверждён».
В админке статус виден в колонке «Верификация».
13.10. Аналитика
Базовая аналитика по таблице пользователей:
- общее число — счётчик в верхнем виджете;
- активные за месяц — пользователи с входом за последние 30 дней;
- распределение по объёму смет (для платных тарифов в будущем).
Расширенная аналитика пользователей пока не реализована.
14. Тестирование
«Тестирование» — запуск автоматических сценариев из админки. Доступно только на тестовом контуре (защита от случайного запуска на рабочем).
14.1. Открытие
Меню → «Тестирование».
14.2. Доступные сценарии
В версии 2.2.21 зарегистрированы:
| Сценарий | Описание | Шагов | Время |
|---|---|---|---|
| Сценарий №1: Полный цикл | регистрация → объект → смета → работы → проектные ресурсы → выбираемые материалы → экспорт → обратная связь → НПА | 10 | ~5 мин |
| Сценарий №2: Управление | вход → навигация → редактирование → представления → публикация → удаление → выход | 12 | ~3 мин |
| Сценарий №3: Мобильный | мобильный экран 375×812, адаптив верхней панели, прокрутка, ФОТ, окна | 12 | ~3 мин |
В версии 2.2.21 сценарии 1, 2, 3 устарели по интерфейсу — требуют адаптации после изменений в калькуляторе. Их нужно переписать или удалить.
«Золотой» сценарий — основной критерий регрессии — пока запускается только из командной строки, не из админки. Подключение в раздел «Тестирование» запланировано.
14.3. Кнопки на странице
| Кнопка | Назначение |
|---|---|
| Запустить сценарий №1 | отправляет на сервер запрос на запуск |
| Запустить №2 / №3 | аналогично |
| Обновить | перезагрузить список запусков |
14.4. Таблица запусков
| Колонка | Описание |
|---|---|
| ID запуска | |
| Сценарий | №1 / №2 / №3 |
| Дата старта | |
| Статус | «Выполняется» / «Успех» / «Ошибка» |
| Кол-во шагов | пройдено / всего |
| Длительность | сек / мин |
Действия: Открыть — детали запуска (ниже).
14.5. Детали запуска
Список шагов сценария:
| Колонка | Описание |
|---|---|
| № шага | |
| Название | например «Регистрация пользователя» |
| Статус | «Выполняется» / «Успех» / «Ошибка» |
| Длительность | |
| Сообщение | для ошибки — текст ошибки |
| Скриншот | ссылка на PNG (если упало) |
14.6. Защита от запуска на рабочем контуре
Раздел «Тестирование» доступен только на тестовом контуре. На рабочем контуре пункт меню скрыт, попытка обратиться к нему завершается отказом в доступе.
14.7. Покрытие тестами
| Уровень | Кол-во |
|---|---|
| Серверные модульные тесты пользователя | 128 |
| Серверные интеграционные тесты пользователя | 19 |
| Серверные тесты админки | 17 + 23 |
| Клиентские модульные тесты | 41 |
| Клиентские сценарные тесты | 58 / 61 (3 нестабильных) |
| «Золотой» сценарий 02 (десктоп + мобильный) | 2 (зелёные, копейка-в-копейку) |
14.8. Автоматизированная сборка
Сейчас (2.2.21) автоматического CI нет — тесты запускаются вручную перед релизом. В планах автоматический прогон на каждое изменение в релизных ветках.
15. Документация
«Документация» — страница со ссылками на руководства пользователя и администратора, а также Release Notes.
15.1. Открытие
Меню → «Документация».
15.2. Структура страницы
Заголовок
«Документация» + подзаголовок «Руководства, инструкции и Release Notes — Версия 2.2.21».
Карточки руководств
Две большие карточки:
| Карточка | Содержит ссылки |
|---|---|
| 📘 Руководство администратора | HTML / PDF / Markdown |
| 📗 Руководство пользователя | HTML / PDF / Markdown |
Каждая ссылка открывает соответствующий документ:
| Тип | Описание |
|---|---|
| HTML | многостраничный сайт |
| для скачивания и печати | |
| Markdown | исходники на GitHub |
Карточки Release Notes
Под руководствами — карточки релизов с обратным хронологическим порядком:
🚀 v2.2.21 1 мая 2026
<краткое описание>
[HTML] [Markdown]
🚀 v2.1.0 16 апреля 2026
<краткое описание>
[HTML] [Markdown]
🚀 v2.0.0 11 апреля 2026
...
При новом релизе администратор добавляет новую карточку в начало секции «Release Notes».
15.3. Что нужно сделать после релиза
- Обновить версию в шапке страницы документации.
- Добавить карточку нового релиза в начало секции «Release Notes».
- Пересобрать админку и развернуть.
- Положить собранную документацию (HTML и PDF) внутрь архива админки перед сборкой — она разворачивается на сервере вместе с приложением.
15.4. Генерация документации
Для каждого руководства существует скрипт сборки
(generate.sh):
- собирает HTML через MkDocs Material;
- собирает PDF через pandoc + xelatex.
Результат:
<руководство>/index.html— многостраничный сайт.<руководство>.pdf— единый PDF.
15.5. Версионирование документов
Каждая большая версия (2.0, 2.1, 2.2, …) — отдельная подпапка
docs/v2/, docs/v3/ и т. д.
Когда выходит новая мажорная версия:
- Скопировать папку текущей версии в новую (
docs/v2/→docs/v3/). - Обновить содержимое.
- На странице «Документация» переключить ссылки на новую версию.
- Старые ссылки остаются работающими (для пользователей старой версии).
15.6. Скриншоты
В каждой главе руководств есть папка img/ со скриншотами
интерфейса. Скриншоты создаются автоматически через сценарий, который
пробегает по интерфейсу и снимает нужные экраны.
В версии 2.2.21 скриншоты руководства пользователя и администратора актуализированы для новой версии интерфейса.
16. Чаты пользователей
Раздел «Чаты пользователей» позволяет администратору просматривать диалоги пользователей с чат-ассистентом — для разбора качества подбора, обращений и обучения.
16.1. Открытие
Меню → «Чаты пользователей».
16.2. Список диалогов
| Колонка | Что показано |
|---|---|
| Пользователь | владелец диалога |
| Объект / ВОР | закреплённые за чатом объект и ведомость работ |
| Сообщений | число реплик в диалоге |
| Обновлён | дата последней активности |
Список отфильтрован по владельцу: администратор видит диалоги пользователей в режиме просмотра.
16.3. Просмотр диалога
Клик по строке открывает переписку: сообщения пользователя и ответы ассистента в хронологическом порядке, включая показанные карточки вариантов расценок и подобранные позиции.
Восстановление контекста
Если объект или ведомость работ не были закреплены явно, панель показывает контекст, восстановленный из хода диалога (по действиям ассистента). Такие данные помечаются значком «~ из диалога», чтобы отличать их от явно закреплённых.
16.4. Чем полезен раздел
- Разобрать, почему ассистент подобрал ту или иную расценку.
- Связать обращение пользователя с конкретным диалогом.
- Найти примеры удачного и неудачного подбора для разметки и обучения (см. главы 17 и 19).
См. также: 17. Телеметрия подбора · [руководство пользователя, глава 16 «Чат-ассистент»]
17. Телеметрия подбора
Телеметрия подбора — это дашборд, который показывает, как ассистент подбирает расценки и материалы: сколько подборов, чем они завершились, какие были исходы. Раздел помогает следить за качеством работы ассистента на реальных диалогах.
17.1. Открытие
Меню → «Аналитика чата» (раздел «Система»). Дашборд телеметрии диалогов.
17.2. Что показывает дашборд
- Эпизоды подбора — каждый случай, когда ассистент подбирал расценку или материал.
- Исход эпизода — чем закончился подбор (см. 17.3).
- Тип подбора — расценка или материал (фильтр).
- Решения «учтено косвенно» (covered_by) — когда позиция уже покрыта другой расценкой; в названии используется пояснение причины.
17.3. Исход подбора
Когда пользователь выбирает один из предложенных вариантов (или отказывается), эпизоду присваивается метка исхода. Это даёт обратную связь: насколько точно ассистент предлагает позиции.
| Тип подбора | Что подбиралось |
|---|---|
| Расценка | работа из ФСНБ |
| Материал | неучтённый материал к работе |
Фильтр по типу подбора позволяет смотреть статистику отдельно по расценкам и по материалам.
17.4. Просмотр эпизода
Клик по эпизоду открывает детали: запрос, предложенные варианты, обоснование подбора (trace) и выбранный исход. Отсюда удобно перейти к исходному диалогу (см. главу 16).
17.5. Чем полезен раздел
- Видеть долю успешных подборов и проблемные места.
- Отбирать примеры для разметки и пополнения базы знаний (см. главы 19 и 20).
- Оценивать эффект изменений в правилах подбора по реальным данным.
См. также: 16. Чаты пользователей · 20. Оценка качества подбора
18. Модели ИИ и расходы
Раздел управляет настройками искусственного интеллекта, который стоит за чат-ассистентом: какие модели доступны, их параметры и сводный расход ресурсов.
18.1. Модели ИИ
Меню → «Модели ИИ».
- Список доступных моделей искусственного интеллекта, которые пользователь может выбрать в чате.
- Резервный список моделей (fallback) — на случай недоступности основной.
18.2. Настройки агента
Меню → «Настройки агента».
Параметры AI-агента задаются прямо из админки и применяются без перевыпуска приложения:
| Параметр | Назначение |
|---|---|
| Модель | какая модель используется по умолчанию |
| Итерации | сколько шагов рассуждения допускается на один подбор |
| Токены | лимит на объём обработки |
Здесь же доступна матрица качества моделей — сравнение, насколько разные модели справляются с подбором; помогает выбрать оптимальную по соотношению «качество / стоимость».
18.3. Расходы
Расход ресурсов ИИ виден в двух разделах меню:
| Пункт | Что показывает |
|---|---|
| Расходы | сводный расход ресурсов ИИ по работе ассистента |
| Расход API | детализация обращений к API моделей |
Используются для контроля затрат на подбор и диалоги.
См. также: 17. Телеметрия подбора · 20. Оценка качества подбора
19. Разметка ФСНБ (характеристики)
Разметка ФСНБ — это присвоение работам нормативной базы характеристик (осей и значений), по которым ассистент точнее подбирает расценки. Разметка ведётся деревом, без ручного ввода кодов.
19.1. Оси характеристик
Меню → «Оси хар-к (ФСНБ)» (раздел «Алгоритмы»).
- Ось — параметр работы (например, материал основания, толщина слоя, способ выполнения).
- У оси есть набор значений; значения могут быть выпадающим списком с расшифровкой уровней.
- Оси и значения — основа разметки: ими помечаются узлы дерева ФСНБ.
19.2. Дерево разметки
Меню → «Разметка ФСНБ».
Разметка идёт по дереву нормативной базы — навигацией, без ввода кодов вручную:
- Дерево строится от типа норматива и показывает реальные группы и работы ФСНБ (по последней редакции).
- Узлы загружаются по мере раскрытия (ленивое дерево); доступен поиск.
- Размечать можно на нескольких уровнях: сборник → раздел → группа → работа.
Наследование
Характеристики наследуются сверху вниз: значение, заданное на группе, применяется к работам внутри неё.
- На узле-источнике унаследованные значения видны как «свои».
- На дочерних узлах унаследованные характеристики отмечаются в чекбоксах и бейджем источника.
- Наследование строго top-down: узлы-агрегаторы передают значения вниз.
Фильтры дерева
Чипы фильтра помогают находить, что осталось разметить:
| Фильтр | Показывает |
|---|---|
| Не размеченные | узлы без характеристик |
| На проверку | узлы, требующие ревью |
19.3. Эксперт
Часть разметки и пополнения базы знаний доступна пользователям с признаком «Эксперт» (см. главу 13).
- Эксперту в пользовательском приложении видны дополнительные кнопки «Сохранить в RAG» — занести удачный подбор в базу знаний.
- Признак эксперта включается администратором в списке пользователей.
19.4. RAG-примеры (база знаний подбора)
Меню → «RAG-примеры».
- База примеров «запрос → правильная расценка», на которые опирается ассистент.
- Примеры пополняются экспертами и администратором; их можно просматривать и редактировать.
- Хорошие примеры повышают точность подбора на похожих запросах.
См. также: 20. Оценка качества подбора · 13. Пользователи
20. Оценка качества подбора
Раздел оценки показывает, насколько точно ассистент подбирает расценки, на наборе проверочных случаев (эталонов). Это инструмент контроля качества: видно, не ухудшился ли подбор после изменений.
Меню → «Eval» (раздел «Система»). Внутри — дашборд, кейсы, прогоны, покрытие характеристик и очередь ревью.
20.1. Проверочные случаи (кейсы)
- Кейс — пара «запрос → ожидаемая расценка ФСНБ» (эталон, подготовленный экспертом).
- Кейсы используются для регулярной проверки качества подбора.
- При создании кейса выполняется проверка корректности кода ФСНБ.
20.2. Результаты оценки
Результаты прогона показываются блоками:
- сводная статистика по прогону;
- покрытие (coverage) — с разбивкой по источникам и сборникам;
- детализация по отдельным кейсам.
Покрытие по источникам помогает понять, на каких типах запросов подбор сильнее, а где требуется доработка.
20.3. Очередь ревью характеристик
Внутри раздела «Eval» — подраздел «Очередь ревью».
- Характеристики, требующие проверки экспертом, собираются в очередь.
- Эксперт подтверждает или корректирует разметку (см. главу 19).
20.4. Связь с другими разделами
| Раздел | Роль в оценке |
|---|---|
| 17. Телеметрия подбора | реальные исходы подбора на диалогах пользователей |
| 19. Разметка ФСНБ | характеристики и RAG-примеры, на которые опирается подбор |
| 16. Чаты пользователей | источник примеров для новых кейсов |
См. также: 19. Разметка ФСНБ · 21. Профи.ру
21. Профи.ру
Раздел «Профи.ру» — это конвейер (пайплайн) сбора и обработки каталога услуг с профильной биржи. Он помогает связывать «бытовые» формулировки работ (как их называют заказчики) с расценками ФСНБ и пополнять базу подбора.
21.1. Открытие
Меню → «Профи.ру».
21.2. Дашборд пайплайна
Дашборд показывает этапы обработки каталога услуг:
- обнаружение и фильтрация услуг;
- разбор по схемам-визардам;
- формирование осей и значений;
- генерация и выгрузка результата.
Все визард-схемы видны на дашборде напрямую.
21.3. Дерево каталога услуг
Каталог услуг профильной биржи отображается деревом — по категориям и услугам. Это помогает увидеть, какие бытовые формулировки нужно сопоставить с нормативной базой.
21.4. Зачем это нужно
- Связать понятный язык заказчика («поклейка обоев», «стяжка пола») с расценками ФСНБ.
- Пополнять характеристики и примеры подбора реальными формулировками.
- Готовить почву для размещения ведомостей работ на профильных площадках.
См. также: 19. Разметка ФСНБ · 20. Оценка качества подбора
22. Продуктовая аналитика (Метрика)
Пользовательское приложение ui.smeta.net.ru подключено к
Яндекс.Метрике — тем же счётчиком
100037876, что и маркетинговый сайт
smeta.net.ru. Это позволяет измерять продуктовую
воронку: сколько посетителей после входа в приложение доходят
до чата, ВОР, генерации и готовой сметы, а также видеть сквозной путь
«сайт → приложение» в рамках одного визита.
Счётчик невидим: в интерфейсе приложения ничего нового не появляется, на его работу и скорость он не влияет. Раздел описывает не экран админки, а как читать отчёты в кабинете Метрики — этим пользуется владелец продукта.
22.1. Где смотреть
- Открыть кабинет Яндекс.Метрики, счётчик
100037876. - Сайт и приложение шлют данные в один счётчик,
поэтому трафик приложения надо отделять фильтром в
любом отчёте:
- Фильтр → Параметры визита →
app=calculator— этот параметр шлёт только приложение (сайт его не ставит); самый надёжный отбор; - либо Фильтр → Хост →
ui.smeta.net.ru(боевой сайт —smeta.net.ru).
- Фильтр → Параметры визита →
- Для боевой статистики добавить второе условие — Параметры
визита →
env=PROD(см. врезку ниже).
Готовых сегментов в кабинете пока нет. Сегменты «Сайт»/«Приложение» и составной отчёт «Воронка приложения» не заведены (проверено 07.08.2026) — их заведение вынесено в отдельную задачу бэклога №31. До её выполнения воронка читается по всему счётчику с фильтром из п. 2–3, а не выбором сегмента.
Тестовый контур попадает в тот же счётчик. Стенд
smeta-user-test.softlancer.ru и машины разработки
(localhost) шлют данные туда же и без фильтра
искажают отчёты: за 01.07–07.08.2026 из 260 визитов 187 —
стенд, 20 — localhost и только 53 — боевой сайт. Отличать контуры по
параметру визита env: PROD —
боевой, TEST — стенд, DEV — локальная
разработка. По той же причине ежедневная сводка метрик, приходящая
архитектору, пока считает по всему счётчику и завышает цифры — при
разборе расхождений опирайтесь на кабинет с фильтром
env = PROD.
22.2. Воронка приложения
Продуктовый путь измеряется пятью целями Метрики. Пока составной отчёт не создан (см. 22.4), воронка читается так: Отчёты → Стандартные отчёты → Конверсии, фильтр из 22.1, в списке — цели по шагам:
| Шаг воронки | Цель (идентификатор) | Когда срабатывает |
|---|---|---|
| Вход в приложение | (визиты с фильтром из 22.1) | пользователь открыл ui.smeta.net.ru |
| Первое сообщение в чате | first_chat_message |
пользователь отправил первое сообщение ассистенту |
| Открыт ВОР | vor_opened |
открыт экран ведомости объёмов работ |
| Генерация сметы запущена | smeta_generation_started |
ассистент начал наполнять смету по ВОР — при любой выбранной модели (см. 22.5) |
| Смета получена | smeta_received |
смета сформирована и открыта |
| Экспорт сметы | smeta_export |
пользователь выгрузил Excel / отчёт ФСНБ |
Отчёт отвечает на вопрос «где отваливаются пользователи»: например, много входов, но мало первых сообщений — узкое место на старте диалога.
22.3. Пользователь в отчётах
После входа приложение передаёт в Метрику UserID = email (или логин) пользователя. В отчётах «Посетители» и по параметрам визита можно:
- отфильтровать поведение конкретного пользователя;
- связать его сеансы между устройствами.
В Метрику передаётся только факт события, путь и идентификаторы — тело сообщений чата и построчное содержимое сметы не отправляются.
22.4. Что настроено в кабинете
Настраивается руками в кабинете счётчика (кодом не создаётся). Фактическое состояние на 07.08.2026:
| Что | Состояние | Комментарий |
|---|---|---|
| 5 целей типа «JavaScript-событие» | ✅ заведены 06.08.2026, все Активна |
идентификаторы из таблицы 22.2; условие — «идентификатор содержит
<имя цели>» |
| 2 сегмента по хосту («Сайт», «Приложение») | ❌ не заведены | планируются задачей бэклога №31; до этого — фильтр из 22.1 |
| Составной отчёт «Воронка приложения» | ❌ не создан | там же, №31; до этого — отчёт «Конверсии» с фильтром |
Цели и сегменты приходится создавать именно вручную:
OAuth-токен, которым служебные скрипты читают кабинет, даёт
только чтение — любая попытка создать цель или сегмент
через Management API отбивается 403 access_denied
(ограничение прав приложения на стороне Яндекса).
22.5. Ограничения
- Сегментов и составного отчёта в кабинете нет (см. 22.4) — воронку приходится собирать фильтром вручную при каждом просмотре; будет закрыто задачей №31.
- Один счётчик на все контуры — без фильтра
env = PRODв отчёт попадает трафик тестового стенда и машин разработки (см. 22.1). - Вебвизор (запись сессий) не включён — доступны только обезличенные события и стандартные отчёты.
- Блокировщики рекламы / недоступность
mc.yandex.ru— часть визитов не попадёт в статистику (ожидаемо); на работу приложения это не влияет. - Метрика не установлена на административной панели
admin.smeta.net.ru— этот раздел про пользовательское приложение. - Продуктовая аналитика Метрики не заменяет внутреннюю телеметрию подбора (глава 17): та измеряет качество работы ассистента, эта — поведение пользователей в продукте.
- Данные до версии 2.7.3 занижают шаг «Генерация сметы
запущена». До этой версии цель
smeta_generation_startedзасчитывалась только при работе на моделях Anthropic (Claude); если в главе 18 «Модели ИИ» была выбрана другая модель (например, Gemini), шаг не срабатывал даже при фактически созданной смете. С 2.7.3 цель уходит при любой модели. Провал именно на этом шаге в старых периодах читать как дефект измерения, а не как поведение пользователей; сравнивать воронку по периодам — только начиная с выката 2.7.3.
См. также: 17. Телеметрия подбора · 16. Чаты пользователей