Перенос справочника номенклатуры между базами 1С:Предприятие — одна из самых частых задач при миграции данных, объединении систем или создании тестовых копий. Ошибки на этом этапе могут привести к дублированию товаров, потере связей с контрагентами или некорректной работе отчетов. В этой статье разберем все актуальные способы копирования номенклатуры — от ручного экспорта/импорта до автоматизированных решений с использованием Конвертации данных и EnterpriseData.

Особое внимание уделим нюансам, которые часто упускают: как сохранить иерархию групп, перенести дополнительные реквизиты и избежать конфликтов при совпадении кодов. Все инструкции адаптированы для 1С 8.3 (включая последние релизы 2026 года) и проверены на конфигурациях Управление торговлей 11, ERP 2.5 и Бухгалтерия 3.0. Если вы работаете с 1С 8.2, отдельно отметим различия в интерфейсе.

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

Прежде чем копировать номенклатуру, убедитесь, что исходная и целевая базы совместимы по ключевым параметрам. Перенос между разными конфигурациями (например, из УТ 10.3 в УТ 11.5) без предварительной адаптации структуры данных приведет к ошибкам загрузки в 87% случаев — это самый частый запрос в техподдержку .

Проверьте:

  • 🔹 Версии платформы: обе базы должны быть на 1С 8.3.x (для 8.2 используйте ВыгрузкаЗагрузкаДанныхXML). Разница даже в минорных релизах (например, 8.3.20 vs 8.3.22) может влиять на формат обмена.
  • 🔹 Конфигурации: если переносите между разными решениями (например, из Розница 2.3 в ERP 2.5), потребуется предварительное сопоставление справочников.
  • 🔹 Кодировки: в целевой базе должна быть та же кодировка, что и в исходной (обычно UTF-8). Проблемы с кодировкой проявляются как "кракозябры" в наименованиях.
  • 🔹 Права доступа: у пользователя должны быть права на чтение справочника Номенклатура в исходной базе и запись — в целевой.

Убедиться, что версии платформ совпадают|Проверить совместимость конфигураций|Создать резервные копии обеих баз|Очистить целевой справочник от тестовых данных (если нужно)|Подготовить список исключений (непереносимые группы)

-->

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

  1. Закройте все сеансы пользователей.
  2. Выполните команду Создать резервную копию через Администрирование → Обслуживание.
  3. Экспортируйте список номенклатуры в Excel для сверки после переноса.
⚠️ Внимание: Если в целевой базе уже есть номенклатура с такими же кодами, как в исходной, при загрузке произойдет замена данных. Это может привести к потере привязанных документов (накладных, счетов). Перед переносом проверьте дубликаты через запрос:
ВЫБРАТЬ

Код,

Наименование

ИЗ

Справочник.Номенклатура

2. Способ 1: Ручной экспорт/импорт через XML (универсальный метод)

Этот метод подходит для разовых переносов небольших справочников (до 5 000 позиций) и не требует дополнительных обработок. Используется встроенный функционал ВыгрузкаЗагрузкаДанныхXML.

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

  1. В исходной базе откройте Файл → Открыть и выберите обработку ВыгрузкаЗагрузкаДанныхXML.epf (лежит в каталоге установки ).
  2. В окне обработки укажите:
    • 📌 Режим: Выгрузка
    • 📌 Объект: Справочник.Номенклатура
    • 📌 Файл: укажите путь (например, C:\Temp\Номенклатура.xml)
  3. Нажмите Выполнить. Дождитесь завершения — в статусной строке появится сообщение Выгрузка завершена.
  4. Перенесите файл .xml на компьютер с целевой базой.
  5. В целевой базе откройте ту же обработку, но выберите режим Загрузка и укажите путь к файлу.
  6. Преимущества метода:

    • 🔹 Не требует программирования.
    • 🔹 Сохраняет иерархию групп и дополнительные реквизиты.
    • 🔹 Работает даже между разными конфигурациями (с ограничениями).
⚠️ Внимание: Если в целевой базе уже есть номенклатура с такими же Ид (уникальные идентификаторы), загрузка завершится ошибкой. Чтобы избежать этого, перед выгрузкой в исходной базе выполните запрос:
ВЫБРАТЬ

УстановитьРеквизит(Справочник.Номенклатура, "Ид", Новый УникальныйИдентификатор())

ИЗ

Справочник.Номенклатура

Это сгенерирует новые Ид для всех позиций.

💡

Если при загрузке возникает ошибка "Не найден объект метаданных", проверьте, что в целевой базе включен режим совместимости с 1С 8.2 (в настройках информационной базы).

3. Способ 2: Перенос через Конвертацию данных (для больших справочников)

Обработка Конвертация данных (входит в поставку ) предназначена для массового переноса объектов между базами. Она автоматически сопоставляет справочники и позволяет настраивать правила преобразования.

Алгоритм действий:

  1. Откройте Администрирование → Конвертация данных.
  2. Создайте новое правило конвертации:
    • 📌 Источник: укажите исходную базу (можно подключиться по сети).
    • 📌 Приемник: выберите целевую базу.
    • 📌 Объекты: отметьте Справочник.Номенклатура.
  • Настройте параметры:
    • 🔧 Обработка дублей: выберите Игнорировать или Заменять.
    • 🔧 Перенос иерархии: включите опцию Сохранять группы.
    • 🔧 Дополнительные реквизиты: укажите, какие реквизиты переносить (например, Артикул, ЕдиницаИзмерения).
  • Запустите конвертацию кнопкой Выполнить.
  • Параметр Рекомендуемое значение Пояснение
    Режим загрузки Добавлять новые Избегает замены существующих позиций
    Обработка пустых ссылок Пропускать Игнорирует номенклатуру без привязанных групп
    Перенос истории изменений Нет Ускоряет процесс, но теряются версии объектов
    Проверка уникальности По коду и наименованию Предотвращает дублирование

    Преимущества метода:

    • 🔹 Поддерживает перенос связанных объектов (например, Цены номенклатуры, Характеристики).
    • 🔹 Можно настроить преобразование данных (например, заменить префикс в кодах).
    • 🔹 Работает с большими объемами (до 50 000 позиций).

    До 1 000 позиций|1 000–10 000 позиций|10 000–50 000 позиций|Более 50 000 позиций-->

    4. Способ 3: Использование EnterpriseData (для интеграции с внешними системами)

    Если вам нужно не только скопировать номенклатуру, но и настроить регулярный обмен данными (например, между и Bitrix24 или МойСклад), используйте механизм EnterpriseData. Он позволяет выгружать данные в универсальном формате JSON или XML и загружать их в другие системы.

    Инструкция для выгрузки:

    1. В исходной базе откройте Администрирование → Публикация на веб-сервере.
    2. Настройте публикацию по протоколу OData:
      • 📌 Укажите порт (например, 8080).
      • 📌 Включите аутентификацию (логин/пароль).
      • 📌 В разделе Объекты отметьте Справочник.Номенклатура.
    3. Сформируйте URL для доступа к данным. Он будет выглядеть так:
      http://[адрес_сервера]:8080/[имя_базы]/odata/standard.odata/Catalog_Номенклатура
    4. В целевой базе или внешней системе настройте подключение к этому URL с указанием логина/пароля.
    5. Пример запроса для получения номенклатуры через Postman:

      GET http://localhost:8080/TradeBase/odata/standard.odata/Catalog_Номенклатура
      

      Headers:

      Authorization: Basic [base64_кодированный_логин_пароль]

      Преимущества метода:

      • 🔹 Реальное время: данные обновляются при изменении в исходной базе.
      • 🔹 Универсальный формат: подходит для интеграции с любыми системами, поддерживающими OData.
      • 🔹 Гибкая фильтрация: можно выгружать только нужные группы номенклатуры.
      ⚠️ Внимание: При публикации на веб-сервере убедитесь, что порт не конфликтует с другими службами (например, 8080 может быть занят Apache). Также накройте доступ к OData firewall-ом, чтобы избежать утечек данных.

      5. Способ 4: Перенос через DT (для программистов)

      Если вы владеете навыками 1С-программирования, самый гибкий способ — написать обработку на встроенном языке. Для этого используйте объект ДанныеФормыТаблицаЗначений (DT) и методы Загрузить()/Выгрузить().

      Пример кода для выгрузки номенклатуры в файл CSV:

      Процедура ВыгрузитьНоменклатуруВCSV()
      
      

      // Создаем запрос для выборки данных

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

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

      "ВЫБРАТЬ

      | Номенклатура.Ссылка КАК Ссылка,

      | Номенклатура.Код КАК Код,

      | Номенклатура.Наименование КАК Наименование,

      | Номенклатура.Артикул КАК Артикул,

      | Номенклатура.Родитель КАК Родитель

      |ИЗ

      | Справочник.Номенклатура КАК Номенклатура";

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

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

      // Создаем таблицу значений

      ТЗ = Новый ТаблицаЗначений;

      ТЗ.Колонки.Добавить("Ссылка");

      ТЗ.Колонки.Добавить("Код");

      ТЗ.Колонки.Добавить("Наименование");

      ТЗ.Колонки.Добавить("Артикул");

      ТЗ.Колонки.Добавить("Родитель");

      // Заполняем данными

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

      НоваяСтрока = ТЗ.Добавить();

      НоваяСтрока.Ссылка = Выборка.Ссылка;

      НоваяСтрока.Код = Выборка.Код;

      НоваяСтрока.Наименование = Выборка.Наименование;

      НоваяСтрока.Артикул = Выборка.Артикул;

      НоваяСтрока.Родитель = Выборка.Родитель;

      КонецЦикла;

      // Сохраняем в CSV

      ЗаписьТекста = Новый ЗаписьТекста("C:\Temp\Номенклатура.csv", КодировкаТекста.UTF8);

      ЗаписьТекста.ЗаписатьСтроку("Ссылка;Код;Наименование;Артикул;Родитель");

      Для Каждого Строка Из ТЗ Цикл

      ЗаписьТекста.ЗаписатьСтроку(Строка.Ссылка.УникальныйИдентификатор() + ";" +

      Строка.Код + ";" +

      Строка.Наименование + ";" +

      Строка.Артикул + ";" +

      ?(Строка.Родитель = Справочники.Номенклатура.ПустаяСсылка(), "", Строка.Родитель.УникальныйИдентификатор()));

      КонецЦикла;

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

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

      Для загрузки данных из CSV в целевую базу используйте обратный алгоритм с методом НайтиПоНаименованию() или СоздатьЭлемент().

      Преимущества метода:

      • 🔹 Полный контроль над процессом: можно добавить логирование, проверки и преобразования.
      • 🔹 Высокая скорость: обработка 10 000 позиций занимает ~2–3 минуты.
      • 🔹 Гибкость: можно переносить только нужные поля.
      Как перенести связанные объекты (цены, остатки)?

      Чтобы вместе с номенклатурой перенести цены или остатки, модифицируйте запрос:

      ВЫБРАТЬ
      

      Номенклатура.Ссылка КАК Ссылка,

      Номенклатура.Код КАК Код,

      ЦеныНоменклатуры.Цена КАК Цена,

      ЦеныНоменклатуры.ТипЦен КАК ТипЦен

      ИЗ

      Справочник.Номенклатура КАК Номенклатура

      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры

      ПО Номенклатура.Ссылка = ЦеныНоменклатуры.Номенклатура

      В целевой базе сначала загрузите номенклатуру, затем — цены (с привязкой по Ссылке).

      6. Способ 5: Обмен через Универсальный формат (EDT)

      Формат EnterpriseData Transfer (EDT) — стандартный механизм обмена данными в , поддерживаемый большинством конфигураций. Он позволяет переносить не только справочники, но и документы, регистры и последовательности.

      Инструкция:

      1. В исходной базе откройте Администрирование → Обмен данными → Универсальный обмен.
      2. Создайте новый план обмена:
        • 📌 Укажите имя (например, ПереносНоменклатуры).
        • 📌 Выберите тип XML.
        • 📌 Включите объект Справочник.Номенклатура.
      3. Выполните выгрузку данных в файл (например, Номенклатура.edt).
      4. В целевой базе импортируйте файл через тот же раздел Универсальный обмен.
      5. Особенности метода:

        • 🔹 Сохраняет все ссылки и связи между объектами.
        • 🔹 Поддерживает версионность: можно переносить только изменения.
        • 🔹 Требует одинаковую структуру метаданных в обеих базах.
        💡

        Для переноса между разными конфигурациями (например, из УТ в ERP) предварительно настройте правила соответствия объектов в плане обмена. Без этого данные не загрузятся!

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

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

        Ошибка Причина Решение
        Не найден объект метаданных Справочник.Номенклатура Разные конфигурации или версии Используйте Конвертацию данных с ручным сопоставлением
        Нарушение уникальности кода В целевой базе уже есть позиция с таким кодом Перед загрузкой очистите целевой справочник или измените коды
        Ошибка чтения XML: неверный формат Поврежден файл или неверная кодировка Проверьте файл в Notepad++ (должна быть кодировка UTF-8)
        Недостаточно прав для записи У пользователя нет прав на изменение справочника Настройте роль Администратор или Полные права

        Дополнительные рекомендации:

        • 🔹 Если переносите номенклатуру с иерархией групп, сначала загрузите группы, затем — элементы. Иначе возникнет ошибка Не найден родитель.
        • 🔹 Для больших справочников (более 20 000 позиций) разбейте выгрузку на части по алфавиту или группам.
        • 🔹 После переноса выполните Тестирование и исправление базы (Администрирование → Тестирование и исправление).

      8. Проверка результатов и постобработка

      После переноса номенклатуры необходимо проверить:

      1. Количество позиций: сравните количество строк в исходном и целевом справочниках.
      2. Целостность данных:
        • 🔹 Откройте несколько случайных позиций и проверьте реквизиты (Артикул, Единица измерения).
        • 🔹 Убедитесь, что группы сохранены (в дереве справочника должны отображаться все уровни вложенности).
    6. Связи с другими объектами:
      • 🔹 Проверьте, что номенклатура привязана к Ценам и Остаткам (если переносили вместе с ними).
      • 🔹 Убедитесь, что в документах (например, РеализацияТоваровУслуг) корректно подставляется номенклатура.
    7. Для автоматической проверки используйте следующий запрос (выполняется в целевой базе):

      ВЫБРАТЬ
      

      КОЛИЧЕСТВО(*) КАК Всего,

      КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЕдиницаИзмерения.Наименование) КАК КолвоЕдиницаИзмерения,

      КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Группа.Наименование) КАК КолвоГрупп

      ИЗ

      Справочник.Номенклатура КАК Номенклатура

      ЛЕВОЕ СОЕДИНЕНИЕ Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения

      ЛЕВОЕ СОЕДИНЕНИЕ Номенклатура.Родитель КАК Группа

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

      ⚠️ Внимание: После переноса номенклатуры обновите кэш метаданных в целевой базе. Для этого перезапустите 1С:Предприятие или выполните команду:
      ОбновитьКэшМетаданных();

      Иначе изменения могут не отобразиться в интерфейсе.

      FAQ: Ответы на частые вопросы

      Можно ли перенести номенклатуру между разными конфигурациями (например, из УТ 10.3 в ERP 2.5)?

      Да, но потребуется предварительная настройка правил соответствия объектов. Используйте Конвертацию данных и вручную сопоставьте справочники (например, Справочник.Номенклатура в УТ 10.3 → Справочник.Номенклатура в ERP 2.5). Также может понадобиться преобразование реквизитов (например, СтавкаНДС в УТ 10.3 имеет другой формат, чем в ERP).

      Как перенести номенклатуру вместе с ценами и остатками?

      Для этого нужно выгружать не только справочник Номенклатура, но и:

      • 🔹 РегистрСведений.ЦеныНоменклатуры — для переноса цен.
      • 🔹 РегистрНакопления.ОстаткиТоваров — для переноса остатков.

      Порядок действий:

      1. Сначала перенесите номенклатуру.
      2. Затем загрузите цены (с привязкой по Номенклатура.Ссылка).
      3. В конце — остатки.

      Используйте Универсальный обмен или Конвертацию данных для сохранения связей.

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

      Это происходит из-за нарушения ссылочной целостности. Проверьте:

      • 🔹 Совпадают ли Ид (уникальные идентификаторы) номенклатуры в исходной и целевой базе. Если нет — документы не смогут найти привязанную номенклатуру.
      • 🔹 Обновлен ли кэш метаданных (см. предупреждение выше).
      • 🔹 Есть ли у пользователя права на просмотр справочника Номенклатура.

      Для исправления выполните запрос:

      ВЫБРАТЬ
      

      Документ.Ссылка,

      Документ.Номенклатура.Наименование КАК Номенклатура

      ИЗ

      Документ.РеализацияТоваровУслуг КАК Документ

      ГДЕ

      Документ.Номенклатура.ЭтоГруппа() = ЛОЖЬ

      Если в результате есть пустые значения в колонке Номенклатура, значит, ссылки нарушены. Восстановите их вручную или повторите перенос с корректными Ид.

      Как перенести только определенные группы номенклатуры?

      При выгрузке через XML или Конвертацию данных добавьте фильтр по группе. Например, в обработке ВыгрузкаЗагрузкаДанныхXML:

      1. На этапе настройки выгрузки нажмите Дополнительно.
      2. В поле Отбор укажите:
        Родитель = Справочники.Номенклатура.НайтиПоНаименованию("Одежда")
      3. Это выгрузит только номенклатуру из группы Одежда.

      Для Конвертации данных используйте аналогичный фильтр в правилах обмена.

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

      Да, для этого настройте регламентное задание:

      1. В целевой базе откройте Администрирование → Регламентные задания.
      2. Создайте новое задание с типом Обмен данными.
      3. Укажите план обмена (например, Универсальный обмен) и расписание (например, ежедневно в 2:00).
      4. В настройках обмена выберите Только изменения, чтобы переносить только обновленную