Импорт прайс-листа в 1С из Excel, CSV и CommerceML
Содержание
Чтобы загрузить прайс-лист
в 1С, есть три рабочих пути: импорт из файла Excel или CSV через встроенную загрузку, через внешнюю обработку
загрузки из табличного документа или по XML-формату CommerceML через обмен. В 1С:Управление торговлей цены поставщиков живут в разделе Закупки, собственные цены продажи — в разделе CRM и маркетинг, пункт Виды цен. В 1С:Бухгалтерии цены номенклатуры задаются в разделе Склад, группа Цены.
Какой способ выбрать, зависит от того, что прислал поставщик. Разовую таблицу в Excel проще загрузить обработкой или скопировать в табличную часть документа. Если поставщик умеет выгружать offers.xml в формате CommerceML — настраивается обмен, и дальше цены подтягиваются без ручных действий.
Главная сложность не в самой загрузке, а в сопоставлении: артикулы и наименования у поставщика почти никогда не совпадают с вашей номенклатурой. Разберём по порядку — от подготовки файла до автоматической загрузки по расписанию.
Готовим файл поставщика перед импортом
Прежде чем грузить, приведите файл в вид, который 1С прочитает без ошибок. Большинство сбоев при импорте закладывается именно здесь.
Что должно быть в таблице как минимум:
- 🔑 код или артикул товара у поставщика — по нему идёт сопоставление;
- 🏷️ наименование — для контроля и первичного создания позиций;
- 💰 цена — числом, а не текстом;
- 📦 при необходимости — единица измерения, валюта, штрихкод, остаток.
Теперь то, что мешает загрузке и что убирают заранее:
- объединённые ячейки в шапке и внутри таблицы — разбейте их;
- несколько строк заголовка — оставьте одну;
- логотипы, картинки, примечания, промежуточные итоги и пустые строки между товарами;
- текстовый формат у колонки с ценой — из-за него цена читается как ноль или не читается вовсе;
- лишние листы в книге — оставьте один лист с данными.
Десятичный разделитель в цене приведите к одному виду. Если в файле цены вида 1 250,00 с пробелом-разделителем разрядов, 1С может прочитать такое число неверно. Проще заранее заменить формат на обычное число без разделителя групп.
Поддерживаемые форматы на входе: XLSX, XLS, CSV, табличный документ mxl. Для CSV критична кодировка — об этом ниже, в разделе про ошибки.
Как загрузить цены стандартными средствами 1С
Выбор способа зависит от конфигурации и от того, разовая это задача или регулярная.
Способ 1. Копирование в табличную часть. Самый быстрый для разовой загрузки небольшого прайса. В документе установки цен выделяете в Excel колонки «товар — цена», копируете и вставляете в табличную часть документа. 1С попытается сопоставить строки с номенклатурой по наименованию или коду. Способ не требует настроек, но чувствителен к порядку колонок.
Способ 2. Встроенная загрузка из файла. В конфигурациях на платформе 8.3 (БП 3.0, УТ 11) у многих справочников и табличных частей есть команда загрузки из внешнего файла — ищите её в командной панели формы или в меню Ещё. Механизм показывает предпросмотр, даёт указать, какая колонка файла соответствует какому полю, и подсвечивает строки, которые не удалось распознать.
Способ 3. Внешняя обработка загрузки из табличного документа. Универсальный инструмент «Загрузка данных из табличного документа» распространяется на портале и дисках ИТС. Он грузит данные в любой справочник или документ, в том числе в регистры цен, с гибкой настройкой соответствия колонок. Порядок работы:
- Откройте обработку через
Файл → Открыть(или разделНСИ и администрирование, если обработка добавлена в базу как дополнительная). - Выберите режим загрузки — в справочник или в табличную часть документа.
- Укажите файл-источник и объект-приёмник (например, документ установки цен).
- Настройте соответствие: какая колонка файла идёт в какое поле — артикул, наименование, цена.
- Запустите контрольную загрузку и проверьте результат на нескольких строках, потом загрузите весь файл.
Внешние обработки подключаются не во всех поставках. Если в вашей базе запрещено использование внешних обработок, согласуйте это с администратором — включать их без разбора на рабочей базе не стоит.
Для цен поставщиков в 1С:Управление торговлей используется отдельный документ в разделе Закупки — он фиксирует цены конкретного поставщика с историей по датам. Загрузка в него идёт теми же способами: из файла или копированием.
Если прайс от одного поставщика приходит в неизменном виде, настройку соответствия колонок в обработке стоит сохранить отдельно. При следующей загрузке вы выбираете готовый шаблон разметки, а не размечаете колонки заново — это экономит время и убирает риск сдвинуть соответствие полей на одну колонку.
Сопоставление товаров поставщика с вашей номенклатурой
Это ключевой шаг, из-за которого прайс либо встаёт корректно, либо плодит дубли. У поставщика свои коды, у вас — свои. Задача — связать их один раз, чтобы при следующих загрузках сопоставление подхватывалось автоматически.
В 1С:Управление торговлей для этого есть справочник номенклатуры поставщиков. В нём для каждой позиции поставщика хранится ссылка на вашу карточку номенклатуры. По чему сопоставляют:
- по артикулу или коду поставщика — самый надёжный вариант, если коды стабильны;
- по штрихкоду — удобно, когда штрихкоды есть и совпадают;
- вручную — для позиций, которые система не распознала.
При первой загрузке большого прайса часть строк не сопоставится — это нормально. Их 1С обычно выносит в отдельный список «не сопоставлено», где вы либо связываете позицию с существующей карточкой, либо создаёте новую. Разберите этот список до того, как проводить документ: иначе непривязанные строки либо потеряются, либо создадут дубли.
Чтобы новые позиции из прайса не сыпались в общий корень справочника, заранее заведите для них отдельную группу номенклатуры. При первичной загрузке направьте создание новых карточек в эту группу — потом их проще разобрать и разложить по основным группам, чем выискивать среди тысяч существующих товаров. Это особенно выручает, когда у поставщика прайс на несколько тысяч строк, а заводить вы хотите не все.
Если поставщик меняет свои артикулы от прайса к прайсу, сопоставление по коду будет каждый раз рваться. В таком случае надёжнее привязываться к штрихкоду, а при его отсутствии — договориться с поставщиком о стабильной колонке-идентификаторе.
Загрузка прайса в формате CommerceML (XML)
CommerceML — это стандартный для 1С XML-формат обмена коммерческой информацией. Прайс в нём обычно приходит двумя файлами: import.xml с описанием товаров и offers.xml с ценами и остатками (вариант CommerceML 2). Формат удобен тем, что переносит не только цены, но и структуру каталога, характеристики и единицы.
Когда XML предпочтительнее Excel:
- поставщик уже выгружает каталог для сайтов и маркетплейсов в CommerceML;
- прайс большой и обновляется часто;
- кроме цен нужно переносить остатки, описания, изображения.
Загрузка идёт не обработкой, а через механизм обмена. В общих чертах:
- Поставщик выгружает файлы
import.xmlиoffers.xml. - В вашей базе настраивается узел обмена, который читает эти файлы из согласованного каталога или по ссылке.
- При обмене товары сопоставляются по идентификаторам из XML, цены записываются в регистр.
Сопоставление в CommerceML идёт по внутренним идентификаторам (GUID) товаров поставщика. Это надёжнее, чем по тексту наименования, но требует, чтобы поставщик не пересоздавал позиции заново при каждой выгрузке — иначе идентификаторы меняются и связи рвутся.
Обновление цен через соглашение с поставщиком
В 1С:Управление торговлей цены поставщика не висят в воздухе — они привязываются к условиям закупки. Для этого служит соглашение с поставщиком: в нём фиксируют валюту, вид цен, по которому поставщик отпускает товар, и прочие условия.
Как это работает на практике:
- загруженные цены регистрируются как цены конкретного поставщика на дату;
- при оформлении заказа поставщику или поступления товаров цена подставляется из последней зарегистрированной — вручную её каждый раз не вбивают;
- история цен сохраняется, и вы видите, как менялась закупочная цена позиции во времени.
Собственные цены продажи — это отдельная сущность. Загрузка прайса поставщика меняет закупочные цены и не трогает ваши отпускные. Чтобы пересчитать цены продажи от новой закупки, в 1С:Управление торговлей настраивают правила ценообразования по видам цен (CRM и маркетинг → Виды цен): например, «закупочная плюс наценка». Тогда после загрузки прайса достаточно пересчитать продажные цены по правилу, а не вводить их руками.
Разделяйте закупочные и продажные цены. Частая путаница новичков — загрузить прайс поставщика и ждать, что обновятся цены на витрине. Этого не произойдёт, пока вы не пересчитаете виды цен продажи.
Частые ошибки при загрузке и как их обойти
Большинство проблем при импорте прайса сводится к нескольким типовым ситуациям. Диагностика по симптому:
Отдельно про проверку результата. Не проводите документ установки цен сразу на весь прайс. Загрузите, откройте табличную часть, отсортируйте по цене — нули и аномально большие значения сразу видны в начале и в конце списка. Так ошибка формата ловится до того, как кривые цены попадут в заказы.
Автоматическая загрузка прайсов поставщиков
Если прайс приходит регулярно — раз в неделю или чаще — ручную загрузку стоит заменить на автоматическую. Способ зависит от того, в каком виде поставщик отдаёт данные.
- Папка обмена CommerceML. Поставщик кладёт
offers.xmlв согласованный каталог (сетевая папка, FTP, облако), а 1С по расписанию забирает файл. Настраивается через узел обмена и регламентное задание. - Обмен между базами 1С. Если у вас и у поставщика конфигурации 1С, можно настроить прямой обмен по плану обмена — тогда цены синхронизируются без промежуточных файлов.
- EDI и электронные каталоги. Для сетевой розницы прайсы и каталоги часто ходят через EDI-операторов в стандартных форматах; загрузка настраивается через модуль обмена.
Регламентное задание для автозагрузки настраивают в разделе НСИ и администрирование (поддержка и обслуживание, регламентные и фоновые задания). Задайте расписание в нерабочее время, чтобы загрузка не конкурировала с работой пользователей.
Перед тем как ставить загрузку на расписание, прогоните её вручную несколько раз и убедитесь, что сопоставление устоялось и дубли не плодятся. Автоматизировать имеет смысл только отлаженный процесс — иначе ошибки будут копиться без контроля.
Частые вопросы
В каком формате лучше просить прайс у поставщика?
offers.xml) — берите его: там стабильные идентификаторы товаров и переносятся остатки. Если нет — XLSX с колонками «артикул, наименование, цена, штрихкод». CSV годится, но следите за кодировкой и разделителем.Загрузка прайса перезапишет мои цены продажи?
Как загрузить только изменившиеся позиции, а не весь прайс?
Почему после загрузки часть товаров осталась без цены?
Нужна ли монопольная блокировка базы для загрузки прайса?
.dt и тестирования базы.