Перенос номенклатуры между базами 1С:Предприятие — одна из самых частых задач при миграции данных, объединении компаний или переходе на новую конфигурацию. Ошибки на этом этапе могут привести к дублированию товаров, потере связей с документами или некорректной аналитике. Эта статья поможет избежать типичных проблем и выбрать оптимальный способ переноса в зависимости от вашей ситуации.
Сложность процесса зависит от объема данных, версий конфигураций и требований к сохранности истории. Например, перенос между идентичными базами 1С:УТ 11.5 займет меньше времени, чем миграция из 1С:Бухгалтерии 2.0 в 1С:ERP 2.5. Мы рассмотрим все актуальные методы — от ручного экспорта до автоматизированных обработок, а также разберем нюансы, о которых не пишут в стандартных инструкциях.
Если вы администратор или опытный пользователь, обратите внимание на разделы про универсальные форматы обмена и настройку правил конвертации. Для новичков подойдут пошаговые инструкции с использованием типовой функциональности 1С.
═══
1. Подготовка к переносу: что нужно сделать до начала
Неприятные сюрпризы во время переноса номенклатуры обычно возникают из-за недостаточной подготовки. Прежде чем приступать к техническим манипуляциям, выполните обязательные шаги:
Аудит исходных данных — проверьте базу-источник на наличие:
- 🔹 Дублирующихся элементов номенклатуры (с одинаковыми наименованиями или артикулами)
- 🔹 Пустых или некорректных полей (например, отсутствие единиц измерения)
- 🔹 Архивных позиций, которые не нужно переносить
- 🔹 Ссылок на удаленные объекты (может вызвать ошибки при выгрузке)
Используйте отчет Анализ заполнения справочников (доступен в большинстве конфигураций) или напишите простой запрос:
ВЫБРАТЬ
Номенклатура.Ссылка КАК Ссылка,
Номенклатура.Наименование КАК Наименование
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
НЕ Номенклатура.ЭтоГруппа
И (Номенклатура.Артикул = "" ИЛИ Номенклатура.ЕдиницаИзмерения.Ссылка = ЗНАЧЕНИЕ(Справочник.ЕдиницыИзмерения.Штука))
Синхронизация справочников — убедитесь, что в базе-приемнике существуют все необходимые классификаторы:
- 📦 Группы номенклатуры (структура должна совпадать или быть совместимой)
- ⚖️ Единицы измерения (особенно если используются нестандартные)
- 🏷️ Виды номенклатуры (товар, услуга, комплектующие и т.д.)
- 📊 Дополнительные реквизиты (если они критичны для бизнес-процессов)
Сделать резервную копию обеих баз|Проверить права доступа пользователя|Очистить кэш 1С на всех рабочих станциях|Согласовать дату переноса с бухгалтерией|Подготовить тестовую среду для проверки-->
2. Способ 1: Ручной экспорт/импорт через Excel
Самый простой метод, подходящий для небольших справочников (до 500 позиций). Не требует программирования, но имеет ограничения по объему и структуре данных.
Пошаговая инструкция:
- В базе-источнике откройте справочник
Номенклатура(менюСправочники → Товары и услуги → Номенклатура) - Нажмите
Еще → Выгрузить в Excel(илиФайл → Экспортв старых версиях) - В появившемся окне выберите все необходимые колонки:
- 📌
Наименование(обязательно) - 📌
Артикул(критично для сопоставления) - 📌
Единица измерения - 📌
Группа номенклатуры(путь к группе) - 📌
Виды номенклатуры(если используются)
- 📌
.xlsx или .csvЕще → Загрузить из ExcelКритическая особенность: При импорте 1С создаст новые элементы, но не свяжет их с историей документов из старой базы. Этот способ подходит только для первичного заполнения справочника, а не для миграции с сохранением связей.
До 100 позиций|100-1000 позиций|1000-10000 позиций|Более 10000 позиций-->
3. Способ 2: Универсальный формат обмена данными (XML)
Более надежный метод, позволяющий переносить не только справочники, но и связанные документы. Использует встроенный в 1С механизм обмена через XML-файлы.
Преимущества метода:
- 🔄 Сохраняет иерархию групп номенклатуры
- 🔗 Поддерживает связи с другими справочниками (единицы измерения, виды номенклатуры)
- 📤 Можно выгружать частями (по группам или диапазонам)
- 🔄 Подходит для регулярного обмена между базами
Инструкция по настройке:
- В базе-источнике перейдите в
Администрирование → Обмен данными → Универсальный обмен данными - Создайте новый обмен с типом
XML-файл - В настройках укажите:
- 📁 Каталог для выгрузки файлов
- 📋 Объекты для обмена: отметьте
Справочник.Номенклатура - 🔄 Направление:
Выгрузка
Выполнить обменЗагрузка и укажите путь к выгруженным файламДля сложных конфигураций (например, 1С:ERP) может потребоваться доработка правил обмена. В этом случае используйте Конвертацию данных 2.0/3.0 (рассмотрено в следующем разделе).
| Параметр | Excel | XML | Конвертация данных |
|---|---|---|---|
| Макс. объем данных | До 500 позиций | До 50 000 позиций | Неограниченно |
| Сохранение связей | ❌ Нет | ⚠️ Частично | ✅ Полностью |
| Требует программирования | ❌ Нет | ❌ Нет | ✅ Да |
| Подходит для регулярного обмена | ❌ Нет | ✅ Да | ✅ Да |
Если при загрузке XML возникает ошибка "Не найден объект", проверьте соответствие идентификаторов справочников в обеих базах. Часто проблема решается предварительной выгрузкой классификаторов (групп номенклатуры, единиц измерения).
4. Способ 3: Конвертация данных 2.0/3.0 для сложных миграций
Самый мощный инструмент для переноса данных между разными конфигурациями 1С. Позволяет настраивать правила преобразования полей, обрабатывать большие объемы данных и сохранять историю документов.
Когда использовать:
- 🔄 Перенос между разными конфигурациями (например, из 1С:УТ 10.3 в 1С:ERP 2.5)
- 📊 Необходимо сохранить историю документов (заказы, реализации)
- 🔧 Требуется трансформация структуры данных (изменение видов номенклатуры, групп)
- 📦 Объем номенклатуры превышает 10 000 позиций
Пошаговая настройка:
- Установите обработку
Конвертация данных(доступна в дистрибутиве 1С или на портале 1С:ИТС) - Создайте новую конфигурацию обмена:
- 📥 Укажите базу-источник и базу-приемник
- 📋 Выберите объекты для переноса:
Справочник.Номенклатура,Документ.УстановкаЦенНоменклатурыи т.д. - ⚙️ Настройте правила соответствия полей (например, сопоставление видов номенклатуры)
- 🔹 Корректности иерархии групп
- 🔹 Сохранности артикулов и штрихкодов
- 🔹 Связям с документами (если переносили историю)
Для автоматизации процесса можно написать сценарий на языке 1С, который будет последовательно обрабатывать группы номенклатуры. Пример кода для выборочной выгрузки:
Процедура ВыгрузитьГруппуНоменклатуры(Группа)
Обмен = КонвертацияДанных.СоздатьОбмен();
Обмен.Источник = БазаИсточник;
Обмен.Приемник = БазаПриемник;
Правило = Обмен.Правила.НайтиПоИмени("Номенклатура");
Правило.Отбор.Добавить("Родитель", ЗначениеЗаполнено(Группа));
Обмен.Выполнить();
КонецПроцедуры
Что делать если конвертация прерывается с ошибкой "Превышен лимит памяти"?
Эта ошибка typична при работе с большими объемами данных (более 50 000 позиций). Решения:
1. Разбейте выгрузку на части по группам номенклатуры
2. Увеличьте лимит памяти в параметрах запуска 1С (файл 1CEStart.cfg, параметр /M)
3. Используйте 64-разрядную версию платформы 1С
4. Выгружайте данные на диск, а не напрямую в базу-приемник
5. Способ 4: Обмен через веб-сервисы (для распределенных баз)
Если базы 1С находятся в разных географических локациях или требуется регулярная синхронизация, оптимальным решением станет настройка обмена через веб-сервисы. Этот метод требует начальной настройки, но затем позволяет автоматизировать процесс.
Требования к инфраструктуре:
- 🌐 Статический IP-адрес или доменное имя для сервера обмена
- 🔒 SSL-сертификат для защищенного соединения
- 📡 Стабильное интернет-соединение (рекомендуемая скорость от 10 Мбит/с)
- 🖥️ Сервер 1С:Предприятие версии не ниже 8.3.10
Настройка обмена:
- В базе-приемнике опубликуйте веб-сервис:
- 📌 Перейдите в
Администрирование → Публикация на веб-сервере - 📌 Укажите имя сервиса (например,
DataExchangeService) - 📌 Настройте аутентификацию (рекомендуется
Basic Authс логином/паролем)
- 📌 Перейдите в
ПланОбмена = ПланыОбмена.СоздатьПланОбмена();
ПланОбмена.Наименование = "ОбменНоменклатурой";
ПланОбмена.АвтоРегистрация = Истина;
ПланОбмена.ИспользоватьВебСервисы = Истина;
ПланОбмена.AдресВебСервиса = "https://your-server.ru/DataExchangeService/ws?wsdl";
ПланОбмена.Записать();
Номенклатура:
- 🔹 Укажите соответствие полей между базами
- 🔹 Настройте обработку конфликтов (например, "Приемник главнее")
- 🔹 Задайте расписание автоматического обмена
Для мониторинга обмена используйте журнал регистрации (Администрирование → Журнал регистрации). Обратите внимание на события с типом ОбменДанными — они содержат информацию об ошибках синхронизации.
Веб-сервисы обеспечивают самую высокую степень автоматизации, но требуют квалифицированной настройки безопасности. Всегда используйте HTTPS и ограничивайте доступ по IP-адресам.
6. Способ 5: Прямой перенос через SQL (для опытных пользователей)
Метод для администраторов, владеющих языком SQL и имеющих доступ к серверу 1С. Позволяет переносить данные на уровне базы, минуя бизнес-логику 1С, что значительно ускоряет процесс для больших объемов.
Предупреждения перед использованием:
⚠️ Внимание: Прямая работа с SQL обходит механизмы контроля целостности 1С. Ошибки в запросах могут привести к повреждению данных. Всегда тестируйте запросы на копии базы!
Основные таблицы для переноса номенклатуры:
- 📋
_Reference{ID}— основные данные справочника - 🔗
_Reference{ID}_VT{ID}— таблицы дополнительных реквизитов - 📦
_Reference{ID}_Tree— иерархия групп
Пример запроса для переноса номенклатуры из базы SourceDB в TargetDB:
-- 1. Перенос групп номенклатуры
INSERT INTO TargetDB.dbo._Reference123_Tree (Parent, Item)
SELECT Parent, Item FROM SourceDB.dbo._Reference123_Tree
-- 2. Перенос элементов номенклатуры
INSERT INTO TargetDB.dbo._Reference123 (ID, Description, Code, Parent, IsFolder)
SELECT ID, Description, Code, Parent, IsFolder
FROM SourceDB.dbo._Reference123
WHERE IsFolder = 0 -- Только элементы, без групп
-- 3. Перенос дополнительных реквизитов (пример для артикула)
INSERT INTO TargetDB.dbo._Reference123_VT10001 (Reference123_ID, Value)
SELECT Reference123_ID, Value
FROM SourceDB.dbo._Reference123_VT10001
После переноса данных обязательно выполните:
- Проверку целостности ссылок:
ТЕСТИРОВАНИЕ И ИСПРАВЛЕНИЕв конфигураторе - Обновление индексов:
ДБФ.ОбновитьИндексы() - Пересчет итогов:
ПересчитатьИтогиПоРегистрам()
Для ускорения переноса больших справочников (более 100 000 позиций) используйте пакетный перенос данными порциями по 10 000 записей с транзакциями.
7. Типичные ошибки и как их избежать
Даже при тщательной подготовке перенос номенклатуры может столкнуться с проблемами. Вот наиболее распространенные ошибки и способы их решения:
Проблема 1: Дублирование номенклатуры
- 🔹 Причина: В базе-приемнике уже существуют элементы с такими же наименованиями или артикулами
- 🔹 Решение:
- Перед переносом выполните очистку дублей обработкой
Поиск и замена дублей - Используйте правило обмена "Объединять по артикулу"
- Для критичных случаев напишите обработку, которая добавляет префикс к дублирующимся позициям
- Перед переносом выполните очистку дублей обработкой
Проблема 2: Потеря связей с документами
- 🔹 Причина: Перенос номенклатуры без связанных документов (заказов, реализаций)
- 🔹 Решение:
- Всегда переносите документы вместе с номенклатурой (используйте
Конвертацию данных) - Для восстановления связей используйте обработку
Поиск и восстановление ссылок - Проверяйте целостность ссылок отчетом
Анализ ссылочной целостности
- Всегда переносите документы вместе с номенклатурой (используйте
Проблема 3: Ошибки конвертации единиц измерения
⚠️ Внимание: Если в базе-приемнике отсутствует единица измерения из базы-источника, перенос завершится с ошибкой. Всегда сначала синхронизируйте справочник ЕдиницыИзмерения!
Проблема 4: Превышение лимитов памяти
- 🔹 Причина: Большой объем данных (более 50 000 позиций) при ограниченных ресурсах сервера
- 🔹 Решение:
- Разбейте перенос на части (по группам номенклатуры)
- Используйте 64-разрядную версию платформы 1С
- Увеличьте параметр
/Mв файле запуска 1С (например,/M1024)
Проблема 5: Несовпадение версий конфигураций
- 🔹 Причина: Перенос между сильно отличающимися версиями (например, 1С:УТ 10.3 → 1С:ERP 2.5)
- 🔹 Решение:
- Используйте
Конвертацию данных 3.0с адаптерами для разных конфигураций - Создайте промежуточную базу с совместимой конфигурацией
- Обратитесь к партнерам 1С за специализированными обработками
- Используйте
8. Проверка результатов и постобработка
После переноса номенклатуры критически важно проверить корректность данных и устранить возможные несоответствия. Используйте этот чек-лист для контроля качества:
1. Проверка целостности данных:
- 🔹 Сверьте количество позиций в базе-источнике и базе-приемнике
- 🔹 Проверьте сохранность иерархии групп (отчет
Структура номенклатуры) - 🔹 Убедитесь в корректности артикулов и штрихкодов (отчет
Контроль уникальности)
2. Тестирование бизнес-процессов:
- 🔹 Создайте тестовые документы (заказ клиента, реализация) с перенесенной номенклатурой
- 🔹 Проверьте печатные формы (счета, накладные) на корректность отображения
- 🔹 Убедитесь в работоспособности отчетов (оборотно-сальдовая ведомость по товарам)
3. Автоматизированные проверки:
Используйте эти запросы для выявления проблем:
-- 1. Поиск номенклатуры без артикулов
ВЫБРАТЬ
Номенклатура.Ссылка КАК Ссылка,
Номенклатура.Наименование КАК Наименование
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
НЕ Номенклатура.ЭтоГруппа
И Номенклатура.Артикул = ""
-- 2. Поиск дублирующихся артикулов
ВЫБРАТЬ
Номенклатура.Артикул КАК Артикул,
КОЛИЧЕСТВО(*) КАК Количество
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
НЕ Номенклатура.ЭтоГруппа
СГРУППИРОВАТЬ ПО
Номенклатура.Артикул
ИМЕЮЩИЕ
КОЛИЧЕСТВО(*) > 1
4. Документирование изменений:
- 📝 Составьте отчет о переносе с указанием:
- Дата и время переноса
- Количество перенесенных позиций
- Выявленные и устраненные ошибки
- Рекомендации по дальнейшей работе
После переноса обязательно обновите кэш метаданных на всех рабочих станциях (меню "Файл → Обновить"). Это предотвратит ошибки отображения новых элементов номенклатуры.
═══ FAQ ═══
Можно ли перенести номенклатуру между базами разных версий платформы 1С (например, 8.2 и 8.3)?
Да, но с оговорками. Платформа 1С 8.2 не поддерживает форматы обмена, используемые в 8.3. Вам потребуется:
- Выгрузить данные из 8.2 в промежуточный формат (например,
XMLилиCSV) - Преобразовать данные с учетом изменений структуры метаданных
- Загрузить в 8.3 с использованием
Конвертации данныхилиЗагрузки из Excel
Для сложных случаев рекомендуется использовать специализированные обработки, например, "Универсальный обмен данными в формате XML" от фирмы 1С.
Как перенести не только номенклатуру, но и остатки по товарам?
Для переноса остатков вместе с номенклатурой:
- Используйте
Конвертацию данныхс включением регистров:РегистрНакопления.ТоварыНаСкладахРегистрНакопления.ПартииТоваровНаСкладах(если используется)
- Номенклатура уже перенесена и сопоставлена
- Склады в базе-приемнике имеют те же идентификаторы или настроено сопоставление
- Период остатков (дата) корректно указан в настройках обмена
После переноса обязательно сверьте остатки отчетом Ведомость по товарам на складах в обеих базах.
Что делать, если после переноса в отчетах не отображается номенклатура?
Проблема обычно связана с одним из факторов:
- Не обновлен кэш метаданных — на рабочих станциях выполните
Файл → Обновить - Несовпадение прав доступа — проверьте права пользователя на новый справочник номенклатуры
- Ошибки в иерархии групп — запустите обработку
Проверка и восстановление иерархии справочников - Некорректные настройки отчетов — проверьте отборы по организации или складу в настройках отчета
Если проблема сохраняется, проверьте журнал регистрации на наличие ошибок типа Не найден объект.
Как перенести номенклатуру вместе с картинками и файлами?
Для переноса файлов (изображений, технических паспортов и т.д.), прикрепленных к номенклатуре:
- Выгрузите файлы из базы-источника:
- Используйте обработку
ВыгрузкаЗначенийРеквизитовдля извлечения двоичных данных - Или вручную скопируйте файлы из каталога хранения вложений (обычно
...\1C\v8\data\files)
- Используйте обработку
Картинка или Файлы:
Правило = Обмен.Правила.НайтиПоИмени("Номенклатура");
Правило.ДобавитьРеквизит("Картинка",