Skip to content

About

Мониторинг, аудит лицензий 1С / СЛК 3.0+ и автоматическое завершение зависших и спящих сеансов 1С:Предприятие 8.3/8.5 через 1C RAS/RAC без устаревшего COMConnector. Включает GUI (WPF) и фоновую службу Windows на .NET 10.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

1С: Session Monitor (.NET 10 / C# 14) v1.5.2

Высокопроизводительный корпоративный программный комплекс нового поколения для мониторинга, глубокой аналитики, аудита лицензий СЛК / 1С и автоматического завершения спящих и зависших сеансов.

Поддерживает платформы 1С:Предприятие 8.3 и 8.5 (а также любые версии с сервером администрирования 1С RAS).


⚡ Ключевые возможности и архитектура

  • 100% отказ от устаревшей технологии COM (comcntr.dll / V83.COMConnector): прямое взаимодействие по протоколу 1С RAS (Remote Administration Server) через утилиту rac.exe с авто-поиском и кэшированием кластеров.
  • Отказоустойчивое автоопределение rac.exe (v1.4.0):
    • Автоматическая валидация целостности платформы: поиск исполняемого файла rac.exe с обязательной проверкой наличия core83.dll в каталоге установки.
    • Исключение вызовов неполных установок (например, неполный Тонкий клиент) с автопереключением на исправную рабочую версию.
    • Изоляция рабочего каталога (WorkingDirectory) и инъекция путей в системный PATH дочернего процесса.
    • Подавление блокирующих модальных окон Windows (STATUS_DLL_NOT_FOUND / 0xC0000135) через SetErrorMode.
    • Кнопка «Обзор...» в GUI для ручного выбора пути к rac.exe.
  • Новое в v1.5.0:
    • Несколько серверов: в настройках GUI можно добавить дополнительные серверы RAS (хост или хост:порт), в appsettings.json — список AdditionalServers. Учётные данные администратора кластера у всех серверов общие.
    • Очистка по расписанию: раз в N минут или часов либо ежедневно в указанное время (ScheduleEnabled, ScheduleMode, ScheduleIntervalValue, ScheduleIntervalUnit, ScheduleDailyTime). Работает и в GUI, и в службе.
    • Автообновление GUI из GitHub Releases: проверка при запуске (AutoUpdateEnabled) и по щелчку на номере версии. Файлы appsettings.json и gui_state.json при обновлении не заменяются.
    • Исправлено завершение сеансов: в rac session terminate передаётся UUID сеанса, а не его номер (ошибка «Ошибка разбора параметра: session»). Сбой на одном сеансе больше не прерывает завершение остальных.
  • Новое в v1.5.2:
    • Автообновление на странице мониторинга: список сеансов, счётчики и лицензии СЛК перечитываются с серверов раз в N секунд (флажок «Автообновление, сек» рядом с Dry-Run, по умолчанию 60, от 10 до 86400). Выделение и прокрутка таблицы сохраняются; если опрос не удался, на экране остаются прежние данные. Пока идёт очистка или завершение сеансов, обновление пропускается. Флажок и интервал хранятся в gui_state.json.
  • Полная поддержка версий 1С: совместимость с 1С:Предприятие 8.3 и 8.5.
  • Интеграция с СЛК 3.0+ (1C:СЛК): автоматический опрос веб-консоли сервера лицензирования, подсчет занятых/доступных ключей, исключение неактивных серий и выявление пользователей с отраслевыми лицензиями (ERP, WMS, CRM, Итилиум и др.).
  • Две редакции поставки:
    1. GUI Приложение (OneSSessionMonitor.Gui): современный операторский центр управления в темной теме (WPF, .NET 10, C# 14).
    2. Системная служба (OneSSessionMonitor.Service): автономный отказоустойчивый Windows / Linux daemon (Worker Service) с автоочисткой по расписанию и структурированным логированием Serilog.
  • Интеллектуальная фильтрация и диагностика:
    • Распознавание зависших сеансов по длительности блокировок СУБД (blocked-by-dbms) и вызовов сервера (call-duration-total).
    • Распознавание спящих сеансов (hibernate = yes) с точным расчетом времени сна.
    • Белые списки пользователей, баз данных и типов приложений (гарантированная защита сеансов Конфигуратора 1С Designer, регламентных заданий и администраторов).
    • Быстрый поиск, фильтрация по базам, клиентам (1CV8C, 1CV8, WebClient, Designer), чипы статусов (Все, Спящие, Зависшие, Активные, СЛК).
  • Экспорт данных: выгрузка в Microsoft Excel (.xlsx) и JSON / JSONL.
  • Безопасный режим (Dry-Run): тестирование политик очистки без реального разрыва связи.

🎨 Интерфейс GUI

  • Темный дизайн (Carbon / Shadcn Dark) с акцентной янтарной и изумрудной индикацией.
  • Сортировка по всем колонкам: индикация направления сортировки (▲ / ▼), оранжевая подсветка активного столбца, числовая сортировка по ОЗУ (RAM), времени неактивности, нагрузке ЦП и датам.
  • Встроенная консоль RAC-диагностики: вывод всех вызовов rac.exe, кодов возврата и ошибок 1С в реальном времени.
  • Индикатор версии в правом нижнем углу: бейдж версии v1.5.2 и даты сборки; щелчок по нему проверяет обновления.
  • Горячие клавиши:
    • F5 / Ctrl+R — принудительное обновление сеансов.
    • Del / Delete — завершение выбранного сеанса с подтверждением.
    • Escape — сброс поисковых фильтров.
    • Ctrl+E — экспорт в Excel.

⚙️ Конфигурация (appsettings.json)

{
  "SessionMonitor": {
    "Server": "localhost:1545",
    "AdditionalServers": [],
    "RacPath": null,
    "ClusterAdminUser": null,
    "ClusterAdminPassword": null,
    "SlkServerEndpoint": "localhost:9099",
    "SlkUser": null,
    "SlkPassword": null,
    "OnlyHibernate": true,
    "MinHibernateMinutes": 90,
    "CleanFrozenSessions": true,
    "MaxDbProcMinutes": 40,
    "MaxCallDurationMinutes": 30,
    "ExcludedUsers": [
      "Administrator",
      "Администратор",
      "DefUser",
      "ServiceExchange",
      "ФоновыйОбмен"
    ],
    "ExcludedInfoBases": [],
    "ExcludedAppIds": [
      "Designer"
    ],
    "TargetAppIds": [],
    "InfoBasePattern": null,
    "UserNamePattern": null,
    "IntervalSeconds": 60,
    "DryRun": false,
    "ScheduleEnabled": false,
    "ScheduleMode": "Interval",
    "ScheduleIntervalValue": 60,
    "ScheduleIntervalUnit": "Minutes",
    "ScheduleDailyTime": "03:00",
    "AutoUpdateEnabled": true
  }
}

🚀 Сборка проекта

Для сборки и прогона тестов выполните:

.\build.ps1

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

  1. Выполнит компиляцию всех проектов в конфигурации Release (.NET 10).
  2. Запустит автоматические модульные тесты xUnit.
  3. Сформирует готовые релизные пакеты:
    • publish\Gui — графическое приложение.
    • publish\Service — служба Windows с командными скриптами управления.
    • publish\OneSSessionMonitor-Gui-<версия>-win-x64.zip — архив GUI для GitHub Releases.

Чтобы автообновление GUI находило новую версию, опубликуйте релиз с тегом вида v1.5.0 и приложите к нему этот архив.


🛠️ Установка и управление службой Windows

В каталоге publish\Service:

  • Установка и запуск службы:
    .\INSTALL_SERVICE.ps1
  • Удаление службы:
    .\UNINSTALL_SERVICE.ps1
  • Перезапуск и обновление службы:
    .\UPDATE_SERVICE.ps1

📄 Лицензия

MIT License. Свободное использование в коммерческих и корпоративных проектах.

About

Мониторинг, аудит лицензий 1С / СЛК 3.0+ и автоматическое завершение зависших и спящих сеансов 1С:Предприятие 8.3/8.5 через 1C RAS/RAC без устаревшего COMConnector. Включает GUI (WPF) и фоновую службу Windows на .NET 10.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages