При начале нового расчетного периода, реорганизации предприятия или переходе на новую учетную политику часто возникает задача: развернуть чистую информационную базу, сохранив в ней всю накопленную нормативно-справочную информацию (номенклатуру, контрагентов, договоры, склады, организации), но исключив документы и движения по регистрам. Рассмотрим подробнее основные способы решения этой задачи, разберем по шагам каждый подход и выясним причину возможных сложностей при переносе связанных данных и учетных записей пользователей.
Классический способ переноса справочников в пустую базу — использование универсальной обработки платформы ВыгрузкаЗагрузкаДанныхXML. Этот инструмент предназначен строго для информационных баз с абсолютно идентичной конфигурацией метаданных (одинаковый релиз конфигурации).
Разберем по шагам алгоритм выполнения этой операции:
.cf), выгруженного из рабочей базы. Базы должны быть строго одной версии.Справочники. При необходимости снимем флажки с тех справочников, переносить которые не требуется.РегистрыСведений (контактная информация, паспортные данные физических лиц, ФИО физлиц, банковские счета по умолчанию, цены номенклатуры). Если этого не сделать, карточки контрагентов и номенклатуры окажутся пустыми или заполненными лишь частично.В современных конфигурациях, разработанных на базе Библиотеки стандартных подсистем (БСП), эту операцию можно выполнить без поиска внешних файлов: инструмент уже встроен в интерфейс. Откроем раздел Администрирование, перейдем в подраздел Обслуживание, найдем пункт Выгрузка и загрузка данных и выполним экспорт нужных справочников прямо средствами системы.
Проанализируем альтернативный путь, который на практике часто оказывается проще и безопаснее полного экспорта данных с нуля: создание полной копии рабочей информационной базы с последующим удалением всех документов и записей регистров.
Главные преимущества этого подхода:
Для удаления документов из созданной копии применим один из доступных инструментов:
Посмотрим на пример программного удаления документов и очистки движений:
Выборка = Документы.РеализацияТоваровУслуг.Выбрать();
Пока Выборка.Следующий() Цикл
ДокументОбъект = Выборка.ПолучитьОбъект();
// Очищаем движения в регистрах
ДокументОбъект.Движения.Записать();
// Непосредственно удаляем документ из базы
ДокументОбъект.Удалить();
КонецЦикла;
Если в конфигурации предусмотрен план обмена с фильтрацией данных, разберем еще один надежный вариант переноса — создание начального образа распределенной информационной базы (РИБ).
Для программного отключения узла выполним в целевой базе следующий код:
ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
После вызова этого метода информационная база прекратит регистрацию изменений для обмена и станет полностью автономной.
При переносе данных с помощью первого способа (через выгрузку XML) пользователи часто сталкиваются с тем, что после импорта войти под существующими логинами не удается. Выясним причину этой проблемы.
В платформе 1С список пользователей разделен на два уровня:
ПользователиИнформационнойБазы), где хранятся логин, хеш пароля, роли и способ аутентификации.Справочник.Пользователи), где хранятся подразделение, контактные данные, настройки пользователя.Связь между ними осуществляется по уникальному идентификатору (GUID), который записывается в реквизит справочника ИдентификаторПользователяИБ. Простая выгрузка справочника не переносит сами учетные записи платформы.
Чтобы перенести пользователей полноценно, выполним одно из следующих действий:
ПользователиИнформационнойБазы с сохранением GUID.Справочник.Пользователи, а затем в целевой базе в карточке каждого пользователя заново задать логин, пароль и назначить права доступа.