Прайс-лист из 1С наружу: Excel, XML, CSV, YML и выгрузка по расписанию
Содержание
Чтобы выгрузить прайс
из 1С 8.3, сформируйте отчёт «Прайс-лист» по нужному типу цен и сохраните его кнопкой с дискетой в формате Excel (.xlsx). Для сайта цены уходят через «Обмен с сайтами» в XML, для другой базы 1С — через универсальный обмен данными, а регулярную отправку клиентам настраивают рассылкой отчётов по расписанию.
Ниже порядок для 1С:Бухгалтерии 3.0 и 1С:Управления торговлей 11 на платформе 8.3 с интерфейсом «Такси». Механизмы выгрузки общие для типовых конфигураций, различаются в основном названия справочников цен и разделы меню.
Подготовка цен перед выгрузкой прайса из 1С
Прайс-лист выводит не «цену товара вообще», а цену определённого типа на конкретную дату. Если цены не заведены, выгрузка будет пустой, какой бы формат вы ни выбрали.
Что проверить до выгрузки:
- 🏷️ Тип или вид цены. В БП 3.0 это справочник «Типы цен номенклатуры», в УТ 11 — «Виды цен». Заведите отдельные позиции под каждый прайс: «Розничная», «Оптовая», «Дилерская».
- 📅 Документ «Установка цен номенклатуры». Именно он записывает цены с датой. Цена действует с даты документа до следующей установки.
- 💱 Валюта и НДС. В карточке типа цен указывают валюту и признак «Цена включает НДС». Клиенту обычно нужен прайс с НДС, поэтому проверьте флажок до выгрузки.
- 📦 Единицы измерения. Прайс показывает цену за базовую единицу. Если продаёте упаковками, это видно в выгрузке сразу.
Где лежат справочники цен:
| Конфигурация | Справочник цен | Где искать |
|---|---|---|
| Бухгалтерия предприятия 3.0 | Типы цен номенклатуры | Раздел Склад, группа «Цены» |
| Управление торговлей 11 | Виды цен | Раздел CRM и маркетинг, настройки и справочники |
Типы цен в УТ 11 можно рассчитывать от других по формуле: например, «Оптовая» = «Закупочная» × 1,25. Тогда при выгрузке достаточно обновить закупочные цены, а остальные пересчитаются документом установки цен.
Быстрая проверка: откройте карточку любого товара из будущего прайса. Если в ней нет цены нужного типа, сначала проведите документ «Установка цен номенклатуры» и только потом выгружайте.
Ручная выгрузка прайс-листа через отчёт
Это самый частый сценарий: бухгалтер или менеджер раз в неделю отправляет клиентам файл. Отчёт строится за пару секунд и сохраняется в любой табличный формат.
Бухгалтерия 3.0
- Откройте раздел
Склади найдите отчёт «Прайс-лист» в группе отчётов по ценам. - В шапке укажите дату, на которую нужны цены. По умолчанию стоит сегодняшняя.
- Отметьте один или несколько типов цен. Каждый тип выйдет отдельной колонкой.
- Через кнопку
Настройкизадайте отбор: по группе номенклатуры, по складу, только товары с остатком. - Нажмите
Сформировать. - Нажмите кнопку с дискетой (
Сохранить) илиCtrl+S, выберите тип файла и папку.
Управление торговлей 11
- Откройте
CRM и маркетинг → Цены (прайс-лист). - Выберите виды цен, дату и отбор по номенклатуре или ценовым группам.
- Сформируйте прайс и сохраните результат тем же способом, через
Сохранить.
В УТ 11 эта же форма позволяет менять цены прямо в таблице. Удобно, но рискованно: перед отправкой клиенту убедитесь, что не сохранили случайную правку.
Отбор «только с остатком» берёт остатки на дату отчёта. Если на складе ещё не проведены приходы за сегодня, часть товаров из прайса выпадет.
Как оформить прайс для клиента
- 🖼️ Логотип и реквизиты добавляют в настройках варианта отчёта или уже в Excel после сохранения.
- 🔤 Сортировку по наименованию или артикулу задают на вкладке сортировки настроек.
- 💾 Готовую настройку сохраните как вариант отчёта:
Ещё → Сохранить вариант отчёта. В следующий раз прайс соберётся в один клик.
Форматы файлов: Excel, CSV, XML, YML и DBF
Формат выбирают по тому, кто примет файл: человек, сайт, маркетплейс или старая программа. Ниже сводка, потом разбор каждого.
| Формат | Кому нужен | Как получить из 1С |
|---|---|---|
| XLSX / XLS | Клиенты, менеджеры | Сохранить отчёт «Прайс-лист» |
| Клиенты, когда правки не нужны | Сохранить отчёт, тип PDF | |
| CSV | Импорт в CMS, CRM, таблицы | Через Excel или обработкой |
| XML (CommerceML) | Интернет-магазин | «Обмен с сайтами» |
| XML (формат обмена 1С) | Другая база 1С | Универсальный обмен данными |
| YML | Яндекс Маркет, агрегаторы | Конвертация на стороне сайта или обработка |
| DBF | Кассовое ПО, старые системы | Обработка на объекте XBase |
Excel и PDF
Табличный документ сохраняется напрямую в .xlsx, .xls, .ods, .pdf, .html, .txt и во внутренний формат 1С .mxl. Для отправки клиенту берите .xlsx: его открывают и Excel, и бесплатные офисные пакеты.
CSV
Прямого пункта «CSV» в окне сохранения отчёта нет. Два рабочих способа:
- Сохраните прайс в
.xlsx, откройте в Excel и выберите «Сохранить как → CSV (разделители — запятые)». В русской локали Excel поставит разделитель;. - Выгрузите CSV обработкой. Так получается чистый файл без шапки отчёта, итогов и объединённых ячеек, что нужно для импорта в CMS.
Пример внешней обработки для БП 3.0. Запрос берёт срез последних цен выбранного типа и пишет файл с разделителем «точка с запятой»:
Процедура ВыгрузитьПрайсCSV(ТипЦен, ИмяФайла) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Цены.Номенклатура.Артикул КАК Артикул,
| Цены.Номенклатура.Наименование КАК Наименование,
| Цены.Цена КАК Цена
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ТипЦен = &ТипЦен) КАК Цены
|УПОРЯДОЧИТЬ ПО
| Наименование";
Запрос.УстановитьПараметр("Дата", ТекущаяДатаСеанса());
Запрос.УстановитьПараметр("ТипЦен", ТипЦен);
Запись = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.UTF8);
Запись.ЗаписатьСтроку("Артикул;Наименование;Цена");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Наименование = СтрЗаменить(Выборка.Наименование, ";", ",");
Запись.ЗаписатьСтроку(СтрШаблон("%1;%2;%3",
Выборка.Артикул,
Наименование,
Формат(Выборка.Цена, "ЧДЦ=2; ЧРД=,; ЧГ=0")));
КонецЦикла;
Запись.Закрыть();
КонецПроцедуры
Формат ЧРД=,; ЧГ=0 даёт цену вида 1250,00 без пробелов между разрядами. Такое число русский Excel сразу распознаёт как число, а не как текст. Для импорта в CMS, где ждут точку, замените ЧРД=, на ЧРД=..
КодировкаТекста.UTF8 пишет файл с меткой BOM. Excel по ней правильно показывает кириллицу. Если принимающая система ругается на первые байты файла, уточните у её разработчика, нужен ли UTF-8 без BOM.
XML для сайта (CommerceML)
Типовые БП 3.0 и УТ 11 обмениваются с интернет-магазином в формате CommerceML. Товары уходят файлом import.xml, цены и остатки — файлом offers.xml. Его поддерживают популярные CMS и модули для них. Настройка описана в следующем разделе.
YML для Яндекс Маркета
Формат YML типовые БП и УТ сами не формируют. Обычно делают так:
- 🌐 магазин получает цены из 1С по CommerceML, а YML-фид генерирует уже CMS;
- 🧩 выгружают YML внешней обработкой: это обычный XML с узлами
shop,categories,offers, его пишут объектомЗаписьXML; - 🛒 для маркетплейсов используют сервисы и модули интеграции, которые сами берут цены из 1С.
DBF
DBF до сих пор просят кассовые программы и старые складские системы. В 1С его пишет встроенный объект XBase: создаёте поля, файл и построчно добавляете записи. Помните ограничения формата: имя поля до 10 символов, строковое поле до 254 символов, кодировку (OEM или ANSI) выбирают под принимающую программу.
Обмен с сайтом: цены в XML без ручной работы
Если прайс нужен интернет-магазину, файл вручную отправлять не нужно. Сайт получает цены напрямую.
- Включите синхронизацию: раздел
Администрирование, группа настроек синхронизации данных, флажок синхронизации. - Откройте «Обмен с сайтами» и создайте новый узел обмена.
- Укажите адрес обработчика на сайте, логин и пароль. Их выдаёт модуль обмена на стороне CMS.
- На вкладке выгрузки выберите группы номенклатуры и типы (виды) цен, которые увидят покупатели.
- Отметьте выгрузку остатков, если сайт показывает наличие.
- Запустите обмен вручную и проверьте результат на сайте.
Вместо адреса сайта можно указать каталог на диске. Тогда 1С положит import.xml и offers.xml в папку. Так удобно отлаживать: файлы видно глазами до того, как их получит магазин.
Первый обмен выгружает весь каталог. При десятках тысяч позиций и картинках он идёт долго. Запускайте его вне рабочего времени магазина.
Универсальный обмен данными: прайс в другую базу 1С
Когда прайс нужен не человеку, а другой базе 1С (филиалу, дилеру, торговой точке), передают сами данные: цены, номенклатуру, типы цен. Для этого есть обработка «Универсальный обмен данными в формате XML».
Как это устроено:
- 📜 Правила обмена описывают, какие объекты и поля переносить. Их создают в конфигурации «Конвертация данных » или берут готовые под пару конфигураций.
- 📤 Выгрузка. В базе-источнике обработка по правилам формирует XML-файл.
- 📥 Загрузка. В базе-приёмнике та же обработка читает файл и создаёт или обновляет объекты.
Порядок работы:
- Откройте обработку через
Файл → Открыть(файл.epf) или из дополнительных обработок. - На вкладке выгрузки загрузите файл правил обмена.
- Отметьте правила для типов цен и документа «Установка цен номенклатуры», задайте период.
- Укажите имя XML-файла и нажмите
Выгрузить данные. - В приёмнике откройте ту же обработку, вкладка загрузки, выберите файл и нажмите
Загрузить данные.
Перед первой загрузкой в рабочую базу сделайте её резервную копию. Неудачные правила могут создать дубли номенклатуры, и разбирать их вручную долго.
Если обмен с базой нужен постоянно, выгоднее настроить типовую синхронизацию между конфигурациями, если она предусмотрена для вашей пары. Универсальный обмен хорош для разовых и нестандартных переносов.
Выгрузка прайса по расписанию
Ручная выгрузка раз в неделю отнимает время и забывается. Типовые конфигурации на БСП умеют делать это сами.
Рассылка отчётов
Самый простой способ без программирования:
- Откройте
Администрирование → Печатные формы, отчеты и обработкии включите рассылку отчётов. - Создайте рассылку, добавьте сохранённый вариант отчёта «Прайс-лист».
- Выберите формат вложения, например
.xlsx. - Укажите способ доставки: электронная почта получателям, сетевая папка или FTP.
- Включите расписание: например, каждый понедельник в 7:00.
Папка или FTP удобны, когда прайс забирает сайт партнёра или общая папка отдела продаж. Файл каждый раз перезаписывается свежим.
Обмен с сайтом и обработки по расписанию
- 🔁 Узел «Обмена с сайтами» имеет собственное расписание: цены на сайте обновятся, например, каждый час.
- ⚙️ Внешнюю обработку (CSV, YML, DBF) регистрируют как дополнительную обработку. Если её команда вызывает серверный метод, в карточке дополнительной обработки ей можно задать расписание.
В файловой базе регламентные задания выполняет запущенный клиентский сеанс. Если в нужное время 1С ни у кого не открыта, рассылка не уйдёт. В клиент-серверном варианте задания выполняет сервер 1С сам.
Ошибки при экспорте прайс-листа и как их исправить
Ещё две частые проблемы:
- 🧾 В прайсе нет новых товаров. Отбор отчёта сохранён по старой группе номенклатуры. Новые позиции завели в другой группе и они не попали в вариант.
- 💸 Цена в прайсе отличается от цены в документе продажи. Документ берёт тип цен из договора с покупателем или из соглашения в УТ. Сравните тип цен в прайсе и в договоре.