Как 1С узнаёт, кто вошёл в базу: пароль, Windows, веб и внешние подключения

· 10 мин

Содержание

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

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

Как платформа 1С определяет пользователя: три механизма

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

СпособКак работаетГде уместен
🔑 Аутентификация 1С:ПредприятияИмя и пароль хранятся в самой базеНебольшие офисы, внешние бухгалтеры, удалённый доступ
🪟 Аутентификация операционной системыПлатформа берёт учётную запись Windows, под которой запущен клиентОфис с доменом Active Directory
🌐 Аутентификация OpenIDВход через провайдер, обычно другую опубликованную базуВеб-клиент, единый вход для нескольких баз

Порядок при запуске такой. Если в строке запуска не указаны имя и пароль, платформа сначала пробует вход по Windows. Нашёлся пользователь базы, к которому привязана текущая учётная запись, — окно входа не появляется. Не нашёлся — показывается диалог с именем и паролем.

Различайте два слова. Идентификация — платформа понимает, кто вы. Авторизация — решает, что вам можно, по ролям. Ошибка входа и ошибка Нарушение прав доступа! — разные проблемы с разными решениями.

Создание пользователей и настройка входа в Конфигураторе

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

Первым всегда создают администратора. Если начать с обычного сотрудника без административных прав, войти в Конфигуратор после этого будет некому.

  1. Откройте базу в режиме Конфигуратор.
  2. Меню Администрирование → Пользователи, кнопка добавления.
  3. На вкладке Основные заполните Имя (его видно в окне входа) и Полное имя.
  4. Поставьте флажок Аутентификация 1С:Предприятия, задайте пароль.
  5. На вкладке Прочие отметьте роль с полными правами (в типовых конфигурациях на БСП это ПолныеПрава) и роль администратора системы, если она есть в конфигурации.
  6. Там же проверьте Основной интерфейс и Язык.
  7. Сохраните. При следующем запуске база спросит пароль.

Остальные флажки на вкладке Основные:

  • 👁 Показывать в списке выбора — имя будет в выпадающем списке окна входа. Для баз с десятками пользователей и для доступа из интернета флажок лучше снять: список имён — подарок подборщику паролей.
  • 🔒 Пользователю запрещено изменять пароль — для общих технических учёток (обмены, регламентные задания).
  • 🪟 Аутентификация операционной системы и поле Пользователь — привязка к Windows, подробнее в следующем разделе.

В типовых конфигурациях заводите пользователей из программы

В БП 3.0, ЗУП 3.1, УТ 11 и других конфигурациях на БСП есть справочник Пользователи со своей логикой: профили групп доступа, ограничения по организациям, связь с физлицом и сотрудником. Если создать пользователя только в Конфигураторе, он сможет войти, но справочник о нём не узнает, и права по профилям не применятся.

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

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

Требования к паролям

Платформенные ограничения задаются в Конфигуратор → Администрирование → Параметры информационной базы: минимальная длина пароля и проверка сложности. В конфигурациях на БСП есть ещё Администрирование → Настройки пользователей и прав → Настройки входа: срок действия пароля, запрет повторов, отключение неактивных пользователей.

Задавайте требования к паролю до того, как раздадите логины. Существующие пароли платформа задним числом не проверяет — правило сработает при следующей смене.

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

Аутентификация операционной системы избавляет от второго пароля: человек вошёл в Windows — 1С его узнала.

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

  1. Откройте карточку пользователя (в Конфигураторе или в справочнике Пользователи).
  2. Включите Аутентификация операционной системы.
  3. В поле Пользователь укажите учётную запись в формате \\ДОМЕН\имя, например \\BUH\ivanova. Кнопка выбора рядом с полем открывает список пользователей домена.
  4. Пароль 1С можно оставить как запасной способ или выключить.

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

Файловый и клиент-серверный вариант

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

В клиент-серверном варианте проверку выполняет сервер 1С по протоколу Kerberos (или NTLM как запасной вариант). Здесь нужна работа администратора домена:

  • ⚙️ служба сервера 1С запускается от доменной учётной записи, а не от локальной;
  • ⚙️ для этой учётной записи зарегистрировано имя службы (SPN), по которому клиент находит сервер в Kerberos;
  • ⚙️ на сервере под Linux нужен keytab-файл с ключом этой учётной записи;
  • ⚙️ клиент обращается к серверу по полному доменному имени, а не по IP-адресу — по IP Kerberos не работает .

Смена учётной записи службы сервера 1С требует её перезапуска. При перезапуске оборвутся все сеансы пользователей — делайте это вне рабочего времени и предупредите людей заранее.

Параметры запуска

Поведение можно переключать ключами командной строки или в поле Дополнительные параметры запуска в свойствах базы в окне запуска:

КлючЧто делает
/WA-Не пытаться войти по Windows, сразу спросить имя и пароль
/WA+Принудительно входить по Windows (поведение по умолчанию)
/N"Имя"Имя пользователя 1С
/P"Пароль"Пароль пользователя 1С

/WA- выручает, когда нужно зайти в базу под другим пользователем с того же компьютера — например, администратору на машине бухгалтера.

Идентификация пользователя при веб-доступе через IIS и Apache

При работе через веб-клиент, тонкий клиент по HTTP или мобильный клиент между пользователем и базой стоит веб-сервер с модулем расширения 1С. Публикацию делают из Конфигуратора (Администрирование → Публикация на веб-сервере) или утилитой webinst. Настройки публикации лежат в файле default.vrd в каталоге публикации.

Вход по имени и паролю 1С

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

Публикация в интернет без HTTPS передаёт пароль открытым текстом. Ставьте сертификат на веб-сервер до того, как откроете доступ снаружи.

Вход по Windows через IIS

  1. В диспетчере IIS для приложения публикации включите Проверка подлинности Windows. Если компонент не виден — доустановите роль «Проверка подлинности Windows» в компонентах веб-сервера.
  2. У пользователей 1С включите аутентификацию ОС с привязкой \\ДОМЕН\имя.
  3. В браузере адрес публикации должен попадать в зону «Местная интрасеть», иначе браузер не передаст учётные данные автоматически и будет спрашивать пароль Windows.

На Apache то же самое делают модулем Kerberos/GSSAPI для Apache и keytab-файлом. Настройка похожа на серверную: доменная учётная запись, SPN для имени веб-сервера, обращение по полному имени.

OpenID для нескольких баз

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

Идентификация во внешних подключениях: COM, HTTP-сервисы, OData

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

Командная строка и ярлыки

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

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\Buh" /N"Обмен" /P"Пароль123"

Для серверной базы вместо /F указывают /S"srv1c\buh". Пароль в ярлыке виден любому, кто откроет его свойства, поэтому так запускают только технические учётки с минимальными правами.

COM-соединение

Внешняя обработка, скрипт или другая база подключается через V83.COMConnector. Имя и пароль передаются параметрами Usr и Pwd:

Коннектор = Новый COMОбъект("V83.COMConnector");
СтрокаПодключения = "Srvr=""srv1c"";Ref=""buh"";Usr=""Обмен"";Pwd=""Пароль123"";";
База = Коннектор.Connect(СтрокаПодключения);

Для файловой базы вместо Srvr и Ref пишут File=""D:\Bases\Buh"". Если Usr не указать, платформа попробует аутентификацию ОС от имени учётной записи, под которой работает вызывающий процесс.

HTTP-сервисы, веб-сервисы и OData

Здесь используется базовая HTTP-аутентификация: заголовок Authorization: Basic <строка>, где строка — это имя:пароль в кодировке Base64. Если имя на кириллице, перед кодированием его переводят в UTF-8, иначе 1С пользователя не найдёт.

curl -u "Обмен:Пароль123" "https://1c.example.ru/buh/odata/standard.odata/Catalog_Номенклатура?\$format=json"

Для OData дополнительно нужно открыть состав объектов: в типовых конфигурациях это делают обработкой настройки стандартного интерфейса OData, а у технического пользователя должны быть права на чтение этих объектов.

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

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

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

ЗадачаЧем решается
Имя для входаИмяПользователя()
Полное имяПолноеИмяПользователя()
Объект пользователя ИБПользователиИнформационнойБазы.ТекущийПользователь()
Проверка ролиРольДоступна("ПолныеПрава")
Ссылка на элемент справочника в БСППользователи.ТекущийПользователь()

Создать пользователя программно, например при массовом заведении из списка, можно так:

НовыйПользователь = ПользователиИнформационнойБазы.СоздатьПользователя();
НовыйПользователь.Имя = "Петрова";
НовыйПользователь.ПолноеИмя = "Петрова Анна Сергеевна";
НовыйПользователь.АутентификацияСтандартная = Истина;
НовыйПользователь.Пароль = "ВременныйПароль1";
НовыйПользователь.АутентификацияОС = Истина;
НовыйПользователь.ПользовательОС = "\\BUH\petrova";
НовыйПользователь.Роли.Добавить(Метаданные.Роли.БазовыеПраваБП);
НовыйПользователь.Записать();

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

Почему не получается войти: диагностика

Первое, куда смотреть, — журнал регистрации: Администрирование → Обслуживание → Журнал регистрации в БП 3.0 или меню Администрирование → Журнал регистрации в Конфигураторе. Отберите события Сеанс. Аутентификация и Сеанс. Ошибка аутентификации: видно время, компьютер и имя, под которым пытались войти.

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

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

Перед массовыми изменениями в списке пользователей сделайте выгрузку базы в .dt или убедитесь, что есть свежая резервная копия. Удалённого пользователя ИБ не вернуть, а в БСП с ним теряется связь с профилями и настройками.

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

Можно ли совсем убрать окно входа в 1С?
Да. Привяжите пользователей к учётным записям Windows — тогда окно не появится. Удалять всех пользователей ради этого нельзя: база станет открытой для всех с полными правами.
Сколько пользователей может работать под одним логином?
Технически платформа не запрещает несколько сеансов под одним именем. Но в журнале регистрации их действия не различить, а в типовых конфигурациях ломается привязка ответственных. Делайте каждому свой логин.
Влияет ли количество пользователей в списке на лицензии?
Нет. Лицензии расходуются на одновременные сеансы, а не на записи в списке пользователей. Можно завести 50 пользователей при 10 лицензиях — одновременно войдут десять.
Как запретить вход уволенному сотруднику, не удаляя его?
В базе на БСП снимите в карточке флажок «Вход в программу разрешен» — история его действий и ссылки в документах сохранятся. В нетиповой базе выключите все способы аутентификации.
Где хранятся пароли пользователей 1С?
В самой информационной базе, в виде хеша, а не открытым текстом. Поэтому пароль нельзя посмотреть — только задать новый.