Перенос пользователей между базами 1С:Предприятие — типичная задача при миграции на новую версию программы, объединении филиалов или реорганизации учетных систем. Казалось бы, что может быть проще: скопировать логины и пароли? Но на практике администраторы сталкиваются с проблемами синхронизации прав, конфликтов идентификаторов и потери привязок к документам. Эта статья поможет избежать типичных ошибок и выполнить перенос максимально чисто — с сохранением всех разрешений и истории действий.
Мы рассмотрим три основных метода переноса: ручной экспорт/импорт через конфигуратор, автоматизированный обмен с помощью XML-выгрузки и специализированные обработки от партнеров 1С. Особое внимание уделим нюансам работы с Управлением доступом (Роли, Профили групп доступа) и тому, как избежать дублирования пользователей при слиянии баз. Если вы администрируете систему с сотнями учетных записей — приготовьтесь к тщательной подготовке: перенос пользователей без тестирования в песочнице чреват блокировкой работы всей компании на несколько часов.
Подготовка к переносу: что нужно проверить до начала
Прежде чем приступать к техническим манипуляциям, убедитесь, что целевая база готова принять новых пользователей. Начните с аудита текущих учетных записей — часто в старых базах накопиваются неиспользуемые логины, дубли или записи с некорректными правами.
Вот минимальный чек-лист для подготовки:
Создать резервную копию обеих баз (.dt или .cf)
Проверить совместимость версий платформы 1С (целевая база должна быть не старше исходной)
Очистить список пользователей от неактивных записей (проверьте дату последнего входа в Журнале регистрации)
Согласовать с руководителями список актуальных ролей и групп доступа
Подготовить тестовую копию целевой базы для пробного переноса-->
Обратите внимание на идентификаторы пользователей (поле УникальныйИдентификатор в справочнике Пользователи). Если в целевой базе уже есть записи с такими же идентификаторами, при загрузке возникнет конфликт. В этом случае потребуется либо ручное сопоставление, либо предварительная очистка целевой базы.
Ручной экспорт/импорт через конфигуратор
Автоматизированный обмен XML/JSON
Готовые обработки от партнеров 1С
Собственные скрипты на встроенном языке
Еще не переносил пользователей-->
Метод 1: Ручной экспорт и импорт через конфигуратор
Самый простой способ — выгрузить пользователей в файл и загрузить их в новую базу. Этот метод подходит для небольших баз (до 50 пользователей) и не требует дополнительных инструментов. Основной минус: вручную придется восстанавливать привязки к ролям и группам доступа.
Пошаговая инструкция:
Откройте исходную базу в режиме
Конфигуратор(с правами администратора).Перейдите в меню
Администрирование → Пользователи.Выделите нужных пользователей (для выделения всех используйте
Ctrl+A) и нажмитеЕще → Выгрузить список....Сохраните файл в формате
.xmlили.txt(рекомендуется XML для сохранения структуры).Откройте целевую базу в конфигураторе и импортируйте файл через
Еще → Загрузить список....
После импорта обязательно проверьте:
- 🔹 Права доступа — роли пользователей могли не перенестись (их придется назначать заново).
- 🔹 Группы доступа — если в целевой базе другие профили, пользователи могут получить избыточные права.
- 🔹 Аутентификацию — при использовании 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 или обработки) не работают.
Алгоритм для облачных баз:
Свяжитесь с технической поддержкой облачного провайдера и запросите шаблон для импорта пользователей (обычно это Excel-файл с фиксированной структурой).
Экспортируйте пользователей из исходной базы в подходящий формат (можно использовать обработку "Выгрузка пользователей в Excel" от "Инфостарт").
Заполните шаблон провайдера, соблюдая требования к формату полей (например, пароли могут требовать хэширования).
Отправьте файл в поддержку — они выполнят загрузку вручную (в некоторых сервисах, например 1С:Fresh, это занимает до 24 часов).
⚠️ Внимание: В облачных версиях 1С:Предприятие нельзя перенести историю изменений прав и некоторые настройки интерфейса. Пользователям придется заново настроить рабочие столы и сохраненные отчеты.
Преимущества облачного переноса:
- ☁️ Автоматическая синхронизация с AD/LDAP (если настроена интеграция).
- ☁️ Поддержка двухфакторной аутентификации (SMS, 1С:Идентификация).
- ☁️ Централизованное управление доступом через портал провайдера.
Тестирование и финальная проверка
Перенос пользователей — это только половина работы. После загрузки данных необходимо проверить:
Корректность прав: создайте тестового пользователя с минимальными правами и убедитесь, что он не видит чужие документы.
Работоспособность интеграций: проверьте, что пользователи могут отправлять отчеты в 1С:Отчетность, работать с Диадок или СБИС.
Производительность: если перенесено более 100 пользователей, мониторьте нагрузку на сервер в первые часы после миграции (используйте
Журнал регистрацииили 1С:Аналитику).
Для автоматизации проверки можно использовать скрипт:
Процедура ПроверитьПраваПользователей()
Ошибки = Новый Соответствие;
Выборка = Справочники.Пользователи.Выбрать();
Пока Выборка.Следующий() Цикл
Попытка
Пользователь = Выборка.Ссылка.ПолучитьОбъект();
Если НЕ ЗначениеЗаполнено(Пользователь.Роли) Тогда
Ошибки.Вставить(Пользователь.Имя, "Отсутствуют роли");
КонецЕсли;
Исключение
Ошибки.Вставить(Пользователь.Имя, ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
Если Ошибки.Количество() > 0 Тогда
Сообщить("Обнаружены ошибки для пользователей: " + Строка(Ошибки.Количество()));
Для Каждого Пара Из Ошибки Цикл
Сообщить(Пара.Ключ + ": " + Пара.Значение);
КонецЦикла;
Иначе
Сообщить("Проверка пройдена успешно!");
КонецЕсли;
КонецПроцедуры
Если обнаружены критические ошибки (например, пользователи не могут войти в систему), откатитесь на резервную копию и повторите перенос с учетом выявленных проблем. Для отката используйте команду:
ЗагрузитьИнформационнуюБазу(ПутьКРезервнойКопии, РежимЗагрузкиИнформационнойБазы.Восстановление)
FAQ: Частые вопросы по переносу пользователей 1С
Можно ли перенести пользователей между разными конфигурациями (например, из 1С:Бухгалтерии в 1С:ERP)?
Да, но с оговорками. Логины и пароли перенесутся без проблем, а вот роли и права придется настраивать заново, так как в разных конфигурациях используются разные наборы ролей. Например, роль "Бухгалтер" в 1С:Бухгалтерии не совпадает с ролью "Финансист" в 1С:ERP. Рекомендуем:
- Перенести пользователей без ролей.
- Создать в целевой базе новые роли, соответствующие бизнес-процессам.
- Назначить роли пользователям вручную или через групповую обработку.
Как перенести пользователей, если в целевой базе уже есть записи с такими же именами?
Есть три варианта решения:
- Объединение записей: вручную скопируйте роли и настройки из старой записи в новую (через
Справочники → Пользователи). - Переименование: добавьте префикс/суффикс к логину (например,
ivanov_old) и перенастройте права. - Удаление дублей: если старые записи не используются, удалите их перед переносом (но сначала проверьте, не привязаны ли к ним документы!).
Для автоматизации используйте обработку "Поиск и замена дублей пользователей" от "Инфостарт".
Что делать, если после переноса пользователи не видят свои документы?
Эта проблема возникает из-за разрыва связи между пользователем и физическим лицом (в конфигурациях, где ведется кадровый учет). Решения:
- Проверьте привязку в справочнике
ФизическиеЛица(поле "Пользователь"). - Если физическое лицо не найдено, создайте его заново и сопоставьте с пользователем.
- Для массового исправления используйте запрос:
ВЫБРАТЬ РАЗРЕШЕННЫЕ| Пользователи.Ссылка КАК Пользователь,
| Пользователи.ФизическоеЛицо КАК ТекущееФизЛицо
|ИЗ
| Справочник.Пользователи КАК Пользователи
|ГДЕ
| НЕ Пользователи.ФизическоеЛицо = ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка)
Как перенести пользователей вместе с их настройками интерфейса?
Настройки интерфейса (расположение панелей, сохраненные отчеты, настройки форм) хранятся в таблице ПользовательскиеНастройки. Чтобы их перенести:
- Выгрузите настройки через запрос:
ВЫБРАТЬ| ПользовательскиеНастройки.Пользователь КАК Пользователь,
| ПользовательскиеНастройки.ИмяНастройки КАК Настройка,
| ПользовательскиеНастройки.Значение КАК Значение
|ИЗ
| РегистрСведений.ПользовательскиеНастройки КАК ПользовательскиеНастройки
- Загрузите данные в целевую базу, предварительно очистив старые настройки для этих пользователей.
Внимание: настройки могут конфликтовать, если в целевой базе другая версия формы. Тестируйте на копии!
Можно ли автоматизировать перенос пользователей при регулярной синхронизации баз?
Да, для этого подходят:
- Регламентные задания: настройте автоматическую выгрузку/загрузку пользователей по расписанию (например, раз в неделю).
- Обмен через Универсальный формат: используйте план обмена с настройкой правил для справочника
Пользователи. - Специализированные сервисы: например, 1С:Коннект или 1С:Link для синхронизации между филиалами.
Пример кода для регламентного задания:
Процедура ПеренестиПользователейАвтоматически() Экспорт
// Код выгрузки и загрузки пользователей
ЗаписатьЛог("Перенос пользователей выполнен: " + ТекущаяДата());
КонецПроцедуры