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