Загрузка прайса поставщика в 1С 8.3: Excel, XML и обновление цен
Содержание
Прайс-лист в 1С добавляют в два действия: сначала загружают или обновляют позиции в справочнике «Номенклатура», затем записывают цены документом «Установка цен номенклатуры» с нужным типом (видом) цен. Для Excel в типовых конфигурациях на 8.3 есть встроенная загрузка из файла, для XML — обмен по правилам или формат CommerceML.
Главная работа — не нажатие кнопки «Загрузить», а подготовка файла и правила сопоставления. Если 1С не узнает позицию поставщика, она создаст дубль. Дальше — как подготовить прайс, как загрузить его из Excel и XML, как настроить поиск номенклатуры и поставить загрузку на расписание.
1. Подготовка прайс-листа к загрузке в 1С
Прайс поставщика почти никогда не готов к загрузке «как есть». В нём шапка с логотипом, объединённые ячейки, группы строк, цены с припиской «руб.». Всё это мешает программе распознать таблицу.
Приведите файл к виду «одна строка — одна позиция, один столбец — одно поле»:
- 🧹 удалите шапку, контакты, логотипы и пустые строки над таблицей — первой должна идти строка заголовков или сразу данные;
- 🔗 разъедините объединённые ячейки и уберите строки-группы («Крепёж», «Инструмент»), если не собираетесь грузить иерархию;
- 🔢 цены сделайте числами: без «руб.», без пробелов-разделителей тысяч, с одним видом десятичного разделителя;
- 🏷️ проверьте артикулы: формат ячейки «Текстовый», иначе Excel срежет ведущие нули (
00451превратится в451); - 📐 единицы измерения запишите так, как они названы в 1С (
шт,кг,м), а не «штук», «шт.» вперемешку; - 🧮 замените формулы значениями:
Копировать → Специальная вставка → Значения.
Минимальный набор столбцов для загрузки цен:
| Столбец | Зачем нужен | Пример |
|---|---|---|
| Артикул | основной ключ поиска | KR-1204 |
| Наименование | поиск и создание новой позиции | Саморез 4,2×32 оцинк. |
| Единица измерения | заполнение карточки | шт |
| Цена | значение цены | 1,85 |
| Штрихкод (если есть) | самый надёжный ключ | 4601234567890 |
| Ставка НДС (для новых позиций) | заполнение карточки | 20% |
Сохраните подготовленный прайс отдельным файлом, например price_2026-10_clean.xlsx. Исходник поставщика не трогайте: при следующем обновлении станет видно, что поменялось в его структуре.
Сразу решите, что делать с позициями, которых в базе нет. Если вы ведёте только то, что реально закупаете, новые строки лучше не создавать автоматически, а загружать только цены по уже существующей номенклатуре.
2. Как загрузить прайс-лист из Excel
Современные релизы платформы 8.3 читают xlsx, xls, ods и csv сами, установленный Excel на компьютере не нужен. Порядок действий отличается по конфигурациям.
| Конфигурация | Где загружать номенклатуру | Где ставить цены |
|---|---|---|
| Бухгалтерия предприятия 3.0 | Справочники → Товары и услуги → Номенклатура, кнопка «Загрузить» над списком | Склад → Цены → Установка цен номенклатуры, тип цен из справочника «Типы цен номенклатуры» |
| Управление торговлей 11 | Список «Номенклатура», команда загрузки из файла в меню «Ещё» | документ «Установка цен номенклатуры», вид цен из справочника «Виды цен» |
В БП цены называются «типами цен», в УТ — «видами цен». Это разные справочники с разной логикой: в УТ вид цены может рассчитываться по формуле от другого вида, в БП такой схемы нет.
Загрузка в Бухгалтерии 3.0
- Откройте список номенклатуры и выделите группу, куда пойдут новые позиции.
- Нажмите «Загрузить» и выберите файл прайса.
- Программа покажет таблицу из файла. Щёлкните по заголовку каждого столбца и укажите, какому реквизиту он соответствует: «Артикул», «Наименование», «Цена» и так далее.
- Столбцы, которые грузить не нужно, оставьте без сопоставления.
- Укажите вид номенклатуры для новых позиций и тип цен, в который запишется цена.
- Нажмите «Загрузить». По строкам с ценой программа создаст документ установки цен.
После загрузки откройте созданный документ и проверьте пять-десять строк выборочно: цена, единица, совпадение позиции.
Загрузка в Управлении торговлей 11
В УТ работает механизм «Загрузка данных из файла» из библиотеки стандартных подсистем. Он устроен как мастер из трёх шагов:
- Заполнение таблицы. Программа показывает шаблон с колонками реквизитов. Данные вставляют из буфера обмена (скопировали столбцы в Excel — вставили в 1С) или загружают из файла.
- Сопоставление. 1С ищет каждую строку в справочнике по выбранным полям и показывает статус: найдено, не найдено, неоднозначно.
- Загрузка. Вы выбираете, создавать ли новые элементы и обновлять ли существующие, и подтверждаете.
Для цен в УТ удобнее идти через документ «Установка цен номенклатуры»: в его табличной части также есть загрузка из файла. Так цены не смешиваются с изменением карточек.
Перед первой загрузкой сделайте резервную копию базы. Массовое создание тысяч элементов отменить одной кнопкой нельзя: удалять придётся через пометку и обработку удаления помеченных объектов.
Если встроенной загрузки нет
В старых релизах или нетиповых конфигурациях встроенной команды может не быть. Тогда используют внешнюю обработку
«Загрузка данных из табличного документа» с диска ИТС. Её открывают через Файл → Открыть или подключают в Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. Обработка умеет грузить и в справочник, и в табличную часть документа, в том числе в установку цен.
3. Обновление цен из прайса без создания дублей
Повторная загрузка прайса — самый частый сценарий. Поставщик прислал новую версию, позиции те же, цены другие. Задача — изменить только цены.
Порядок:
- Создайте документ «Установка цен номенклатуры» на дату, с которой действуют новые цены.
- Выберите тип (вид) цен — например, «Закупочная» или «Цена поставщика ООО Ромашка».
- Загрузите в табличную часть столбцы «Артикул» (или «Наименование») и «Цена».
- Строки, по которым позиция не нашлась, программа подсветит или пропустит — выгрузите их списком и разберите вручную.
- Проведите документ.
Цены в 1С хранятся периодически: новый документ не затирает старые значения, а начинает действовать с указанной даты. Поэтому дату ставьте осознанно. Документ «задним числом» изменит цены, которые подставлялись в уже введённые заказы и накладные при их повторном заполнении.
Если поставщиков несколько, заведите отдельный тип цен на каждого. Так в 1С видно, кто и почём продаёт одну и ту же позицию, а сравнение цен делается обычным отчётом по ценам номенклатуры.
Цены продажи из прайса поставщика лучше не грузить напрямую. Загрузите закупочную цену, а розничную в УТ рассчитайте от неё вторым видом цен с формулой наценки.
4. Сопоставление позиций прайса с номенклатурой в 1С
От правил поиска зависит, обновит ли 1С существующую позицию или создаст новую. Варианты ключа поиска:
| Ключ | Надёжность | Когда использовать | Риск |
|---|---|---|---|
| Штрихкод | высокая | товары с заводской маркировкой | у поставщика может не быть штрихкодов |
| Артикул | высокая | у поставщика стабильная система артикулов | совпадение артикулов разных производителей |
| Наименование | низкая | разовая загрузка небольшого прайса | лишний пробел или точка — и уже дубль |
| Код в 1С | высокая | файл ранее выгружен из вашей же базы | у поставщика вашего кода нет |
Практическое правило: искать по артикулу, а наименование использовать только для создания новых элементов. Поиск по наименованию оставьте для разовых случаев и обязательно просматривайте шаг сопоставления.
Свои артикулы и артикулы поставщика
Частая ситуация: у вас свой артикул KR-1204, у поставщика — 12-04-ZN. Прямой поиск не сработает. Решения:
- 🔁 в УТ 11 использовать справочник «Номенклатура поставщиков»: он хранит соответствие позиции поставщика вашей номенклатуре, и при загрузке ищут уже по нему;
- 📎 добавить в файл столбец с вашим артикулом через
ВПРпо таблице соответствия, которую один раз собрали вручную; - 🏷️ в БП завести дополнительный реквизит «Артикул поставщика» и сопоставлять по нему — при условии, что загрузка позволяет выбрать этот реквизит как ключ.
Режимы загрузки
При каждой загрузке выбирают одно из сочетаний:
- только обновлять — новые позиции пропускаются, меняются цены и реквизиты у найденных;
- только создавать — подходит для первичного наполнения пустого справочника;
- создавать и обновлять — удобно, но опасно при плохом ключе поиска: каждая ненайденная строка станет новым элементом.
Для регулярного прайса поставщика выбирайте «только обновлять», а новые позиции добавляйте отдельной проверенной загрузкой.
5. Загрузка прайс-листа через XML
XML-прайс используют, когда данные идут из другой программы или с сайта поставщика. Тут три пути.
CommerceML. Это формат обмена с интернет-магазинами. Цены в нём лежат в файле предложений (offers.xml), товары — в каталоге (import.xml). Если поставщик отдаёт прайс в CommerceML, его можно принять механизмом обмена с сайтом в УТ или БП, указав вид цен, в который записываются значения.
Универсальный обмен данными в формате XML. Внешняя обработка УниверсальныйОбменДаннымиXML.epf загружает файл, выгруженный другой базой 1С по правилам конвертации. Правила готовят в конфигурации «Конвертация данных». Путь подходит, если у поставщика тоже 1С и вы договорились о структуре обмена. Для чужого произвольного XML без правил он не работает.
Своя обработка. Произвольный XML поставщика читают внешней обработкой: ЧтениеXML или ЧтениеDOM, обход узлов, поиск номенклатуры, запись в документ установки цен. Это работа программиста, зато такую обработку легко поставить на расписание.
| Способ | Когда подходит | Что нужно |
|---|---|---|
| Excel (встроенная загрузка) | разовые и ежемесячные прайсы | только пользователь |
| CommerceML | поставщик выгружает каталог для сайтов | настройка узла обмена |
| Универсальный обмен XML | у поставщика тоже 1С | правила конвертации |
| Своя обработка XML | нестандартный формат, частое обновление | программист 1С |
Если поставщик может отдать и XML, и Excel, а цены меняются раз в месяц, берите Excel. XML окупается, когда обновление идёт каждый день или прайс на десятки тысяч строк.
6. Автоматическая загрузка прайса по расписанию
Когда прайс приходит регулярно в одну и ту же папку или по ссылке, загрузку ставят на автомат. Для этого нужна внешняя обработка, которая сама читает файл и проводит документ установки цен без участия пользователя.
Вариант 1: регламентная команда дополнительной обработки
- Программист делает обработку с серверной командой загрузки.
- Её регистрируют в
Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. - В карточке обработки у серверной команды задают расписание: например, каждый день в 06:00.
В клиент-серверной базе такие задания выполняет сервер 1С. В файловой базе регламентные задания срабатывают, только пока в базе открыт хотя бы один сеанс, — на это часто натыкаются, когда «по расписанию ничего не загрузилось».
Вариант 2: планировщик Windows
Для файловой базы надёжнее запускать 1С из планировщика заданий Windows с параметром /Execute, который открывает внешнюю обработку сразу при старте:
"C:\Program Files\1cv8\8.3.24.1342\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Trade" /N"Робот" /P"пароль" /Execute"D:\Obr\load_price.epf" /DisableStartupMessages
Номер версии в пути замените на установленный у вас. Обработка должна в конце работы закрыть сеанс (ЗавершитьРаботуСистемы(Ложь)), иначе окно 1С останется висеть и следующий запуск не пройдёт.
Для отдельного пользователя «Робот»:
- 👤 выдайте права на открытие внешних обработок и изменение цен — не полные права;
- 🛡️ снимите в его свойствах флажок защиты от опасных действий, иначе при каждом запуске обработки появится окно с предупреждением и автозапуск остановится;
- 📝 пусть обработка пишет итог в журнал регистрации или файл: сколько строк обновлено, сколько не найдено.
Пароль в bat-файле лежит открытым текстом. Ограничьте доступ к файлу и папке только учётной записью, от имени которой работает задание планировщика.
7. Ошибки при загрузке прайса и что с ними делать
Ещё две ошибки, которые видны не сразу:
- 📅 Дата документа в будущем. Цены «не работают», хотя документ проведён. Проверьте дату: цены действуют с неё, а не с момента проведения.
- 🧾 Неверная ставка НДС у новых позиций. Если в файле не было столбца НДС, новые элементы получат ставку по умолчанию. Перед проведением первой закупки отберите созданные за день элементы и проверьте ставку.