Торговля и Склад · 11 мин
Как сделать прайс-лист с картинками в 1С
Как вывести прайс-лист с картинками товаров в 1С: настройка изображений номенклатуры, макет с картинками, вывод в Excel и PDF. Пошаговая инструкция и типичные ошибки.
Прайс-лист с изображениями товаров заметно удобнее обычной таблицы: клиент сразу видит, что покупает, а менеджеру не нужно отдельно высылать фото каждой позиции. В типовых конфигурациях 1С (Управление торговлей, Комплексная автоматизация, ERP, УНФ) изображения номенклатуры хранятся прямо в базе, поэтому задача сводится к трём шагам: прикрепить картинки к товарам, сформировать прайс-лист и обеспечить вывод картинок в итоговый документ.
Главная сложность в том, что стандартный отчёт «Прайс-лист» в большинстве типовых конфигураций выводит только текстовые колонки — наименование, артикул, цену. Картинки в него по умолчанию не попадают. Есть три рабочих пути: использовать расширенные варианты отчёта, где они предусмотрены конфигурацией, выгружать прайс через обработку во внешний формат (Excel, HTML) либо доработать макет печатной формы. Ниже разобраны все три подхода с конкретными действиями.
Шаг 1. Прикрепляем изображения к номенклатуре
Прежде чем выводить картинки в прайс, они должны быть связаны с товарами. Откройте карточку номенклатуры: в разделе «Номенклатура» (или «Товары и услуги») выберите позицию и перейдите по ссылке «Изображения» либо «Присоединенные файлы» — название зависит от конфигурации. Нажмите «Добавить из файла» и укажите файл картинки.
Одна из картинок должна быть назначена основной — именно она выводится в списках и обычно используется при формировании прайса. В карточке товара основное изображение отображается на форме слева; если там пусто, прайс тоже останется без картинки, даже если файлы прикреплены.
Массово загружать картинки вручную долго. Для сотен позиций используйте обработки загрузки изображений из папки с сопоставлением по артикулу или наименованию файла — такие обработки есть в поставке некоторых конфигураций и на маркетплейсе расширений. Логика простая: имя файла совпадает с артикулом, обработка автоматически привязывает картинку к товару.
Шаг 2. Проверяем стандартный отчёт «Прайс-лист»
В Управлении торговлей 11 и родственных конфигурациях прайс-лист формируется из раздела «CRM и маркетинг → Цены (прайс-лист)» или «Продажи → Прайс-лист». Откройте отчёт, выберите вид цен, при необходимости установите отборы по группам товаров и нажмите «Сформировать».
В штатном варианте отчёта колонка с изображением, как правило, отсутствует. Однако в некоторых конфигурациях (например, УНФ) в настройках варианта отчёта есть возможность добавить вывод картинки. Проверьте: «Ещё → Изменить вариант отчёта» (или «Настройки»), найдите в списке доступных полей «Изображение» или «Картинка» и добавьте его в структуру строк. Если такого поля нет — переходите к одному из рабочих способов ниже.
Даже когда поле доступно, у стандартного вывода есть ограничение: табличный документ с сотнями картинок формируется медленно и может занимать десятки мегабайт. Для каталога в 50–200 позиций это приемлемо, для нескольких тысяч — практически неприменимо.
Добавьте поле в настройках и сформируйте отчёт
Выберите способ: Excel/HTML-выгрузка или макет
Рассмотрите выгрузку в HTML или Excel вместо табличного документа
Проверьте карточки товаров и назначьте основное фото
Способ 1. Выгрузка прайса в Excel с картинками
Самый популярный вариант для передачи прайса клиентам — файл Excel, где в каждой строке стоит миниатюра товара. В типовой поставке такой выгрузки обычно нет, поэтому используют внешнюю обработку (готовые варианты доступны в открытых источниках и на маркетплейсе расширений 1С) либо пишут собственную. Принцип работы обработки: запросом выбираются товары с ценами, для каждой строки извлекается двоичные данные основного изображения, сохраняется временный файл и вставляется в ячейку Excel через COM-объект.
Фрагмент логики на встроенном языке выглядит примерно так:
ДанныеКартинки = ПрисоединенныйФайл.ХранимыйФайл.Получить();
ВременныйФайл = ПолучитьИмяВременногоФайла("jpg");
ДанныеКартинки.Записать(ВременныйФайл);
Лист.Shapes.AddPicture(ВременныйФайл, 0, -1, Лево, Верх, Ширина, Высота);Учтите два ограничения. Во-первых, вставка через COM-объект Excel работает только на компьютере с установленным Microsoft Office и только под Windows — на сервере Linux этот способ не сработает. Во-вторых, вставка картинок в цикле — медленная операция: прайс на несколько сотен позиций может формироваться минуты. Для ускорения заранее уменьшайте размер изображений, а не вставляйте исходные фото весом в несколько мегабайт.
Способ 2. HTML-прайс для сайта и рассылки
Если прайс нужен для публикации на сайте, в письме или мессенджере, удобнее генерировать HTML-страницу. Картинки либо выкладываются в папку рядом с файлом, либо встраиваются прямо в документ в кодировке Base64 — тогда прайс остаётся одним файлом, который легко переслать.
Технически это проще Excel-варианта: не требуется COM-объект, всё работает на любой платформе, включая серверную. Обработка формирует текстовый документ с таблицей, где в ячейках стоят теги изображений, ссылающиеся на выгруженные файлы картинок. Минус — полученный HTML нельзя править как привычную таблицу, а для печати его нужно открывать в браузере.
Этот же подход используется для регулярной публикации прайса: обработку можно запускать по расписанию регламентным заданием, выкладывая свежий файл на FTP или в общую папку. Тогда менеджерам не нужно вручную формировать документ каждый раз при изменении цен.
Сравнение вариантов вывода
Подходит для печати и PDF внутри компании; требует доработки макета, тяжёлый при большом числе позиций
Удобно отправлять клиентам и редактировать; требует MS Office и медленно формируется на больших каталогах
Лучший вариант для сайта, рассылки и автоматической публикации; неудобен для ручной правки
Фиксированный вид, не редактируется клиентом; те же ограничения по скорости, что у табличного документа
Способ 3. Доработка макета печатной формы
Если прайс должен выводиться штатной кнопкой «Печать» и формироваться в табличном документе 1С, потребуется доработка: добавить в макет отчёта область с параметром-рисунком и в модуле формирования присваивать ему картинку из присоединенного файла товара.
Порядок доработки такой: в макете табличного документа создаётся область строки с увеличенной высотой, в неё добавляется объект «Картинка» с именем, например, «ФотоТовара». В коде при выводе строки номенклатуры получают двоичные данные основного изображения, создают объект «Картинка» из этих данных и присваивают рисунку области. Если у товара нет фото, подставляют заглушку или оставляют ячейку пустой.
Для конфигураций на поддержке такую доработку правильнее делать через расширение, а не изменением основной конфигурации — иначе при обновлении изменения придётся восстанавливать вручную. В расширении переопределяется команда формирования прайса или добавляется своя печатная форма.
Подготовка изображений: размер, формат, качество
Качество итогового прайса наполовину зависит от исходных фото. Для прайс-листа достаточно миниатюр 200–400 пикселей по большей стороне — большие размеры только раздувают файл. Оптимальный формат — JPEG для фотографий и PNG для изображений с прозрачным фоном или схем.
Приведите все картинки к единому соотношению сторон, иначе строки прайса будут «плясать» по высоте, а таблица получится рваной. Удобно заранее подготовить квадратные миниатюры — тогда макет выглядит аккуратно без дополнительной обработки.
Если фото в базе уже загружены в высоком разрешении, не обязательно заменять их: в обработке выгрузки можно уменьшать картинку «на лету» средствами 1С (объект «ОбработкаКартинок» в свежих версиях платформы) или внешними утилитами. Это сократит размер итогового файла в разы.
Проверка результата и типичные ошибки
После формирования прайса проверьте его глазами клиента: откройте файл на другом компьютере или отправьте себе на почту. В Excel убедитесь, что картинки привязаны к ячейкам и не съезжают при фильтрации строк; в HTML — что изображения открываются без подключения к сети, если они встроены в файл.
Контрольные точки для проверки:
Как проверить результат
Фото совпадает с наименованием и артикулом строки
Изображения сдвинуты на строку или повторяются
Выводится заглушка или пустая ячейка, строка не ломается
Ошибка формирования или пропавшая строка
Прайс на 100–200 позиций в пределах нескольких мегабайт
Файл весит десятки мегабайт и долго открывается
Цены соответствуют выбранному виду цен на дату формирования
Выведены старые цены из-за неверного отбора периода
Отдельная частая ситуация — прайс формируется, но цены в нём устарели. Причина почти всегда в неверно выбранном виде цен или дате: проверьте, что в настройках отчёта указан актуальный вид цен и правильная дата среза, а сами цены записаны в регистр документом установки цен.
FAQ
Можно ли вывести картинки в прайс-листе 1С без доработок?
В большинстве типовых конфигураций стандартный отчёт «Прайс-лист» изображения не выводит. Исключение — конфигурации, где в настройках варианта отчёта доступно поле «Изображение» (проверьте через «Изменить вариант отчёта»). Если поля нет, потребуется внешняя обработка или расширение.
Как автоматически загрузить фото для тысячи товаров?
Используйте обработку пакетной загрузки изображений из папки: файлы именуются по артикулу или коду товара, обработка сопоставляет их с номенклатурой и прикрепляет автоматически. Такие обработки есть в составе некоторых конфигураций и в виде готовых решений в открытом доступе.
Почему прайс с картинками формируется очень долго?
Основные причины — большие исходные изображения и вставка картинок в Excel через COM-объект. Уменьшите фото до 200–400 пикселей, ограничьте выборку товаров отбором по группам, а для больших каталогов переходите на HTML-формат — он формируется заметно быстрее.
Работает ли выгрузка прайса в Excel на сервере Linux?
Вставка картинок через COM-объект Excel работает только под Windows с установленным Microsoft Office. На Linux используйте формирование табличного документа 1С с последующим сохранением в PDF или генерацию HTML — эти способы платформенно-независимы.
Как сделать, чтобы прайс обновлялся автоматически?
Оформите формирование прайса как внешнюю обработку и запускайте её регламентным заданием по расписанию — например, каждое утро. Результат сохраняйте в общую папку или выкладывайте на сайт, тогда менеджеры и клиенты всегда будут видеть актуальные цены без ручных действий.
Что важно запомнить
Прайс-лист с картинками в 1С строится на трёх шагах: прикрепить и назначить основные изображения в карточках товаров, выбрать способ вывода (табличный документ с доработанным макетом, Excel или HTML) и заранее уменьшить фото до размера миниатюр. Стандартный отчёт картинки обычно не показывает, поэтому без обработки или расширения не обойтись. Всегда проверяйте формирование на небольшой группе товаров, прежде чем выводить весь каталог.