Как связать пользователей Конфигуратора со справочником «Пользователи» в 1С

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

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

Архитектура: как связаны списки пользователей

Проанализируем ситуацию и посмотрим на архитектуру платформы 1С:Предприятие. В системе существуют два совершенно независимых друг от друга понятия:

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

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

Решение 1: Ручное сопоставление через интерфейс (для единичных случаев)

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

  1. Зайдите в базу в режиме 1С:Предприятие под учетной записью с полными правами (администратором).
  2. Перейдите в раздел Администрирование.
  3. Откройте пункт Настройки пользователей и прав и перейдите по ссылке Пользователи.
  4. В открывшемся списке пользователей нажмите кнопку Еще (в правом верхнем углу списка).
  5. В выпадающем меню выберите пункт Пользователи информационной базы. Перед вами откроется список тех самых учетных записей из Конфигуратора.
  6. Выделите нужного пользователя и выберите команду Сопоставить (или создать нового пользователя на основании). Система автоматически создаст элемент справочника и запишет в него нужный идентификатор.

Решение 2: Современный стандарт работы (Библиотека стандартных подсистем)

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

Рассмотрим, как правильно действовать:

  1. Заводите новых сотрудников только в справочнике Пользователи в режиме 1С:Предприятие.
  2. Когда вы записываете нового пользователя в справочнике, система «под капотом» автоматически создает для него учетную запись в Конфигураторе.
  3. Программа сама синхронизирует их имена, пароли и связывает их уникальным идентификатором.

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

Решение 3: Программное массовое сопоставление (для программистов)

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

Посмотрим на пример кода, который автоматизирует этот процесс. Логика скрипта заключается в получении всех пользователей ИБ и программном создании элементов справочника для тех, у кого еще нет пары:


Процедура СинхронизироватьПользователейИБ()
    
    // Получаем массив всех пользователей из Конфигуратора
    МассивПользователейИБ = ПользователиИнформационнойБазы.ПолучитьПользователей();
    
    Для Каждого ПользовательИБ Из МассивПользователейИБ Цикл
        
        // Проверяем, есть ли уже такой пользователь в справочнике
        // Используем метод БСП для проверки занятости идентификатора
        Если Не Пользователи.ПользовательИБЗанят(ПользовательИБ.УникальныйИдентификатор) Тогда
            
            // Создаем новый элемент справочника
            НовыйПользователь = Справочники.Пользователи.СоздатьЭлемент();
            НовыйПользователь.Наименование = ПользовательИБ.Имя;
            
            // Записываем системный UUID из Конфигуратора
            НовыйПользователь.ИдентификаторПользователяИБ = ПользовательИБ.УникальныйИдентификатор;
            
            // В зависимости от версии БСП может потребоваться заполнить доп. реквизиты
            НовыйПользователь.Недействителен = Ложь;
            
            Попытка
                НовыйПользователь.Записать();
                Сообщить("Успешно сопоставлен пользователь: " + ПользовательИБ.Имя);
            Исключение
                Сообщить("Ошибка при записи пользователя " + ПользовательИБ.Имя + ": " + ОписаниеОшибки());
            КонецПопытки;
            
        КонецЕсли;
        
    КонецЦикла;
    
КонецПроцедуры

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

Зачем вообще нужен справочник пользователей?

Возможно, вы зададитесь вопросом: зачем такие сложности, если пароли и роли все равно раздаются в Конфигураторе? Рассмотрим основные причины, по которым справочник жизненно необходим для работы бизнес-логики 1С:

  1. Связь с физическими лицами. В справочнике учетная запись связывается с элементом справочника физических лиц или сотрудников, что необходимо для кадрового и бухгалтерского учета.
  2. Гибкая настройка прав доступа. В современных базах права назначаются не прямым добавлением ролей в Конфигураторе, а через механизм Профили групп доступа. Это позволяет настраивать права на уровне записей (RLS), ограничивая видимость по организациям, складам или подразделениям.
  3. Автоматическое заполнение реквизитов. Без элемента в справочнике в создаваемых документах не будет автоматически заполняться поле «Автор» или «Ответственный».
  4. Персональные настройки. Справочник позволяет хранить индивидуальные пользовательские настройки интерфейса, такие как «Организация по умолчанию» или «Основной склад», что значительно ускоряет ввод первичных документов.

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

← На главную