Выгрузка прайс-листа из 1С: от печатной формы до автоматической отправки на сайт
Содержание
Прайс-лист из 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 — в группе отчётов по ценам и маркетингу; название группы между релизами может отличаться, ищите отчёт со словом «Прайс»).
Порядок действий:
- Откройте отчёт «Прайс-лист».
- Укажите дату, на которую берутся цены, и вид (тип) цены.
- При необходимости задайте отбор по номенклатуре: конкретная группа, склад, только товары в наличии.
- Нажмите
Сформировать— отчёт построит табличный документ. - Для печати —
ПечатьилиCtrl+P. Для PDF —Главное меню → Файл → Сохранить как, тип файлаДокумент PDF (.pdf).
Если в прайсе нужны логотип, реквизиты и условия отгрузки, многие торговые конфигурации позволяют настроить шаблон прайс-листа (шапку, колонки, группировку) прямо в форме отчёта. Это удобнее, чем дорабатывать Excel-файл после каждой выгрузки.
В Бухгалтерии 3.0 отдельного маркетингового отчёта «Прайс-лист» в привычном виде нет — там прайс обычно печатают из списка номенклатуры с установленными ценами или выгружают список в Excel (способ ниже). Если нужен полноценный прайс с типами цен и скидками, его ведут в торговой конфигурации.
Выгрузка прайс-листа в Excel
В Excel выгружают двумя путями: из сформированного отчёта или напрямую из списка номенклатуры.
Из отчёта или любого табличного документа. Любая печатная форма в 1С 8.3 — это табличный документ, и он сохраняется в Excel одной командой:
Главное меню → Файл → Сохранить как;- в поле «Тип файла» выберите
Лист Excel 2007-… (.xlsx)(или.xlsдля старых версий Excel); - укажите папку и имя, нажмите
Сохранить.
Напрямую из списка номенклатуры. Когда готового отчёта мало или нужен простой перечень «товар — цена», выгрузите список:
- Откройте список номенклатуры (
Справочники → Номенклатураили аналогичный раздел). - Настройте видимость колонок так, чтобы была видна колонка с ценой (через настройку списка в меню
Еще). - Выполните команду
Еще → Вывести список. - В окне выберите «Табличный документ» и нужные колонки, нажмите
ОК. - Полученный табличный документ сохраните в Excel через
Файл → Сохранить как.
Команда Вывести список выгружает ровно то, что видно в списке с учётом текущих отборов. Если включён отбор по складу или группе, в файл попадёт только отфильтрованная часть — проверьте отборы до выгрузки.
Для обратной задачи — загрузки цен из Excel обратно в 1С — в типовых конфигурациях есть обработка загрузки данных из табличного документа; это отдельный инструмент, не путайте его с выгрузкой.
Выгрузка в XML для сайта и маркетплейсов
Для интернет-магазина Excel не годится — сайту нужен XML со структурой, которую он понимает. Стандарт для 1С и большинства CMS (включая Битрикс) — CommerceML 2. Его формирует встроенный механизм «Обмен с сайтом».
Как это работает:
- В настройках обмена с сайтом (раздел администрирования; в торговых конфигурациях — узел «Обмен с сайтом» или «Обмен с интернет-магазином») создаётся узел обмена.
- В нём указывают, что выгружать: каталог (товары), цены по выбранному типу, остатки, картинки.
- При выгрузке 1С формирует пакет файлов CommerceML — обычно это
import.xml(каталог) иoffers.xml(цены и остатки). - Сайт по тому же протоколу забирает эти файлы и обновляет карточки и цены.
Если прайс нужен именно «для сайта», выгружайте через обмен, а не отдельным Excel: так синхронизируются и товары, и цены, и наличие.
Маркетплейсы и YML. Яндекс.Маркет и ряд площадок принимают формат YML (Yandex Market Language) — это свой XML со списком предложений (<offer>), ценами, категориями и параметрами. Типовой «Обмен с сайтом» выгружает CommerceML, а не YML. Варианты получить YML:
- в поздних релизах торговых конфигураций появляются встроенные интеграции с маркетплейсами — проверьте раздел обмена;
- специализированная внешняя обработка, формирующая YML из номенклатуры и цен;
- выгрузка CommerceML с последующим преобразованием в YML на стороне сайта или сервиса-посредника.
Оптимизация прайса под маркетплейс. Площадка ранжирует и принимает карточки по заполненности. Перед выгрузкой проверьте, что у товаров заполнены:
- наименование и категория (привязка к дереву категорий площадки);
- артикул, штрихкод, бренд;
- цена по нужному типу и, если есть, старая цена для скидки;
- характеристики (размер, цвет, вес) — они идут в параметры предложения.
Чем полнее карточка в 1С, тем меньше ручной правки на площадке после выгрузки.
Автоматическая выгрузка по расписанию
Чтобы прайс обновлялся сам, выгрузку ставят на расписание. Делается это через регламентное задание.
Для обмена с сайтом расписание настраивается прямо в узле обмена: задаёте интервал (например, раз в час или раз в сутки ночью), и 1С сама формирует и отправляет файлы. Для собственной выгрузки регламентное задание запускает вашу процедуру по тому же расписанию.
Что учесть:
🔹 Серверный режим. Регламентные задания штатно отрабатывают, когда база в клиент-серверном режиме: их выполняет сервер 1С без участия пользователя. 🔹 Файловый режим. В файловой базе регламентные задания выполняются только пока открыт хотя бы один сеанс. Нужна постоянно запущенная (можно фоновая) сессия 1С на отдельной машине. 🔹 Проверка результата. Настройте уведомление об ошибке обмена — иначе «молчаливый» сбой вы заметите только когда сайт покажет старые цены.
Расписание в сутки на ночь экономит ресурсы, но цены на сайте будут отставать на день. Для товаров с частыми переоценками выбирайте интервал в часах.
Выгрузка прайс-листа кодом
Когда нужен нестандартный формат или особая логика (например, своя наценка для части товаров), прайс собирают кодом. Идея простая: запросом получить цены, сложить их в табличный документ и записать файл.
Ниже — упрощённый пример для УТ 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 — проверьте, что сайт настроен на ту же кодировку.
Автоматическая выгрузка не срабатывает. В файловой базе регламентное задание работает только при открытом сеансе. Либо база закрыта на ночь, либо нет постоянной сессии — переведите базу в клиент-серверный режим или держите фоновый сеанс.
В каком формате выгрузить прайс для клиента?
.xlsx) — файл легко открыть и при желании поправить. Если важно, чтобы цены не меняли, отправляйте PDF.