Ситуация, когда сотрудник не может запустить 1С:Предприятие из-за сообщения «Все лицензии заняты», является одной из самых распространенных проблем в администрировании. Это вызывает простои в работе бухгалтерии или отдела продаж, что напрямую влияет на бизнес-процессы. Однако определить, кто именно удерживает критический ресурс, не всегда очевидно, особенно в больших организациях с десятками пользователей.

Существует несколько эффективных способов диагностики, начиная от встроенных средств платформы и заканчивая сторонними утилитами. Выбор метода зависит от конфигурации вашего сервера, версии платформы 1С:Предприятие 8 и уровня доступа администратора. В некоторых случаях достаточно посмотреть журнал регистрации, а в других потребуется анализ процессов на уровне операционной системы.

В этой статье мы разберем инструменты, которые позволяют не только увидеть список активных сессий, но и понять, сколько времени конкретный пользователь занимает лицензию. Это поможет вам оптимизировать работу парка лицензий и избежать лишних закупок.

Анализ через журнал регистрации сервера 1С

Самый надежный и детализированный способ получить информацию о подключенных пользователях — это анализ журнала регистрации кластера серверов. Этот инструмент фиксирует все события, связанные с началом и завершением сеансов. Для доступа к данным необходимо войти в консоль администрирования серверов 1С на машине, где установлен сервис ragent.

Откройте оснастку MMC или воспользуйтесь утилитой ras для вывода списка сессий. В графическом интерфейсе перейдите в свойства кластера и выберите вкладку «Сеансы». Здесь отображается таблица, содержащая имена пользователей, названия баз данных и время начала работы. Обратите внимание на колонку «Приложение», которая покажет, в каком режиме (Тонкий клиент, Веб-клиент или Конфигуратор) работает сотрудник.

Если вы используете командную строку, то команда для получения списка активных сессий будет выглядеть следующим образом:

ras cluster list sessions --cluster=UUID_кластера

Где UUID_кластера — это уникальный идентификатор вашего кластера серверов. Результат выполнения команды выдаст структурированный список, который удобно фильтровать.

⚠️ Внимание: Журнал регистрации может иметь ограничения по объему хранимых данных в зависимости от настроек ротации логов. Если событие подключения произошло давно, информация о нем могла быть уже перезаписана новыми записями.

Для глубокого анализа рекомендуется выгрузить данные в текстовый файл или CSV, чтобы отсортировать их по времени начала сеанса. Это позволит выявить пользователей, которые запустили 1С утром и забыли закрыть её, уходя на обед или домой.

💡

Настройте автоматическую очистку журнала регистрации, оставив хранение записей на 7-14 дней. Это обеспечит баланс между занимаемым местом на диске и возможностью ретроспективного анализа инцидентов.

Использование утилиты rmngr для мониторинга

Утилита rmngr (License Manager) является штатным средством управления лицензиями, входящим в комплект поставки сервера 1С. Она предоставляет более специализированный взгляд на распределение ключей защиты, чем общий список сессий. Запуск утилиты осуществляется из командной строки с правами администратора.

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

  • 🔍 Сетевые лицензии: показывают подключения по сети, где ключ находится на сервере защиты или в файле лицензии.
  • 💻 Локальные лицензии: отображают ключи, привязанные к конкретному рабочему месту (USB-ключ или программная лицензия на ПК).
  • ⏱️ Время удержания: утилита может демонстрировать, как долго сессия активна, что помогает выявить «спящих» пользователей.

Если у вас используется HASP-ключ, утилита взаимодействует с сервисом защиты HASP License Manager. В выводных данных вы увидите идентификаторы ключей и привязку к IP-адресам клиентов. Это особенно полезно в распределенных сетях, где пользователи подключаются из разных филиалов.

📊 Где у вас расположены лицензии 1С?
На сервере (сетевые)
На флешке у бухгалтера (локальные)
В облаке (аренда)
Не знаю

Важно учитывать, что вывод информации в rmngr происходит в реальном времени. Если пользователь только что запустил базу, запись появится с небольшой задержкой. Для автоматизации мониторинга можно написать скрипт, который периодически опрашивает утилиту и отправляет уведомление, если количество свободных лицензий падает ниже критического уровня.

Проверка активных процессов на сервере

Иногда программные средства 1С не отображают корректную информацию из-за рассинхронизации состояния кластера. В таких случаях администратору приходится спускаться на уровень операционной системы. Этот метод требует доступа к серверу по RDP или через терминал.

На сервере под управлением Windows откройте Диспетчер задач и перейдите на вкладку «Подробности». Вам необходимо искать процессы с именем rphost.exe. Каждый такой процесс соответствует одному активному рабочему процессу 1С, который обслуживает запросы пользователей. Количество запущенных rphost часто коррелирует с количеством занятых лицензий, хотя один процесс может обслуживать несколько сеансов в зависимости от настроек кластера.

Для Linux-серверов аналогом будет использование команды в терминале:

ps aux | grep rphost

Эта команда выведет список всех запущенных процессов rphost, указывая пользователя, от имени которого они запущены, и потребление ресурсов (CPU, RAM). Сопоставив время запуска процесса с временем начала работы сотрудников, можно косвенно определить, кто занимает ресурсы.

Параметр Описание Где смотреть
Имя процесса Исполняемый файл рабочего процесса Диспетчер задач / ps
PID Идентификатор процесса в ОС Вторая колонка вывода
Пользователь Учетная запись, запустившая процесс Колонка User / Имя пользователя
Память Объем оперативной памяти, занятой процессом Колонка Memory / % MEM

Если вы видите процесс, который висит уже несколько дней и потребляет мало ресурсов, скорее всего, это «висящая» сессия. В таком случае может потребоваться принудительное завершение процесса, но делать это нужно осторожно, предварительно попытавшись связаться с пользователем.

Риски завершения процессов

Принудительное убийство процесса rphost.exe может привести к потере несохраненных данных пользователем и повреждению таблиц временных хранилищ. Используйте этот метод только в крайних случаях.

Анализ подключений через консоль администрирования

Консоль администрирования серверов 1С предоставляет мощный графический интерфейс для управления кластером. Здесь можно не только просматривать, но и управлять активными соединениями. Запустите консоль (ярлык обычно находится в меню Пуск в группе 1С Предприятие) и подключитесь к локальному или удаленному кластеру.

В дереве объектов раскройте узел вашего кластера, затем «Информационные базы». Выбрав нужную базу, перейдите на вкладку «Сеансы». Здесь представлена таблица в более читаемом виде, чем в журнале регистрации. Вы можете увидеть имя компьютера клиента, IP-адрес и название приложения.

Особое внимание стоит уделить колонке «Блокировки». Если сеанс удерживает монопольные блокировки на таблицах или документах в течение длительного времени, это явный признак проблемной сессии. Такие пользователи часто мешают проведению документов другим сотрудникам, даже если формально лицензия им нужна для простой работы.

⚠️ Внимание: Интерфейс консоли администрирования может отличаться в разных версиях платформы 1С. В новых версиях (8.3.20+) некоторые функции управления перенесены в веб-интерфейс или утилиты командной строки.

Из контекстного меню сеанса можно выбрать действие «Завершить». Это корректный способ разорвать соединение, который отправляет сигнал клиентскому приложению о закрытии. В отличие от убийства процесса в диспетчере задач, этот метод позволяет платформе корректно освободить лицензию и закрыть соединения с СУБД.

💡

Использование консоли администрирования — самый безопасный способ разорвать сессию, так как платформа выполняет процедуры корректного отключения и сохранения временных данных.

Определение пользователей через таблицу блокировок в базе данных

В случаях, когда сервер 1С недоступен или инструменты администрирования не дают полной картины, можно обратиться напрямую к базе данных (MS SQL, PostgreSQL). Этот метод требует знаний SQL и осторожности, так как прямое вмешательство в служебные таблицы не поддерживается фирмой 1С.

Тем не менее, для чтения информации о сеансах это допустимый метод. В MS SQL информация о сеансах 1С хранится в системной таблице _Session (имя может отличаться в зависимости от версии платформы и типа СУБД). Выполнение запроса позволит получить список активных подключений:

SELECT _UserRef, _Computer, _StartedAt FROM _Session WHERE _Closed = 0

Результат запроса покажет ссылки на пользователей и время начала сессии. Чтобы получить читаемые имена пользователей, потребуется сделать соединение (JOIN) со справочником пользователей. Этот способ хорош тем, что он показывает реальную картину с точки зрения базы данных, игнорируя кэш кластера серверов.

  • 🗄️ Прямой доступ: позволяет увидеть сессии, даже если сервис 1С завис.
  • 📊 Аналитика: можно написать сложный запрос для выявления пользователей, занимающих лицензии дольше норматива.
  • ⚠️ Риск: нельзя изменять данные в этих таблицах напрямую, только читать.

Помните, что структура служебных таблиц может меняться при обновлении платформы. То, что работало в версии 8.3.15, может не сработать в 8.3.23. Всегда проверяйте актуальность имен таблиц в документации к конкретной версии СУБД и платформы.

Автоматизация контроля и освобождения лицензий

Ручная проверка каждый раз, когда кто-то жалуется на занятость лицензий, неэффективна. Для крупных компаний целесообразно внедрить систему автоматического мониторинга. Это может быть простой скрипт на PowerShell или Bash, который запускается по расписанию.

Скрипт может использовать утилиту rmngr или парсить вывод команды ras. Если количество свободных лицензий опускается до единицы, скрипт отправляет письмо администратору или сообщение в корпоративный чат (Telegram, Slack) со списком тех, кто сейчас в системе. Это позволяет быстро выявить нарушителя регламента.

Более продвинутый сценарий предполагает автоматическое завершение «спящих» сессий. Если скрипт, что пользователь не совершал действий (нет записей в журнале регистрации о его активности) более 2 часов, он может автоматически разорвать соединение. Однако такую функцию нужно внедрять с большой осторожностью и предупреждением пользователей.

☑️ План внедрения мониторинга

Выполнено: 0 / 5

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

Часто задаваемые вопросы (FAQ)

Почему лицензия не освобождается сразу после закрытия окна 1С?

Это может происходить из-за некорректного завершения работы клиентского приложения (сбой питания, зависание ОС). В этом случае сервер 1С ждет тайм-аута (обычно несколько минут), чтобы убедиться, что соединение действительно разорвано, прежде чем вернуть лицензию в пул.

Может ли один пользователь занимать несколько лицензий?

Да, если пользователь запустил несколько окон 1С на разных компьютерах или открыл несколько сеансов в одном клиенте (например, два разных окна «Тонкого клиента»). Каждое активное соединение с сервером требует отдельной лицензии.

Как отличить лицензию 1С:Предприятие от лицензии 1С:Конфигуратор?

В журнале регистрации и утилите rmngr указан режим запуска. Лицензия «Конфигуратор» требуется только при работе в режиме отладки или изменения конфигурации. Обычная работа в режиме «Предприятие» использует клиентскую лицензию. Они учитываются раздельно в лимитах.

Что делать, если в списке сессий пользователь не отображается, но лицензия занята?

Скорее всего, это «призрачная» сессия на уровне сервиса защиты HASP или рассинхронизация кластера. Попробуйте перезапустить службу сервера 1С (агент) или службу HASP License Manager. В крайнем случае поможет перезагрузка сервера.