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