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

В этой статье мы разберем 5 проверенных способов выгрузки — от стандартных инструментов платформы до программного кода на 1С:Предприятие 8.3. Вы узнаете, как сохранить иерархию групп, выгрузить дополнительные реквизиты (артикулы, штрихкоды, цены) и избежать типичных ошибок при работе с большими справочниками (10 000+ позиций). Особое внимание уделим форматам Excel, XML и JSON, а также интеграции с 1С:УТ, 1С:ERP и 1С:Бухгалтерия.

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

1. Стандартная выгрузка через «Универсальный обмен данными»

Самый простой способ выгрузить номенклатуру — использовать встроенный механизм «Универсальный обмен данными», доступный в большинстве конфигураций (УТ 11, ERP 2, Бухгалтерия 3.0). Этот метод не требует программирования и подходит для разовых операций.

Чтобы начать, откройте раздел Администрирование → Обмен данными → Универсальный обмен данными. Далее:

  • 📁 Выберите «Справочники» в списке объектов обмена.
  • 🔍 Найдите «Номенклатура» и отметьте её галочкой.
  • 📥 Укажите формат выгрузки: XML (рекомендуется для интеграций) или TXT (для простых задач).
  • 💾 Сохраните файл в удобную папку, указав кодировку UTF-8 (важно для кириллических символов!).

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

📊 Какой формат выгрузки вы используете чаще?
XML
Excel
JSON
TXT
Другой
⚠️ Внимание: В конфигурациях 1С:УТ 10.3 и старше путь к универсальному обмену может отличаться. Если не находите раздел, проверьте права доступа или используйте альтернативный метод через Все функции (см. раздел 3).

2. Выгрузка в Excel через «Отчеты и обработки»

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

Инструкция для 1С:Управление торговлей 11:

  1. Перейдите в Отчеты → Справочники → Номенклатура.
  2. Нажмите Ещё → Вывести список (или Все действия → Вывести список в некоторых версиях).
  3. В открывшемся окне настройте колонки: добавьте артикул, штрихкод, группу номенклатуры и другие нужные поля.
  4. Нажмите Ещё → Выгрузить в Excel и сохраните файл.

Для более гибкой настройки используйте внешнюю обработку «ВыгрузкаВExcel.epf» (можно скачать с сайта 1С-ИТС или форумов). Она позволяет:

  • 📊 Выгружать данные с сохранением форматирования (цвета, шрифты).
  • 🔄 Обновлять существующие файлы, не пересоздавая их.
  • 📌 Фиксировать шапку таблицы для удобства работы.
Формат Плюсы Минусы Когда использовать
XML Сохраняет структуру данных, подходит для интеграций Сложно редактировать вручную Обмен с другими системами (CRM, сайты)
Excel Удобно для анализа, фильтрации, ручного редактирования Может терять иерархию групп Отчетность, правка данных
JSON Легковесный формат для веб-приложений Не поддерживается стандартными средствами 1С Интеграция с API
💡

Если при выгрузке в Excel русские буквы отображаются как "кракозябры", проверьте кодировку файла. В настройках обработки укажите UTF-8 или Windows-1251 (в зависимости от версии Excel).

3. Программная выгрузка через запрос и объект «ЗаписьXML»

Для автоматизации или выгрузки больших объемов данных (например, 50 000+ позиций) используйте встроенный язык 1С. Этот метод требует базовых знаний программирования, но дает полный контроль над структурой выходного файла.

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

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

// Создаем объект записи XML

ЗаписьXML = Новый ЗаписьXML;

ЗаписьXML.ОткрытьФайл("C:\Export\Номенклатура.xml", "UTF-8");

// Записываем заголовок

ЗаписьXML.ЗаписатьОбъявлениеXML();

ЗаписьXML.ЗаписатьНачалоЭлемента("Номенклатура");

// Выбираем данные запросом

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

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

"ВЫБРАТЬ

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

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

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

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

|ИЗ

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

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

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

// Записываем каждую позицию

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

ЗаписьXML.ЗаписатьНачалоЭлемента("Позиция");

ЗаписьXML.ЗаписатьАтрибут("Ид", Выборка.Ссылка.УникальныйИдентификатор());

ЗаписьXML.ЗаписатьЭлемент("Наименование", Выборка.Наименование);

ЗаписьXML.ЗаписатьЭлемент("Артикул", Выборка.Артикул);

ЗаписьXML.ЗаписатьЭлемент("Штрихкод", Выборка.Штрихкод);

ЗаписьXML.ЗаписатьКонецЭлемента(); // Позиция

КонецЦикла;

ЗаписьXML.ЗаписатьКонецЭлемента(); // Номенклатура

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

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

Этот скрипт выгрузит:

  • 🔗 Уникальные идентификаторы (для последующей синхронизации).
  • 📛 Наименования, артикулы и штрихкоды.
  • 📂 Структуру XML, совместимую с большинством систем обмена.

Для выгрузки в Excel замените ЗаписьXML на ЗаписьДанныхExcel (доступно в 1С:Предприятие 8.3.10+). Пример:

ЗаписьExcel = Новый ЗаписьДанныхExcel;

ЗаписьExcel.ОткрытьФайл("C:\Export\Номенклатура.xlsx");

ЗаписьExcel.ЗаписатьСтроку("Наименование", "Артикул", "Штрихкод");

// ... запрос и запись данных

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

⚠️ Внимание: При выгрузке больших справочников (100 000+ строк) разбейте процесс на пакеты по 10 000 записей, чтобы избежать переполнения памяти. Используйте конструкцию Пределы.Память() для контроля.

Создать резервную копию базы|Проверить права доступа к папке экспорта|Определить список выгружаемых полей|Тестировать на небольшой выборке данных-->

4. Выгрузка с помощью внешних обработок (например, «Универсальный обмен данными 2.0»)

Для регулярного обмена данными удобно использовать внешние обработки, такие как:

  • 📦 «Универсальный обмен данными 2.0» (от фирмы 1С).
  • 🔄 «Конвертация данных» (для сложных трансформаций).
  • 📤 «Выгрузка в Excel/Word» (от партнеров 1С).

Рассмотрим работу с «Универсальный обмен данными 2.0»:

  1. Скачайте обработку с портала 1С-ИТС и подключите её через Файл → Открыть.
  2. В настройках выберите «Номенклатура» как объект обмена.
  3. Укажите формат выгрузки (XML, JSON или Excel).
  4. Настройте правила отбора (например, выгружать только активные позиции).
  5. Запустите выгрузку и сохраните файл.

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

  • 🔧 Гибкая настройка полей (можно добавить пользовательские реквизиты).
  • 📅 Возможность создать расписание автоматической выгрузки.
  • 🔄 Поддержка двусторонней синхронизации (выгрузка + загрузка изменений).

Обработка «Конвертация данных» подходит для сложных трансформаций, например, когда нужно:

  • 🔄 Преобразовать структуру данных под требования другой системы.
  • 📊 Объединить несколько справочников в один файл.
  • 🔍 Применить фильтры (например, выгрузить только товары определенной группы).
Как выгрузить изображения номенклатуры?

Для выгрузки фотографий товаров используйте обработку "ВыгрузкаИзображенийНоменклатуры" (доступна на Инфостарте). Она сохраняет картинки в отдельную папку и привязывает их к позициям в XML/Excel через пути к файлам. Важно: изображения должны быть загружены в справочник заранее (поле "Картинка" или "Изображение").

5. Выгрузка через COM-соединение и внешние скрипты (Python, PowerShell)

Для интеграции с внешними системами (например, 1С + Python или 1С + PowerShell) используйте COM-соединение. Этот метод требует знаний программирования, но позволяет полностью автоматизировать обмен данными.

Пример скрипта на Python с использованием библиотеки pywin32:

import win32com.client

Подключаемся к базе 1С

v8 = win32com.client.Dispatch("V83.ComConnector")

base = v8.Connect("File=C:\Bases\Trade;Usr=Администратор")

Получаем справочник номенклатуры

catalog = base.Sправочники.Номенклатура

selection = catalog.Выбрать()

Выгружаем данные в CSV

with open("nomenklatura.csv", "w", encoding="utf-8") as f:

f.write("Наименование;Артикул;Штрихкод\n")

while selection.Next():

item = selection.GetObj()

f.write(f"{item.Наименование};{item.Артикул};{item.Штрихкод}\n")

print("Выгрузка завершена!")

Для PowerShell логика аналогична:

$v8 = New-Object -ComObject V83.ComConnector

$base = $v8.Connect("File=C:\Bases\Trade;Usr=Администратор")

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

$selection = $catalog.Выбрать()

$output = @()

while ($selection.Next()) {

$item = $selection.GetObj()

$output += [PSCustomObject]@{

Наименование = $item.Наименование

Артикул = $item.Артикул

Штрихкод = $item.Штрихкод

}

}

$output | Export-Csv -Path "C:\Export\nomenklatura.csv" -Encoding UTF8 -Delimiter ";"

Преимущества этого подхода:

  • 🤖 Полная автоматизация (можно запускать по расписанию через Планировщик задач).
  • 🔗 Интеграция с любыми системами (CRM, ERP, веб-сервисы).
  • 📊 Возможность предварительной обработки данных (например, очистка артикулов).
⚠️ Внимание: При использовании COM-соединения убедитесь, что на компьютере установлена платформа 1С:Предприятие 8.3 и пользователь имеет права на доступ к базе через OLE.

6. Решение типичных ошибок при выгрузке

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

Ошибка Причина Решение
Файл пустой или содержит некорректные данные Неверные настройки фильтра или прав доступа Проверьте права пользователя и параметры отбора в запросе
Русские символы отображаются как "???" Неверная кодировка файла Укажите UTF-8 при сохранении
Ошибка "Недостаточно памяти" Слишком большой объем данных Разбейте выгрузку на части по 5 000–10 000 записей
Не выгружаются дополнительные реквизиты Поля не включены в запрос или шаблон Добавьте реквизиты в текст запроса или настройте обработку

Если при выгрузке в Excel возникает ошибка «Файл поврежден», попробуйте:

  • 📂 Сохранить файл в формате .xlsx вместо .xls.
  • 🔄 Использовать обработку «ВыгрузкаВExcel» вместо стандартных средств.
  • 📋 Открыть файл через LibreOffice Calc (иногда справится там, где Excel выдает ошибку).

Для ошибок при работе с XML проверьте:

  • 🔍 Корректность структуры (открывающие/закрывающие теги).
  • 📌 Наличие специальных символов (&, <, >) — они должны быть экранированы (&lt;, &gt;).
  • 📡 Кодировку файла (рекомендуется UTF-8).
💡

Перед массовой выгрузкой всегда тестируйте процесс на небольшой выборке данных (10–20 позиций). Это поможет избежать ошибок при работе с полным справочником.

FAQ: Частые вопросы по выгрузке номенклатуры

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

Для сохранения иерархии используйте XML-формат с указанием родительских групп. В запросе добавьте поле Номенклатура.Родитель, а при выгрузке рекурсивно обрабатывайте вложенные элементы. Пример кода:

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

"ВЫБРАТЬ

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

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

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

|ИЗ

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

В обработчике проверяйте Родитель и стройте дерево категорий.

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

Да, но для этого нужно объединить данные из нескольких таблиц. Пример запроса:

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

"ВЫБРАТЬ

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

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

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

| РегистрыНакопления.ОстаткиТоваров.КоличествоОстаток КАК Остаток

|ИЗ

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

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

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

| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров КАК РегистрыНакопления.ОстаткиТоваров

| ПО Номенклатура.Ссылка = РегистрыНакопления.ОстаткиТоваров.Номенклатура"

Учтите, что остатки зависят от текущей даты — укажите её в параметрах запроса.

Как автоматизировать выгрузку по расписанию?

Используйте регламентные задания в 1С или внешние инструменты:

  1. В 1С: Администрирование → Поддержка и обслуживание → Регламентные задания.
  2. Создайте задание типа «Выполнение обработки» и укажите ваш скрипт выгрузки.
  3. Настройте расписание (например, ежедневно в 2:00).

Для внешней автоматизации подойдет Планировщик задач Windows + скрипт на PowerShell или Python.

Что делать, если выгрузка прерывается из-за большого объема данных?

Разбейте справочник на части по алфавиту или группам. Пример запроса для выгрузки по буквам:

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

"ВЫБРАТЬ

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

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

|ИЗ

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

|ГДЕ

| Номенклатура.Наименование LIKE 'А%'" // Только на "А"

Запускайте выгрузку для каждой буквы отдельно.

Как выгрузить номенклатуру с характеристиками (размеры, цвета)?summary>

Используйте запрос с присоединением таблицы ХарактеристикиНоменклатуры:

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

"ВЫБРАТЬ

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

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

| ХарактеристикиНоменклатуры.Значение КАК Значение

|ИЗ

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

| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры

| ПО Номенклатура.Ссылка = ХарактеристикиНоменклатуры.Номенклатура"

В результате получите таблицу с парами "Номенклатура — Характеристика — Значение".