Перенос номенклатуры между базами 1С:Предприятие — одна из самых востребованных задач при миграции данных, объединении компаний или переходе на новую конфигурацию. Ошибки на этом этапе могут привести к разрыву связей с документами, дублированию позиций или потере истории продаж. В этой статье разберём все актуальные способы переноса — от ручного экспорта до автоматизированных решений, а также типичные «подводные камни», о которых не пишут в стандартных инструкциях.
Многие пользователи ошибочно считают, что достаточно просто скопировать справочник через Файл → Сохранить данные. На практике такой подход работает только для минимальных объёмов данных без связей с другими справочниками (например, единицами измерения или группами номенклатуры). Если у вас тысячи позиций с историей движения, потребуется более сложный алгоритм.
В статье вы найдёте:
- 🔹 Сравнение 5 способов переноса — от простого к сложному
- 🔹 Пошаговые инструкции с скриншотами (для 1С 8.3 и ERP)
- 🔹 Таблицу совместимости методов с разными конфигурациями
- 🔹 Решения для переноса остатков, цен и серийных номеров
1. Ручной экспорт/импорт через XML (для небольших справочников)
Самый простой метод, который подходит для переноса до 500 позиций номенклатуры без сложных иерархий. Используется встроенный функционал 1С:Предприятие 8.3 — Все функции → Обмен данными → Выгрузка данных.
Алгоритм:
- В исходной базе:
Файл → Открыть → Конфигуратор→ перейти в режим1С:Предприятие. - Открыть справочник
Номенклатура, выделить нужные позиции (или всю папку). - Нажать
Ещё → Выгрузить данные→ выбрать формат XML. - В целевой базе:
Файл → Загрузить данные→ указать сохранённый файл.
Выбраны все нужные группы номенклатуры|
Проверены права доступа (полные права на справочник)|
Сохранена резервная копия целевой базы|
Файл XML не превышает 50 МБ (иначе возможны ошибки)-->
⚠️ Критическая ошибка: При загрузке в другую конфигурацию (например, из 1С:УТ 11 в 1С:ERP 2.5) поля могут не совпасть. Перед массовой загрузкой обязательно протестируйте 2-3 позиции!
Этот способ не подходит, если:
- 🚫 Нужно перенести остатки по складам или ценовые группы.
- 🚫 В номенклатуре есть серийные номера или характеристики.
- 🚫 Требуется сохранить историю изменений (кто и когда внёс правки).
2. Перенос через «Универсальный обмен данными» (для средних объёмов)
Встроенный механизм Универсальный обмен данными (доступен в большинстве конфигураций на базе 1С:Предприятие 8.3) позволяет переносить не только справочники, но и связанные документы. Главное преимущество — сохранение ссылочной целостности.
Инструкция:
- В исходной базе:
Администрирование → Обмен данными → Универсальный обмен. - Создать новый обмен, указать тип
Выгрузка данных. - В настройках выбрать объекты:
Справочник.Номенклатура,Справочник.ЕдиницыИзмерения. - Запустить выгрузку в файл
.dtили.xml. - В целевой базе:
Администрирование → Обмен данными → Загрузка данных.
Если при загрузке появляется ошибка"Объект не найден", проверьте соответствие версий платформы 1С в обеих базах. Для обмена между 8.3.20 и 8.3.22 может потребоваться конвертация файла через Конвертацию данных 2.0 (бесплатный инструмент от 1С).
Особенности метода:
- ✅ Сохраняет иерархию групп номенклатуры.
- ✅ Переносит дополнительные реквизиты и сведения.
- ❌ Не подходит для переноса остатков — только справочная информация.
- ❌ Требует одинаковую структуру справочников в обеих базах.
До 100 позиций|
100–1000 позиций|
1000–10 000 позиций|
Более 10 000 позиций-->
3. Использование обработки «ВыгрузкаЗагрузкаДанныхXML» (для опытных пользователей)
Стандартная обработка ВыгрузкаЗагрузкаДанныхXML.epf (поставляется с дистрибутивом 1С) позволяет гибко настраивать правила обмена. Её главное преимущество — возможность фильтрации данных по любому полю (например, перенести только активную номенклатуру или позиции определённой группы).
Пошаговая настройка:
- Скачать обработку из каталога шаблонов 1С (раздел
Обмен данными). - В исходной базе открыть обработку, выбрать
Номенклатурав списке объектов. - Настроить фильтр (например,
ПометкаУдаления = Ложь). - Указать путь для сохранения файла
.xml. - В целевой базе открыть ту же обработку, выбрать
Загрузкаи указать файл.
Пример кода для фильтрации номенклатуры по группе (вставляется в обработку):
Процедура ПриЗагрузкеДанных(Элемент, Данные)
Если НЕ Данные.Ссылка.ЭтоГруппа Тогда
Если Данные.Ссылка.Родитель.Наименование <>"Товары" Тогда
Возврат Ложь; // Пропустить позиции не из группы"Товары"
КонецЕсли;
КонецЕсли;
КонецПроцедуры
⚠️ Внимание: При загрузке в базу с другой конфигурацией могут возникнуть конфликты идентификаторов объектов. Например, если в обеих базах уже есть номенклатура с одинаковым UID, данные не обновится, а создастся дубль. Решение — предварительная очистка целевого справочника или использование режима обновления в обработке.
4. Перенос с остатками и ценами через «Конвертацию данных 2.0»
Если нужно перенести не только справочник, но и остатки по складам, цены номенклатуры или серийные номера, потребуется инструмент Конвертация данных 2.0 (КД 2.0). Это бесплатное решение от 1С, которое поддерживает большинство типовых конфигураций.
Алгоритм работы:
- Скачать КД 2.0 с сайта users.v8.1c.ru (раздел
Инструменты). - В исходной базе создать
Правила конвертациидля объектов:Справочник.НоменклатураДокумент.УстановкаЦенНоменклатурыРегистрНакопления.ОстаткиТоваров
.cd.Пример правила для переноса цен (фрагмент):
Источник = Документ.УстановкаЦенНоменклатуры;
Приемник = Документ.УстановкаЦенНоменклатуры;
СвязьПоРеквизиту("Организация","Организация");
СвязьПоРеквизиту("Номенклатура","Номенклатура");
СвязьПоРеквизиту("ТипЦен","ТипЦен");
ЗаполнитьЗначенияСвойств(
Новый Структура("Дата, Организация, Номенклатура, ТипЦен, Цена"),
Новый Структура("Дата, Организация, Номенклатура, ТипЦен, Цена")
);
⚠️ Критический нюанс: При переносе остатков дату начальных остатков в целевой базе указывать РАНЬШЕ даты первого документа, иначе возникнет расхождение по оборотным регистрам. Например, если первый документ в новой базе от 10.01.2026, остатки загружайте на 09.01.2026.
Что будет если неправильно указать дату остатков?
Если загрузить остатки на дату ПОЗЖЕ первого документа в базе, система"подумает", что товар появился уже после продажи. Это приведёт к отрицательным остаткам и ошибкам при проведении документов. Исправить это можно только полной перезагрузкой данных или ручной корректировкой регистров.
5. Автоматизированный перенос через ETL-инструменты (для крупных проектов)
Для миграции больших объёмов данных (десятки тысяч позиций) или регулярного обмена между базами используют специализированные ETL-решения:
- 🔧 1С:Интеграция — официальный продукт для синхронизации с внешними системами.
- 🔧 Klever Integration — гибкий инструмент с визуальным конструктором правил.
- 🔧 SQL-скрипты — для прямых запросов к базе (требует знания
T-SQL). - 🔧 REST API — если целевая система поддерживает веб-сервисы (например, 1С:ERP или 1С:УНФ).
Пример SQL-запроса для выгрузки номенклатуры с остатками (упрощённо):
SELECT
T1._IDRRef AS Номенклатура_UID,
T1._Description AS Наименование,
T2._Quantity AS Остаток,
T3._Price AS Цена
FROM
_Reference16 AS T1 -- Справочник.Номенклатура
LEFT JOIN
_AccumRgT17 AS T2 ON T1._IDRRef = T2._Fld19RRef -- Регистр.ОстаткиТоваров
LEFT JOIN
_Document24 AS T3 ON T1._IDRRef = T3._Fld25RRef -- Документ.УстановкаЦен
WHERE
T1._Marked = 0 -- Только неудалённые позиции
Преимущества ETL-подхода:
- ✅ Обработка миллионов записей без зависаний.
- ✅ Возможность трансформации данных (например, объединение групп).
- ✅ Автоматическое логирование ошибок.
⚠️ Внимание: При использовании прямых SQL-запросов к базе 1С обязательно блокируйте таблицы на время выгрузки, иначе возможны ошибки чтения из-за транзакций других пользователей. Команда для блокировки:
BEGIN TRANSACTION;
-- Ваш запрос
COMMIT TRANSACTION;
Сравнение способов переноса номенклатуры
| Способ | Объём данных | Сохранение связей | Перенос остатков | Сложность | Подходит для конфигураций |
|---|---|---|---|---|---|
| Ручной XML | До 500 позиций | ❌ Нет | ❌ Нет | ⭐ | Любые (УТ, ERP, БП, Розница) |
| Универсальный обмен | До 5 000 позиций | ✅ Да | ❌ Нет | ⭐⭐ | Типовые 1С 8.3 |
| Обработка XML | До 10 000 позиций | ✅ Да | ❌ Нет | ⭐⭐⭐ | Любые (требует доработки) |
| Конвертация данных 2.0 | Неограничено | ✅ Да | ✅ Да | ⭐⭐⭐⭐ | Типовые конфигурации |
| ETL-инструменты | Неограничено | ✅ Да | ✅ Да | ⭐⭐⭐⭐⭐ | Любые (включая нетиповые) |
Для переноса номенклатуры с историей движения (продажи, закупки) обязательно используйте Конвертацию данных 2.0 или ETL. Ручные методы не сохраняют связи с документами, что приведёт к"обрыву" аналитики.
Типичные ошибки и как их избежать
Даже опытные пользователи 1С сталкиваются с проблемами при переносе номенклатуры. Вот самые распространённые:
- Дублирование позиций:
Причина: В целевой базе уже есть номенклатура с такими же наименованиями, но другими
UID.Решение: Перед загрузкой выполните очистку справочника или используйте режим
Обновление существующихв обработке. - Потеря связей с документами:
Причина: Перенесены только справочники, без регистров накопления.
Решение: Используйте Конвертацию данных 2.0 с настройкой правил для регистров.
- Ошибки при загрузке характеристик:
Причина: В целевой базе нет справочника
ХарактеристикиНоменклатуры.Решение: Сначала перенесите справочник характеристик, затем номенклатуру.
- Разрыв иерархии групп:
Причина: Группы номенклатуры загружены после позиций.
Решение: Настройте порядок обмена: сначала группы, потом элементы.
⚠️ Внимание: Если вы переносите номенклатуру между разными редакциями конфигураций (например, из 1С:УТ 10.3 в 1С:ERP 2.5), обязательно проверьте соответствие реквизитов. Например, в ERP появились новые поля ВидНоменклатуры и ТипНоменклатуры, которых нет в УТ 10.3. Без корректного маппинга данные загрузятся с ошибками.
FAQ: Ответы на частые вопросы
Можно ли перенести номенклатуру между разными версиями платформы (например, 8.2 и 8.3)?
Да, но потребуется промежуточная конвертация. Используйте Конвертацию данных 2.0 или инструмент v8unpack для преобразования файлов обмена. Прямая загрузка между версиями не поддерживается.
Как перенести номенклатуру вместе с картинками?
Картинки хранятся в отдельной таблице базы данных. Для их переноса:
- Выгрузите справочник номенклатуры через Конвертацию данных 2.0 с галочкой
Включить двоичные данные. - Или используйте обработку
ВыгрузкаЗагрузкаДанныхXMLс настройкой экспорта вложенных файлов.
В ручном режиме картинки не переносятся!
Что делать, если после переноса не отображаются цены?
Причины могут быть следующими:
- Не перенесены документы
Установка цен номенклатуры. - В целевой базе не настроены типы цен.
- Ошибка связывания справочника
Номенклатурас регистромЦеныНоменклатуры.
Решение: Загрузите цены отдельно через Конвертацию данных 2.0 или проверьте настройки Типы цен в целевой базе.
Как перенести номенклатуру с серийными номерами?
Серийные номера хранятся в регистре сведений СерийныеНомераТоваров. Для их переноса:
- В Конвертации данных 2.0 добавьте правило для этого регистра.
- Укажите связь с документами поступления/реализации.
- При загрузке выберите режим
Создание и обновление.
⚠️ Без переноса регистра серийные номера будут потеряны, даже если номенклатура загрузится корректно.
Можно ли отменить перенос, если что-то пошло не так?
Да, но способ зависит от метода загрузки:
- Для ручного XML: Удалите загруженные позиции вручную или откатите базу из резервной копии.
- Для Конвертации данных 2.0: Используйте
Откат загрузкив журнале обменов. - Для SQL-запросов: Восстановите базу из бэкапа или выполните
ROLLBACK(если транзакция не зафиксирована).
Если ваш вопрос не освещён в FAQ, уточните детали в технической поддержке 1С или на форуме infostart.ru — там есть готовые обработки для нестандартных случаев (например, перенос номенклатуры с дополнительными реквизитами или штрихкодами).