Выгрузка прайс-листа из 1С: от печатной формы до автоматической отправки на сайт

· 10 мин

Содержание

Прайс-лист из 1С выгружают из готового отчёта: в торговых конфигурациях (УТ 11, УНФ, Розница, КА, ERP) открывают отчёт «Прайс-лист», выбирают тип цен и дату, нажимают Сформировать — получается табличный документ. Дальше его либо печатают, либо сохраняют: Главное меню → Файл → Сохранить как и формат — Лист Excel 2007 (.xlsx) для Excel или Документ PDF (.pdf) для PDF.

Для сайта и маркетплейсов нужен не Excel, а XML: его отдаёт механизм «Обмен с сайтом» (формат CommerceML 2) либо специальная обработка под YML Яндекс.Маркета. А если прайс нужно выгружать каждый день без участия человека, обмен ставят на расписание через регламентное задание.

Ниже — пять рабочих способов: от кнопки «Печать» до выгрузки кодом. Выбор зависит от того, кому и в каком формате нужен файл.

Что выбрать: формат выгрузки и тип цен

Сначала определитесь с двумя вещами: в каком формате нужен файл и по какому типу цен его строить.

🔹 Excel (.xlsx) — для менеджеров, клиентов, рассылок. Правится вручную, открывается везде. 🔹 PDF — для печати и отправки «как есть», чтобы цены не поменяли в файле. 🔹 XML (CommerceML) — для загрузки каталога и цен на сайт (Битрикс и совместимые CMS). 🔹 YML — отдельный XML-формат для Яндекс.Маркета и части маркетплейсов.

Тип цены (в УТ это «Вид цены», в Бухгалтерии — «Тип цен номенклатуры») задаёт, какие именно суммы попадут в файл: розница, опт, цена для сайта. Перед выгрузкой проверьте, что по нужному типу цены установлены — пустой прайс чаще всего получается именно из-за незаполненного вида цены.

Какой способ выгрузки прайс-листа подойдёт именно вам?

Сравнение способов по формату и сложности:

СпособФормат на выходеДля когоСложность
Печатная форма «Прайс-лист»PDF, Excelменеджер, клиентнизкая
Сохранение табличного документаExcel, PDF, ODSкто угоднонизкая
Вывод списка номенклатурыExcelменеджернизкая
Обмен с сайтомXML (CommerceML)сайт, магазинсредняя
Выгрузка по расписаниюлюбой из настроенныхавтоматикасредняя
Выгрузка кодомлюбойпрограммиствысокая

Печать прайс-листа и сохранение в PDF

Самый короткий путь — готовый отчёт. В торговых конфигурациях он называется «Прайс-лист» и лежит в разделе отчётов (в УТ 11 — в группе отчётов по ценам и маркетингу; название группы между релизами может отличаться, ищите отчёт со словом «Прайс»).

Порядок действий:

  1. Откройте отчёт «Прайс-лист».
  2. Укажите дату, на которую берутся цены, и вид (тип) цены.
  3. При необходимости задайте отбор по номенклатуре: конкретная группа, склад, только товары в наличии.
  4. Нажмите Сформировать — отчёт построит табличный документ.
  5. Для печати — Печать или Ctrl+P. Для PDF — Главное меню → Файл → Сохранить как, тип файла Документ PDF (.pdf).

Если в прайсе нужны логотип, реквизиты и условия отгрузки, многие торговые конфигурации позволяют настроить шаблон прайс-листа (шапку, колонки, группировку) прямо в форме отчёта. Это удобнее, чем дорабатывать Excel-файл после каждой выгрузки.

В Бухгалтерии 3.0 отдельного маркетингового отчёта «Прайс-лист» в привычном виде нет — там прайс обычно печатают из списка номенклатуры с установленными ценами или выгружают список в Excel (способ ниже). Если нужен полноценный прайс с типами цен и скидками, его ведут в торговой конфигурации.

Выгрузка прайс-листа в Excel

В Excel выгружают двумя путями: из сформированного отчёта или напрямую из списка номенклатуры.

Из отчёта или любого табличного документа. Любая печатная форма в 1С 8.3 — это табличный документ, и он сохраняется в Excel одной командой:

  • Главное меню → Файл → Сохранить как;
  • в поле «Тип файла» выберите Лист Excel 2007-… (.xlsx) (или .xls для старых версий Excel);
  • укажите папку и имя, нажмите Сохранить.

Напрямую из списка номенклатуры. Когда готового отчёта мало или нужен простой перечень «товар — цена», выгрузите список:

  1. Откройте список номенклатуры (Справочники → Номенклатура или аналогичный раздел).
  2. Настройте видимость колонок так, чтобы была видна колонка с ценой (через настройку списка в меню Еще).
  3. Выполните команду Еще → Вывести список.
  4. В окне выберите «Табличный документ» и нужные колонки, нажмите ОК.
  5. Полученный табличный документ сохраните в Excel через Файл → Сохранить как.

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

Для обратной задачи — загрузки цен из Excel обратно в 1С — в типовых конфигурациях есть обработка загрузки данных из табличного документа; это отдельный инструмент, не путайте его с выгрузкой.

Выгрузка в XML для сайта и маркетплейсов

Для интернет-магазина Excel не годится — сайту нужен XML со структурой, которую он понимает. Стандарт для 1С и большинства CMS (включая Битрикс) — CommerceML 2. Его формирует встроенный механизм «Обмен с сайтом».

Как это работает:

  1. В настройках обмена с сайтом (раздел администрирования; в торговых конфигурациях — узел «Обмен с сайтом» или «Обмен с интернет-магазином») создаётся узел обмена.
  2. В нём указывают, что выгружать: каталог (товары), цены по выбранному типу, остатки, картинки.
  3. При выгрузке 1С формирует пакет файлов CommerceML — обычно это import.xml (каталог) и offers.xml (цены и остатки).
  4. Сайт по тому же протоколу забирает эти файлы и обновляет карточки и цены.

Если прайс нужен именно «для сайта», выгружайте через обмен, а не отдельным Excel: так синхронизируются и товары, и цены, и наличие.

Маркетплейсы и YML. Яндекс.Маркет и ряд площадок принимают формат YML (Yandex Market Language) — это свой XML со списком предложений (<offer>), ценами, категориями и параметрами. Типовой «Обмен с сайтом» выгружает CommerceML, а не YML. Варианты получить YML:

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

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

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

Чем полнее карточка в 1С, тем меньше ручной правки на площадке после выгрузки.

Автоматическая выгрузка по расписанию

Чтобы прайс обновлялся сам, выгрузку ставят на расписание. Делается это через регламентное задание.

Для обмена с сайтом расписание настраивается прямо в узле обмена: задаёте интервал (например, раз в час или раз в сутки ночью), и 1С сама формирует и отправляет файлы. Для собственной выгрузки регламентное задание запускает вашу процедуру по тому же расписанию.

Что учесть:

🔹 Серверный режим. Регламентные задания штатно отрабатывают, когда база в клиент-серверном режиме: их выполняет сервер 1С без участия пользователя. 🔹 Файловый режим. В файловой базе регламентные задания выполняются только пока открыт хотя бы один сеанс. Нужна постоянно запущенная (можно фоновая) сессия 1С на отдельной машине. 🔹 Проверка результата. Настройте уведомление об ошибке обмена — иначе «молчаливый» сбой вы заметите только когда сайт покажет старые цены.

Расписание в сутки на ночь экономит ресурсы, но цены на сайте будут отставать на день. Для товаров с частыми переоценками выбирайте интервал в часах.

Перед запуском автоматической выгрузки проверьте
Выполнено: 0 / 6

Выгрузка прайс-листа кодом

Когда нужен нестандартный формат или особая логика (например, своя наценка для части товаров), прайс собирают кодом. Идея простая: запросом получить цены, сложить их в табличный документ и записать файл.

Ниже — упрощённый пример для УТ 11 (имена регистра и полей в вашей конфигурации могут отличаться — сверьтесь в конфигураторе):

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    Цены.Номенклатура.Наименование КАК Наименование,
|    Цены.Цена КАК Цена
|ИЗ
|    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ВидЦены = &ВидЦены) КАК Цены";
Запрос.УстановитьПараметр("Дата", ТекущаяДата());
Запрос.УстановитьПараметр("ВидЦены", ВыбранныйВидЦены);
Выборка = Запрос.Выполнить().Выбрать();

Таблица = Новый ТабличныйДокумент;
НомерСтроки = 1;
Пока Выборка.Следующий() Цикл
    Таблица.Область(НомерСтроки, 1).Текст = Выборка.Наименование;
    Таблица.Область(НомерСтроки, 2).Текст = Формат(Выборка.Цена, "ЧДЦ=2; ЧГ=0");
    НомерСтроки = НомерСтроки + 1;
КонецЦикла;

Таблица.Записать("C:\Price\price.xlsx", ТипФайлаТабличногоДокумента.XLSX);

Разбор ключевых моментов:

  • СрезПоследних(&Дата, ...) берёт последние цены на указанную дату — так в прайс не попадут устаревшие записи.
  • Число приводим к строке через Формат(...) — складывать число со строкой напрямую нельзя.
  • ТипФайлаТабличногоДокумента.XLSX — формат Excel; этот же метод умеет PDF, ODS, HTML.
  • Путь C:\Price\ должен существовать и быть доступен: на сервере файл пишется в каталог сервера, а не на компьютер пользователя.

Для XML пишут не в табличный документ, а формируют структуру тегов (через запись XML или построение строки) по спецификации нужного формата — CommerceML или YML.

Внешние обработки и готовые сервисы

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

Где брать и что учесть:

  • Готовые обработки под выгрузку прайса в Excel, YML, прайс для конкретных площадок — есть у партнёров 1С и на тематических ресурсах.
  • Проверка перед запуском. Обработку из непроверенного источника сначала смотрят в конфигураторе: она получает полный доступ к данным.
  • Сервисы-коннекторы к маркетплейсам берут данные из 1С и сами публикуют карточки и цены на площадках — это не выгрузка файла, а постоянная синхронизация.

Для разовой задачи проще отчёт и сохранение в Excel. Внешняя обработка оправдана, когда формат повторяется из раза в раз и ручная правка файла надоела.

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

Прайс выгрузился пустым или без цен. Самая частая причина — не установлены цены по выбранному виду (типу). Проверьте регистр цен: по нужному типу должны быть записи на дату выгрузки. Вторая причина — слишком узкий отбор (склад, группа), из-за которого в выборку не попали товары.

В Excel цены съехали или превратились в даты. Excel иногда интерпретирует числа и артикулы по-своему. Помогает выгрузка в .xlsx (а не .xls) и, при необходимости, задание текстового формата колонки с артикулом уже в Excel.

Сайт не принял XML. Либо не тот формат (сайт ждёт CommerceML конкретной версии или YML, а выгрузили другой), либо не совпали единицы измерения, валюта или кодировка. XML-файлы 1С выгружает в UTF-8 — проверьте, что сайт настроен на ту же кодировку.

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

В каком формате выгрузить прайс для клиента?
Для клиента удобнее всего Excel (.xlsx) — файл легко открыть и при желании поправить. Если важно, чтобы цены не меняли, отправляйте PDF.
Можно ли выгрузить прайс сразу с остатками и картинками?
Да, через механизм «Обмен с сайтом»: он выгружает каталог, цены, остатки и изображения одним пакетом CommerceML. В обычный Excel-прайс картинки не попадут.
Почему в прайсе цены старые, хотя я их поменял?
Отчёт берёт цены на указанную дату. Если выгрузка идёт на вчерашнюю дату или новые цены установлены на будущую дату — в файл попадут прежние суммы. Проверьте дату в отчёте и дату установки цен.
Как выгрузить прайс для Яндекс.Маркета?
Площадка принимает формат YML. Типовой обмен с сайтом даёт CommerceML, поэтому YML формируют внешней обработкой, встроенной интеграцией маркетплейса (в поздних релизах торговых конфигураций) либо преобразованием на стороне сервиса.
Нужен ли программист, чтобы настроить ежедневную выгрузку?
Для обмена с сайтом — нет: расписание задаётся в настройках узла обмена. Программист нужен, если выгружаете нестандартный формат собственной обработкой или кодом.