Импорт прайс-листа в 1С из Excel, CSV и CommerceML

· 9 мин

Содержание

Чтобы загрузить прайс-лист в 1С, есть три рабочих пути: импорт из файла Excel или CSV через встроенную загрузку, через внешнюю обработку загрузки из табличного документа или по XML-формату CommerceML через обмен. В 1С:Управление торговлей цены поставщиков живут в разделе Закупки, собственные цены продажи — в разделе CRM и маркетинг, пункт Виды цен. В 1С:Бухгалтерии цены номенклатуры задаются в разделе Склад, группа Цены.

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

Главная сложность не в самой загрузке, а в сопоставлении: артикулы и наименования у поставщика почти никогда не совпадают с вашей номенклатурой. Разберём по порядку — от подготовки файла до автоматической загрузки по расписанию.

Готовим файл поставщика перед импортом

Прежде чем грузить, приведите файл в вид, который 1С прочитает без ошибок. Большинство сбоев при импорте закладывается именно здесь.

Что должно быть в таблице как минимум:

  • 🔑 код или артикул товара у поставщика — по нему идёт сопоставление;
  • 🏷️ наименование — для контроля и первичного создания позиций;
  • 💰 цена — числом, а не текстом;
  • 📦 при необходимости — единица измерения, валюта, штрихкод, остаток.

Теперь то, что мешает загрузке и что убирают заранее:

  • объединённые ячейки в шапке и внутри таблицы — разбейте их;
  • несколько строк заголовка — оставьте одну;
  • логотипы, картинки, примечания, промежуточные итоги и пустые строки между товарами;
  • текстовый формат у колонки с ценой — из-за него цена читается как ноль или не читается вовсе;
  • лишние листы в книге — оставьте один лист с данными.

Десятичный разделитель в цене приведите к одному виду. Если в файле цены вида 1 250,00 с пробелом-разделителем разрядов, 1С может прочитать такое число неверно. Проще заранее заменить формат на обычное число без разделителя групп.

Поддерживаемые форматы на входе: XLSX, XLS, CSV, табличный документ mxl. Для CSV критична кодировка — об этом ниже, в разделе про ошибки.

Проверка файла перед загрузкой
Выполнено: 0 / 6

Как загрузить цены стандартными средствами 1С

Выбор способа зависит от конфигурации и от того, разовая это задача или регулярная.

Способ 1. Копирование в табличную часть. Самый быстрый для разовой загрузки небольшого прайса. В документе установки цен выделяете в Excel колонки «товар — цена», копируете и вставляете в табличную часть документа. 1С попытается сопоставить строки с номенклатурой по наименованию или коду. Способ не требует настроек, но чувствителен к порядку колонок.

Способ 2. Встроенная загрузка из файла. В конфигурациях на платформе 8.3 (БП 3.0, УТ 11) у многих справочников и табличных частей есть команда загрузки из внешнего файла — ищите её в командной панели формы или в меню Ещё. Механизм показывает предпросмотр, даёт указать, какая колонка файла соответствует какому полю, и подсвечивает строки, которые не удалось распознать.

Способ 3. Внешняя обработка загрузки из табличного документа. Универсальный инструмент «Загрузка данных из табличного документа» распространяется на портале и дисках ИТС. Он грузит данные в любой справочник или документ, в том числе в регистры цен, с гибкой настройкой соответствия колонок. Порядок работы:

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

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

Для цен поставщиков в 1С:Управление торговлей используется отдельный документ в разделе Закупки — он фиксирует цены конкретного поставщика с историей по датам. Загрузка в него идёт теми же способами: из файла или копированием.

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

Сопоставление товаров поставщика с вашей номенклатурой

Это ключевой шаг, из-за которого прайс либо встаёт корректно, либо плодит дубли. У поставщика свои коды, у вас — свои. Задача — связать их один раз, чтобы при следующих загрузках сопоставление подхватывалось автоматически.

В 1С:Управление торговлей для этого есть справочник номенклатуры поставщиков. В нём для каждой позиции поставщика хранится ссылка на вашу карточку номенклатуры. По чему сопоставляют:

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

При первой загрузке большого прайса часть строк не сопоставится — это нормально. Их 1С обычно выносит в отдельный список «не сопоставлено», где вы либо связываете позицию с существующей карточкой, либо создаёте новую. Разберите этот список до того, как проводить документ: иначе непривязанные строки либо потеряются, либо создадут дубли.

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

Сопоставление полей
Артикул поставщика→Код в справочнике номенклатуры поставщиков
Наименование из файла→Наименование (для новых позиций)
Штрихкод→Штрихкод номенклатуры
Цена→Цена в документе регистрации
Единица измерения→Единица из классификатора

Если поставщик меняет свои артикулы от прайса к прайсу, сопоставление по коду будет каждый раз рваться. В таком случае надёжнее привязываться к штрихкоду, а при его отсутствии — договориться с поставщиком о стабильной колонке-идентификаторе.

Загрузка прайса в формате CommerceML (XML)

CommerceML — это стандартный для 1С XML-формат обмена коммерческой информацией. Прайс в нём обычно приходит двумя файлами: import.xml с описанием товаров и offers.xml с ценами и остатками (вариант CommerceML 2). Формат удобен тем, что переносит не только цены, но и структуру каталога, характеристики и единицы.

Когда XML предпочтительнее Excel:

  • поставщик уже выгружает каталог для сайтов и маркетплейсов в CommerceML;
  • прайс большой и обновляется часто;
  • кроме цен нужно переносить остатки, описания, изображения.

Загрузка идёт не обработкой, а через механизм обмена. В общих чертах:

  1. Поставщик выгружает файлы import.xml и offers.xml.
  2. В вашей базе настраивается узел обмена, который читает эти файлы из согласованного каталога или по ссылке.
  3. При обмене товары сопоставляются по идентификаторам из XML, цены записываются в регистр.

Сопоставление в CommerceML идёт по внутренним идентификаторам (GUID) товаров поставщика. Это надёжнее, чем по тексту наименования, но требует, чтобы поставщик не пересоздавал позиции заново при каждой выгрузке — иначе идентификаторы меняются и связи рвутся.

Обновление цен через соглашение с поставщиком

В 1С:Управление торговлей цены поставщика не висят в воздухе — они привязываются к условиям закупки. Для этого служит соглашение с поставщиком: в нём фиксируют валюту, вид цен, по которому поставщик отпускает товар, и прочие условия.

Как это работает на практике:

  • загруженные цены регистрируются как цены конкретного поставщика на дату;
  • при оформлении заказа поставщику или поступления товаров цена подставляется из последней зарегистрированной — вручную её каждый раз не вбивают;
  • история цен сохраняется, и вы видите, как менялась закупочная цена позиции во времени.

Собственные цены продажи — это отдельная сущность. Загрузка прайса поставщика меняет закупочные цены и не трогает ваши отпускные. Чтобы пересчитать цены продажи от новой закупки, в 1С:Управление торговлей настраивают правила ценообразования по видам цен (CRM и маркетинг → Виды цен): например, «закупочная плюс наценка». Тогда после загрузки прайса достаточно пересчитать продажные цены по правилу, а не вводить их руками.

Разделяйте закупочные и продажные цены. Частая путаница новичков — загрузить прайс поставщика и ждать, что обновятся цены на витрине. Этого не произойдёт, пока вы не пересчитаете виды цен продажи.

Частые ошибки при загрузке и как их обойти

Большинство проблем при импорте прайса сводится к нескольким типовым ситуациям. Диагностика по симптому:

Диагностика: выберите симптом

Отдельно про проверку результата. Не проводите документ установки цен сразу на весь прайс. Загрузите, откройте табличную часть, отсортируйте по цене — нули и аномально большие значения сразу видны в начале и в конце списка. Так ошибка формата ловится до того, как кривые цены попадут в заказы.

Автоматическая загрузка прайсов поставщиков

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

  • Папка обмена CommerceML. Поставщик кладёт offers.xml в согласованный каталог (сетевая папка, FTP, облако), а 1С по расписанию забирает файл. Настраивается через узел обмена и регламентное задание.
  • Обмен между базами 1С. Если у вас и у поставщика конфигурации 1С, можно настроить прямой обмен по плану обмена — тогда цены синхронизируются без промежуточных файлов.
  • EDI и электронные каталоги. Для сетевой розницы прайсы и каталоги часто ходят через EDI-операторов в стандартных форматах; загрузка настраивается через модуль обмена.

Регламентное задание для автозагрузки настраивают в разделе НСИ и администрирование (поддержка и обслуживание, регламентные и фоновые задания). Задайте расписание в нерабочее время, чтобы загрузка не конкурировала с работой пользователей.

Перед тем как ставить загрузку на расписание, прогоните её вручную несколько раз и убедитесь, что сопоставление устоялось и дубли не плодятся. Автоматизировать имеет смысл только отлаженный процесс — иначе ошибки будут копиться без контроля.

Частые вопросы

В каком формате лучше просить прайс у поставщика?
Если поставщик умеет выгружать CommerceML (offers.xml) — берите его: там стабильные идентификаторы товаров и переносятся остатки. Если нет — XLSX с колонками «артикул, наименование, цена, штрихкод». CSV годится, но следите за кодировкой и разделителем.
Загрузка прайса перезапишет мои цены продажи?
Нет. Прайс поставщика пишется в закупочные цены. Отпускные цены считаются отдельно — по правилам ценообразования видов цен. Пока вы не пересчитаете виды цен, витрина не изменится.
Как загрузить только изменившиеся позиции, а не весь прайс?
Грузите полный файл — 1С обновит цены по дате. Новая регистрация цен поставщика не затирает историю, а добавляет актуальный срез. Для подстановки в документы берётся последняя дата, поэтому отдельно вычислять «что изменилось» не нужно.
Почему после загрузки часть товаров осталась без цены?
Эти позиции не сопоставились с вашей номенклатурой, и строка повисла как непривязанная. Откройте список несопоставленных строк, свяжите их с карточками по артикулу или штрихкоду и повторите загрузку.
Нужна ли монопольная блокировка базы для загрузки прайса?
Нет. Загрузка цен из файла или по обмену — обычная операция, монопольный режим не требуется. Монополия нужна только для обновления конфигурации, загрузки .dt и тестирования базы.