Прайс-лист из 1С в Excel: отчёт, список цен, рассылка и обработка

· 9 мин

Содержание

Чтобы выгрузить прайс из 1С 8.3 в Excel, сформируйте отчёт «Прайс-лист» с нужным типом цен и нажмите кнопку сохранения (значок дискеты) или Ctrl+S. В поле «Тип файла» выберите Лист Excel 2007-... (*.xlsx), укажите папку и имя файла. Через минуту у вас готовый файл, который открывается в Excel без конвертации.

Так работает любой отчёт в 1С:Предприятии 8.3: всё, что выводится в табличный документ, сохраняется в XLSX. Отличаются только способы собрать нужные колонки — артикул, остаток, несколько колонок цен, картинки. Ниже — пять рабочих способов, от стандартной кнопки до выгрузки по расписанию.

Встроенный отчёт «Прайс-лист» и сохранение в XLSX

В типовых конфигурациях есть готовый отчёт для прайса. Где его искать:

КонфигурацияГде находитсяЧто важно
Бухгалтерия предприятия 3.0Склад → Цены → Прайс-листЦены берутся из документов «Установка цен номенклатуры» по типу цен
Управление торговлей 11, КА 2, ERPРаздел с ценообразованием (CRM и маркетинг или Продажи, по релизу)Работает с видами цен, умеет выводить цены по характеристикам

Если не видите отчёт в меню, наберите «прайс» в строке поиска по интерфейсу — она открывается по Shift+F3 или кнопкой с лупой в верхней панели.

Пошагово

  1. Откройте отчёт «Прайс-лист».
  2. Выберите тип (вид) цен. Можно отметить несколько — каждый станет отдельной колонкой.
  3. Задайте дату, на которую нужны цены. По умолчанию стоит текущая.
  4. При необходимости отфильтруйте номенклатуру по группе или складу.
  5. Нажмите Сформировать.
  6. Нажмите значок дискеты на панели отчёта или Ctrl+S.
  7. В окне сохранения выберите тип файла Лист Excel 2007-... (*.xlsx) и нажмите Сохранить.

Если нужна не таблица, а просто «отправить клиенту», в окне сохранения выбирайте XLSX, а не PDF. Клиенту часто нужно отфильтровать прайс или посчитать сумму заказа прямо в файле.

Формат Лист Excel 97 (*.xls) тоже есть, но он ограничен 65 536 строками и хуже переносит форматирование. Для прайса на несколько тысяч позиций берите XLSX.

Альтернатива: «Сохранить как» из главного меню

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

Универсальный отчёт: прайс с любыми колонками

Стандартный прайс-лист не всегда показывает то, что нужно: например, остаток, единицу измерения, страну происхождения или штрихкод. Тогда помогает «Универсальный отчёт» — он строит таблицу по любому регистру.

В БП 3.0 он лежит в Отчеты → Стандартные отчеты → Универсальный отчет. В УТ 11 его проще найти поиском по интерфейсу.

Как собрать прайс в универсальном отчёте

  1. В поле «Тип объекта» выберите Регистр сведений.
  2. В поле «Объект» — регистр с ценами номенклатуры (в БП он называется «Цены номенклатуры»).
  3. В поле таблицы выберите Срез последних — так вы получите действующие цены, а не всю историю изменений.
  4. Откройте настройки отчёта (кнопка Настройки, режим «Расширенный»).
  5. На вкладке «Отборы» задайте тип цен — иначе в таблицу попадут все типы вперемешку.
  6. На вкладке «Поля и сортировки» добавьте нужные поля. Через «плюс» у поля «Номенклатура» доступны её реквизиты: артикул, единица, группа.
  7. Сформируйте отчёт и сохраните его в XLSX, как в предыдущем разделе.

Настройку можно сохранить под своим именем: Ещё → Сохранить вариант отчета. В следующий раз прайс собирается в два клика.

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

Когда какой способ выбрать

СпособКогда подходитОграничения
Отчёт «Прайс-лист»Обычный прайс по одному-двум типам ценНабор колонок ограничен вариантами отчёта
Универсальный отчётНужны нестандартные реквизиты или остаткиТребует один раз настроить поля
Вывод спискаБыстро выгрузить то, что видно в справочникеТолько колонки списка, без расчётов
Внешняя обработкаСложный формат, картинки, регулярная выгрузкаНужен программист или готовое решение

Вывод списка, обработки и сторонние инструменты

Вывод списка из справочника или документа

Любой список в 1С можно превратить в табличный документ. Откройте, например, справочник номенклатуры или документ установки цен, затем выберите Ещё → Вывести список.... Отметьте колонки, нажмите ОК — откроется таблица, которую сохраняют в XLSX обычным способом.

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

Ещё проще: выделите строки списка (Ctrl+A), скопируйте Ctrl+C и вставьте в Excel. Для пары сотен строк это самый быстрый путь, но форматирование при этом теряется.

Внешние обработки

Внешняя обработка — файл .epf, который подключают через Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. Её используют, когда прайс нужен в фиксированном формате: с логотипом, шапкой, картинками товаров, группировкой по категориям.

Перед подключением чужой обработки проверьте её у программиста или на копии базы. Обработка выполняет код с правами пользователя и может изменять данные, не только читать их.

Не подключайте обработки из случайных источников к рабочей базе. Сначала проверьте их на копии.

Выгрузка через обмен с сайтом

Если прайс нужен для интернет-магазина, Excel — лишний посредник. В типовых конфигурациях есть обмен с сайтом в формате CommerceML: он передаёт товары и цены напрямую. Excel имеет смысл, когда прайс уходит людям — клиентам, менеджерам, партнёрам.

Настройка колонок и формата прайса перед выгрузкой

Готовый файл удобнее, если подготовить его ещё в 1С. Что стоит настроить в форме отчёта (через Настройки):

  • 📋 Порядок колонок. Артикул и наименование слева, цена справа. Перетаскивайте поля на вкладке «Поля и сортировки».
  • 🔤 Сортировка. По группе, затем по наименованию — так покупатель быстрее найдёт нужное.
  • 🗂 Группировки. Если включить группировку по родителю номенклатуры, в Excel получатся заголовки разделов. Для фильтров в Excel группировки лучше отключить: плоская таблица фильтруется чище.
  • 🔢 Формат цены. В свойствах поля задайте формат с двумя знаками после запятой. Иначе 1250 и 1250,50 будут выглядеть по-разному.
  • 🚫 Нулевые цены. Отберите строки с ценой больше нуля, чтобы в прайс не попали позиции без цены.
  • 📦 Остаток. Если хотите показывать «в наличии», добавьте отбор по остатку больше нуля.

Пример: прайс с двумя ценами

Допустим, у вас два типа цен: «Розничная» и «Оптовая», скидка опта — 15 %. Товар стоит в рознице 2 400 руб. Опт в прайсе должен показать 2 040 руб. (2 400 × 0,85 = 2 040). Если в Excel вы видите другую цифру, значит в 1С на дату отчёта не установлена оптовая цена и программа берёт старую. Это сигнал проверить документы установки цен, а не формулы в Excel.

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

Кракозябры и числа-текст: проблемы кодировки при выгрузке в Excel

При сохранении в XLSX кодировка проблем не создаёт: формат хранит текст в Юникоде. Сбои бывают в трёх случаях.

Файл сохранён в CSV или TXT

Excel по двойному щелчку открывает CSV в кодировке системы. Если 1С записала файл в UTF-8, вместо кириллицы будут символы вида Товар. Что делать:

  1. Откройте пустую книгу Excel.
  2. Выберите Данные → Из текста/CSV и укажите файл.
  3. В поле «Источник файла» выберите 65001: Юникод (UTF-8).
  4. Проверьте разделитель (обычно точка с запятой) и нажмите Загрузить.

Надёжнее вообще не использовать CSV для прайса и сохранять сразу в XLSX.

Цены сохранились как текст

Признак: Excel не суммирует колонку, а в углу ячеек зелёные треугольники. Причина — разделитель тысяч. 1С выводит число как 1 250,00 с неразрывным пробелом, и Excel не всегда распознаёт его как число.

Решения:

  • в 1С задайте для поля цены формат без разделения групп (ЧГ=0);
  • в Excel выделите колонку, нажмите Ctrl+H, в поле «Найти» введите неразрывный пробел (Alt+0160 на цифровой клавиатуре), поле «Заменить» оставьте пустым.

Пропали ведущие нули в артикуле

Артикул 00125 превращается в 125, если Excel решил, что это число. В XLSX из 1С такое бывает редко, чаще — при вставке через буфер обмена или при открытии CSV. Перед вставкой задайте колонке в Excel текстовый формат, а при импорте CSV укажите для неё тип «Текстовый».

Диагностика: выберите симптом

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

Если прайс уходит клиентам каждую неделю, ручную выгрузку можно заменить автоматикой.

Рассылка отчётов

В типовых конфигурациях на базе БСП (БП 3.0, УТ 11, КА, ERP) есть механизм «Рассылки отчетов». Он формирует отчёт по расписанию и отправляет его по почте или кладёт в сетевую папку.

Как настроить:

  1. Сначала подключите почтовую учётную запись в Администрирование → Органайзер (или в разделе общих настроек, в зависимости от релиза).
  2. Откройте отчёт «Прайс-лист» с нужными настройками и сохраните их как вариант.
  3. Создайте рассылку из формы отчёта: в командной панели найдите команду отправки или рассылки.
  4. Укажите получателей, формат вложения XLSX и расписание — например, каждый понедельник в 8:00.
  5. Включите флажок использования расписания и сохраните.

Чтобы рассылка срабатывала, в файловой базе кто-то должен быть запущен в 1С (регламентные задания выполняет сеанс пользователя). В клиент-серверной базе задания выполняет сервер.

Код для своей обработки

Если нужен свой формат, программист пишет обработку, которая собирает табличный документ и записывает его методом Записать с типом ТипФайлаТабличногоДокумента.XLSX. Пример для БП 3.0 (регистр «Цены номенклатуры», измерение «Тип цен»):

Функция ВыгрузитьПрайс(ТипЦен, ПутьКФайлу) Экспорт

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

    ТабДок = Новый ТабличныйДокумент;
    ТабДок.Область(1, 1, 1, 1).Текст = "Артикул";
    ТабДок.Область(1, 2, 1, 2).Текст = "Наименование";
    ТабДок.Область(1, 3, 1, 3).Текст = "Цена";

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

    ТабДок.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.XLSX);
    Возврат НомерСтроки - 1;

КонецФункции

В УТ 11 и ERP регистр цен устроен иначе: измерение называется «Вид цены», есть характеристики. Запрос под эти конфигурации нужно переписать.

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

Частые вопросы

Можно ли выгрузить прайс с картинками товаров?
Штатный отчёт картинки не выводит. Нужна внешняя обработка, которая вставляет изображения в табличный документ, а затем сохраняет его в XLSX. Учтите: файл с сотнями фото весит десятки мегабайт.
Как выгрузить прайс без доступа к отчётам?
Откройте список номенклатуры или документ установки цен и используйте «Ещё → Вывести список». Если и это недоступно, права нужно расширить у администратора базы.
Почему в Excel не те цены, что в карточке товара?
Отчёт берёт цену на дату среза по выбранному типу цен. Проверьте дату отчёта и тип цен, а также наличие более поздних документов установки цен.
Можно ли выгрузить прайс из 1С в Google Таблицы?
Сохраните файл в XLSX и загрузите его в Google Диск, после чего откройте как таблицу. Прямой выгрузки в типовых конфигурациях нет.
Сохраняются ли в Excel группировки и цвета отчёта?
В XLSX сохраняются шрифты, заливка, границы и объединённые ячейки. Сворачиваемые группировки 1С переносятся не всегда, поэтому для фильтрации лучше выгружать плоскую таблицу.