Кто я и кто ещё в базе: где найти имя пользователя 1С

· 9 мин

Содержание

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

Если нужно узнать, кто ещё сидит в базе, способ зависит от задачи. Для быстрой проверки хватит списка «Активные пользователи». Администратору сервера удобнее консоль кластера или утилита rac. Чтобы понять, кто работал вчера или удалил документ, нужен журнал регистрации. Программисту — функции встроенного языка.

ЗадачаЧем смотретьНужны права
Узнать своё имяСправка → О программе, заголовок окнаЛюбые
Кто сейчас в базе«Активные пользователи»Администратор базы
Сеансы на сервере, компьютер, приложениеКонсоль администрирования, racАдминистратор кластера
Кто и когда работал раньшеЖурнал регистрацииАдминистратор базы
Имя в обработке или отчётеИмяПользователя() и другие функцииЗависит от функции
Кто держит блокировкуКонсоль + СУБД, технологический журналАдминистратор сервера

Методы ниже описаны для платформы 8.3 с интерфейсом «Такси». Они общие для всех конфигураций: Бухгалтерии, ЗУП, УТ и других.

Где имя пользователя видно прямо в программе

Окно «О программе»

Самый надёжный способ, потому что работает в любой конфигурации:

  1. Нажмите кнопку главного меню в левом верхнем углу.
  2. Выберите Справка → О программе.
  3. Найдите строку «Пользователь».

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

Заголовок окна

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

Имя для входа и полное имя — не одно и то же

У каждого пользователя информационной базы два имени:

  • 🔑 Имя (для входа) — короткий логин, который выбирают в окне запуска. Например, IvanovaAN.
  • 👤 Полное имя — то, что выводится в интерфейсе, документах и журнале. Например, «Иванова Анна Николаевна».

В окне «О программе» и в заголовке обычно показано полное имя. Если вам нужен именно логин (например, для командной строки запуска с ключом /N), смотрите карточку пользователя.

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

Список пользователей и кто сейчас работает в базе

Карточка пользователя

В Бухгалтерии 3.0, ЗУП 3.1, УТ 11 список открывается так:

Администрирование → Настройки пользователей и прав → Пользователи

Откройте нужного человека. Логин указан в поле имени для входа, рядом — признаки «Вход в программу разрешён» и способы аутентификации (пароль, операционная система).

В Конфигураторе список пользователей информационной базы находится в меню Администрирование → Пользователи. Там видны оба имени: колонки «Имя» и «Полное имя».

«Активные пользователи»

Этот список показывает тех, кто прямо сейчас подключён к базе:

  • в Конфигураторе: Администрирование → Активные пользователи;
  • в режиме 1С:Предприятие: Все функции → Стандартные → Активные пользователи.

Если пункта «Все функции» нет в меню, включите его: главное меню → Сервис → Параметры → флажок «Отображать команду “Все функции”».

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

Завершение чужого сеанса обрывает работу человека: несохранённый документ пропадёт. Сначала предупредите его по телефону или в мессенджере.

Сеансы в консоли администрирования серверов 1С

В клиент-серверном варианте вся картина по подключениям есть в консоли кластера. Она нужна, когда в базу не войти или надо посмотреть сразу все базы на сервере.

Через оснастку

  1. Запустите «Администрирование серверов 1С Предприятия».
  2. Раскройте Центральные серверы 1С:Предприятия → имя сервера → Кластеры → кластер → Информационные базы → база → Сеансы.
  3. В таблице сеансов смотрите колонки с именем пользователя, компьютером, приложением, временем начала и последней активности.

Колонки настраиваются: щёлкните правой кнопкой по заголовку таблицы и добавьте нужные. Для диагностики полезны колонки о времени вызова СУБД и соединении с СУБД — к ним мы вернёмся в разделе про блокировки.

Если консоль не открывается с ошибкой про класс или компонент, на этой машине не зарегистрирована библиотека radmin.dll. Её регистрируют из папки bin установленной платформы той же версии, что и сервер, командой от имени администратора:

regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"

Номер версии в пути подставьте свой.

Через rac

На Linux-сервере или в скриптах удобнее утилита rac. Она обращается к серверу администрирования ras, который должен быть запущен.

# получить идентификатор кластера
rac cluster list

# список сеансов кластера
rac session list --cluster=<uuid-кластера>

В выводе у каждого сеанса есть поля user-name (имя пользователя), host (компьютер), app-id (приложение), started-at и last-active-at. Чтобы ограничиться одной базой, добавьте параметр --infobase=<uuid-базы>; идентификатор базы покажет rac infobase summary list --cluster=<uuid-кластера>. Если на кластере задан администратор, понадобятся --cluster-user и --cluster-pwd. Остальные параметры смотрите в rac help session.

Журнал регистрации: кто работал и что делал

Активные пользователи и консоль показывают только текущий момент. Если вопрос звучит как «кто вчера в 18:40 перепровёл акт», нужен журнал регистрации.

Где открыть:

  • Все функции → Стандартные → Журнал регистрации;
  • в Конфигураторе — Администрирование → Журнал регистрации;
  • в типовых конфигурациях ссылка есть в разделе Администрирование → Обслуживание.

Как найти нужное:

  1. Нажмите кнопку отбора и задайте интервал дат.
  2. В отборе по пользователям отметьте нужных людей или оставьте всех.
  3. Для поиска входов отберите события «Сеанс. Начало» и «Сеанс. Завершение».
  4. Для поиска изменений — события «Данные. Изменение», «Данные. Удаление» и отбор по метаданным (например, документ «Реализация (акт, накладная, УПД)»).

В каждой строке видны дата и время, пользователь, компьютер, приложение, событие и ссылка на данные. Двойной щелчок открывает подробности.

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

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

Как получить имя пользователя кодом на встроенном языке

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

Что нужноФункцияРезультат
Логин текущего пользователяИмяПользователя()Строка, например IvanovaAN
Полное имяПолноеИмяПользователя()Строка «Иванова Анна Николаевна»
Объект пользователя ИБПользователиИнформационнойБазы.ТекущийПользователь()ПользовательИнформационнойБазы
Ссылка на справочник (БСП)Пользователи.ТекущийПользователь()СправочникСсылка.Пользователи
Имя компьютераИмяКомпьютера()Строка

Если список пользователей базы пуст, ИмяПользователя() вернёт пустую строку. Это частая причина, по которой в отчёт не попадает автор.

Пример: вывести в сообщение своё имя и имя компьютера.

&НаСервере
Процедура ПоказатьТекущегоПользователяНаСервере()
    Логин = ИмяПользователя();
    Если ПустаяСтрока(Логин) Тогда
        Логин = "<пользователи не заведены>";
    КонецЕсли;
    Сообщить(СтрШаблон("Логин: %1; полное имя: %2; компьютер: %3",
        Логин, ПолноеИмяПользователя(), ИмяКомпьютера()));
КонецПроцедуры

Пример: список всех сеансов базы с именами. Функция ПолучитьСеансыИнформационнойБазы() работает на сервере и требует права «Администрирование».

&НаСервере
Процедура ВывестиСеансыНаСервере()
    Для Каждого Сеанс Из ПолучитьСеансыИнформационнойБазы() Цикл
        Если Сеанс.Пользователь = Неопределено Тогда
            Имя = "<без пользователя>";
        Иначе
            Имя = Сеанс.Пользователь.Имя;
        КонецЕсли;
        Сообщить(СтрШаблон("Сеанс %1: %2, компьютер %3, приложение %4, начало %5",
            Формат(Сеанс.НомерСеанса, "ЧГ=0"), Имя, Сеанс.ИмяКомпьютера,
            Сеанс.ИмяПриложения, Сеанс.НачалоСеанса));
    КонецЦикла;
КонецПроцедуры

Оба примера можно выполнить во внешней обработке или через «Консоль кода», если она есть в вашем наборе инструментов.

Что видно на уровне СУБД

В файловой базе SQL нет: всё лежит в файле 1Cv8.1CD. Этот раздел только про клиент-серверный вариант с MS SQL Server или PostgreSQL.

Пользователи базы в таблице v8users

Список пользователей информационной базы платформа хранит в служебной таблице v8users. Имя для входа и полное имя читаются из колонок Name и Descr:

-- только чтение! В PostgreSQL имена колонок в нижнем регистре
SELECT Name, Descr FROM v8users ORDER BY Name;

Никогда не меняйте и не удаляйте строки в таблицах 1С запросами SQL. Права и пароли хранятся там в служебном формате, правка вручную ломает вход в базу. Пользователей заводят и удаляют только из 1С.

Подключения в SQL — это не пользователи 1С

Если открыть активные подключения в SQL Server (sys.dm_exec_sessions) или PostgreSQL (pg_stat_activity), вы увидите не бухгалтеров, а рабочие процессы сервера 1С. Все они ходят в СУБД под одним техническим логином с одного компьютера — сервера 1С. Имя пользователя 1С там не хранится, поэтому связывать СУБД и 1С приходится через консоль кластера (следующий раздел).

Кто держит блокировку или не пускает в базу

Чаще всего имя пользователя ищут не из любопытства, а потому что что-то мешает работать.

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

Связать блокировку в СУБД с пользователем 1С

  1. В SQL Server найдите блокирующий процесс: колонка blocking_session_id в sys.dm_exec_requests. В PostgreSQL то же покажет функция pg_blocking_pids().
  2. Запомните номер процесса СУБД (spid или pid).
  3. В консоли кластера откройте сеансы базы и найдите сеанс, у которого в колонке соединения с СУБД стоит этот номер. В выводе rac session list это поле db-proc-info.
  4. В этой строке — имя пользователя и компьютер.

Для повторяющихся ожиданий на управляемых блокировках настройте технологический журнал (logcfg.xml) на событие TTIMEOUT. В нём поле WaitConnections содержит номера соединений, которые держали блокировку. Номера соединений сопоставляются с пользователями в той же консоли.

Файловая база: кто держит файл

В файловом варианте консоли нет. Если база лежит в общей папке на сервере, откройте на нём Управление компьютером → Общие папки → Открытые файлы (или запустите fsmgmt.msc). Там видно, какая учётная запись Windows держит открытым 1Cv8.1CD.

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

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

Можно ли узнать пароль пользователя 1С?
Нет. Пароль хранится в виде хеша, ни в интерфейсе, ни в SQL его не прочитать. Администратор может только задать новый пароль в карточке пользователя.
Почему в журнале регистрации пользователь пустой?
Действие выполнено в базе без списка пользователей, регламентным заданием без назначенного пользователя или от имени служебного сеанса. В колонке «Приложение» видно, что это было: фоновое задание, COM-соединение или клиент.
Как узнать учётную запись Windows, под которой вошёл пользователь?
Откройте карточку пользователя в Конфигураторе: при включённой аутентификации операционной системы там указан домен и имя пользователя Windows. Что человек вошёл именно так, видно в журнале регистрации по событию начала сеанса.
Почему один человек виден в нескольких сеансах?
Каждое открытое окно 1С, фоновое задание и Конфигуратор — отдельный сеанс. Если сеанс завис после сбоя связи, он может висеть до истечения таймаута; его видно по старому времени последней активности.
Отображается ли имя пользователя в веб-клиенте и мобильном приложении?
Да, функции встроенного языка и журнал регистрации работают одинаково. В консоли кластера такие сеансы отличаются значением в колонке приложения.