Загрузка справочника товаров в 1С 8.3 разными способами
Содержание
Самый быстрый способ подгрузить номенклатуру — встроенная загрузка из Excel
. В «1С:Бухгалтерии 3.0» откройте Справочники → Номенклатура, нажмите Загрузить в командной панели списка, выберите файл и сопоставьте колонки с реквизитами. Новые позиции создаются пачкой за один проход.
Если конфигурация другая (УТ, ERP, УНФ) или нужно перенести тысячи строк с ценами и остатками, подключают универсальную обработку, обмен по формату CommerceML или загрузку через правила обмена. Выбор зависит от того, откуда данные: разовая выгрузка из Excel — одно, регулярная синхронизация с сайтом или другой базой — совсем другое.
Ниже — каждый способ с путями меню, подготовкой файла и разбором ошибок, из-за которых загрузка чаще всего падает или плодит дубли.
Чем загружать: четыре рабочих способа
Прежде чем грузить, определитесь с источником и периодичностью. От этого зависит инструмент.
| Способ | Когда применять | Формат источника |
|---|---|---|
| Встроенная загрузка из Excel | Разовый импорт списка товаров в БП 3.0 | .xlsx, .xls, буфер обмена |
| Универсальная обработка | Любая конфигурация, гибкий маппинг | .xlsx, .ods, .mxl |
| Обмен по CommerceML | Регулярный обмен с сайтом или интернет-магазином | .xml (import.xml, offers.xml) |
| Правила обмена (EnterpriseData) | Перенос между базами 1С | .xml + файл правил |
Для одноразовой задачи «загнать прайс в базу» не настраивайте обмен — это избыточно. Встроенной загрузки или универсальной обработки хватит.
Порядок действий во всех способах один: подготовить данные → указать, в какой реквизит ложится каждая колонка → задать ключ, по которому ищутся дубли → запустить. Разница только в инструменте и формате файла.
Как подготовить файл Excel или CSV
Файл решает половину успеха. Загрузчик читает таблицу построчно, поэтому структура должна быть плоской.
Что проверить перед загрузкой:
- 📋 Одна строка — одна позиция. Никаких объединённых ячеек и подытогов внутри таблицы.
- 🏷️ Шапка в одну строку. Заголовки колонок — ровно в первой строке, без «двухэтажных» шапок.
- 🔢 Числа — числом. Цена и количество не должны быть текстом. Уберите пробелы-разделители тысяч; разделитель дробной части — как в региональных настройках базы.
- 🧾 Артикул — отдельная колонка. Это будущий ключ поиска, по нему система отличит новый товар от существующего.
- 📐 Единица измерения — как в классификаторе.
шт,кг,л,м. Непонятную единицу загрузчик не подставит. - 💰 Ставка НДС — текстом ровно так, как в справочнике ставок (
20%,10%,Без НДС). Иначе строка не сопоставится.
Для CSV критична кодировка. Файл в UTF-8 база может прочитать как кракозябры, если ожидает windows-1251. Если русские буквы «поехали» — пересохраните CSV в нужной кодировке или откройте его в Excel и сохраните как .xlsx.
Минимальный набор реквизитов для товара — наименование, вид номенклатуры (товар/услуга/работа) и единица измерения. Без них элемент не запишется, и строка свалится в ошибку.
Отдельная колонка под группу (папку справочника) избавит от ручной раскладки после импорта: укажете имя группы — товар ляжет в неё. Если справочник ведётся с иерархией по видам товаров, заранее решите, создавать группы при загрузке или разложить позиции позже вручную.
Про вид номенклатуры стоит сказать отдельно. Это ключевой реквизит: он определяет, товар перед вами, услуга или работа, и влияет на доступные счета учёта и настройки. Если в файле видов несколько, выделите под них колонку. Если все позиции однотипны (например, только товары), проще задать значение по умолчанию прямо в загрузчике — колонка в файле тогда не нужна.
Чистить прайс удобнее в Excel до загрузки, а не разгребать дубли и пустые реквизиты уже в справочнике.
Встроенная загрузка из Excel: самый простой путь
В «1С:Бухгалтерии 3.0» загрузчик уже встроен в справочник. Это самый быстрый вариант для прайса на пару сотен позиций.
- Откройте
Справочники → Номенклатура. - В командной панели списка нажмите Загрузить.
- Вставьте таблицу из буфера обмена (
Ctrl+Vпрямо из Excel) или выберите файл кнопкой открытия. - В появившейся таблице сверху укажите, что лежит в каждой колонке: наименование, артикул, цена, ставка НДС, единица, штрихкод.
- Нажмите Загрузить и дождитесь отчёта о создании.
Система покажет, сколько позиций создано, сколько обновлено и какие строки не прошли. Созданные товары сразу появятся в справочнике, и их можно открыть и дозаполнить вручную — счета учёта, номенклатурную группу, дополнительные характеристики.
Загрузка из буфера удобна, когда прайс пришёл письмом: выделили диапазон в Excel, скопировали, вставили в форму загрузки — файл сохранять не нужно.
В «Управлении торговлей 11», ERP и УНФ встроенной кнопки «Загрузить» в карточке номенклатуры исторически нет — там переходят к универсальной обработке или обмену. Если не нашли кнопку в своей конфигурации, не ищите её вслепую: переходите к следующему способу.
Сопоставление колонок и ключ поиска против дублей
Главная причина, по которой после загрузки в справочнике оказывается два «молока» вместо одного, — не задан ключ поиска. Загрузчик каждую строку считает новым товаром и создаёт его заново.
Перед первой боевой загрузкой всегда выбирайте поле поиска (идентификатор) — чаще всего это артикул. Тогда повторный импорт того же прайса обновит позиции, а не задвоит их.
Типовое сопоставление колонок прайса и реквизитов номенклатуры:
Обратите внимание: цены, штрихкоды и остатки — это не реквизиты карточки, а отдельные регистры. Встроенные загрузчики умеют их заполнять заодно, но при настройке обмена эти данные идут отдельными сообщениями (в CommerceML — файл offers.xml).
Обмен через XML: CommerceML и правила обмена
Когда номенклатура приезжает из интернет-магазина или другой программы, работает обмен по XML. Это не разовая загрузка, а настраиваемый канал.
CommerceML — стандартный формат обмена товарами с сайтами (в том числе с 1С-Битрикс). Каталог приходит файлом import.xml (описания, группы, свойства), цены и остатки — файлом offers.xml. Настраивается обмен в Администрирование → Синхронизация данных → Обмен с сайтом (в УТ/КА раздел может называться «Интеграция с сайтом»). В сообщении указываете каталог с XML-файлами — система разбирает их и создаёт или обновляет позиции по внутренним идентификаторам.
EnterpriseData и правила обмена нужны, когда данные переносятся между базами 1С — например, из старой учётной системы в новую. Здесь обмен идёт по единому формату EnterpriseData либо по правилам, собранным в «Конвертации данных 3». Настройка — в том же разделе Администрирование → Синхронизация данных, но вы загружаете ещё и файл правил, который описывает соответствие объектов двух конфигураций.
Обмен — не способ «быстро загрузить прайс из Excel». Если XML-файла у вас нет и его неоткуда взять, этот путь не ваш: возвращайтесь к загрузке из таблицы.
Отдельно про идентификацию при обмене. CommerceML и правила обмена ищут позиции не по артикулу, а по внутреннему идентификатору (GUID), который присваивается при первом обмене. Поэтому дубли при XML-обмене возникают реже, чем при ручной загрузке из Excel: пока используется тот же канал, система узнаёт ранее переданные товары. Проблемы начинаются, если выгружать каталог то из одной системы, то из другой — идентификаторы перестают совпадать.
Через CommerceML обычно приезжают не только сами карточки, но и структура групп, а также свойства номенклатуры (цвет, размер, бренд). В настройках обмена проверьте, как свойства источника ложатся на реквизиты и дополнительные сведения в вашей базе, иначе часть характеристик потеряется.
Для разового переноса каталога между базами 1С правила обмена избыточны, но если обмен будет регулярным (каждую ночь подтягивать новые товары), настроенный канал окупается — ручной импорт больше не нужен.
Автоматизация: универсальная обработка и свой код
Универсальная внешняя обработка «Загрузка данных из табличного документа» грузит данные в любую конфигурацию без доработок. Её открывают через Файл → Открыть и выбирают файл обработки (.epf).
Порядок работы с ней:
- В обработке выберите режим загрузки — Справочник, затем справочник Номенклатура.
- На вкладке с табличным документом загрузите ваш Excel.
- Сопоставьте колонки файла с реквизитами (как в разделе про маппинг).
- Укажите реквизит для поиска существующих элементов (артикул).
- Запустите загрузку.
Открытие внешних обработок может быть запрещено политикой безопасности базы. Если Файл → Открыть не предлагает запустить .epf, профиль безопасности или права пользователя блокируют внешний код — вопрос решается с администратором, а не обходом.
Если загрузку надо встроить в регулярный процесс, пишут собственный код. Ядро — поиск по артикулу и создание элемента при отсутствии:
Ссылка = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул);
Если Ссылка.Пустая() Тогда
Элемент = Справочники.Номенклатура.СоздатьЭлемент();
Элемент.Наименование = Наименование;
Элемент.Артикул = Артикул;
// заполнить вид номенклатуры и единицу измерения
Элемент.Записать();
Иначе
// обновить существующий при необходимости
КонецЕсли;
Сам файл при этом читают либо тем же табличным документом, либо через COM-соединение с Excel. Проверку Ссылка.Пустая() оставляйте обязательно — без неё повторный запуск задвоит справочник. Если в методах чтения файла не уверены, не изобретайте их наугад: опишите логику и обкатайте на копии базы.
Собственный код удобно повесить на регламентное задание — тогда база сама заберёт новый файл по расписанию (раз в час, раз в сутки). Файл кладут в заранее оговорённый каталог, обработка его читает, загружает новые позиции и сдвигает обработанный файл в архивную папку, чтобы не разобрать его повторно. Это тот случай, когда вложения в разработку оправданы: загружать прайс руками каждый день — лишняя рутина.
Почему загрузка падает: разбор ошибок
Чаще всего ломается не инструмент, а данные. Вот как по симптому понять причину.
.xlsx.шт, кг, м) либо заведите нужную заранее.Перед боевой загрузкой прогоните файл на 5–10 строках и проверьте результат в справочнике. Проще поправить одну ошибку на десяти позициях, чем разбирать тысячу задвоенных карточек.