История обновлений

Следите за развитием UNF to TG бота. Здесь публикуются все значимые обновления и новые функции.


Ноябрь 2026

v3.16.0 — Исключённые контрагенты в продажах

2 ноября 2026

🆕 Новое:

  • Исключённые контрагенты. На экране «Продажи и клиенты» администратор команды может выбрать контрагентов (не из интеркампани), обороты которых не нужны: физических лиц, корректировки реализации и т. п. Поиск по названию или ИНН. Их выручка и план не входят в таблицу и итоги «Продаж и клиентов» (месяц и накопительный итог) и в реализацию «Среза собственника»; под таблицей и в срезе показывается, кто исключён и на какую сумму. Долги (ДЗ/КЗ) не меняются. Исключённые контрагенты также не попадают в «Отчёт по продажам» (в том числе динамику по дням и неделям), сводную по продажам с расшифровкой и продажи в «Менеджерах». Заказы, оплаты и долги в этих отчётах не меняются. Исключается контрагент целиком, по всем документам. Список общий для команды и сохраняется.

v3.15.1 — Точная дебиторка в «Анализе дебиторки» и по менеджерам

2 ноября 2026

🐛 Исправления:

  • «Анализ дебиторки», дебиторка в «Менеджерах» и карточка контрагента показывали долг в несколько раз выше реального (у Кемтек Волга 575 млн вместо 73,8 млн). Складывались все положительные строки регистра расчётов, включая авансы и накладные, которые уже оплачены (они хранятся парой строк +X/−X). Теперь считаются только долги, строки одного документа сальдируются, расчёты между организациями клиента не входят. Цифра совпадает с «Задолженностью» отчёта УНФ «Расчёты с покупателями» и со «Срезом собственника».
  • Кэш дебиторки по менеджерам теперь учитывает выбранную организацию: раньше при смене организации в течение 5 минут мог показаться чужой результат.

v3.15.0 — Организация в отчётах по продажам

2 ноября 2026

🆕 Новое:

  • Выбор организации в шапке теперь действует и на «Отчёт по продажам», «Сводную по продажам» (в том числе расшифровку ячеек), «Менеджеров», «Анализ заказов» и «Анализ дебиторки». При смене организации данные экрана перезагружаются за выбранный период.
  • Организация из шапки действует на «Деньги» (остатки и движения) и на три экрана «Прибыли» (доходы и расходы, динамика расходов, рентабельность), включая расшифровку проводок. «Умный анализ» и «Проверка» на экране «Деньги» тоже считаются по выбранной организации. Собственный список «Организация» в фильтрах «Прибыли» убран: организация выбирается один раз в шапке.

v3.14.0 — Организация в шапке и точная дебиторка в срезе

2 ноября 2026

🆕 Новое:

  • Выбор организации в шапке сайта. Рядом с выбором базы появился список «Организация»: «Все организации» (свод) или одна организация базы. Выбор запоминается в браузере и действует на «Срез собственника» и «Продажи и клиенты (план/факт)»: реализация, дебиторская и кредиторская задолженность, запасы, деньги, динамика, факт, план и вычитаемые статьи считаются по выбранной организации. Если организация в базе одна, список не показывается. Остальные отчёты будут подключены следующими обновлениями.

💡 Улучшения:

  • Списки выбора базы, команды и организации в шапке теперь в едином оформлении (вместо системных выпадающих списков). Отбор складов запоминается отдельно для каждой организации.

🐛 Исправления:

  • «Срез собственника»: дебиторская и просроченная задолженность больше не включают оплаченные накладные. Раньше в долг попадали только положительные строки регистра расчётов, а парные отрицательные строки (оплата той же накладной) отбрасывались, и ДЗ получалась завышенной в разы. Теперь строки одного документа сальдируются, и ДЗ совпадает с отчётом УНФ «Расчёты с покупателями» (графа «Задолженность»).

v3.13.1 — Запоминание складов и понятный выбор периода

2 ноября 2026

💡 Улучшения:

  • «Срез собственника»: выбор складов запоминается. После обновления страницы или нового захода отбор складов в карточке «Запасы» остаётся прежним (хранится в браузере отдельно для каждой базы). Склады, которых больше нет в остатках, из отбора убираются.

🐛 Исправления:

  • Отчёты с выбором периода на бесплатном тарифе: если выбрать период длиннее одного дня, окно теперь сообщает, что доступны только «Сегодня» и «Вчера», со ссылкой на тарифы. Раньше отчёт молча строился на сегодняшнюю дату.

Октябрь 2026

v3.13.0 — Свои организации и склады в «Срезе собственника»

29 октября 2026

🆕 Новое:

  • «Продажи и клиенты»: настройка статей, вычитаемых из факта прибыли. Кнопка «Статьи в прибыли» открывает список статей управленческого плана счетов 1С. Расходы по отмеченным статьям (например, доставка до заказчика, затраты на оформление) вычитаются из фактической прибыли и относятся на клиента через заказ покупателя; без заказа они попадают в строку «клиент не определён». Пока ничего не выбрано, расчёт прибыли прежний.

💡 Улучшения:

  • Реализация за месяц и дебиторка не включают продажи собственным организациям (контрагенты с ИНН организации или «Контрагент интеркампани»), как уже сделано в «Продажах и клиентах». Расчёты между организациями показываются отдельной строкой.
  • Фильтр складов в запасах: если складов больше одного, под карточкой «Запасы» появляется список с остатками; сумма и «запасы без движения» считаются по выбранным складам.

v3.12.3 — Быстрая смена месяца в «Срезе собственника» и «Продажах и клиентах»

21 октября 2026

💡 Улучшения:

  • Закрытые месяцы кэшируются на сервере на час, поэтому смена месяца не перечитывает из 1С по 12 месяцев продаж заново (на крупной базе было около 10 с). Кнопка «Обновить» читает всё заново, текущий месяц не кэшируется.
  • При смене месяца предыдущий запрос отменяется, а не доедает в фоне. Если выбрать другой месяц, пока грузится прошлый, загрузится только последний.
  • Понятное состояние загрузки: вместо цифр старого месяца показывается «Загружаем сентябрь 2026…», старые данные и пояснения не висят.

v3.12.2 — «Срез собственника» и «Продажи и клиенты»: выбор месяца и большие базы

21 октября 2026

💡 Улучшения:

  • Свой выпадающий список месяцев вместо системного: подсветка выбранного, управление с клавиатуры (стрелки, Enter, Esc), закрытие по клику вне списка.
  • Большие базы: в «Продажах и клиентах» названия клиентов читаются одним запросом, в таблице показаны 50 крупнейших клиентов, остальные свёрнуты в строку «Ещё N клиентов» (итоги считаются по всем). Предупреждение «клиентов слишком много» убрано.
  • Ошибки в данных УНФ: если в продажах есть строки с отрицательной себестоимостью при положительной выручке, над карточками появляется пояснение с числом строк и суммой — иначе прибыль выглядела как «3 000 011 млн ₽» без объяснения.
  • Пометка об отрицательной себестоимости теперь покрывает и накопительный итог, и показывает прибыль без ошибочных строк. Крупные суммы показываются в млрд ₽.
  • План читается из регистра «Планы продаж по покупателям» (как в «Движениях документа» УНФ), а если такого регистра в базе нет — из документов «План продаж».
  • В меню «Продажи» добавлен пункт «Продажи и клиенты (план/факт)».

v3.12.1 — AI-помощник: повтор при лимите провайдера

20 октября 2026

🐛 Исправления:

  • Если провайдер LLM временно отвечает «слишком много запросов» (429), помощник теперь повторяет запрос через 1 и 3 секунды и только потом сообщает об ошибке. Чаще всего пользователь ответа дождётся и не увидит ошибки.
  • Тесты кабинета больше не ходят в настоящий LLM-провайдер (раньше с ключом из локального .env они тратили лимит и слали письма об ошибках).

v3.12.0 — «Продажи и клиенты»: план и факт по клиентам

20 октября 2026

🆕 Новое:

  • Вкладка «Продажи и клиенты» в кабинете рядом со «Срезом собственника»: план и факт выручки и прибыли за выбранный месяц, накопительный итог с начала года по завершённым месяцам, полосы выполнения плана и таблица по клиентам с итогом.
  • План берётся из УНФ: проведённый документ «План продаж» со сценарием для покупателей (выручка и плановая прибыль по клиентам и месяцам). Если версий несколько, действует самый поздний документ.
  • Факт — выручка без НДС из регистра «Продажи», прибыль — выручка минус себестоимость без НДС. Для текущего месяца прибыль помечена «предварительно».
  • В таблице отдельно помечены клиенты «вне плана», клиенты с планом и нулевым фактом и возвраты. Продажи собственным организациям (определяются по ИНН) в итоги не входят и показаны отдельной строкой.

v3.11.0 — «Срез собственника»: просроченная ДЗ и запасы без движения

20 октября 2026

🆕 Новое:

  • Просроченная дебиторская задолженность. Считается как в штатном отчёте УНФ по срокам долга: возраст долга от даты документа минус срок оплаты из договора покупателя. В подсказке карточки — разбивка по интервалам просрочки 1–30, 31–60, 61–90 и 90+ дней. Если в договоре срок оплаты не заполнен, просрочки по нему нет, а сумма таких долгов показывается отдельно.
  • Блок «Требует внимания»: просрочка более 60 дней (сумма и число контрагентов) и запасы без движения более 90 дней.
  • Запасы без движения. Под карточкой «Запасы» показана доля позиций, по которым за 90 дней не было ни одного движения.

💡 Улучшения:

  • Если не удалось посчитать просрочку или запасы без движения, основные показатели всё равно показываются, а такой срез не кэшируется.

v3.10.0 — «Срез собственника» вместо главной страницы кабинета

20 октября 2026

🆕 Новое:

  • Главная страница кабинета — «Срез собственника». Реализация за месяц без НДС (с дельтой к прошлому году), дебиторская и кредиторская задолженность, запасы, деньги на счетах и в кассе, чистый оборотный капитал и график реализации за 12 месяцев год к году. Можно выбрать любой из последних 12 месяцев, данные считаются по кнопке «Обновить».
  • Расчёты между организациями группы (документ «Передача товаров между организациями») не входят в ДЗ и КЗ и показываются отдельной строкой, иначе дебиторка и кредиторка у групп компаний завышались в разы.
  • Деньги делятся по виду счёта: расчётные счета и кассы в основном показателе, депозитные, ссудные и иные — отдельной строкой; недействительные счета не учитываются.
  • Если база 1С недоступна, на странице показывается понятное сообщение и кнопка с инструкцией по публикации.

💡 Улучшения:

  • Показатели берутся из 1С:УНФ как есть, по тем же определениям, что в штатных отчётах («Состояние компании», отчёты по срокам долга).
  • Блоки прежней главной (список отчётов, роль, подключение) убраны: отчёты доступны в меню, подключение — в настройках; плашка «Подключить Telegram-бота» закрывается крестиком.

v3.9.4 — понятная ошибка, когда база 1С недоступна

20 октября 2026

🐛 Исправления:

  • В денежных отчётах больше нет «All connection attempts failed». Если бот не может достучаться до базы 1С, он пишет «База 1С недоступна», советует обратиться к администратору 1С, подсказывает, как проверить OData в браузере и командой /checkN, и даёт ссылку на инструкцию. Под сообщением появляется кнопка «📖 Инструкция по публикации».

Сентябрь 2026

v3.9.3 — robots.txt закрывает приватные разделы от поиска

8 сентября 2026

💡 Улучшения:

  • robots.txt перекрыл все приватные разделы. Раньше закрыты были только /admin, /api/ и /auth/, а страницы кабинета и админки (/cabinet, /users, /teams, /metrics, /broadcast, /dialogs, /payments, /managers-dashboard и др.) оставались открыты для обхода. Теперь закрыты все, открытыми остались лендинг, блог и демо-вход.
  • Секция User-agent: Yandex с Clean-param. Метки рекламных кампаний (utm_*, yclid, gclid, roistat) склеиваются с канонической страницей — один и тот же лендинг больше не индексируется много раз.

v3.9.2 — Подписки не падают от повторного нажатия кнопок

8 сентября 2026

🐛 Исправления:

  • Двойной клик по кнопке в меню подписок больше не вызывает ошибку. Если пользователь нажимал ту же inline-кнопку второй раз (например, выбор базы данных на шаге 1), Telegram отвечал Bad Request: message is not modified, и бот отправлял админу письмо о критической ошибке. Теперь все редактирования сообщений в меню подписок проходят через safe_edit_text, который игнорирует только эту ошибку и пробрасывает остальные.

Август 2026

v3.9.1 — Понятные ошибки AI-помощника и защита почты от спама

19 августа 2026

🐛 Исправления:

  • Ошибки лимитов LLM-провайдера больше не спамят почту. При 402 (кончились кредиты) и 429 (рейт-лимит) агент делал до 15 вызовов LLM на один вопрос — и каждый порождал отдельное письмо админу. Теперь такие ошибки шлют одно письмо: раз в сутки для 402, раз в час для 429.
  • Дедупликация писем об ошибках. send_error_email не отправляет повторное письмо про ту же ошибку чаще раза в 15 минут. Ключ дедупликации нормализует цифры в тексте, поэтому «7398 > 6393» и «7428 > 6173» считаются одной проблемой.
  • Внятное сообщение пользователю. Вместо «❌ Не удалось получить ответ от LLM» при исчерпанном лимите провайдера бот и кабинет отвечают «AI-помощник временно недоступен… попробуйте позже», при рейт-лимите — «Слишком много запросов, подождите минуту».

Май 2026

v3.9.0 — Drill-down расшифровка + показатели Маржа % и Ср. цена

31 мая 2026

🆕 Новое:

  • Drill-down расшифровка — клик на любую ячейку строки-листа (не «Итого», не группа) открывает модалку со списком строк документов за этот период и измерение. Показывает дату, тип документа со ссылкой e1cib:// для открытия в 1С, контрагента, номенклатуру, кол-во, сумму, себестоимость, прибыль. Лимит 100 строк с предупреждением при превышении.
  • Показатели Маржа % и Ср. цена — два новых показателя в настройках сводного отчёта. Маржа % = (Сумма − Себестоимость) / Сумма × 100, Ср. цена = Сумма / Кол-во. Вычисляются на каждом уровне иерархии из агрегированных значений (не суммируются по строкам). Итоговая строка тоже корректна.

💡 Улучшения:

  • Drill-down учитывает все активные фильтры отчёта, группировку по категории номенклатуры и режим «год к году».

v3.8.0 — Сводный отчёт: графики, вкладочные настройки, отмена запроса

30 мая 2026

🆕 Новое:

  • Графики в сводном отчёте — переключатель Таблица / Столбцы / Линии над таблицей. Вид сохраняется при смене периода или настроек. При нескольких показателях — селект для выбора отображаемого. Ось Y автоматически форматируется: для суммовых показателей — «тыс ₽ / млн ₽», для количества — без знака рубля.
  • Вкладочные настройки — модалка «Настроить» разбита на 4 вкладки: Структура (поля группировки + тип колонок), Показатели, Фильтры, Пресеты. Sticky-футер «Применить» работает для всех вкладок сразу.
  • Конструктор группировок — список выбранных полей с DnD + выпадающий список «+ Добавить поле», без двух-панельного перетаскивания.
  • Управление пресетами во вкладке — список с описанием (группировки, кол-во фильтров), кнопки «Применить» / удалить, «Сохранить текущие».

💡 Улучшения:

  • При выборе «год к году» поле «Год» автоматически добавляется первой группировкой с подсказкой.
  • Отмена запроса данных — кнопка «Отменить» во время загрузки (AbortController).
  • Бейдж с количеством активных показателей на вкладке «Показатели».
  • Тулбар: краткий саммари настроек, включая нестандартные показатели.
  • Пресеты: под именем видны группировки и количество фильтров.
  • Валидация: блокирует «Применить» если нет полей группировки или не выбран ни один показатель.

v3.7.2 — Ускорение AI-помощника: переход на Gemini 2.0 Flash

21 мая 2026

💡 Улучшения:

  • AI-помощник в кабинете и боте переведён с openai/gpt-oss-120b на google/gemini-2.0-flash-001. Прежняя модель на OpenRouter работала нестабильно: отдельные запросы (например, «топ-товар + должники») зависали на 30–150 секунд из-за общей очереди провайдера. Замер на демо-базе: типовой запрос — с ~10–150 c до ~3 c, при этом стоимость осталась на уровне gpt-oss (~$0.37 на 1000 запросов против ~$28 у Claude Haiku — отвергнут как дорогой; Kimi K2 отвергнут из-за галлюцинаций данных).
  • Новая модель сразу вызывает несколько инструментов в одном раунде (2 round-trip вместо 3), не выдумывает данные и честно отвечает «данных нет».
  • Промпт ассистента доточен под проактивность: вопросы вида «сколько денег на счетах сейчас», «что на складе» без явной даты больше не приводят к переспрашиванию — берётся разумный дефолт (сегодня / текущий месяц) и инструмент вызывается сразу.

v3.7.1 — Фикс активации Инфостарт-ключа при первой регистрации

14 мая 2026

🐛 Исправления:

  • Новый пользователь, пришедший с Инфостарта, вводил ключ на /activate, регистрировался, попадал на экран «Создать команду и активировать» — но POST на /activate/create-team перехватывался декоратором cabinet_login_required и перенаправлял на /cabinet/welcome (потому что у только что зарегистрированного юзера ещё нет команды). В итоге команда создавалась через обычный онбординг, а ключ не активировался — и в /cabinet/tariffs показывались обычные тарифы вместо заглушки с продлением на Инфостарте. Регрессия из v3.7.0. Теперь cabinet.activate_create_team исключён из правила «нет команды → welcome» — handler сам создаёт команду и активирует ключ.

v3.7.0 — Канал монетизации через Инфостарт

9 мая 2026

🆕 Новое:

  • Добавлен альтернативный канал продажи подписок через Инфостарт. Пользователь покупает архив с ключом активации, переходит по deeplink в бота — подписка на 6 или 12 мес. активируется автоматически.
  • Формат deeplink: t.me/<bot>?start=is_<key>. Если у юзера ещё нет команды — ключ сохраняется и активируется сразу после её создания.
  • Команда /activate UNF-XXXX-XXXX-XXXX как fallback, если deeplink потерялся.
  • Подписки, оплаченные через Инфостарт, помечаются subscriptions.source='infostart' — для таких юзеров кнопка «💎 Премиум» в админ-меню не показывает свои тарифы, а ведёт на покупку продления на Инфостарте (URL задаётся через INFOSTART_PRODUCT_URL в .env).
  • Админ-страница /admin/infostart-keys: статистика, генерация партий ключей (count, period, batch_id, notes), экспорт TXT с deeplinks для загрузки в товар на Инфостарте, история использования.

Апрель 2026

v3.6.0 — SEO-блог на лендинге: пилот из 5 статей

22 апреля 2026

🆕 Новое:

  • Запущен раздел /blog на домене лендинга. Роуты /blog, /blog/<slug>, /sitemap.xml, /robots.txt обслуживаются тем же Flask-процессом, что и /, — общий домен даёт общий SEO-авторитет.
  • Контент хранится в content/blog/*.md (YAML front-matter + markdown). Каталог примонтирован в контейнер monitoring через bind-mount — правки текста не требуют пересборки образа.
  • Пилот из 5 статей по реальным болям пользователей 1С:УНФ: остатки с телефона, KPI менеджеров, автоотчёт в Telegram, ДДС, AI-анализ.
  • Черновики сгенерированы через OpenRouter (скрипт scripts/generate_blog_drafts.py, модель берётся из settings.landing_llm_model) и подлежат ручной вычитке перед публикацией.
  • SEO-обвязка: canonical, Open Graph, Twitter Card, JSON-LD (Article + BreadcrumbList), sitemap.xml с lastmod, robots.txt.
  • Аналитика: добавлены цели blog_article_viewed, blog_scroll_50, blog_scroll_75, blog_cta_clicked в Яндекс.Метрику.
  • AI-консультант лендинга (виджет kbAi-*) переиспользуется на всех страницах блога — тот же /api/landing/chat.

v3.5.5 — Рентабельность и динамика расходов: названия вместо GUID

20 апреля 2026

🐛 Исправления:

  • В отчёте «📈 Рентабельность» направления деятельности показывались как Напр. 868ff878 вместо названий — регистр оборотов ДоходыИРасходы возвращает только GUID-ключ, без раскрытого объекта. Теперь бот после получения оборотов подгружает справочник Catalog_НаправленияДеятельности через get_catalog_by_keys (тот же механизм, что в веб-кабинете) и подставляет Description. Если справочник по какой-то причине недоступен — fallback на короткий GUID остаётся, так что отчёт не сломается.
  • Аналогично в отчёте «📉 Динамика расходов»: топ статей теперь идёт по названиям счетов управленческого плана счетов вместо «Счет 4a66ee72».

v3.5.4 — Разрыв соединения с 1С больше не шлёт письмо админу

20 апреля 2026

🐛 Исправления:

  • httpx.ReadError (сервер 1С закрыл соединение в момент чтения ответа) теперь считается ожидаемой сетевой ошибкой наравне с ConnectError/TimeoutException: админу не уходит письмо, пользователь не видит «😔 Упс…». Раньше такой транзиентный разрыв трактовался как баг кода. Заодно в список попали WriteError, CloseError и RemoteProtocolError — это один и тот же класс проблем связи с базой клиента.

v3.5.3 — Человекочитаемые ошибки 1С

19 апреля 2026

💡 Улучшения:

  • Когда сервер 1С возвращает ошибку (например: «Существуют активные сеансы… используйте платформу 8.5.1.1236», «Превышено число сеансов», истёкшая лицензия и т.п.), бот теперь показывает пользователю текст от сервера 1С дословно в блоке <pre> — чтобы админ базы сразу понял, что делать. Раньше пользователь видел общий «😔 Упс…».
  • Такие ошибки больше не присылают письмо администратору бота — это не баг нашего кода, а состояние базы клиента. В логе остаётся запись уровня WARNING.
  • Добавлен класс исключения OdataServerError в odata_client.py: _fetch/_fetch_heavy парсят JSON-тело ошибки 1С (exception.descr) и бросают его вместо сырого HTTPStatusError. Если тело распознать не удалось — пробрасывается обычный HTTPStatusError и инцидент всё ещё улетает админу (на случай реального бага).

v3.5.2 — Исправление воронки активации

17 апреля 2026

🐛 Исправления:

  • Воронка активации больше не показывает фантомного «1 (100%)» на первой ступени, когда за выбранный период никто не регистрировался. Раньше защита от деления на ноль (count or 1) подмешивалась прямо в отображаемое число — из-за этого во всех вкладках переключателя канала (Все / Telegram / Кабинет) стояла единица, даже если реальных регистраций не было. Теперь показывается честный 0, а защита от деления на ноль работает только в знаменателе конверсий.

v3.5.1 — Аналитика диалогов лендинг-консультанта

11 апреля 2026

🆕 Новое:

  • Диалоги с AI-консультантом на лендинге теперь сохраняются в БД: новая таблица landing_chat_sessions с метаданными сессии (IP, UA, UTM, количество попыток, потрачено токенов, привязанный лид) и landing_chat_messages с самими сообщениями.
  • Клики по ссылкам внутри ответов агента (/demo, /auth/login и т.п.) фиксируются в таблице landing_chat_clicks — видно, какие CTA работают. Фронт шлёт navigator.sendBeacon на POST /api/landing/chat/track, фильтр по существующей сессии отсекает бот-спам.
  • Сессия связывается с лидом в landing_contacts через колонку session_id (раньше был костыль fresh_url='landing_chat:<session>'). При апгрейде general → fresh сессия получает lead_intent='fresh', менеджеру уходит второе письмо.
  • Retention: сообщения и клики живут 90 дней, метаданные сессий — 180 дней. Чистка лениво в существующем _landing_chat_gc (раз в 200 запросов).
  • Яндекс.Метрика: новая цель chat_link_clicked — продублировано с БД для кросс-проверки.

🐛 Исправления:

  • fresh_url в landing_contacts больше не содержит служебные значения вида landing_chat:<session> — только реальные ссылки на базы 1С:Фреш. Миграция 50 переносит старые записи.

v3.5.0 — AI-консультант на публичном лендинге

11 апреля 2026

🆕 Новое:

  • На главной странице (bi.1eska.ru) появился AI-консультант — мини-плашка снизу справа с возможностью быстро скрыть в круглую FAB-кнопку (помним выбор посетителя в localStorage).
  • Консультант знает продукт по справочнику docs/landing_kb.md — тарифы Free/Premium, фичи, условия 1С:Фреш, FAQ. Обновляете справочник — обновляется знание (без деплоя промпта).
  • Умеет собирать контакты через инструменты save_lead / request_fresh_help: сразу уведомление менеджеру по e-mail и запись в landing_contacts с UTM/yclid.
  • Для 1С:Фреш — предлагает бесплатную настройку под ключ и просит ссылку на базу.
  • Под капотом — Haiku 4.5 через OpenRouter (отдельная модель от кабинетной, дешевле). Защита бюджета: rate-limit 30 сообщений/10 мин на IP, 60/сутки на сессию, дневной потолок токенов, honeypot-поле против ботов.
  • Цели Яндекс.Метрики: chat_teaser_shown, chat_opened, chat_message_sent, chat_lead_captured.

v3.4.1 — Голосовой ввод в AI-помощнике кабинета

09 апреля 2026

🆕 Новое:

  • В чате AI-помощника личного кабинета появилась кнопка микрофона 🎙 — можно надиктовать вопрос вместо набора. Распознанный текст сразу уходит в агента, как обычное сообщение.
  • Работает на десктопе и в мобильных браузерах: iOS Safari, Chrome Android, Firefox. Запись — через браузерный MediaRecorder, распознавание — через тот же локальный Whisper, что и голосовые в Telegram-боте.
  • После остановки записи микрофон корректно освобождается — индикатор записи во вкладке гаснет сразу.

v3.4.0 — Agent Mode: текстовые запросы на естественном языке

04 апреля 2026

🆕 Новое:

  • Agent Mode — пишите боту на обычном русском языке вместо навигации по меню:
    • “кто лучший менеджер за март?” — краткий ответ с цифрами
    • “что продавала Журавкова?” — детальный список с фильтрацией
    • “найди контрагент Медуниверситет” — полная карточка с контактами
    • “движения денег за сегодня” — отчёт по кассе
    • “дай отчёт в html” — файл-документ в Telegram
  • Контекст диалога — бот помнит о чём вы говорили:
    • “а что она продавала?” → понимает что “она” = Журавкова
    • “сравни с февралём” → помнит предыдущий период
  • 13 инструментов: продажи (сводка, детали, HTML), деньги, менеджеры (сводка, полный KPI), контрагенты, контакты, номенклатура, ККМ, прибыль, дебиторка, аналитика по контрагенту
  • OpenRouter — поддержка дешёвых LLM-моделей (gpt-oss-120b, DeepSeek V3.2, Kimi K2.5)

💡 Улучшения:

  • Серверная фильтрация продаж по менеджеру/товару/контрагенту через OData $filter
  • Логирование LLM-токенов в мониторинг (модель, стоимость)
  • Автосброс agent-сессии при нажатии кнопок меню или таймауте 30 мин
  • Проверка лимитов GPT-плана перед каждым agent-запросом
  • Номера банковских счетов показывают последние 4 цифры (*XXXX)

Март 2026

v3.3.9 — Прибыль в Telegram

28 марта 2026

🆕 Новое:

  • Новый раздел 📈 Прибыль в Telegram-боте:
    • кнопка в главном меню (с учетом feature flag по типу конфигурации)
    • отдельное подменю с отчетами: P&L, Динамика расходов, Рентабельность
    • команда /profit для быстрого запуска отчетов

💡 Улучшения:

  • Добавлен выбор периода прямо в сообщении отчета: Сегодня, Вчера, Текущий месяц, Прошлый месяц
  • Реализованы отчеты на реальных данных OData (ДоходыИРасходы/Turnovers) с адаптацией под разные аналитики
  • Добавлены unit-тесты для критичных частей profit-логики (feature-видимость, выбор периода, форматирование)

v3.3.8 — Рентабельность

21 марта 2026

🆕 Новое:

  • Новый отчёт Рентабельность в разделе Прибыль:
    • отдельная страница с графиком и таблицей
    • 5 группировок: направления, организации, подразделения, проекты, счета
    • 3 типа визуализации: столбцы, маржа, доли

💡 Улучшения:

  • Добавлен backend endpoint /api/cabinet/profit/profitability на реальных данных OData (ДоходыИРасходы/Turnovers)
  • Поддержаны фильтры по аналитикам, сортировка по колонкам и минимальный порог по выручке
  • Добавлены карточки KPI: выручка, прибыль, общая маржа, лидер по марже

🐛 Исправления:

  • Маршрут /cabinet/profit/profitability переведен с общей страницы P&L на отдельный шаблон отчёта

v3.3.7 — Динамика расходов

9 марта 2026

🆕 Новое:

  • Новый отчёт Динамика расходов в разделе Прибыль:
    • отдельная страница с таблицей и графиком
    • помесячная динамика по статьям расходов
    • drilldown до документов по выбранной статье и месяцу

💡 Улучшения:

  • Добавлен backend endpoint /api/cabinet/profit/expense-dynamics на реальных данных OData
  • Поддержаны режимы отображения: ₽ Абс., % Выручки, YoY
  • Добавлены группировки по направлениям и подразделениям
  • Добавлен прогноз на 2 периода и подсветка аномалий
  • Мокап issue #32 перенесён в каталог документации задачи

Февраль 2026

v3.3.6 — Сбор контактов пользователей

8 февраля 2026

🆕 Новое:

  • Сбор телефонов на лендинге — модальное окно при переходе в бот:
    • Опционально, не блокирует переход
    • Сохраняет UTM-метки для аналитики рекламы
    • Email-уведомление менеджеру о новой заявке
  • Запрос контакта в боте — после создания аккаунта:
    • Кнопка “Поделиться контактом” (Telegram native)
    • Можно пропустить без последствий
    • Email-уведомление с данными для звонка
  • Отображение телефона в мониторинге:
    • Новая колонка в таблице пользователей
    • Кликабельная ссылка tel: для звонка
    • Раздел “Заявки с лендинга” с историей заявок

💡 Улучшения:

  • Новое поле phone в таблице users
  • Новая таблица landing_contacts для лидов с сайта
  • API /api/landing/contact для приёма заявок

Январь 2026

v3.3.5 — Унификация кода отчётов

25 января 2026

💡 Улучшения:

  • Новый универсальный модуль report-grouping.js — общая логика для всех отчётов:
    • groupDataRecursively() — рекурсивная группировка данных
    • getNodeSummary() — агрегация итогов по узлам
    • renderGroupedRows() — рендер иерархических строк
    • toggleChildren(), collapseAll(), expandAll() — управление группами
    • HierarchicalReport — класс для управления отчётом
  • Рефакторинг дебиторки — receivables.html использует новый модуль (сокращение кода с ~745 до ~230 строк)
  • Рефакторинг продаж — sales_report_core.html интегрирован с модулем (с fallback для standalone режима)

🐛 Исправления:

  • Исправлены XSS уязвимости в sales_report_core.html — все пользовательские данные экранируются
  • Добавлена функция escapeHtml() в отчёт продаж для безопасного рендера
  • Улучшена обработка приватных ключей в getNodeSummary() модуля

v3.3.4 — Многоуровневая иерархия для дебиторки

25 января 2026

🆕 Новое:

  • Многоуровневая группировка — как в отчёте по продажам:
    • Менеджер → Контрагент
    • Менеджер → Контрагент → Заказы
    • Возраст → Контрагент
    • Контрагент → Заказы
    • Контрагент → Договоры
    • Контрагент → Документы
  • Все измерения регистра — теперь используются:
    • Контрагент (было)
    • Заказ (было count, теперь + название)
    • Договор (новое)
    • Документ расчётов (новое)
    • Тип расчётов (новое)
  • Рекурсивное раскрытие групп — клик на группу раскрывает вложенные уровни
  • Кнопки управления — ⏫ свернуть все / ⏬ развернуть все

💡 Улучшения:

  • Новый API endpoint параметр include_details=true для получения детализации
  • Обогащение имён через batch-запросы к справочникам
  • Сортировка групп по сумме долга (от большей к меньшей)

v3.3.3 — Расширенный отчёт по дебиторке

25 января 2026

🆕 Новое:

  • График «Распределение по возрасту долга» — круговая диаграмма с разбивкой:
    • 0-30 дней (зелёный)
    • 30-60 дней (оранжевый)
    • 60+ дней (красный)
  • Третья метрика «Средний долг» — показывает среднюю сумму долга на контрагента
  • Toolbar с группировкой — кнопка «Сгруппировать» с опциями:
    • По менеджерам
    • По возрасту долга
  • Фильтр по таблице — поиск по контрагенту и менеджеру
  • Новая колонка «Дней» — возраст долга с цветовой индикацией
  • Сортировка по всем столбцам — клик на заголовок меняет направление

💡 Улучшения:

  • Создан переиспользуемый модуль report-toolkit.js для toolbar и группировки
  • Добавлены общие стили для toolbar в reports-shared.css
  • Новые Jinja2 макросы: report_toolbar(), report_chart()
  • Возраст долга рассчитывается по дате самого старого неоплаченного заказа

v3.3.2 — Улучшение карточки контрагента

25 января 2026

🆕 Новое:

  • Дебиторская задолженность в карточке контрагента — если у контрагента есть долг, теперь сразу видно:
    • Сумму задолженности
    • Количество открытых заказов
    • Ссылку «Подробнее в дебиторке» с переходом и автофильтром по контрагенту
  • Фильтр по контрагенту в дебиторке — страница дебиторки теперь поддерживает параметр ?contragent= для автоматической фильтрации

💡 Улучшения:

  • Сворачиваемые секции в карточке контрагента:
    • Контактная информация — развёрнуто по умолчанию, кнопка «Показать все» для длинных списков
    • Контактные лица — свёрнуто по умолчанию
  • Более компактное отображение карточки для контрагентов с большим количеством контактов

v3.3.1 — Унификация шаблонов отчетов

24 января 2026

💡 Улучшения:

  • Рефакторинг шаблонов отчетов — унифицированы CSS и JS для всех страниц отчетов:
    • reports-shared.css — общие стили (модальные окна, карточки статистики, состояния загрузки)
    • period-picker.js — модуль выбора периода для всех отчетов
    • Jinja2 макросы для переиспользуемых компонентов
  • Сокращено дублирование кода:
    • receivables.html: 915 → 335 строк (-63%)
    • managers.html: 571 → 77 строк (-87%)
    • sales.html: 994 → 128 строк (-87%)
    • orders.html: 1405 → 809 строк (-42%)
  • Общая экономия: ~1200 строк кода

v3.3.0 — Партнёрская программа с Revenue Share

15 января 2026

🆕 Новое:

  • Партнёрская программа — получайте 15% от ВСЕХ платежей ваших рефералов навсегда!
  • Комиссия автоматически начисляется на баланс команды при каждом платеже реферала
  • Новый раздел «Партнёрская программа» в меню бота с детальной статистикой:
    • Количество рефералов (всего / платящих)
    • Сумма заработка (всего / за месяц)
    • История начислений комиссий
    • Список рефералов с информацией о заработке
  • Баланс можно использовать для оплаты подписки и слотов

💡 Улучшения:

  • Обновлён UI раздела «Моя реферальная ссылка» → «Партнёрская программа»
  • Новая страница «Тарифы» в личном кабинете:
    • Сравнение тарифов FREE и PREMIUM с ценами
    • Информация о партнёрской программе (15% от платежей рефералов)
    • FAQ по оплате и выводу средств
    • Информация о слотах для приглашения сотрудников

v3.2.6 — HTML-отчёты в туториале

14 января 2026

🆕 Новое:

  • 4 новых шага в туториале с интерактивными HTML-отчётами:
    • 📊 HTML-отчёт по продажам (графики Chart.js, сортируемые таблицы)
    • 👔 Дашборд менеджеров (KPI, рейтинг, сравнение показателей)
    • 📦 Прайс-лист (иерархия товаров, экспорт Excel/CSV)
    • 🧠 Умная проверка ДДС (оценка качества, поиск аномалий)
  • Туториал теперь 9 шагов вместо 5 — полный обзор возможностей бота
  • Пользователь получает wow-эффект от красивых отчётов сразу на этапе знакомства

v3.2.5 — Исправление детектора Эффекта ножниц v6.7

5 января 2026

🐛 Исправления:

  • Эффект ножниц теперь использует total_inflow (как в таблице), а не operating_inflow
  • Раньше: детектор считал рост 24% (40.9→50.9 млн operating) и молчал
  • Теперь: видит реальный рост 147% (67.8→167.6 млн total) и показывает достижение

v3.2.4 — Депозиты как Cash Equivalent v6.6

5 января 2026

💡 Улучшения:

  • Депозиты теперь учитываются как ликвидный резерв при оценке runway
  • Риск «Критический запас денег» использует runway_full при наличии депозитов
  • Если операционный runway < 2 мес, но с депозитами >= 2 мес → рекомендация вместо паники
  • Новая задача: «Синхронизировать возврат депозитов с платежами»

🐛 Исправления:

  • Овернайты и короткие депозиты больше не вызывают ложных тревог

v3.2.3 — Блок «Успехи» и нетто-депозиты v6.5

5 января 2026

🆕 Новое:

  • Блок «Успехи» — автоматическое выявление позитивных достижений:
    • ✂️ Эффект ножниц (выручка растёт в 2+× быстрее расходов)
    • 💰 Профицит покрытия (>120%)
    • ⚡ Высокая эффективность ФОТ (>4×)
  • Таблица «Динамика по месяцам» — новые колонки:
    • 💎 Депозит — сальдо (+ накопили, − забрали)
    • 🔻 Вывод — дивиденды

💡 Улучшения:

  • Расход теперь показывает только операционные расходы (без депозитов)
  • Нетто-поток депозитов вместо валового оборота

v3.2.2 — Переключатель периода для таблиц v6.2

5 января 2026

🆕 Новое:

  • Переключатель периода теперь влияет на таблицы «Структура по видам деятельности»
  • По умолчанию показываются данные за весь период (не за последний месяц)
  • Динамический рендеринг таблиц через JavaScript

💡 Улучшения:

  • Улучшена accessibility: debounce на resize, ARIA для модалок/табов, keyboard navigation
  • Кликабельные карточки KPI поддерживают Tab/Enter/Space
  • Модалка закрывается по Esc с возвратом фокуса
  • Табы переключаются стрелками ←/→

🐛 Исправления:

  • Удалена неактуальная рекомендация «Резервирование на налоги»

v3.2.1 — Переключатель периода для анализа v6.1

5 января 2026

🆕 Новое:

  • Переключатель периода данных — dropdown для выбора:
    • «За весь период» — агрегированные данные за все месяцы
    • Конкретный месяц — данные только за выбранный месяц
  • Переключатель влияет на графики драйверов расходов/поступлений
  • Динамическое обновление без перезагрузки страницы

💡 Улучшения:

  • Подсказка под dropdown показывает выбранный период
  • Последние месяцы отображаются первыми в списке

v3.2.0 — Разделение остатков по типам счетов v6.0

4 января 2026

🆕 Новое:

  • Три секции остатков: Касса, Расчётные счета, Депозиты
  • Каждая секция показывает: начало → +поступления → −расходы → конец периода
  • Два варианта Runway:
    • Операционный (касса + р/с) — для текущих расходов
    • Полный (+депозиты) — с учётом резервов
  • Аналитика депозитов: размещено/снято за период, изменение

💡 Улучшения:

  • Итоговая строка: «Операционные» vs «Всего с депозитами»
  • Депозиты выделены жёлтым цветом с иконкой 💎
  • Runway полный показывается только если есть депозиты

🐛 Исправления:

  • Исправлено игнорирование пользовательских дат в Умном анализе
  • Баланс теперь берётся на конец выбранного периода (не на сегодня)

v3.1.0 — Финдиректорские метрики v5.0

1 января 2026

🆕 Новое:

  • Burn Rate — средний операционный расход в месяц (не net!)
  • Runway исправлен — теперь считается как Остаток ÷ Burn Rate
  • Покрытие обязательств — опер. приход ÷ опер. расход (норма ≥ 100%)
  • ФОТ-эффективность — сколько выручки на 1₽ зарплаты (норма > 2×)
  • Блок «Риски» — автоматическое выявление:
    • Критический runway (< 2 мес)
    • Дефицит покрытия
    • Негативный МкМ тренд
    • Перекос перемещений
    • Низкая ФОТ-эффективность

💡 Улучшения:

  • План действий дополнен правилами на основе новых метрик
  • Рекомендации с конкретным эффектом в ₽ и сроками
  • KPI-блок переработан: burn rate, runway, покрытие, ФОТ-эффект.

v3.0.0 — Умный анализ ДДС v4.0

1 января 2026

🆕 Новое:

  • Графики динамики cash flow — визуализация на Canvas:
    • Bar+Line: чистый поток (столбцы) vs операционный (линия)
    • Multi-Line: динамика по видам деятельности (опер./фин./перемещения)
  • Интерактивные вкладки — быстрое переключение между видами деятельности
  • План действий на 14 дней — 5 конкретных задач с измеримым эффектом в рублях:
    • Анализ крупных статей (поставщики, ФОТ, налоги, подотчёт)
    • Автоматическая генерация рекомендаций на основе правил
    • Расчёт потенциального эффекта оптимизации
  • Топ-статьи по видам деятельности с горизонтальными графиками

💡 Улучшения:

  • Помесячная разбивка данных по видам деятельности (monthly_by_activity)
  • Полностью standalone HTML (работает в Telegram без внешних зависимостей)
  • Retina-ready Canvas графики с DPR scaling

Декабрь 2025

v2.9.0 — Монетизация слотов пользователей

25 декабря 2025

🆕 Новое:

  • Система платных слотов для участников команды
  • Owner + 1 бесплатный слот, дополнительные — платные
  • Цены: Member 150₽/мес, Admin 300₽/мес
  • Интеграция с ЮKassa для оплаты слотов
  • Grace period 7 дней при истечении Premium
  • Отображение статуса слотов в списке участников

💡 Улучшения:

  • Новая документация по монетизации в docs/monetization/
  • Проверка доступности слотов при приглашении
  • Автоматическая синхронизация сроков слотов с Premium

v2.8.0 — Анализ работы менеджеров (beta)

23 декабря 2025

🆕 Новое:

  • Комплексный анализ работы менеджеров за выбранный период
  • Метрики: выручка, прибыль, заказы, события (звонки, письма, встречи), оплаты, задолженность
  • Два формата отображения: Компактный и Таблица
  • Интерактивный HTML-дашборд с drill-down по каждому менеджеру
  • Ключевые показатели: лидер по выручке, по заказам, по оплатам, макс. долг

💡 Улучшения:

  • Функция доступна всем пользователям УНФ
  • Помечена как beta — ждём обратную связь для доработки

v2.7.0 — Прайс-лист с ценами и остатками

22 декабря 2025

🆕 Новое:

  • Кнопка «Получить прайс-лист» в меню номенклатуры
  • Генерация интерактивного HTML-прайс-листа со всей номенклатурой
  • Колонки: наименование, артикул, группа, ед. изм., цены по видам, остатки
  • Фильтры: поиск, группа номенклатуры, наличие на складе
  • Иерархический просмотр групп (древовидная структура)
  • Настройка колонок: видимость, порядок, ширина (drag-n-drop)
  • Экспорт в Excel и CSV
  • Сохранение настроек в localStorage

💡 Улучшения:

  • Название компании в шапке прайс-листа
  • Ссылка на Telegram-бот в подвале
  • Учёт прав доступа: участники видят только разрешённые виды цен

v2.6.0 — Улучшенная аналитика по контрагентам

21 декабря 2025

🆕 Новое:

  • Выбор формата отображения аналитики: Компактный или Таблица
  • В табличном формате заказы отображаются с ФИО ответственного менеджера
  • Компактный формат — лаконичный стиль с эмодзи для быстрого просмотра

💡 Улучшения:

  • Добавлено поле “Менеджер” в данные по заказам контрагента
  • Оптимизирован OData запрос с использованием $expand

v2.5.0 — Управление ролями в команде

18 декабря 2025

🆕 Новое:

  • Администраторы теперь могут управлять ролями участников команды
  • Можно повысить участника до администратора или понизить обратно
  • Улучшенный интерфейс управления командой

💡 Улучшения:

  • Переработана система прав доступа
  • Добавлена проверка ролей перед критическими операциями

v2.4.0 — Freemium модель

16 декабря 2025

🆕 Новое:

  • 2 бесплатных отправки в день для подписок на FREE тарифе
  • Теперь даже на бесплатном тарифе можно получать автоматические рассылки (с ограничением)

💡 Улучшения:

  • Обновлены лимиты тарифных планов
  • Добавлено информативное сообщение при достижении лимита

v2.3.0 — Email-уведомления о платежах

14 декабря 2025

🆕 Новое:

  • Автоматические email-уведомления менеджеру о новых платежах
  • Интеграция с 1С для учета оплат

🔧 Исправления:

  • Исправлена обработка webhook’ов от Yookassa
  • Улучшена стабильность обработки платежей

Ноябрь 2025

v2.2.0 — Автоматические рассылки

Ноябрь 2025

🆕 Новое:

  • Автоматические рассылки отчетов по расписанию
  • Настройка времени отправки
  • Возможность пропускать выходные дни
  • Управление подписками через меню бота

💡 Улучшения:

  • Новый формат компактных отчетов для рассылок
  • Оптимизация формирования отчетов

v2.1.0 — Командная работа

Ноябрь 2025

🆕 Новое:

  • Поддержка команд с несколькими участниками
  • Система приглашений с уникальными ссылками
  • Роли: администратор и участник
  • Совместное использование подключений к базам

🔧 Исправления:

  • Исправлена работа с несколькими организациями
  • Улучшена производительность запросов к OData

Октябрь 2025

v2.0.0 — Большое обновление архитектуры

Октябрь 2025

🆕 Новое:

  • Полностью переработанная архитектура на SQLite
  • Поддержка 1С:УТ11 (Управление торговлей 11)
  • Система тарифных планов (FREE / PREMIUM)
  • Интеграция с платежной системой Yookassa
  • GPT-анализ финансовых отчетов

💡 Улучшения:

  • Шифрование паролей с использованием Fernet
  • Модульная структура кода
  • Улучшенная обработка ошибок OData

⚠️ Важно:

  • Требуется миграция данных со старой версии
  • Обновлен формат конфигурации .env

Сентябрь 2025

v1.5.0 — Анализ продаж

Сентябрь 2025

🆕 Новое:

  • Отчет “Анализ продаж” с детализацией по контрагентам
  • Экспорт отчетов в HTML формат
  • Выбор произвольного периода для отчетов

v1.4.0 — Поиск

Сентябрь 2025

🆕 Новое:

  • Поиск контрагентов по названию и ИНН
  • Поиск номенклатуры по названию и артикулу
  • Отображение контактной информации

Август 2025

v1.3.0 — Остатки ККМ

Август 2024

🆕 Новое:

  • Отчет по остаткам в кассовых аппаратах
  • Детализация по торговым точкам

v1.2.0 — Движения денежных средств

Август 2025

🆕 Новое:

  • Отчет “Движения денежных средств”
  • Детализация по организациям и счетам
  • Формат таблицы с emoji

v1.1.0 — Мониторинг

Август 2025

🆕 Новое:

  • Веб-интерфейс мониторинга
  • Health check endpoint
  • Логирование запросов

v1.0.0 — Первый релиз

Август 2025

🎉 Начало:

  • Базовое подключение к OData 1С:УНФ
  • Простые запросы к справочникам
  • Telegram-бот на aiogram 3.x

Планы развития

В разработке 🚧

  • Автопродление подписок
  • Расширенная реферальная программа
  • Отчет по остаткам товаров
  • Поддержка 1С:Бухгалтерия

Планируется 📋

  • Мобильное приложение
  • Интеграция с другими мессенджерами
  • API для внешних интеграций
  • Кастомные отчеты

Как следить за обновлениями?

  1. Эта страница — актуальный changelog
  2. Telegram-канал — анонсы важных обновлений (планируется)
  3. В боте — команда /news покажет последние изменения

← Назад на главную


UNF to TG © 2024. Telegram бот для работы с 1С.