Организации
Несколько компаний-операторов в одной установке: свои клиенты, платежи, фискализация, персонал, брендинг, почта и боты у каждой организации.
Содержание раздела
- Мульти-организации и SLA-сервис
- Модель организаций
- Страница «Организации»
- Платежи и выручка по организации
- Фискализация по организации (54-ФЗ)
- Изоляция персонала по компаниям
- SLA-документы: счета и акты по подписке
- Поддержка со SLA-уровнями
- Изоляция входа в ЛК по домену
- Брендинг ЛК и писем по организации
- Почта организации (SMTP)
- Боты и группы Telegram у организации
- API-прокси для внешних сервисов
Мульти-организации и SLA-сервис
Один экземпляр СмИТ Биллинг может обслуживать несколько компаний-операторов как самостоятельные юрлица. В контуре может быть несколько организаций: основная — провайдер связи (она же по умолчанию), рядом с ней дочерние или партнёрские компании со своими доменами — например, ИТ-услуги или охранное абонентское обслуживание. У каждой компании — свои реквизиты, платёжные кассы, счёт приёма оплат, документы, брендинг, домен ЛК и маршрутизация поддержки. Сотрудники видят данные только своих компаний.
Что показывает строка компании, как перейти в её данные, что видит каждая организация в общих справочниках, как перенести клиентов и настроить реквизиты, кассу, почту и Telegram.
Содержание раздела
- Модель организаций
- Платежи и выручка по организации
- Фискализация по организации (54-ФЗ)
- Изоляция персонала по компаниям
- SLA-документы (счёт/акт по подписке)
- Поддержка со SLA-уровнями
- Изоляция входа в ЛК по домену
- Брендинг ЛК и писем по организации
- Telegram-бот организации
- API-прокси для внешних сервисов
Модель организаций
- Организация (
Organization):name,slug(provider/partner),domain,is_default, иконка, SMTP-отправитель рассылок. - Клиент привязан к организации (
Abonents.organization) — «чей клиент». Финоперации и документы наследуют организацию от клиента. - Реквизиты (
CompanyBranding) — свои для каждой организации: счета/акты печатаются с реквизитами той компании, с которой у клиента договор. - Управление в одном окне:
/admin/settings/organizations/— список компаний + редактирование в модалке с шестью вкладками:- Основное — название, код, домен ЛК, иконка, статус;
- Брендинг — фирменные цвета (светлая/тёмная тема), логотип и favicon, фоны страницы входа в ЛК и дашборда (см. ниже);
- Реквизиты — ИНН/КПП/ОГРН, юр./почтовый адрес, директор, банковские реквизиты, ставка НДС, гл. бухгалтер, шрифт PDF, печать и подписи (загрузка прямо в окне);
- Платежи — своя касса YooKassa/W1 и расчётный счёт приёма оплат (см. ниже);
- Почта (SMTP) — отдельный отправитель рассылок организации;
- Telegram — бот организации и супергруппа с топиками для уведомлений (см. ниже).
Страница «Организации»
Раздел открывается по адресу /admin/settings/organizations/ и доступен
только суперпользователю: здесь задаются сами компании, их реквизиты и каналы связи.
- Шапка. Слева — тариф и число организаций с лимитом (ссылка ведёт в «Лицензию»), справа — печатные формы, модули, виджеты, знакомство с разделом и «Организация» для добавления новой. Когда лимит тарифа исчерпан, кнопка добавления неактивна и объясняет причину.
- Таблица. Название компании показывается фирменным бейджем — иконка и акцентный цвет берутся из брендинга. Рядом — домен личного кабинета. Дальше идёт то, по чему компании и сравнивают: клиенты (активные из всех), оборот и долг за 30 дней, обращения, сотрудники. Колонка «Настройка» собирает четыре значка — реквизиты, Telegram, почта, касса — и счётчик «сколько из четырёх готово». Состав и порядок колонок настраиваются и запоминаются в профиле сотрудника.
- Действия в строке — редактирование, брендинг, реквизиты, платежи, почта, Telegram, переходы в данные организации и деактивация. Деактивация спрашивает подтверждение и перечисляет последствия: компания исчезает из выбора и фильтров, данные и документы сохраняются, действие пишется в аудит. Пока у компании есть клиенты, выключить её нельзя — сначала перенос.
Значок «Реквизиты» отвечает не «что-то заполнено», а «счёт собрать можно»: он считается по тем же девяти полям, что и страница «Реквизиты и печать», поэтому два экрана не спорят друг с другом. В подсказке видно, чего именно не хватает.
Переходы в данные организации
Стрелка у названия разворачивает строку: под ней — переходы в разделы этой компании с уже посчитанными числами: клиенты, должники, обращения, операции, документы, склад, сеть, сотрудники. Разделы фильтруются селектором организации в шапке, поэтому переход сначала переключает организацию — об этом сказано прямо в блоке.
Общее для всех организаций
Записи без организации видны каждой компании — так устроены общие справочники. Под таблицей стоит блок с их составом и количеством: услуги, шаблоны документов, поля CRM, источники заявок, правила тегов, категории склада, политики SLA, счётчики нумерации, тарифы, поставщики. Это не недосмотр в данных: разносить их по компаниям нужно только тогда, когда у каждой действительно свой набор.
flowchart TD
REC["Запись в системе"] --> Q{"Организация
указана?"}
Q -->|"да"| OWN["Видна своей компании:
клиенты, платежи, документы"]
Q -->|"нет"| ALL["Видна каждой компании:
общий справочник"]
DEF["Организация
по умолчанию"] -.->|"подставляется новым
записям без привязки"| REC
Карточка организации
Карточка открывается боковой панелью справа; в шапке — название компании, которую правите, чтобы не перепутать при быстром переключении. Шесть вкладок умещаются в одну строку: «Основное», «Брендинг», «Реквизиты», «Платежи», почта и Telegram. «Сохранить» остаётся неактивной, пока в форме ничего не изменено, а перед сохранением показывается список изменённых полей и того, на что они повлияют.
Перенос клиентов между организациями
Выключить компанию, у которой есть клиенты, нельзя — иначе они остались бы без владельца. На вкладке «Основное» есть блок с их числом и выбором организации-получателя; подтверждение перечисляет последствия: клиенты станут принадлежать другой компании, а выписанные документы и проведённые операции остаются за прежней — иначе прошлые счета начали бы противоречить сами себе. Действие пишется в аудит.
На телефоне
Список превращается в карточки: каждая строка — компания с подписанными полями, без горизонтальной прокрутки. Кнопки шапки сжимаются до иконок, настройка колонок скрыта — в карточках настраивать нечего.
Меню действий на телефоне выезжает снизу — как нижняя шторка, а не выпадающий список у края экрана. Переходы в разделы организации показываются двумя плитками в ряд.
Вкладки панели умещаются в одну строку: «Основное» и «Брендинг» остаются подписями, «Реквизиты», «Платежи», почта и Telegram показываются иконками.
Платежи и выручка по организации
Каждая компания принимает оплату на свой счёт через свою кассу. На вкладке «Платежи» в карточке организации задаются её YooKassa (Shop ID / секретный ключ / SCID), Wallet One и расчётный счёт приёма оплат (модель OrgPaymentSettings). Если у организации касса не задана — используются общие настройки провайдера (СмИТ).
- Онлайн-оплата (ЛК / мобильное приложение): платёж клиента уходит на кассу его компании. Возврат после оплаты ведёт на домен ЛК этой компании. Webhook верифицирует платёж той же кассой, что его приняла.
- Банковская выписка: платёж относится к компании по счёту получателя в выписке (на чей расчётный счёт реально пришли деньги), с резервным определением по организации клиента.
- Выручка: в каждую финоперацию записывается организация — доход корректно разносится между компаниями. Готовые отчёты «Выручка по организациям» (за месяц и за год) показывают суммы по каждой компании с разбивкой банк / онлайн.
Фискализация по организации (54-ФЗ)
По 54-ФЗ касса и ОФД привязаны к ИНН юрлица — у каждой компании свой ИНН и своя касса. Чек пробивается кассой той компании, на чей счёт пришли деньги, с её реквизитами продавца (ИНН, система налогообложения берутся из реквизитов организации). Касса привязывается к компании на странице /admin/settings/atol_config/ (поле «Компания» в карточке кассы). Если у компании своя касса не заведена — чек не пробивается по чужому ИНН.
Изоляция персонала по компаниям
Сотрудник видит клиентов, финоперации и счета только тех компаний, к которым он привязан. Привязка задаётся в карточке сотрудника (/admin/settings/staff/ → мультиселект «Доступные организации», можно несколько). Суперпользователь видит все компании. Селектор организаций в шапке показывает сотруднику только его компании; выбрать чужую нельзя. Функция управляется тумблером «Изоляция персонала» в разделе Настройки → Безопасность (мгновенный откат при необходимости).
flowchart LR ST["Сотрудник"] --> ACC["Доступные организации
карточка сотрудника"] ACC --> LST["Списки и карточки"] ACC --> KPI["Итоги и дашборды"] ACC --> DOC["Документы и выгрузки"] ACC --> OBJ["Открытие записи
по прямой ссылке"] SU["Суперпользователь"] --> ALL["Все компании"]
Проверка стоит не только на списке: итоги, выгрузки и открытие записи по прямой ссылке считают ту же привязку — иначе чужую запись можно было бы достать адресом.
SLA-документы: счета и акты по подписке
Для сервисных договоров (абонентское обслуживание со SLA) счёт и акт выставляются по подписке за период — не по факту банковского платежа. Документы генерируются в PDF (WeasyPrint) с реквизитами организации клиента, имеют отдельную нумерацию СЛА-ГГГГ-NNNN / АКТСЛА-ГГГГ-NNNN (атомарный счётчик). Каждая выдача журналируется в аудит (приказ ФСТЭК №21: кто/когда/что). SLA-подписки (пакеты «Базовый / Расширенный / Критический») списываются ежемесячно штатным механизмом абонплаты.
Поддержка со SLA-уровнями
Тикеты поддержки маршрутизируются по организации клиента: клиенты дочерней компании попадают в свой почтовый ящик поддержки (support@вашдомен.ru). Тикету проставляются теги организации и SLA-уровня (Базовый / Расширенный / Критический); уровень также сохраняется в карточке клиента. Критический уровень → приоритетная реакция.
Изоляция входа в ЛК по домену
Клиент может войти в личный кабинет только на домене своей организации: на домене дочерней компании — только её клиенты, на домене провайдера — только его. Проверка применяется во всех точках входа (логин/пароль, Telegram OAuth, автологин по IP, активная сессия). Попытка чужого клиента → отказ с записью в аудит. Это исключает перекрёстный доступ между компаниями.
Брендинг ЛК и писем по организации
Цвета, название, логотип и контакты в ЛК, письмах и служебных страницах берутся из брендинга организации клиента. У каждой организации своя палитра и своё название в письмах. Письма уходят с адреса организации (noreply@вашдомен.ru) под её SMTP-аккаунтом (корректные SPF/DKIM), темой с названием организации и её телефоном поддержки. Для клиентов без интернет-услуги (видео/домофон/SLA) скрываются интернет-специфичные разделы ЛК («Подключения», «Тест скорости»).
Весь визуальный брендинг компании настраивается прямо в карточке организации на вкладке «Брендинг» (/admin/settings/organizations/ → значок палитры в строке компании или кнопка «Редактировать» → вкладка «Брендинг»):
- Фирменные цвета — акцентный цвет для светлой и тёмной темы (выбор пипеткой + HEX-поле с предпросмотром). Применяется к кнопкам, ссылкам и шапке в ЛК организации. Пустой цвет тёмной темы → используется цвет светлой.
- Логотип и favicon — логотип (свет/тёмная тема) и favicon вкладки браузера, загрузка прямо в окне с превью.
- Фон страницы входа в ЛК — отдельные изображения для светлой и тёмной темы.
- Фон дашборда админки — свет/тёмная тема.
Изображения до 2 МБ (PNG/JPG/WEBP/SVG). Файлы можно загружать только у сохранённой организации. У организации по умолчанию (СмИТ) брендинг хранится в общей записи реквизитов, у остальных компаний — в собственной.
Почта организации (SMTP)
Карточка организации (/admin/settings/organizations/) открывается правым выезжающим сайдбаром — на мобильном он занимает всю ширину. Вкладка «Почта (SMTP)» задаёт, через какой сервер уходят письма клиентам этой компании.
- Пусто → используется глобальный SMTP системы.
- Заполнено → письма организации уходят с её адреса и домена.
Автонастройка и проверки
- «Автонастроить ящик» — создаёт
noreply@<домен-организации>в почтовом сервере, прописывает DNS (MX/SPF/DKIM/DMARC) и заполняет параметры SMTP. Подробнее — Автонастройка почтовых ящиков и DNS. - «Проверить» — реальное подключение к SMTP с авторизацией и TLS; понятная ошибка, если логин/пароль неверны или хост не резолвится.
- «Отправить тест-письмо» — HTML-письмо на e-mail текущего пользователя: сразу видно, доходит ли почта.
lk.example.ru), почтовый хост mail.lk.example.ru может не резолвиться — тогда либо укажите почтовый домен, либо оставьте SMTP пустым и используйте глобальный.
Карточки Telegram-бота и супергруппы
На вкладке Telegram, если задан токен бота, подтягиваются его аватар, имя и @username (ссылка открывает бота в Telegram). При указанном chat_id показывается аватар и название супергруппы. Данные читаются через Telegram Bot API (запросы идут через прокси); если бот не добавлен в группу — вместо карточки выводится предупреждение.
Боты и группы Telegram у организации
У компании может быть несколько ботов, и уведомления уходят в её собственную группу. Всё это — на вкладке «Telegram» в карточке организации.
- Боты организации — карточки с именем и картинкой бота. Новый подключается
ключом из
@BotFather: биллинг спрашивает у Telegram, кто это, и сохраняет имя и картинку. Крестик отключает бота, спросив подтверждение. - Кто шлёт уведомления — появляется, когда ботов больше одного. При единственном боте выбирать не из чего, и он подставляется сам.
- Группа — выбирается из списка, а не вводится номером. Рядом с названием видно, если бот в группе не администратор: тогда он не сможет писать.
Тему (thread_id) здесь не спрашивают: её выбирают в том разделе, который шлёт
уведомление, — например в карточке СОРМ.
Откуда берётся список групп
У Telegram нет способа спросить «в каких группах состоит бот» — такого метода в его интерфейсе не существует. Поэтому список копится у нас, тремя путями:
- Приём сообщений — бота добавили в группу или в ней написали, и группа появилась в списке сама.
- «Обновить список» — разовый опрос Telegram. Работает, пока у бота не зарегистрирован адрес приёма: сообщения отдаются либо туда, либо опросом.
- «Добавить группу» — по номеру или
@имени. Нужно там, где приём идёт мимо биллинга: у служебного бота адрес приёма указывает на сервер лицензий.
Список тем супергруппы Telegram тоже не отдаёт: тема попадает в выбор, когда её создали при живом приёме или когда в ней написали. Тема «Общие» есть в любой супергруппе с темами.
В разделе Настройки → Интеграции → Telegram остался только служебный бот системы: он шлёт тревоги о сети и отчёты разработки. Боты организаций настраиваются в их карточках.
API-прокси для внешних сервисов
Запросы к недоступным из РФ сервисам (AI-провайдеры, Telegram) идут через собственный forward-прокси на сервере с прямым доступом к этим API. Настройка API_PROXY_URL — единая точка для всех внешних вызовов (AI-чат, уведомления, фискализация, геокодер). Это устранило таймауты AI-ассистента: ответ приходит за ~1–2 сек.
Статус: мульти-орг полностью реализован (2026-06-13, вкладки «Брендинг» и «Telegram» добавлены 2026-06-16). Per-организацию: реквизиты и документы, визуальный брендинг (цвета/логотип/favicon/фоны), платёжные кассы и счёт приёма оплат, маршрутизация онлайн-платежей и банковских выписок, фискализация (54-ФЗ), изоляция входа в ЛК и брендинг по домену, изоляция персонала по компаниям, свой Telegram-бот и супергруппа уведомлений, SLA-сервис и API-прокси. Состав компаний ведётся в карточках организаций. Платёжные/фискальные реквизиты вводятся в карточке организации по мере оформления юр.лиц.