Как создать пользователя сразу в нескольких базах 1С без ручного ввода

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

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

Прежде чем приступать к автоматизации, проанализируем, как устроена система прав в 1С на базе Библиотеки стандартных подсистем (БСП). В современных решениях пользователь — это не один объект, а связка из двух составляющих:

  1. Пользователь информационной базы (IBUser): Это системная учетная запись, которая хранится на уровне платформы. Она отвечает за аутентификацию (логин, пароль, способ входа).
  2. Элемент справочника Пользователи: Это объект внутри метаданных конфигурации. Здесь хранятся настройки интерфейса, контактная информация и, что самое важное, привязка к правам доступа через профили и группы.

Для успешного создания пользователя в «куче баз» нам необходимо программно создать оба этих объекта и связать их между собой. Если просто создать системного пользователя, он не сможет полноценно работать в БП или ЗУП, так как конфигурация потребует наличия записи в справочнике.

Решение 1: Использование специализированных утилит (Обновлятор-1С)

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

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

Решение 2: Автоматизация через внешнее соединение (COM/Automation)

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

  1. Создается список путей к базам (или строк подключения).
  2. В цикле происходит подключение к каждой базе.
  3. Внутри каждой базы вызывается программный интерфейс БСП или напрямую методы платформы.

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


// Пример создания системного пользователя через COM-соединение
Коннектор = Новый COMОбъект("V83.COMConnector");
СтрокаПодключения = "Srvr='ServerName';Ref='BaseName';Usr='Admin';Pwd='Pass';";
База = Коннектор.Connect(СтрокаПодключения);

НовыйПользователь = База.InfoBaseUsers.CreateUser();
НовыйПользователь.Name = "Ivanov_II";
НовыйПользователь.FullName = "Иванов Иван Иванович";
НовыйПользователь.Password = "StrongPassword123";
НовыйПользователь.StandardAuthentication = Истина;
НовыйПользователь.Write();

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

Решение 3: Централизованное управление через HTTP-сервисы и OData

Для продвинутых систем автоматизации можно рассмотреть вариант создания «центра управления пользователями». В каждой базе публикуется HTTP-сервис, который принимает JSON-пакет с данными нового сотрудника. Рассмотрим преимущества этого подхода:

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

Решение 4: Использование консольной утилиты ibcmd

В современных версиях платформы (8.3.20+) появился инструмент ibcmd. Это утилита командной строки, которая позволяет управлять пользователями без запуска самого приложения 1С. Разберем ситуацию: у вас есть 20 серверных баз. Вы можете написать один скрипт на PowerShell, который будет по списку вызывать команду:

ibcmd infobase user create --name="NewUser" --password="Password" --roles="Администратор" --db-path="ПутьКБазе"

Этот метод особенно ценен для системных администраторов, предпочитающих автоматизацию на уровне операционной системы.

Решение 5: Интеграция с Active Directory (Single Sign-On)

Выясним причину, по которой создание пользователей в 20 базах вообще становится проблемой. Чаще всего это необходимость поддерживать актуальность паролей. Если ваша компания использует Active Directory (AD), лучшим решением будет настройка Windows-аутентификации. В этом случае:

  1. В каждой базе 1С создается карточка пользователя с указанием его доменного имени (например, DOMAIN\ivanov).
  2. Пароль в самой 1С не задается.
  3. Пользователь заходит в любую из 20 баз без ввода логина и пароля, так как авторизация происходит прозрачно через Windows.

При таком подходе даже если вам придется один раз создать карточки пользователей, в дальнейшем управлять ими (блокировать, менять пароли) вы будете только в одном месте — в контроллере домена.

Резюме и рекомендации

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

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

← На главную