Список пользователей, права и пароли: как перенести их из базы 1С
Содержание
Выгрузить пользователя 1С можно тремя путями. Нужен просто список для отчёта — откройте Администрирование → Настройки пользователей и прав → Пользователи и выведите список в таблицу через меню Ещё. Нужно перенести пользователей вместе с паролями и ролями — выгрузите всю базу в файл .dt или запустите внешнюю обработку
, которая сохранит пользователей в XML.
Выбор зависит от задачи. Аудитору хватит таблицы Excel. Для переезда на новый сервер подойдёт .dt. А если нужно перенести только учётные записи в другую, уже рабочую базу, без обработки не обойтись: штатной кнопки «выгрузить одного пользователя» в платформе нет.
Что именно хранится в «пользователе» 1С
У пользователя в типовой конфигурации на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) две половины. От этого зависит, какой способ выгрузки сработает.
- 🔑 Пользователь информационной базы. Живёт на уровне платформы. Это имя для входа, хеш пароля, флаги аутентификации (1С, ОС, OpenID), привязка к учётной записи Windows, список ролей. Видна в Конфигураторе.
- 📇 Элемент справочника «Пользователи». Это данные конфигурации: ФИО, физлицо, подразделение, контакты, членство в группах доступа. Видна в режиме Предприятие.
- 🔗 Связь между ними — служебный идентификатор пользователя ИБ, записанный в элементе справочника.
Отсюда главное правило:
| Что переносите | Пользователь ИБ (логин, пароль, роли) | Справочник «Пользователи», группы доступа |
|---|---|---|
| Список в Excel | только имена | ФИО и реквизиты списка |
Файл .dt | да, полностью | да, полностью |
| Универсальная выгрузка XML | нет | да |
Своя обработка через ПользователиИнформационнойБазы | да | нет (нужно отдельно) |
Универсальная обработка обмена данными в XML переносит только справочники и документы. Учётные записи платформы она не видит. Поэтому после такой загрузки элементы справочника есть, а войти под ними нельзя.
Выгрузка списка пользователей в Конфигураторе
Конфигуратор показывает «чистых» пользователей ИБ — без кадровых реквизитов.
- Запустите базу в режиме
Конфигураторпод учётной записью с ролью полного администратора. - Откройте
Администрирование → Пользователи. - В списке видны имя, полное имя, способы аутентификации.
- Откройте пользователя двойным щелчком. На вкладке
Основные— логин и аутентификация, на вкладкеПрочие— роли, основной язык и режим запуска.
Если нужен перечень в виде таблицы, используйте команду вывода списка: она есть в контекстном меню списка и выгружает видимые колонки в табличный документ. Дальше Файл → Сохранить как и формат .xlsx или .mxl.
Ролей в этой таблице не будет: роли видны только внутри карточки. Для аудита прав удобнее режим Предприятие или обработка из раздела ниже.
Смотреть список можно, пока бухгалтеры работают в базе. Но сохранять изменения в пользователях, когда у человека открыт сеанс, бессмысленно: новые роли он получит только после перезахода.
Как выгрузить пользователей из режима Предприятие
В конфигурациях на БСП список пользователей удобнее брать отсюда: тут есть ФИО, подразделения и группы доступа.
- Откройте
Администрирование → Настройки пользователей и прав. - Перейдите по ссылке
Пользователи. - Настройте колонки:
Ещё → Изменить форму— добавьте нужные реквизиты. - Выберите
Ещё → Вывести список. - Отметьте колонки, укажите вывод в табличный документ, нажмите
ОК. - Сохраните результат:
Файл → Сохранить как(кнопка с дискетой в шапке табличного документа), формат «Лист Excel».
Для отчёта о правах там же есть раздел Группы доступа — каждая группа показывает профиль и участников. Список групп выгружается тем же Ещё → Вывести список.
Флажок «Вход в программу разрешён» в карточке пользователя — признак того, что за элементом справочника стоит пользователь ИБ. Если флажок снят, учётной записи платформы может не быть вовсе, и в Конфигураторе вы этого человека не найдёте.
Для служебной записки обычно хватает трёх колонок: «Полное имя», «Подразделение», «Вход в программу разрешён». Отключённых сотрудников отфильтруйте по пометке недействительности — в БСП она показывает уволенных.
Выгрузка базы вместе с пользователями в файл .dt
Это самый надёжный способ, если пользователей нужно перенести на другой компьютер или сервер целиком. Файл .dt — полная выгрузка: конфигурация, данные и весь список пользователей ИБ с хешами паролей. После загрузки люди входят под прежними логинами и паролями.
Выгрузка
- Откройте базу в Конфигураторе.
Администрирование → Выгрузить информационную базу.- Укажите путь и имя файла, например
D:\backup\buh_2026.dt. - Дождитесь сообщения о завершении.
Монопольный режим для выгрузки не требуется, но данные, которые меняются во время выгрузки, могут попасть в файл в промежуточном состоянии. Лучше выгружать вечером.
Ту же операцию можно запустить из командной строки — пригодится для планировщика заданий:
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /DumpIB"D:\backup\buh.dt" /Out"D:\backup\dump.log"
Номер версии в пути замените на установленный у вас. Для клиент-серверной базы вместо /F укажите /S"имя_сервера\имя_базы".
Загрузка
- Создайте в списке баз пустую информационную базу.
- Откройте её в Конфигураторе.
Администрирование → Загрузить информационную базу, выберите.dt.- Подтвердите замену данных.
Загрузка .dt полностью заменяет базу-приёмник: конфигурацию, данные и пользователей. Никогда не загружайте файл в рабочую базу, не сделав её выгрузку.
Загрузка требует монопольного доступа: все сеансы в базе-приёмнике должны быть закрыты.
Как проверить, что пользователи переехали
- 👤 В Конфигураторе новой базы откройте
Администрирование → Пользователии сверьте количество записей с исходной базой. - 🔐 Попросите одного сотрудника войти под своим обычным паролем. Если вход прошёл, хеши паролей перенеслись.
- 🧾 В режиме Предприятие откройте пару карточек и проверьте группы доступа: права должны совпасть с исходной базой.
Если база стоит на новом сервере, заодно проверьте, что у сотрудников в списке баз прописан новый адрес — иначе они продолжат работать в старой копии.
Если нужен один пользователь, а не вся база
.dt не умеет переносить выборочно. Есть обходной приём: разверните .dt во временную базу, удалите лишних пользователей и данные не трогайте — затем перенесите нужные учётные записи обработкой из раздела про автоматизацию. Проще сразу сделать обработку на исходной базе.
Особенности клиент-серверного варианта
В клиент-серверной базе пользователи хранятся в СУБД (MS SQL Server или PostgreSQL) вместе с данными. Отсюда три следствия.
- 🗄️ Бэкап СУБД переносит пользователей. Резервная копия базы средствами SQL Server
или
pg_dumpсодержит и учётные записи 1С. Восстановили копию под другим именем, зарегистрировали её в кластере — пользователи на месте. - 🖥️ Файлы пишутся на сервер. Если обработка выполняет запись в файл в серверной процедуре, файл появится на сервере 1С, а не на вашем компьютере. Путь должен быть доступен учётной записи, от которой работает служба агента сервера 1С.
- 🔐 Аутентификация ОС. Записи вида
\\DOMAIN\ivanovпереносятся как есть. Если новый сервер в другом домене, вход по Windows-аутентификации перестанет работать, пока вы не поправите поле «Пользователь ОС».
Для серверных баз 8.3 есть утилита ibcmd. Она умеет выгружать и загружать информационную базу без запуска Конфигуратора. Набор параметров зависит от версии платформы, поэтому сверяйтесь со справкой ibcmd help infobase.
Восстановление бэкапа SQL поверх существующей базы обрывает все сеансы в ней. Делайте это вне рабочего времени и предупредите пользователей.
Разницу удобно держать в голове так:
| Вариант | Где пользователи | Как переносить целиком |
|---|---|---|
| Файловый | в файле 1Cv8.1CD | копия каталога базы или .dt |
| Клиент-серверный | в базе СУБД | бэкап СУБД или .dt |
Копировать 1Cv8.1CD можно только при закрытых сеансах: файл, скопированный во время работы, может оказаться повреждённым.
Автоматизация: обработка выгрузки пользователей в XML
Когда нужно перенести 20 бухгалтеров из старой базы в новую, рабочую, .dt не подходит: он затрёт данные. Тогда пишут внешнюю обработку на объекте ПользователиИнформационнойБазы.
Опорные приёмы практика:
- 🧩 Список учётных записей даёт
ПользователиИнформационнойБазы.ПолучитьПользователей(). - 🔒 Пароль не читается в открытом виде, но его хеш доступен в свойстве
СохраняемоеЗначениеПароля. Перенесите хеш — пароль в новой базе останется прежним. - 🎭 Роли — коллекция объектов метаданных. Переносите их по имени и ищите в базе-приёмнике через
Метаданные.Роли.Найти(Имя): если роли там нет, её надо пропустить, а не падать с ошибкой.
Выгрузка в файл
Создайте обработку в Конфигураторе (Файл → Новый → Внешняя обработка), добавьте форму с командой и вставьте в модуль формы:
&НаСервереБезКонтекста
Процедура ВыгрузитьПользователей(ИмяФайла)
УстановитьПривилегированныйРежим(Истина);
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл(ИмяФайла, "UTF-8");
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьНачалоЭлемента("Users");
Для Каждого Пользователь Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл
Запись.ЗаписатьНачалоЭлемента("User");
Запись.ЗаписатьАтрибут("Name", Пользователь.Имя);
Запись.ЗаписатьАтрибут("FullName", Пользователь.ПолноеИмя);
Запись.ЗаписатьАтрибут("OSUser", Пользователь.ПользовательОС);
Запись.ЗаписатьАтрибут("StdAuth", XMLСтрока(Пользователь.АутентификацияСтандартная));
Запись.ЗаписатьАтрибут("OSAuth", XMLСтрока(Пользователь.АутентификацияОС));
Запись.ЗаписатьАтрибут("PasswordHash", Пользователь.СохраняемоеЗначениеПароля);
Для Каждого Роль Из Пользователь.Роли Цикл
Запись.ЗаписатьНачалоЭлемента("Role");
Запись.ЗаписатьТекст(Роль.Имя);
Запись.ЗаписатьКонецЭлемента();
КонецЦикла;
Запись.ЗаписатьКонецЭлемента();
КонецЦикла;
Запись.ЗаписатьКонецЭлемента();
Запись.Закрыть();
КонецПроцедуры
&НаКлиенте
Процедура Выгрузить(Команда)
ВыгрузитьПользователей("C:\Temp\users.xml");
Сообщить("Готово");
КонецПроцедуры
Чтобы выгрузить одного пользователя, замените цикл на ПользователиИнформационнойБазы.НайтиПоИмени("Иванова") и проверьте результат на Неопределено.
Загрузка в другую базу
На стороне приёмника читаете файл через ЧтениеXML и для каждого элемента User делаете так:
&НаСервереБезКонтекста
Процедура СоздатьПользователя(Имя, ПолноеИмя, ХешПароля, ИменаРолей)
УстановитьПривилегированныйРежим(Истина);
Пользователь = ПользователиИнформационнойБазы.НайтиПоИмени(Имя);
Если Пользователь = Неопределено Тогда
Пользователь = ПользователиИнформационнойБазы.СоздатьПользователя();
Пользователь.Имя = Имя;
КонецЕсли;
Пользователь.ПолноеИмя = ПолноеИмя;
Пользователь.АутентификацияСтандартная = Истина;
Пользователь.СохраняемоеЗначениеПароля = ХешПароля;
Пользователь.Роли.Очистить();
Для Каждого ИмяРоли Из ИменаРолей Цикл
Роль = Метаданные.Роли.Найти(ИмяРоли);
Если Роль <> Неопределено Тогда
Пользователь.Роли.Добавить(Роль);
КонецЕсли;
КонецЦикла;
Пользователь.Записать();
КонецПроцедуры
ИменаРолей — массив строк из элементов Role. Обработку запускают через Файл → Открыть под пользователем с полными правами.
В конфигурациях на БСП роли назначаются не напрямую, а через профили групп доступа. После загрузки обработкой зайдите в Предприятие, откройте пользователя и включите его в нужные группы доступа — иначе при следующей записи карточки БСП пересчитает роли и уберёт лишние.
Ошибки при выгрузке и переносе и как их устранить
Ещё одна ловушка — пароль администратора. Если в исходной базе был единственный администратор с забытым паролем, .dt перенесёт ту же проблему: учётная запись придёт с тем же хешем. Готовьте рабочий логин администратора до выгрузки.
Частые вопросы
Можно ли узнать пароль пользователя после выгрузки?
Переносятся ли персональные настройки — отборы, вид форм, избранное?
.dt — да, они лежат в базе. Обработка из статьи их не трогает. В БСП для этого есть отдельная функция копирования настроек между пользователями внутри одной базы.Можно ли выгрузить пользователей без прав администратора?
Сколько пользователей переносит .dt?
.dt не работает: либо вся база, либо ничего.