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

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

1С: как получить код пользователя и пароль

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

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

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

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

Что именно считается кодом пользователя в 1С

Прежде чем писать код или искать данные в интерфейсе, определите, какой именно идентификатор нужен. У пользователя информационной базы есть уникальный идентификатор (GUID) — он присваивается платформой при создании и не меняется. Имя пользователя — это логин для входа, его администратор может редактировать. В типовых конфигурациях дополнительно существует справочник «Пользователи», у элементов которого есть собственный код и ссылка, связанная с GUID пользователя информационной базы через реквизит «ИдентификаторПользователяИБ».

Путаница между этими сущностями — самая частая причина ошибок. Например, код справочника «Пользователи» (число вида 000000012) никак не связан с GUID и не используется для аутентификации. Для интеграций и обменов почти всегда нужен именно GUID пользователя информационной базы или ссылка на элемент справочника.

Как посмотреть пользователя и его идентификатор через интерфейс

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

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

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

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

Встроенный язык предоставляет менеджер ПользователиИнформационнойБазы. Через него можно найти пользователя по имени или GUID, получить текущего пользователя сеанса и прочитать его свойства. Типовой пример получения текущего пользователя:

ПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь();

ИмяПользователя = ПользовательИБ.Имя;

Идентификатор = ПользовательИБ.УникальныйИдентификатор;

Для поиска произвольного пользователя по имени используется метод НайтиПоИмени, а по идентификатору — НайтиПоУникальномуИдентификатору:

ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени("ИвановИИ");

Если ПользовательИБ <> Неопределено Тогда

Сообщить("GUID: " + Строка(ПользовательИБ.УникальныйИдентификатор));

КонецЕсли;

В типовых конфигурациях с Библиотекой стандартных подсистем удобнее использовать модуль Пользователи: функции Пользователи.ТекущийПользователь() и Пользователи.АвторизованныйПользователь() возвращают ссылку на справочник, а не объект пользователя ИБ. Если нужен код элемента справочника, обратитесь к реквизиту «Код» полученной ссылки.

bsl
ПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь();
Сообщить("Имя: " + ПользовательИБ.Имя + "; GUID: " + Строка(ПользовательИБ.УникальныйИдентификатор));

Почему нельзя прочитать пароль пользователя

У объекта ПользовательИнформационнойБазы есть свойство «Пароль», но оно доступно только для записи. Попытка прочитать его вернёт пустую строку — платформа физически не хранит пароль в обратимом виде, только результат хэширования. Это соответствует общепринятой практике: даже администратор базы и разработчик с полными правами не могут узнать чужой пароль.

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

Как сбросить и установить новый пароль

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

Программно пароль устанавливается присваиванием значения свойству с последующей записью:

ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени("ИвановИИ");

ПользовательИБ.Пароль = "НовыйВременныйПароль";

ПользовательИБ.Записать();

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

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

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

При программной работе типичная ошибка — обращение к свойствам результата НайтиПоИмени без проверки на Неопределено: если пользователь не найден, обращение к свойству вызовет исключение. Вторая частая ошибка — попытка использовать код справочника «Пользователи» там, где нужен GUID пользователя ИБ, например при сопоставлении данных между базами.

Типичные ошибки
01
Чтение свойства Пароль и ожидание реального значения — свойство доступно только для записи, чтение всегда даёт пустую строку
02
Обращение к ПользовательИБ.Имя без проверки, что НайтиПоИмени вернул объект, — при отсутствии пользователя возникает ошибка выполнения
03
Путаница между кодом справочника «Пользователи» и GUID пользователя информационной базы при обменах
04
Сброс пароля без уведомления пользователя и без требования смены при входе — временный пароль остаётся постоянным
05
Отключение единственной административной учётной записи до проверки входа под другим администратором
Контрольные точки

Как проверить результат

Вход под учётной записью после сброса пароля
Норма

Пользователь входит с новым паролем и видит свои разделы

Тревожный признак

Ошибка аутентификации или пустой рабочий стол из-за отсутствия ролей

Полученный программно идентификатор
Норма

GUID соответствует пользователю, найденному в конфигураторе

Тревожный признак

Идентификатор пустой или принадлежит другой учётной записи

Способы аутентификации в карточке пользователя
Норма

Включён нужный способ (1С, ОС или OpenID)

Тревожный признак

Аутентификация 1С отключена, пароль задать некуда

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

Можно ли узнать пароль пользователя 1С из базы?

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

Чем отличается код справочника «Пользователи» от GUID пользователя?

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

Как получить текущего пользователя в типовой конфигурации?

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

Что делать, если утерян пароль единственного администратора файловой базы?

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

Можно ли проверить пароль пользователя программно, не меняя его?

Прямого метода проверки пароля во встроенном языке нет. Косвенный способ — попытка подключения к базе с указанными учётными данными через COM-соединение или веб-сервис, но массовый перебор таким путём небезопасен и может привести к блокировкам.

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

В конфигураторе откройте карточку пользователя через «Администрирование» → «Пользователи» и перейдите на вкладку «Прочие» — там отображаются доступные роли. Программно список ролей читается через свойство Роли объекта ПользовательИнформационнойБазы.

Итог

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

Имя и GUID пользователя получают через конфигуратор или ПользователиИнформационнойБазы — программно и без ограничений. Пароль прочитать невозможно: хранится только хэш, поэтому забытый пароль сбрасывают и задают новый с требованием смены при входе. Всегда держите резервную учётную запись администратора и проверяйте вход после любых изменений.