Прайс-лист поставщика в базе 1С: от таблицы Excel до новых цен в номенклатуре

· 11 мин

Содержание

Залить прайс-лист в 1С 8.3 проще всего через встроенный помощник «Загрузка данных из файла». В Бухгалтерии 3.0 откройте Справочники → Товары и услуги → Номенклатура, нажмите Загрузить и укажите файл XLSX, XLS, ODS или MXL. Программа сопоставит колонки с реквизитами, найдёт существующие позиции по артикулу или наименованию и создаст новые. Цены грузят вторым шагом — документом Склад → Цены → Установка цен номенклатуры, где у табличной части тоже есть команда загрузки из файла.

Этого способа хватает для типичной задачи бухгалтера: прайс на 200–5000 строк, один поставщик, одна-две колонки цен. Формат XML (CommerceML, EnterpriseData) и COM-соединение нужны, когда прайс приходит регулярно, из другой программы или с сайта. Внешние обработки — когда поставщиков много и каждый присылает файл своей формы.

Готовим файл прайс-листа к загрузке в 1С

Помощник загрузки читает таблицу построчно. Всё, что мешает сделать из файла ровную таблицу, приведёт к пропущенным строкам или к мусору в справочнике. Потратьте 10 минут на подготовку.

Что сделать с файлом поставщика в Excel:

  1. ✂️ Удалите шапку с логотипом, реквизитами и «Уважаемые партнёры». Первая строка — заголовки колонок, со второй идут товары.
  2. 🧩 Разъедините объединённые ячейки (Главная → Объединить и поместить в центре повторным нажатием). Групповые строки вроде «Крепёж» или «Электрика» удалите или вынесите в отдельную колонку «Группа».
  3. 🔢 Замените формулы значениями: скопируйте лист и вставьте через Специальная вставка → Значения.
  4. 💰 Очистите цены от текста. В колонке цены должно быть число: 1250,50, а не 1 250,50 руб. или от 1250.
  5. 🏷️ Проверьте артикулы. Excel превращает 000452 в 452, а 12-05 в дату. Задайте колонке текстовый формат до вставки данных.
  6. 📏 Сведите единицы измерения к тем, что есть в справочнике «Единицы измерения»: шт, кг, м. Строка «штука» и «шт.» для программы — разные значения.

Сохраните подготовленный файл отдельно от оригинала, например price_postavshik_ready.xlsx. Когда поставщик пришлёт обновление той же формы, повторите те же шаги — или поручите их обработке, о которой ниже.

Минимальный набор колонок для загрузки:

КолонкаОбязательнаКуда попадёт в 1С
Артикулжелательнореквизит «Артикул» — по нему удобнее всего искать
Наименованиеда«Наименование» номенклатуры
Единица измеренияжелательно«Единица» в карточке
Ценада, для обновления центабличная часть «Установки цен»
Ставка НДСпо ситуации«% НДС» в карточке
Группанетпапка справочника

Если у поставщика нет артикулов, придумайте ключ сопоставления заранее. Без него при каждом новом прайсе программа будет искать товары по наименованию, а поставщик однажды переименует «Саморез 4,2х16» в «Саморез 4.2×16» — и вы получите дубль.

Загружаем номенклатуру помощником «Загрузка данных из файла»

Помощник встроен в типовые конфигурации на платформе 8.3 с интерфейсом «Такси»: Бухгалтерию 3.0, УТ 11, КА 2, ERP. Работает одинаково, отличаются только места, откуда его запускают.

КонфигурацияГде запустить загрузку номенклатурыГде загрузить цены
Бухгалтерия 3.0Справочники → Товары и услуги → Номенклатура, кнопка ЗагрузитьСклад → Цены → Установка цен номенклатуры
УТ 11, КА 2, ERPНСИ и администрирование → НСИ → Номенклатура, команда загрузки из файла в меню Ещедокумент «Установка цен номенклатуры» по нужному виду цен

Не путайте термины: в Бухгалтерии колонки цен называются «Типы цен номенклатуры», в УТ 11 и ERP — «Виды цен». Перед загрузкой создайте нужный тип (вид) цены, например «Закупочная Поставщик А», иначе цены будет некуда записать.

Шаг 1. Вставляем данные

После нажатия Загрузить откроется окно с пустой таблицей. Есть два пути:

  • 📂 выбрать файл кнопкой выбора — программа прочитает первый лист;
  • 📋 скопировать диапазон в Excel и вставить в таблицу через Ctrl+V. Так надёжнее, если в книге несколько листов или в файле остались служебные строки.

Шаг 2. Сопоставляем колонки

Над каждой колонкой есть заголовок-переключатель. Щёлкните по нему и выберите реквизит: «Артикул», «Наименование», «Единица», «Ставка НДС». Лишние колонки оставьте без сопоставления — они не загрузятся.

Шаг 3. Проверяем, что нашла программа

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

Перед первой загрузкой в рабочую базу сделайте резервную копию. Откатить 3000 созданных карточек одной кнопкой нельзя: их придётся помечать на удаление и удалять обработкой, проверяя, не попали ли они уже в документы.

Шаг 4. Загружаем и проверяем

Нажмите Загрузить. После завершения откройте список номенклатуры, отсортируйте по дате создания или найдите новые позиции по артикулу. Проверьте три-четыре карточки: единицу, ставку НДС, вид номенклатуры («Товар», «Материал», «Услуга»). Если вид не задан, его потом придётся проставлять групповым изменением реквизитов.

Сопоставление полей
Артикул→Артикул (ключ поиска)
Наименование товара→Наименование
Ед. изм.→Единица измерения
НДС, %→Ставка НДС
Цена опт→Цена в «Установке цен номенклатуры»
Раздел прайса→Группа справочника

Как залить в 1С прайс в формате XML или через COM-соединение

Таблица Excel удобна человеку. Программам удобнее XML: структура жёсткая, ошибок с запятыми и датами нет. В 1С используют три варианта.

CommerceML. Стандартный формат обмена каталогами и предложениями между 1С и интернет-магазинами, торговыми площадками, системами поставщиков. Если поставщик выгружает прайс из своей 1С или из CMS сайта, первым делом спросите, может ли он отдать файл в CommerceML. Загружают его через настройки синхронизации и обмена с сайтом в разделе Администрирование или обработкой, которую дал интегратор.

EnterpriseData. Формат обмена между типовыми конфигурациями 1С. Если поставщик работает в УТ 11 или Бухгалтерии 3.0, он может выгрузить номенклатуру и цены «Универсальным обменом данными в формате XML», а вы — загрузить тем же механизмом. Состав объектов задаётся при выгрузке.

COM-соединение. Внешняя программа подключается к базе 1С и сама создаёт элементы и документы. Подходит, если прайс собирает скрипт или другая учётная система на Windows. Подключение из PowerShell выглядит так:

$connector = New-Object -ComObject "V83.COMConnector"
$base = $connector.Connect('File="D:\Bases\Trade";Usr="Обмен";Pwd="secret";')
# дальше через $base доступны справочники, документы и запросы базы

Для серверной базы строка подключения имеет вид Srvr="server1c";Ref="trade";Usr="Обмен";Pwd="secret";.

COM-компонента должна быть зарегистрирована той же разрядности, что и вызывающая программа. Для 64-битного PowerShell нужна 64-битная платформа и зарегистрированный comcntr.dll из её каталога bin. Для обмена заведите отдельного пользователя с ограниченными правами, а не используйте учётку администратора.

Сравнение способов:

СпособКогда выбиратьРиски
Помощник «Загрузка данных из файла»разовая или редкая загрузка из Excelручное сопоставление каждый раз
CommerceMLпрайс от сайта или системы поставщиканужна настройка обмена, структура классификатора
EnterpriseDataпоставщик работает в типовой 1Ссовпадение версий формата у обеих сторон
COM-соединениезагрузку ведёт внешняя программаправа, пароли в скриптах, разрядность компоненты
Внешняя обработкарегулярные прайсы разных формнужен программист и поддержка при обновлениях

Обновляем цены у номенклатуры, которая уже есть в базе

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

Порядок для Бухгалтерии 3.0:

  1. Откройте Склад → Цены → Установка цен номенклатуры и нажмите Создать.
  2. Укажите дату, с которой действуют цены, и тип цен. Документ можно заполнить сразу по нескольким типам цен — каждый будет отдельной колонкой.
  3. В табличной части найдите команду загрузки из файла (обычно кнопка Загрузить). Откроется тот же помощник, что и для справочника.
  4. Вставьте две колонки: артикул (или наименование) и цену. Сопоставьте их с «Номенклатурой» и колонкой нужного типа цены.
  5. Строки, для которых товар не нашёлся, помощник покажет отдельно. Сначала загрузите эти позиции в справочник, затем повторите.
  6. Проверьте суммы на выборке, проведите документ.

Хотите посчитать розничные цены от закупочных? В «Установке цен номенклатуры» есть команда изменения цен с пересчётом: процент наценки, округление до рубля или до 10 рублей. Загрузите закупочные из прайса, потом в том же документе рассчитайте розницу — не делайте наценку формулой в Excel.

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

Проверить результат можно отчётом «Прайс-лист» в том же разделе Склад → Цены: выберите тип цен и дату, сравните 10–20 строк с файлом поставщика.

Ошибки импорта прайс-листа и что с ними делать

Большинство проблем видно ещё на шаге сопоставления. Если строк загрузилось меньше, чем в файле, или цены «съехали», найдите свой симптом.

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

Отдельный случай — прайс на десятки тысяч строк. Помощник справится, но вставка через буфер обмена может занять минуты, а интерфейс будет «висеть». Разбейте файл на части по 5000–10000 строк и загружайте по очереди. Для файловой базы по сети делайте это на компьютере, где лежит база, или в нерабочее время.

Автоматизируем загрузку внешней обработкой

Если каждую неделю приходят прайсы от пяти поставщиков, ручное сопоставление колонок съедает часы. Внешняя обработка (файл .epf) запоминает формат каждого поставщика и делает всё в одну кнопку: читает файл, находит товары, создаёт недостающие, формирует документ цен.

Что обычно закладывают в такую обработку:

  • 📑 профиль поставщика: с какой строки начинаются данные, в какой колонке артикул и цена;
  • 🔗 таблицу соответствия «артикул поставщика → наша номенклатура» — для товаров, которые у вас называются иначе;
  • 🆕 режим «только обновить цены» без создания новых карточек;
  • 📊 протокол: сколько строк найдено, сколько создано, какие пропущены и почему.

Основа любой такой обработки — чтение Excel в табличный документ. Начиная с версий платформы 8.3.6 файл XLSX читается без установленного Excel:

ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение);

Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл
	Артикул = СокрЛП(ТабДок.Область(НомерСтроки, 1).Текст);
	ЦенаТекст = СтрЗаменить(ТабДок.Область(НомерСтроки, 4).Текст, " ", "");
	Если ПустаяСтрока(Артикул) Или ПустаяСтрока(ЦенаТекст) Тогда
		Продолжить;
	КонецЕсли;
	Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул);
	Если Номенклатура.Пустая() Тогда
		Сообщить("Не найден артикул " + Артикул + " в строке " + Формат(НомерСтроки, "ЧГ=0"));
		Продолжить;
	КонецЕсли;
	Цена = Число(СтрЗаменить(ЦенаТекст, ".", ","));
	// строку с Номенклатура и Цена добавляем в таблицу для документа установки цен
КонецЦикла;

Код выполняется на сервере, поэтому файл с клиента сначала передают в хранилище (ПоместитьФайл или НачатьПомещениеФайлов) и читают уже временный файл на сервере. Преобразование Число() упадёт с ошибкой на строке вроде «по запросу» — в рабочей обработке оберните его в Попытка … Исключение и пишите такие строки в протокол.

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

Чтобы обработка была под рукой у всех, зарегистрируйте её как дополнительную: Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. Включите там флажок использования, если раздел пуст. Тогда она появится в списке номенклатуры или в разделе, который вы назначите, и не потеряется при обновлении конфигурации.

Готовые обработки загрузки прайсов продают на маркетплейсах разработчиков. Ориентировочно 1500–6000 ₽ за универсальную, от 10–20 тыс. ₽ — доработка под конкретную базу и поставщиков. Перед покупкой проверьте, что продавец указал совместимость с вашей конфигурацией и релизом.

Что проверить после загрузки прайса

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

Сверка после загрузки прайс-листа
Выполнено: 0 / 6
Можно ли загрузить прайс в 1С без Excel на компьютере?
Да. Помощник загрузки и табличный документ платформы 8.3 читают XLSX и ODS сами. Можно также открыть файл в LibreOffice и скопировать данные в окно загрузки.
Как загрузить картинки товаров вместе с прайсом?
Помощник загрузки из файла картинки не переносит. Их загружают отдельно: вручную в карточку, внешней обработкой по имени файла, совпадающему с артикулом, или через обмен CommerceML с сайтом.
Затрёт ли новый прайс старые цены?
Нет. Документ установки цен действует с даты, указанной в нём. Старые цены остаются в истории, документы прошлых периодов не меняются.
Можно ли хранить цены поставщика отдельно от своих?
Да. Заведите отдельный тип цен (в УТ 11 — вид цен) для каждого поставщика. Тогда закупочные цены не смешаются с розничными, а при поступлении их можно подставлять автоматически.
Что делать, если поставщик меняет форму прайса каждый месяц?
Помощник «Загрузка данных из файла» не зависит от формы: колонки сопоставляются вручную при каждой загрузке. Жёсткая внешняя обработка в таком случае ломается, поэтому её делают с настраиваемыми профилями.