СОРМ
Для полной интеграции СОРМ, просьба обращаться к Дмитрию Б. aka Банан
+79115096089, +79215480279 (ТГ/WhatsApp/Звонок)
Внимание! Критическая уязвимость...
Использование копии биллинговой системы с датой обновления ДО 16.03.2024, черевато взломом.
До этой даты присутствует критическая уязвимость системы, которая перешла ещё с Abills
Предыдущие месяцы (2025 год)
- Changelog - 01.01.2025-31.01.2025
- Changelog - 01.02.2025-28.02.2025
- Changelog - 01.03.2025-31.03.2025
- Changelog - 01.04.2025-30.04.2025
- Changelog - 01.05.2025-31.05.2025
- Changelog - 01.06.2025-30.06.2025
- Changelog - 01.07.2025-31.07.2025
- Changelog - 01.08.2025-31.08.2025
- Changelog - 01.09.2025-30.09.2025
- Changelog - 01.10.2025-31.10.2025
- Changelog - 01.11.2025-30.11.2025
- Changelog - 01.12.2025-31.12.2025
15.08.2026 (Версия биллинга - 'RU 26.08.15')
| Наименование модуля | Список изменений/исправлений/добавлений |
|---|---|
Neo-s: Исправлено поле standart файлв abonents | |
Система | Если не совсем правильно заполнены поля ФИО (отсутствует fio1) то кнопка сохранения желтеет, это НЕ ошибка, это приведение биллинга к правильному стандарту ======== ОБЯЗАТЕЛЬНО ЧИСТКА КЕШ/КУКИЕС!!! ========= |
Internet | Группы тарифных планов теперь отображают правильное количество ТП |
Iptv | Группы тарифных планов теперь отображают именно тарифы модуля ТВ |
Abon | Добавлена вкладка групп тарифов по группам абонентов |
Вид оплат | Добавлен универсальный скрипт приведения payments_type к эталону (1..11) с переносом ссылок payments/paysys_connect/extreceipts/config и обязательными backup-таблицами. Плагин лежит в /../../libexec/billd.plugins/fix_payments_type_to_etalon.pl |
14.08.2026 (Версия биллинга - 'RU 26.08.14')
| Наименование модуля | Список изменений/исправлений/добавлений |
|---|---|
Журнал выгрузок: оптимизированы выборки, добавлены индексы | |
Neos: суточная обязательная пачка подготавливается один раз в сутки | |
Справочник SUPPLEMENTARY_SERVICE (Neos): оптимизация выгрузки | |
Словарные hash'и: оптимизирован расчёт подписи таблиц | |
Система | Форма расписания: добавлена защита от пустой/битой даты |
Серверная нормализация дат DD.MM.YYYY в расписании (если JS-нормализатор не сработал) | |
Нормализатор дат: при отправке формы нормализуются все поля (не только календарик), если значение похоже на DD.MM.YYYY | |
Нормализатор дат (DD.MM.YYYY -> YYYY-MM-DD): добавлена защита от сбоев и принудительная нормализация при любых отправках форм ======== ОБЯЗАТЕЛЬНО ЧИСТКА КЕШ/КУКИЕС!!! ========= | |
Доп. Услуги | Подключение тарифа: добавлена защита от пустой/битой даты |
Подключение тарифа: восстановлена обработка 00.00.0000 и формата DD.MM.YYYY для даты | |
Подключение тарифа: исправлено условие добавления тарифа при "нулевой" дате (00.00.0000) | |
Карточка абонента: ссылка на тариф/услугу в списке подключенных услуг передаёт корректный ABON_ID | |
13.08.2026 (Версия биллинга - 'RU 26.08.13')
| Наименование модуля | Список изменений/исправлений/добавлений |
|---|---|
Журнал выгрузок: причина автосинхронизации обязательных словарей теперь отражает vendor-правила (ежедневная обязательная пачка Neo-s) | |
Журнал выгрузок: устранено несоответствие причин/пояснений реальному решению экспортёра по обязательным словарям | |
Справочник SUPPLEMENTARY_SERVICE: добавлено принудительное восстановление локализованных имён перед выгрузкой dict-supplement-services | |
Справочник SUPPLEMENTARY_SERVICE: при отсутствии языка имя теперь восстанавливается из history (последнее "человеческое" значение), чтобы не застревать на Internet | |
Справочник SUPPLEMENTARY_SERVICE: самовосстановление "битой" активной версии в history (MODULE='' + MNEMONIC='Internet') по данным основной таблицы | |
Ядро/интерфейс: убран хардкод путей /usr/abills/* — пути теперь строятся относительно $base_dir/$libpath | |
SFTP: по умолчанию загрузка идёт в текущую папку ('.'), чтобы не пытаться писать в '/' и не получать Permission denied | |
Сетевые словари: служебные/тестовые/зарезервированные IPv4-сети (CGNAT, loopback, link-local, TEST-NET, 198.18/15, multicast, reserved) помечаются как "Внутренняя" | |
Компании | Импорт банковской выписки: код СОРМ берётся из payment_kind_code выбранного вида оплаты; если не задан — из COMPANY_BANK_STATEMENT_PAYMENT_KIND_CODE; иначе 80 |
Доп.Услуги (Abon) | Тарифные планы: добавлен флаг "Выгружать услугу в СОРМ" (abon_tariffs.sorm_export) для управления попаданием тарифа в справочник SUPPLEMENTARY_SERVICE |
Paysys | Для "Перевод средств между абонентами" добавлен настраиваемый вид оплаты (вместо хардкода payments_type.id=7); настройка в веб-интерфейсе: Настройка → Финансы → Настройки ядра → Портал Абонента → Перевод средств между пользователями → Вид оплаты |
12.08.2026 (Версия биллинга - 'RU 26.08.12')
| Наименование модуля | Список изменений/исправлений/добавлений |
|---|---|
Журнал выгрузок: предпросмотр файлов стал schema-driven (берёт названия колонок/required из exporter %FIELDS), подсвечивает незаполненные обязательные поля, декодирует IPv4 (hex) и "очеловечивает" JSON (списки IP, адреса, данные линии) | |
Specteh: исправлена схема REGIONS (MNC имеет правильный номер колонки) и добавлены описания %FIELDS для корректного отображения колонок в предпросмотре | |
Справочник PAY_TYPE: исправлено формирование actual_to (не закрываем типы датой global_begin), чтобы корректно работала история видов оплат | |
Справочник видов оплат (PAY_TYPE): добавлено самовосстановление истории — исправляются записи с нулевой длительностью (actual_to <= actual_from), чтобы дата исключения не совпадала с датой добавления | |
Справочник SUPPLEMENTARY_SERVICE: список дополнительных услуг формируется по модулю Abon только для тарифов с включенным флагом "Выгружать в СОРМ"; изменения названия и включение/исключение ведутся через историю | |
Справочник SUPPLEMENTARY_SERVICE: экспортёры выгружают полную историю периодов (включая исключённые сервисы с закрытым END_TIME) | |
Справочник SUPPLEMENTARY_SERVICE: устранено появление пустых строк в выгрузках (версии history без названия/описания больше не формируются и не выгружаются) | |
Справочник SUPPLEMENTARY_SERVICE: исключение услуги (снятие флага Abon) теперь закрывает период в history без создания нулевой версии BEGIN_TIME=END_TIME | |
Справочник SUPPLEMENTARY_SERVICE: добавлено самовосстановление окончания периода для исключённых услуг (DELETED=1) — END_TIME больше не остаётся "в будущем" | |
Сетевые словари (ip_plan/gateways/commutators): исправлено закрытие истории при исключении из выгрузки — больше не создаётся "удалённая" версия с END_TIME=global_ended, из-за чего выключенные записи выглядели актуальными до 2054 | |
Сетевые словари (commutators): исправлен отбор — коммутаторы определяются только по флагу nas.sorm_commutator_export (без ошибочной привязки к IP-пулам), чтобы не происходило массовое ложное исключение из выгрузки | |
Сетевые словари (gateways): добавлена самовосстанавливающая логика закрытия "вечных" версий в history для уже удалённых записей (устраняет ситуацию, когда выключенный шлюз остаётся актуальным до 2049/2054) | |
Сетевые словари (gateways): инкрементальная синхронизация теперь учитывает SOURCE_NAS_ID при сравнении записей (исправляет ситуацию, когда в витрине "IP шлюзов" NAS ID оставался пустым и создавал ложное впечатление источника из ippools) | |
Сетевые словари (ip_plan): добавлена самовосстанавливающая логика закрытия "вечных" версий в history для уже удалённых записей (устраняет ситуацию, когда выключенная подсеть остаётся актуальной до 2049/2054 после CLEAN_EXPORT) | |
Экспортёры: для всех справочников добавлена защита от "нулевых" версий (BEGIN_TIME=END_TIME / actual_from=actual_to), чтобы не появлялись дубль-строки в выгрузке | |
Интерфейс справочников: добавлена вкладка "Виды оплат" (PAY_TYPE) с отображением всей истории периодов актуальности по данным sorm_pay_types | |
Интерфейс справочников: унифицированы колонки периодов для словарей (Начало действия / Дата окончания / Дата исключения) | |
Интерфейс справочников: вкладка "Шлюзы" дополнены NAS ID в биллинге, чтобы не путать IP шлюза (устройства) с gateway IP-пула | |
Интерфейс справочников: добавлена отдельная диагностическая вкладка "Шлюзы IP-пулов" (ippools.gateway), чтобы не путать gateway пула и IP шлюза/сервера доступа из NAS | |
Интерфейс справочников: (ip_plan/gateways/commutators): "Дата исключения" берётся из history (реальная дата закрытия), не отображается как "конец времени" 2049/2054 | |
Интерфейс справочников: вкладка "Сервисы" (SUPPLEMENTARY_SERVICE) переведена в чисто информационный режим (без ручной синхронизации/удаления) | |
Добавлен "Быстрый отчёт": Unisorm:unisorm_quick_report (одна сводная плашка за сегодня: абоненты/юрлица/платежи/коммутаторы/шлюзы/IP план/сервисы...) | |
Система | "Виды оплат": добавлена колонка "Код типа платежа СОРМ" (payments_type.payment_kind_code) в табличной части |
Доп.Услуги (Abon) | Тарифные планы: добавлен флаг "Выгружать услугу в СОРМ" (abon_tariffs.sorm_export) для управления попаданием тарифа в справочник SUPPLEMENTARY_SERVICE |
Тарифные планы: восстановлена подсветка кнопки сохранения блока (кнопка становится "жёлтой" при наличии несохранённых изменений полей) | |
Paysys | Удалён быстрый отчёт Paysys:paysys_uah_exchange_rates (курс НБУ) |
Быстрые отчёты: Paysys:paysys_kgs_exchange_rates заменён и переименован на Paysys:paysys_cbr_exchange_rates (курс ЦБ РФ, базовая валюта RUB) | |
Курс валют ЦБ РФ выводит "Покупка" и "Продажа" (расчёт через настраиваемый спред PAYSYS_CBR_SPREAD_PCT, по умолчанию 0%) | |
В отчёте курса ЦБ РФ суммы выводятся с символом рубля (₽), в заголовке отчёта показывается текущий спред (±PAYSYS_CBR_SPREAD_PCT%) | |
В настройках Paysys -> "Банковские реквизиты" добавлен параметр спреда (PAYSYS_CBR_SPREAD_PCT) для расчёта "Покупка/Продажа" в отчёте курса ЦБ РФ (по умолчанию 0%) | |
Профиль администратора | Быстрые отчёты сохраняются AJAX-режимом поштучно (изменение одного чекбокса не перезаписывает остальные настройки профиля) |
Equipment | Исправлен быстрый отчёт Equipment:equipment_unreg_report — подгрузка моделей перенесена на Equipment::Models::* |
11.08.2026 (Версия биллинга - 'RU 26.08.11')
| Наименование модуля | Список изменений/исправлений/добавлений |
|---|---|
Справочники: устранено, возникающее в редчайших случаях, задвоение строк при CLEAN_EXPORT | |
Neo-s: dict-ip-numbering-plans пропускает “пустые” строки history (без сети/маски/описания), чтобы не попадали строки только с датами | |
Компании | Секция договора: AJAX-кнопка "Сохранить" работает в карточке компании через основной user_pi.js (без отдельного company-contract.js) |
DaData | Селекторы подсказок (код подразделения/ИНН/БИК): улучшена кликабельность и поведение списка |
ACP | Misc: form_purchase_module/_error_show/_message_show отправляют отчёт на support@ktk-39.ru (1 письмо / 10 минут) через стандартный Sender, с системной информацией в теле письма |
10.08.2026 (Версия биллинга - 'RU 26.08.10')
| Наименование модуля | Список изменений/исправлений/добавлений |
|---|---|
Журнал выгрузок: увеличен период хранения записей запусков/файлов/логов до 7 дней | |
Журнал выгрузок: добавлено восстановление списка файлов из каталога выгрузок, если записи журнала были очищены | |
Предпросмотр выгрузок: исправлено распознавание разделителя (TSV не ломается из-за запятых внутри JSON) и улучшена “гуманизация” JSON для Neo-s (логины/телефоны/адреса) | |
Ядро Unisorm: добавлена нормализация строк после mapper (undef → ''), чтобы REPLACE/INSERT не падали на NOT NULL полях (в т.ч. Specteh на IDENT_CARD_*) | |
Specteh: в выгрузке PAYMENTS поле ACCOUNT очищается (устаревшее поле, не заполняется) | |
Internet Мониторинг | Системные чекбоксы и массовые действия ZAP/HANGUP для online-сессий Параметр в вебинтерфейсе: Настройка>Системные настройки>Настройки ядра>Авторизация абонентов в сети Интернет>Общие настройки>Контроль Сессий> Разрешить массовый HangUp/ZAP сессий в мониторинге Интернет Параметр конфига: $conf{INTERNET_MONITORING_BULK_ACTIONS}=1;
|
Массовый HANGUP ускорен (убран sleep 3 на каждую сессию, добавлен кэш NAS->info по NAS_ID, приведён вызов hangup, для массового режима уменьшен RADIUS timeout) | |
Equipment | C-data/QTECH: "Показать/Исправить конфигурацию ONU" использует учетные данные через ACP::Nas::Auth, что устраняет telnet-таймауты из-за неверной авторизации и работу при передаче NAS-параметров без NAS_INFO |
ACP::Telnet: расширены шаблоны приглашений Login/Password (в т.ч. "Password(1-16 chars):") | |
ACP::Telnet: добавлена поддержка pager-подсказок ("press ENTER to next line..."), чтобы вывод профиля не зависал | |
"Показать/Исправить конфигурацию ONU" отображается в том же блоке (AJAX), без перехода на отдельную страницу | |
| |
09.08.2026 (Версия биллинга - 'RU 26.08.09')
| Наименование модуля | Список изменений/исправлений/добавлений |
|---|---|
В "Журнале выгрузок" отображение на экране переведено на последние 7 дней без ограничения полной истории | |
Добавлены подвкладки по типам выгружаемых справочников и просмотр содержимого сформированных файлов | |
Для всех экспортёров исправлена выгрузка supplementary services: в файл попадают только разрешённые в текущем списке сервисы при сохранении полной истории | |
Карточка абонента | Исправлена подмена списка IPTV-тарифов на Internet при смене тарифа через меню "Сервисы" в карточке абонента (JS-монитор обновлял не тот селектор TP_ID) ======== ОБЯЗАТЕЛЬНО ЧИСТКА КЕШ/КУКИЕС!!! ========= |
| |
06.08.2026 (Версия биллинга - 'RU 26.08.06')
| Наименование модуля | Список изменений/исправлений/добавлений |
|---|---|
Добавлен период охлаждения 24 часа для выгрузки IP-плана, шлюзов и коммутаторов | |
Справочник IP-плана теперь заполняется автоматически с привязкой к исходным IP pools | |
Справочник шлюзов теперь заполняется автоматически с привязкой к исходным серверам доступа | |
Справочник коммутаторов теперь заполняется автоматически с привязкой к исходным серверам доступа | |
Исправлена полная очистка справочника типов платежей при DESTROY_ALL_HISTORY=1 | |
В журнале выгрузок скрыт технический шум и исправлен вывод дат | |
Во вкладке явных ошибок исключены отключенные и удалённые абоненты | |
Вкладка IP-плана перенесена сразу после вкладки коммутаторов | |
Обновление вызывает внеочередную выгрузку технических словарей | |
Карточка абонента | Исправлена загрузка JS в карточке абонента при переходах из списков и быстрых отчётов ======== ОБЯЗАТЕЛЬНО ЧИСТКА КЕШ/КУКИЕС!!! ========= |
Equipment | Исправлена фатальная ошибка при некорректной структуре PON_LEVELS_ALERT |
Сервера доступа | Исправлено сохранение переключателей выгрузки СОРМ в карточке NAS |
Storage | Исправлен запуск storage_serial_info.pl из разных каталогов и чтение config.pl |
| |
04.08.2026 (Версия биллинга - 'RU 26.08.04')
| Наименование модуля | Список изменений/исправлений/добавлений |
|---|---|
backup | Исправлено создание бекапа, теперь таблицы сорма попадают в бекап и не ломаются |
СОРМ - Unisorm | Исправлена проверка на дату регистрации абонента, теперь такие абоненты являются ошибочными |
Усилине проверка на нулевую дату договора | |
Добавлена локализация ошибок НЕ выгрузки абонента | |
Добавлен "Журнал выгрузок" в СОРМ (данные за последние 3 дня, для анализа) | |
03.08.2026 (Версия биллинга - 'RU 26.08.03')
| Наименование модуля | Список изменений/исправлений/добавлений |
|---|---|
billd как сервис | Исправлено определение локера для pid файлов |
СОРМ - Unisorm | Улучшено описание в консоли при запуске HELP=1 |
Теперь правильно определяет ответ на не правильный аргумент | |
Спецтехнологии, исправлено "Выгружать в будущее" | |
01.08.2026 (Версия биллинга - 'RU 26.08.01')
| Наименование модуля | Список изменений/исправлений/добавлений |
|---|---|
Склад | Исправлено списание, когда установка оборудования срывалась |
Добавлен консольный плагин поиска проблемных партий/серийников/установок | |
Equipment | QTECH - Добавлен возможность получить/исправить профиль onu |
СОРМ - Unisorm | Добавлен параметр отключения создания tar.gz при создании архива |
Добавлен параметр времени периодического сбора для демона billd | |
Добавлен параметр автоматической выгрузки на FTP/SFTP по заданному времени | |
Исправлена выгрузка abonents для вендора Neo-s | |
Исправлена дата в выгрузках Спецтехнологий | |
Переработана архивация выгрузок | |
Переработана отправка выгрузок | |
Исправлена ошибка zero column ipv6 для некоторых вендоров | |
| |