К статье
Практический материал

Администрирование · 10 мин

Как определить компьютер в 1С

Как определить компьютер в 1С: узнать имя ПК, серийный номер оборудования, привязку программной лицензии и данные рабочего места через конфигуратор и ОС.

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

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

Ниже разобраны все основные способы: через интерфейс 1С, консоль кластера, средства Windows и встроенный язык. Отдельно рассмотрено, какие именно параметры оборудования участвуют в привязке лицензии и как проверить, что компьютер определён корректно.

Как узнать имя компьютера через консоль кластера 1С

Если 1С работает в клиент-серверном режиме, самый быстрый способ определить, с какого компьютера идёт работа, — консоль администрирования кластера. Откройте оснастку «Администрирование серверов 1С:Предприятия», раскройте нужный кластер, затем ветку «Сеансы». В таблице для каждого сеанса отображается колонка «Компьютер» — это сетевое имя машины, с которой установлено соединение.

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

Учтите ограничение: консоль кластера показывает сеансы только серверных баз. Для файловых баз список активных пользователей смотрите в самой программе: раздел «Администрирование» → «Обслуживание» → «Активные пользователи» (в типовых конфигурациях). Там отображается имя компьютера и режим работы каждого подключённого пользователя.

Как найти компьютер по сеансу
  1. 1
    Откройте консоль «Администрирование серверов 1С:Предприятия»
  2. 2
    Раскройте кластер и перейдите в раздел «Сеансы»
  3. 3
    Найдите нужного пользователя и посмотрите колонку «Компьютер»
  4. 4
    При необходимости завершите зависший сеанс через контекстное меню
  5. 5
    Для файловой базы откройте «Администрирование» → «Активные пользователи» в самой 1С

Определение компьютера в журнале регистрации

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

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

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

Программное определение компьютера во встроенном языке

Для разработчиков платформа предоставляет готовые функции. Глобальный метод ИмяКомпьютера() возвращает сетевое имя машины, на которой выполняется код. Помните о контексте исполнения: если вызвать функцию на сервере (в серверной процедуре или модуле), получите имя сервера 1С, а если на клиенте — имя рабочей станции пользователя.

Дополнительные данные о рабочем месте даёт объект СистемнаяИнформация: версия ОС, тип платформы, объём оперативной памяти, информация о процессоре. Это удобно для диагностики: например, записать в лог характеристики машины, на которой возникла ошибка.

bsl
// На клиенте — имя рабочей станции, на сервере — имя сервера
ИмяПК = ИмяКомпьютера();

СисИнфо = Новый СистемнаяИнформация;
Сообщить("ОС: " + СисИнфо.ВерсияОС);
Сообщить("ОЗУ, МБ: " + СисИнфо.ОперативнаяПамять);
Сообщить("Процессор: " + СисИнфо.Процессор);

Типовой сценарий — разграничение поведения по компьютеру: например, печать на конкретный принтер только с определённой кассы или запрет запуска обработки на чужих машинах. Реализуется сравнением ИмяКомпьютера() со списком разрешённых имён, который хранят в константе или регистре сведений.

Какие параметры оборудования определяют компьютер для лицензии 1С

Программная лицензия 1С привязывается к набору аппаратных и программных параметров компьютера: версии операционной системы, имени компьютера (при установке на Windows — учитывается), серийным номерам материнской платы, жёсткого диска, сетевых адаптеров, объёму оперативной памяти и параметрам процессора. Точный перечень зависит от версии платформы и типа лицензии, но принцип один: система защиты формирует «слепок» конфигурации и сверяет его при каждом запуске.

Посмотреть, к каким параметрам привязана активированная лицензия, можно в файле лицензии (файлы с расширением .lic в каталоге conf или в общей папке лицензий) — он открывается текстовым редактором, и в нём перечислены ключевые параметры в читаемом виде. Также базовая информация о лицензии отображается в диалоге «О программе» в клиентском приложении.

Практическое следствие: замена материнской платы, жёсткого диска, переустановка Windows или смена имени компьютера могут привести к тому, что лицензия перестанет распознаваться. Поэтому перед апгрейдом оборудования или переустановкой ОС стоит заранее сохранить резервные пин-коды и понимать, какие параметры изменятся.

Определение серийного номера и оборудования ПК средствами Windows

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

cmd
wmic bios get serialnumber
wmic baseboard get serialnumber,manufacturer
wmic diskdrive get model,serialnumber
wmic csproduct get name,uuid

Первая команда возвращает серийный номер BIOS, вторая — производителя и серийный номер материнской платы, третья — модели и серийные номера дисков, четвёртая — модель компьютера и UUID. Именно эти компоненты чаще всего участвуют в привязке лицензий и аппаратной идентификации.

Имя компьютера в Windows определяется командой hostname или через «Параметры» → «Система» → «О системе». Полную аппаратную сводку даёт утилита msinfo32 — запустите её через «Выполнить» (Win+R). Эти данные полезно зафиксировать в момент активации лицензии, чтобы потом было с чем сравнивать.

Имя компьютера в сеансеПоказывает рабочую станцию пользователя

Консоль кластера, раздел «Сеансы», колонка «Компьютер»

Сервер в журнале регистрацииСобытие выполнялось на сервере 1С

Для клиентского ПК ищите события аутентификации

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

Сравнить текущие серийные номера с данными в .lic-файле

ИмяКомпьютера() вернуло серверКод выполняется в серверном контексте

Перенести вызов в клиентскую процедуру

Проверка результата и типичные ошибки

После того как вы определили компьютер любым из способов, проверьте результат перекрёстно. Сопоставьте имя из консоли кластера с фактическим именем на самой машине (команда hostname). Если имена не совпадают — возможно, в сети настроены псевдонимы, либо пользователь работает через терминальный сервер, и тогда в сеансах будет виден сервер терминалов, а не его личный ПК.

При работе с лицензией критерий правильности один: платформа запускается без сообщения «Лицензия не обнаружена», а в файле .lic параметры соответствуют реальному оборудованию. Если планируете перенос лицензии на другой ПК, сначала активируйте её на новом месте резервным пин-кодом и только потом выводите старый компьютер из эксплуатации.

Типичные ошибки
01
Сравнение имени компьютера в коде без учёта регистра и доменного суффикса — приводит к ложным несовпадениям
02
Попытка определить клиентский ПК по серверным событиям журнала регистрации — там всегда будет сервер
03
Переустановка Windows или замена диска без проверки резервных пин-кодов — потеря программной лицензии
04
Использование ИмяКомпьютера() в серверном модуле для идентификации пользователя — возвращается имя сервера

Частые вопросы

Можно ли определить IP-адрес компьютера, а не только имя?

Да. В консоли кластера в свойствах сеанса виден сетевой адрес клиента. Программно IP клиента можно получить через объект описания соединения в кластере или средствами ОС (команда ipconfig на самой машине). В журнале регистрации сетевой адрес фиксируется в событиях сеанса.

Почему после смены имени компьютера слетела лицензия 1С?

Имя компьютера входит в набор параметров привязки программной лицензии на Windows. После переименования платформа не находит совпадения и сообщает об отсутствии лицензии. Решение — активировать лицензию заново резервным пин-кодом либо вернуть прежнее имя компьютера.

Как узнать, с какого компьютера изменили документ?

Откройте журнал регистрации, установите отбор по типу события изменения данных и по нужному объекту. В деталях события будут пользователь и компьютер. Учтите: в клиент-серверном режиме для проведения на сервере в поле «Компьютер» может стоять сервер кластера — тогда ориентируйтесь на пользователя и время.

Чем USB-ключ HASP отличается от программной лицензии в плане привязки к ПК?

Аппаратный ключ HASP не привязан к параметрам компьютера: лицензия работает на любой машине, куда вставлен ключ (или где развёрнут сервер лицензирования с этим ключом). Программная лицензия привязана к оборудованию конкретного ПК и слетает при его существенном изменении.

Как определить компьютер, если пользователи работают через терминальный сервер?

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

Где хранится файл программной лицензии 1С?

Обычно в каталоге conf внутри папки установки платформы либо в общем каталоге лицензий профиля (например, в ProgramData для многопользовательских лицензий). Точное расположение зависит от варианта установки; найти файлы можно поиском по расширению .lic.

Итог

Что важно запомнить

Имя компьютера сеанса смотрите в консоли кластера или списке активных пользователей, программно — через ИмяКомпьютера() с учётом контекста исполнения. Программная лицензия привязана к оборудованию: перед апгрейдом ПК проверяйте резервные пин-коды. Для аппаратной идентификации используйте серийные номера BIOS, платы и дисков через wmic.