Прайс-лист поставщика в базе 1С: от таблицы Excel до новых цен в номенклатуре
Содержание
Залить прайс-лист в 1С 8.3 проще всего через встроенный помощник «Загрузка данных из файла». В Бухгалтерии 3.0 откройте Справочники → Товары и услуги → Номенклатура, нажмите Загрузить и укажите файл XLSX, XLS, ODS или MXL. Программа сопоставит колонки с реквизитами, найдёт существующие позиции по артикулу или наименованию и создаст новые. Цены грузят вторым шагом — документом Склад → Цены → Установка цен номенклатуры, где у табличной части тоже есть команда загрузки из файла.
Этого способа хватает для типичной задачи бухгалтера: прайс на 200–5000 строк, один поставщик, одна-две колонки цен. Формат XML (CommerceML, EnterpriseData) и COM-соединение нужны, когда прайс приходит регулярно, из другой программы или с сайта. Внешние обработки — когда поставщиков много и каждый присылает файл своей формы.
Готовим файл прайс-листа к загрузке в 1С
Помощник загрузки читает таблицу построчно. Всё, что мешает сделать из файла ровную таблицу, приведёт к пропущенным строкам или к мусору в справочнике. Потратьте 10 минут на подготовку.
Что сделать с файлом поставщика в Excel:
- ✂️ Удалите шапку с логотипом, реквизитами и «Уважаемые партнёры». Первая строка — заголовки колонок, со второй идут товары.
- 🧩 Разъедините объединённые ячейки (
Главная → Объединить и поместить в центреповторным нажатием). Групповые строки вроде «Крепёж» или «Электрика» удалите или вынесите в отдельную колонку «Группа». - 🔢 Замените формулы значениями: скопируйте лист и вставьте через
Специальная вставка → Значения. - 💰 Очистите цены от текста. В колонке цены должно быть число:
1250,50, а не1 250,50 руб.илиот 1250. - 🏷️ Проверьте артикулы. Excel превращает
000452в452, а12-05в дату. Задайте колонке текстовый формат до вставки данных. - 📏 Сведите единицы измерения к тем, что есть в справочнике «Единицы измерения»:
шт,кг,м. Строка «штука» и «шт.» для программы — разные значения.
Сохраните подготовленный файл отдельно от оригинала, например 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:
- Откройте
Склад → Цены → Установка цен номенклатурыи нажмитеСоздать. - Укажите дату, с которой действуют цены, и тип цен. Документ можно заполнить сразу по нескольким типам цен — каждый будет отдельной колонкой.
- В табличной части найдите команду загрузки из файла (обычно кнопка
Загрузить). Откроется тот же помощник, что и для справочника. - Вставьте две колонки: артикул (или наименование) и цену. Сопоставьте их с «Номенклатурой» и колонкой нужного типа цены.
- Строки, для которых товар не нашёлся, помощник покажет отдельно. Сначала загрузите эти позиции в справочник, затем повторите.
- Проверьте суммы на выборке, проведите документ.
Хотите посчитать розничные цены от закупочных? В «Установке цен номенклатуры» есть команда изменения цен с пересчётом: процент наценки, округление до рубля или до 10 рублей. Загрузите закупочные из прайса, потом в том же документе рассчитайте розницу — не делайте наценку формулой в Excel.
Если поставщик прислал цены в валюте, загрузите их в тип цены с валютой поставщика. Тогда при поступлении программа пересчитает по курсу, а вы не будете хранить в рублях устаревшие цифры.
Проверить результат можно отчётом «Прайс-лист» в том же разделе Склад → Цены: выберите тип цен и дату, сравните 10–20 строк с файлом поставщика.
Ошибки импорта прайс-листа и что с ними делать
Большинство проблем видно ещё на шаге сопоставления. Если строк загрузилось меньше, чем в файле, или цены «съехали», найдите свой симптом.
Отдельный случай — прайс на десятки тысяч строк. Помощник справится, но вставка через буфер обмена может занять минуты, а интерфейс будет «висеть». Разбейте файл на части по 5000–10000 строк и загружайте по очереди. Для файловой базы по сети делайте это на компьютере, где лежит база, или в нерабочее время.
Автоматизируем загрузку внешней обработкой
Если каждую неделю приходят прайсы от пяти поставщиков, ручное сопоставление колонок съедает часы. Внешняя обработка (файл .epf) запоминает формат каждого поставщика и делает всё в одну кнопку: читает файл, находит товары, создаёт недостающие, формирует документ цен.
Что обычно закладывают в такую обработку:
- 📑 профиль поставщика: с какой строки начинаются данные, в какой колонке артикул и цена;
- 🔗 таблицу соответствия «артикул поставщика → наша номенклатура» — для товаров, которые у вас называются иначе;
- 🆕 режим «только обновить цены» без создания новых карточек;
- 📊 протокол: сколько строк найдено, сколько создано, какие пропущены и почему.
Основа любой такой обработки — чтение Excel в табличный документ. Начиная с версий платформы 8.3.6 файл XLSX читается без установленного Excel:
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение);
Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл
Артикул = СокрЛП(ТабДок.Область(НомерСтроки, 1).Текст);
ЦенаТекст = СтрЗаменить(ТабДок.Область(НомерСтроки, 4).Текст, " ", "");
Если ПустаяСтрока(Артикул) Или ПустаяСтрока(ЦенаТекст) Тогда
Продолжить;
КонецЕсли;
Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул);
Если Номенклатура.Пустая() Тогда
Сообщить("Не найден артикул " + Артикул + " в строке " + Формат(НомерСтроки, "ЧГ=0"));
Продолжить;
КонецЕсли;
Цена = Число(СтрЗаменить(ЦенаТекст, ".", ","));
// строку с Номенклатура и Цена добавляем в таблицу для документа установки цен
КонецЦикла;
Код выполняется на сервере, поэтому файл с клиента сначала передают в хранилище (ПоместитьФайл или НачатьПомещениеФайлов) и читают уже временный файл на сервере. Преобразование Число() упадёт с ошибкой на строке вроде «по запросу» — в рабочей обработке оберните его в Попытка … Исключение и пишите такие строки в протокол.
Подключайте внешние обработки только из проверенного источника. В современных релизах типовых конфигураций при открытии файла .epf программа запрашивает подтверждение безопасности. Обработка выполняется с правами пользователя и может изменить любые данные, к которым у него есть доступ.
Чтобы обработка была под рукой у всех, зарегистрируйте её как дополнительную: Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. Включите там флажок использования, если раздел пуст. Тогда она появится в списке номенклатуры или в разделе, который вы назначите, и не потеряется при обновлении конфигурации.
Готовые обработки загрузки прайсов продают на маркетплейсах разработчиков. Ориентировочно 1500–6000 ₽ за универсальную, от 10–20 тыс. ₽ — доработка под конкретную базу и поставщиков. Перед покупкой проверьте, что продавец указал совместимость с вашей конфигурацией и релизом.
Что проверить после загрузки прайса
Загрузка завершилась без ошибок — ещё не значит, что данные верные. Короткая сверка спасает от продаж по закупочной цене.