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

Мы рассмотрим три основных метода переноса: ручной экспорт/импорт через конфигуратор, автоматизированный обмен с помощью XML-выгрузки и специализированные обработки от партнеров . Особое внимание уделим нюансам работы с Управлением доступом (Роли, Профили групп доступа) и тому, как избежать дублирования пользователей при слиянии баз. Если вы администрируете систему с сотнями учетных записей — приготовьтесь к тщательной подготовке: перенос пользователей без тестирования в песочнице чреват блокировкой работы всей компании на несколько часов.

Подготовка к переносу: что нужно проверить до начала

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

Вот минимальный чек-лист для подготовки:

Создать резервную копию обеих баз (.dt или .cf)

Проверить совместимость версий платформы 1С (целевая база должна быть не старше исходной)

Очистить список пользователей от неактивных записей (проверьте дату последнего входа в Журнале регистрации)

Согласовать с руководителями список актуальных ролей и групп доступа

Подготовить тестовую копию целевой базы для пробного переноса-->

Обратите внимание на идентификаторы пользователей (поле УникальныйИдентификатор в справочнике Пользователи). Если в целевой базе уже есть записи с такими же идентификаторами, при загрузке возникнет конфликт. В этом случае потребуется либо ручное сопоставление, либо предварительная очистка целевой базы.

Ручной экспорт/импорт через конфигуратор

Автоматизированный обмен XML/JSON

Готовые обработки от партнеров 1С

Собственные скрипты на встроенном языке

Еще не переносил пользователей-->

Метод 1: Ручной экспорт и импорт через конфигуратор

Самый простой способ — выгрузить пользователей в файл и загрузить их в новую базу. Этот метод подходит для небольших баз (до 50 пользователей) и не требует дополнительных инструментов. Основной минус: вручную придется восстанавливать привязки к ролям и группам доступа.

Пошаговая инструкция:

  1. Откройте исходную базу в режиме Конфигуратор (с правами администратора).

  2. Перейдите в меню Администрирование → Пользователи.

  3. Выделите нужных пользователей (для выделения всех используйте Ctrl+A) и нажмите Еще → Выгрузить список....

  4. Сохраните файл в формате .xml или .txt (рекомендуется XML для сохранения структуры).

  5. Откройте целевую базу в конфигураторе и импортируйте файл через Еще → Загрузить список....

После импорта обязательно проверьте:

  • 🔹 Права доступа — роли пользователей могли не перенестись (их придется назначать заново).
  • 🔹 Группы доступа — если в целевой базе другие профили, пользователи могут получить избыточные права.
  • 🔹 Аутентификацию — при использовании 1С:ДиректБанк или 1С:Отчетность может потребоваться повторная привязка сертификатов.
💡

Если при импорте возникает ошибка "Пользователь с таким именем уже существует", добавьте к логину суффикс (например, "_old") и потом вручную объедините записи через Справочники → Пользователи.

Метод 2: Автоматизированный обмен через XML

Для средних и крупных баз (от 50 пользователей) ручной перенос неэффективен. Здесь поможет универсальный формат обмена данными (XML), который позволяет сохранять не только логины, но и всю структуру прав. Этот метод требует базовых знаний XDTO или работы с ЗаписьXML/ЧтениеXML.

Пример кода для выгрузки пользователей в XML:

Процедура ВыгрузитьПользователейВXML(ПутьКФайлу)

ЗаписьXML = Новый ЗаписьXML;

ЗаписьXML.ОткрытьФайл(ПутьКФайлу);

ЗаписьXML.ЗаписатьОбъявлениеXML();

ЗаписьXML.ЗаписатьНачалоЭлемента("Пользователи");

Выборка = Справочники.Пользователи.Выбрать();

Пока Выборка.Следующий() Цикл

ЗаписьXML.ЗаписатьНачалоЭлемента("Пользователь");

ЗаписьXML.ЗаписатьАтрибут("Имя", Выборка.Имя);

ЗаписьXML.ЗаписатьАтрибут("УникальныйИдентификатор", Выборка.УникальныйИдентификатор);

// Выгружаем роли

ЗаписьXML.ЗаписатьНачалоЭлемента("Роли");

Для Каждого Роль Из Выборка.Роли Цикл

ЗаписьXML.ЗаписатьТекст(Роль.Имя);

КонецЦикла;

ЗаписьXML.ЗаписатьКонецЭлемента(); // Роли

ЗаписьXML.ЗаписатьКонецЭлемента(); // Пользователь

КонецЦикла;

ЗаписьXML.ЗаписатьКонецЭлемента(); // Пользователи

ЗаписьXML.Закрыть();

КонецПроцедуры

Для загрузки используйте обратную процедуру с ЧтениеXML. Главное преимущество этого метода — сохранение всех атрибутов пользователя, включая:

  • 📌 Пароли (если они хранятся в базе, а не во внешней системе аутентификации).
  • 📌 Настройки интерфейса (сохраненные формы, расположение панелей).
  • 📌 Привязки к физическим лицам (если используется интеграция с 1С:Зарплата и Управление Персоналом).
Что делать если XML-файл поврежден?

Если при загрузке XML возникает ошибка "Недопустимый формат файла", проверьте:

1. Кодировку файла (должна быть UTF-8 без BOM).

2. Наличие закрывающих тегов (используйте валидатор XML, например, XML Validator).

3. Размер файла — если он превышает 50 МБ, разбейте его на части по 10-20 тысяч строк.

Метод 3: Готовые обработки для переноса пользователей

Если вам нужно перенести пользователей между базами регулярно (например, при синхронизации филиалов), имеет смысл использовать специализированные обработки. Наиболее популярные решения:

Обработка Поддерживаемые версии 1С Особенности Стоимость
Универсальный перенос данных (УПД) от 1С 8.3.10+ Официальное решение, поддерживает перенос прав и групп доступа Бесплатно (входит в поставку платформы)
DataLoader от "Кодерлайн" 8.2–8.3 Гибкие настройки сопоставления полей, работа с большими объемами от 5 000 руб.
Перенос пользователей и прав от "Инфостарт" 8.3.6+ Автоматическое разрешение конфликтов идентификаторов от 3 000 руб.
1C:EDT Migration Tool 8.3.15+ Интеграция с 1С:Enterprise Development Tools, для опытных разработчиков Бесплатно (требует лицензию EDT)

Преимущества готовых обработок:

  • 🔧 Автоматическое сопоставление полей — не нужно вручную прописывать соответствия между базами.
  • 🔧 Логгирование ошибок — если что-то пойдет не так, вы получите детальный отчет.
  • 🔧 Поддержка сложных сценариев — например, перенос вместе с историей изменений прав.
💡

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

Типичные ошибки и как их избежать

Даже опытные администраторы сталкиваются с проблемами при переносе пользователей. Вот самые распространенные ошибки и способы их предотвращения:

⚠️ Внимание: Если в целевой базе включен режим Автоматическое создание пользователей при первом входе (настройка в Администрирование → Настройки программы), все ручные переносы будут перезаписаны при первом логине. Отключите эту опцию перед миграцией!

Ошибка 1: Конфликт идентификаторов

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

Решение: перед переносом выполните скрипт для приведения идентификаторов к уникальным значениям:

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| Пользователи.Ссылка КАК Ссылка,

| ВЫРАЗИТЬ(Пользователи.УникальныйИдентификатор КАК СТРОКА(36)) КАК СтарыйID,

| СОЕДИНИТЬ("NEW_", ВЫРАЗИТЬ(Пользователи.УникальныйИдентификатор КАК СТРОКА(36))) КАК НовыйID

|ИЗ

| Справочник.Пользователи КАК Пользователи";

Результат = Запрос.Выполнить();

Выборка = Результат.Выбрать();

Пока Выборка.Следующий() Цикл

Пользователь = Выборка.Ссылка.ПолучитьОбъект();

Пользователь.УникальныйИдентификатор = Новый УникальныйИдентификатор(Выборка.НовыйID);

Пользователь.Записать();

КонецЦикла;

Ошибка 2: Потеря привязки к физическим лицам

Симптомы: после переноса пользователи не видят свои документы или не могут подписывать отчеты.

Решение: проверьте соответствие справочников ФизическиеЛица в обеих базах. Если структуры различаются, используйте обработку для сопоставления по ИНН или другим уникальным реквизитам.

Ошибка 3: Проблемы с аутентификацией

Симптомы: пользователи не могут войти в систему после переноса, хотя логины и пароли верные.

Решение: проверьте настройки аутентификации в целевой базе (Администрирование → Настройки пользователей и прав). Если используется Windows-аутентификация или LDAP, может потребоваться повторная привязка доменных учетных записей.

Перенос пользователей в облачные версии 1С

Если целевая база размещена в 1С:Fresh, 1С:ГК или другом облачном сервисе, процесс переноса имеет особенности. Главное отличие — вы не имеете прямого доступа к конфигуратору, поэтому стандартные методы (выгрузка через XML или обработки) не работают.

Алгоритм для облачных баз:

  1. Свяжитесь с технической поддержкой облачного провайдера и запросите шаблон для импорта пользователей (обычно это Excel-файл с фиксированной структурой).

  2. Экспортируйте пользователей из исходной базы в подходящий формат (можно использовать обработку "Выгрузка пользователей в Excel" от "Инфостарт").

  3. Заполните шаблон провайдера, соблюдая требования к формату полей (например, пароли могут требовать хэширования).

  4. Отправьте файл в поддержку — они выполнят загрузку вручную (в некоторых сервисах, например 1С:Fresh, это занимает до 24 часов).

⚠️ Внимание: В облачных версиях 1С:Предприятие нельзя перенести историю изменений прав и некоторые настройки интерфейса. Пользователям придется заново настроить рабочие столы и сохраненные отчеты.

Преимущества облачного переноса:

  • ☁️ Автоматическая синхронизация с AD/LDAP (если настроена интеграция).
  • ☁️ Поддержка двухфакторной аутентификации (SMS, 1С:Идентификация).
  • ☁️ Централизованное управление доступом через портал провайдера.

Тестирование и финальная проверка

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

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

  2. Работоспособность интеграций: проверьте, что пользователи могут отправлять отчеты в 1С:Отчетность, работать с Диадок или СБИС.

  3. Производительность: если перенесено более 100 пользователей, мониторьте нагрузку на сервер в первые часы после миграции (используйте Журнал регистрации или 1С:Аналитику).

Для автоматизации проверки можно использовать скрипт:

Процедура ПроверитьПраваПользователей()

Ошибки = Новый Соответствие;

Выборка = Справочники.Пользователи.Выбрать();

Пока Выборка.Следующий() Цикл

Попытка

Пользователь = Выборка.Ссылка.ПолучитьОбъект();

Если НЕ ЗначениеЗаполнено(Пользователь.Роли) Тогда

Ошибки.Вставить(Пользователь.Имя, "Отсутствуют роли");

КонецЕсли;

Исключение

Ошибки.Вставить(Пользователь.Имя, ОписаниеОшибки());

КонецПопытки;

КонецЦикла;

Если Ошибки.Количество() > 0 Тогда

Сообщить("Обнаружены ошибки для пользователей: " + Строка(Ошибки.Количество()));

Для Каждого Пара Из Ошибки Цикл

Сообщить(Пара.Ключ + ": " + Пара.Значение);

КонецЦикла;

Иначе

Сообщить("Проверка пройдена успешно!");

КонецЕсли;

КонецПроцедуры

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

ЗагрузитьИнформационнуюБазу(ПутьКРезервнойКопии, РежимЗагрузкиИнформационнойБазы.Восстановление)

FAQ: Частые вопросы по переносу пользователей 1С

Можно ли перенести пользователей между разными конфигурациями (например, из 1С:Бухгалтерии в 1С:ERP)?

Да, но с оговорками. Логины и пароли перенесутся без проблем, а вот роли и права придется настраивать заново, так как в разных конфигурациях используются разные наборы ролей. Например, роль "Бухгалтер" в 1С:Бухгалтерии не совпадает с ролью "Финансист" в 1С:ERP. Рекомендуем:

  1. Перенести пользователей без ролей.
  2. Создать в целевой базе новые роли, соответствующие бизнес-процессам.
  3. Назначить роли пользователям вручную или через групповую обработку.
Как перенести пользователей, если в целевой базе уже есть записи с такими же именами?

Есть три варианта решения:

  1. Объединение записей: вручную скопируйте роли и настройки из старой записи в новую (через Справочники → Пользователи).
  2. Переименование: добавьте префикс/суффикс к логину (например, ivanov_old) и перенастройте права.
  3. Удаление дублей: если старые записи не используются, удалите их перед переносом (но сначала проверьте, не привязаны ли к ним документы!).

Для автоматизации используйте обработку "Поиск и замена дублей пользователей" от "Инфостарт".

Что делать, если после переноса пользователи не видят свои документы?

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

  • Проверьте привязку в справочнике ФизическиеЛица (поле "Пользователь").
  • Если физическое лицо не найдено, создайте его заново и сопоставьте с пользователем.
  • Для массового исправления используйте запрос:
    ВЫБРАТЬ РАЗРЕШЕННЫЕ
    

    | Пользователи.Ссылка КАК Пользователь,

    | Пользователи.ФизическоеЛицо КАК ТекущееФизЛицо

    |ИЗ

    | Справочник.Пользователи КАК Пользователи

    |ГДЕ

    | НЕ Пользователи.ФизическоеЛицо = ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка)

Как перенести пользователей вместе с их настройками интерфейса?

Настройки интерфейса (расположение панелей, сохраненные отчеты, настройки форм) хранятся в таблице ПользовательскиеНастройки. Чтобы их перенести:

  1. Выгрузите настройки через запрос:
    ВЫБРАТЬ
    

    | ПользовательскиеНастройки.Пользователь КАК Пользователь,

    | ПользовательскиеНастройки.ИмяНастройки КАК Настройка,

    | ПользовательскиеНастройки.Значение КАК Значение

    |ИЗ

    | РегистрСведений.ПользовательскиеНастройки КАК ПользовательскиеНастройки

  2. Загрузите данные в целевую базу, предварительно очистив старые настройки для этих пользователей.

Внимание: настройки могут конфликтовать, если в целевой базе другая версия формы. Тестируйте на копии!

Можно ли автоматизировать перенос пользователей при регулярной синхронизации баз?

Да, для этого подходят:

  • Регламентные задания: настройте автоматическую выгрузку/загрузку пользователей по расписанию (например, раз в неделю).
  • Обмен через Универсальный формат: используйте план обмена с настройкой правил для справочника Пользователи.
  • Специализированные сервисы: например, 1С:Коннект или 1С:Link для синхронизации между филиалами.

Пример кода для регламентного задания:

Процедура ПеренестиПользователейАвтоматически() Экспорт

// Код выгрузки и загрузки пользователей

ЗаписатьЛог("Перенос пользователей выполнен: " + ТекущаяДата());

КонецПроцедуры