Как перенести номенклатуру из одной базы 1С в другую пустую базу

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Метод 1: Использование универсальной обработки «Выгрузка и загрузка данных XML»

Этот способ является наиболее быстрым и предпочтительным, если конфигурации вашей старой и новой базы полностью идентичны (например, обе базы — это «Бухгалтерия предприятия 3.0» одного релиза). Основное преимущество данного метода заключается в переносе данных «один в один» с сохранением внутренних уникальных идентификаторов GUID.

Разберем по шагам процесс работы с обработкой:

  1. Выбор версии обработки: Для платформы 1С 8.3 существует два основных вида форм. Если вы работаете в современном интерфейсе (Такси), вам понадобится версия обработки для управляемых форм. Если база старая (на платформе 8.2) — для обычных форм. Попытка открыть обработку для обычных форм в управляемом интерфейсе часто приводит к тому, что она просто не запускается или выдает ошибку.
  2. Настройка выгрузки: Запустите обработку в исходной (рабочей) базе. В списке метаданных найдите справочник СправочникСсылка.Номенклатура и установите напротив него флажок.
  3. Определение состава выгрузки: Одной из частых ошибок начинающих является пропуск шага настройки состава. Если просто нажать «Выгрузить», система может выдать сообщение «не задан состав выгрузки». Чтобы этого избежать, необходимо нажать кнопку «Определить данные, выгружаемые по ссылке». Это позволит системе автоматически подтянуть связанные объекты, такие как «Единицы измерения», «Номенклатурные группы» и «Ставки НДС».
  4. Выгрузка в файл: Укажите путь к файлу на диске (формат .xml) и нажмите кнопку «Выгрузить данные».
  5. Загрузка в новую базу: Откройте ту же самую обработку в пустой базе, перейдите на вкладку «Загрузка», выберите созданный файл и нажмите «Загрузить».

Важно помнить: этот метод переносит данные «как есть». Если в новой базе уже были созданы какие-то элементы вручную (например, единица измерения «шт»), то при загрузке может появиться дубль, так как GUID загружаемого объекта будет отличаться от уже существующего.

Метод 2: Загрузка данных из табличного документа (Excel)

Если базы имеют разные конфигурации или вы хотите предварительно «почистить» список товаров, лучше использовать универсальную загрузку из Excel. Проанализируем этот алгоритм:

Экспорт данных:

В исходной базе зайдите в список номенклатуры. Нажмите «Еще» — «Вывести список». Выберите нужные колонки (Наименование, Артикул, Штрихкод, Единица измерения). Полученную таблицу сохраните в формате Excel.

Импорт данных:

В новой базе воспользуйтесь типовой обработкой «Загрузка данных из табличного документа» (в современных конфигурациях она встроена в раздел «Администрирование» — «Обслуживание» — «Корректировка данных»).

  1. Выберите режим загрузки в справочник Номенклатура.
  2. Загрузите ваш файл Excel.
  3. Настройте соответствие колонок: укажите, какая колонка файла соответствует реквизиту «Наименование», а какая — «Артикул».
  4. Установите «Поле поиска». Обычно это Артикул или Наименование. Это критически важно для предотвращения создания дублей при повторной загрузке.

Метод 3: Использование «Конвертации данных» (КД 2.0 или 3.0)

Для программиста это самый гибкий метод. Рассмотрим ситуацию, когда структуры баз различаются. Например, в старой базе единица измерения — это строка, а в новой — ссылка на справочник КлассификаторЕдиницИзмерения. В этом случае обычный XML-перенос выдаст ошибку.

С помощью конфигурации «Конвертация данных» вы можете прописать правила сопоставления полей. Рассмотрим пример кода в обработчике «Поля поиска», если мы хотим сопоставлять товары не по внутреннему ID, а по артикулу:


Если СвойстваПоиска["Артикул"] <> Неопределено Тогда
    СсылкаНаОбъект = Справочники.Номенклатура.НайтиПоАртикулу(СвойстваПоиска["Артикул"]);
КонецЕсли;

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

Что часто забывают при переносе номенклатуры?

Проанализируем типичные ошибки, из-за которых после переноса база может работать некорректно:

Проверка результата и удаление дублей

После завершения процесса загрузки мы рекомендуем выполнить следующие действия:

  1. Проверьте общее количество элементов в справочнике Номенклатура в обеих базах.
  2. Запустите отчет «Остатки товаров» (если переносились и остатки) для сверки.
  3. Воспользуйтесь типовой обработкой «Поиск и удаление дублей». Проверьте дубли по артикулу и наименованию. Часто при загрузке создаются дублирующие «Единицы измерения» (например, две записи «шт»), что может помешать нормальной работе складских документов.

Заключение: Если вы новичок и базы идентичны — используйте «Выгрузку и загрузку данных XML» с обязательным нажатием кнопки «Определить данные по ссылкам». Если базы разные — используйте Excel. Если же структура справочника сложная (с характеристиками и специфическими реквизитами) — стоит рассмотреть привлечение специалиста по «Конвертации данных», так как исправление ошибок в справочнике на 10-20 тысяч позиций вручную обойдется значительно дороже.

← На главную