К статье
Практический материал

Справочники и Данные · 10 мин

Что такое картинка в 1С и как с ней работать

Что такое картинка в 1С: библиотека картинок, картинки справочников и товаров, форматы, способы добавления и вывода на формы и в печатные документы.

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

С точки зрения платформы «1С:Предприятие» картинка — это специальный тип данных, предназначенный для хранения и отображения графической информации. Картинки могут храниться внутри конфигурации (в составе метаданных), в базе данных (например, в реквизитах справочников с типом «ХранилищеЗначения») или загружаться из внешних файлов во время работы программы.

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

Какие виды картинок существуют в 1С

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

Второй вид — стандартная библиотека картинок платформы. Это встроенный набор пиктограмм («Записать», «Провести», «Печать», «Справка» и сотни других), который поставляется вместе с платформой и не требует добавления файлов. В конфигураторе к ней обращаются через объект БиблиотекаКартинок, например БиблиотекаКартинок.Печать.

Третий вид — картинки, хранящиеся в данных. Это фотографии товаров, сканы документов, подписи сотрудников, логотипы организаций. Технически они сохраняются в реквизитах типа «ХранилищеЗначения» или в присоединенных файлах (в типовых конфигурациях для этого используется механизм работы с файлами БСП). Именно с этим видом чаще всего работают обычные пользователи.

Как пользователю добавить картинку к товару или документу

В типовых конфигурациях («Управление торговлей», «ERP», «Комплексная автоматизация», «Розница») карточка номенклатуры содержит область для изображения. Обычно достаточно открыть карточку товара, перейти в раздел с файлами или изображениями и выбрать файл с диска. Программа сохранит картинку в базе и будет показывать её в карточке, а при настройке — в отчётах, прайс-листах и интернет-магазине при обмене с сайтом.

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

Как добавить фото товара в типовой конфигурации
  1. 1
    Откройте карточку номенклатуры
  2. 2
    Найдите блок «Изображение» или ссылку «Файлы» / «Присоединенные файлы»
  3. 3
    Нажмите «Добавить из файла» и выберите изображение с диска
  4. 4
    При наличии нескольких файлов отметьте основное изображение
  5. 5
    Запишите карточку и проверьте отображение фото

Как разработчику работать с картинками в конфигураторе

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

Для вывода изображения на форму используется элемент формы «Поле картинки» или реквизит формы типа «Картинка» либо строка с адресом временного хранилища. Типовой приём: двоичные данные из реквизита объекта помещают во временное хранилище, а в элемент формы передают адрес — так изображение отображается без лишнего трафика между клиентом и сервером.

Пример получения картинки из хранилища значений и вывода на форму:

bsl
ДвоичныеДанные = Объект.ХранилищеКартинки.Получить();
Если ДвоичныеДанные <> Неопределено Тогда
    АдресКартинки = ПоместитьВоВременноеХранилище(ДвоичныеДанные, УникальныйИдентификатор);
КонецЕсли;

Для программного создания изображения «с нуля» используется конструктор Новый Картинка с указанием файла, а для построения графических схем и диаграмм — отдельные объекты платформы (графическая схема, диаграмма, географическая схема). Это разные механизмы, и смешивать их не следует.

Картинки в печатных формах и отчётах

Логотип организации, печать и подпись в печатных формах — тоже картинки. В табличном документе (макете типа «ТабличныйДокумент») изображение вставляется как рисунок: в конфигураторе через меню «Таблица — Рисунки — Вставить рисунок», программно — через коллекцию рисунков области. В типовых конфигурациях логотип и факсимиле обычно задаются в карточке организации, а макеты читают их оттуда.

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

Где хранятся картинки и как это влияет на базу

Выбор места хранения влияет на размер базы, скорость работы и удобство обменов. Картинки в составе конфигурации увеличивают размер файла конфигурации, но не базу данных. Изображения в реквизитах объектов попадают в каждую резервную копию и при файловом варианте работы — в файл 1Cv8.1CD. Присоединенные файлы в типовых решениях можно настроить на хранение в томах на диске — тогда в базе остаются только ссылки, а сами файлы лежат в файловой системе.

Хранение в томах на диске разгружает базу, но требует отдельного резервного копирования каталога томов: копия базы без копии томов оставит вас без картинок. Это частая ошибка при организации бэкапов.

Способ храненияГде лежит файлПлюсыМинусы
Общие картинки конфигурацииВнутри конфигурацииВсегда доступны, единая поставкаМеняются только обновлением
Реквизит «ХранилищеЗначения»В базе данныхПростота, единый бэкапРост размера базы
Присоединенные файлы в томахКаталог на дискеБаза не раздуваетсяНужен отдельный бэкап томов

Типичные проблемы и как их диагностировать

Самая частая жалоба — «картинка не отображается». Причины обычно такие: реквизит хранилища пуст (файл не был записан), в элемент формы передан пустой или устаревший адрес временного хранилища, либо у пользователя нет прав на объект, из которого читается изображение. Проверка начинается с того, есть ли вообще данные в хранилище.

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

Контрольные точки

Как проверить, что картинка работает правильно

Данные в хранилище
Норма

ХранилищеЗначения.Получить() возвращает двоичные данные

Тревожный признак

Возвращается Неопределено — файл не записан

Отображение на форме
Норма

Картинка видна сразу после открытия и после перезаписи

Тревожный признак

Пустое поле или картинка пропадает после записи — неверный адрес хранилища

Скорость списка
Норма

Список открывается без задержек

Тревожный признак

Список «тормозит» — фото грузятся при каждом обновлении

Типичные ошибки при работе с картинками в 1С
01
Загрузка фото в исходном разрешении — база раздувается, обмены и бэкапы замедляются
02
Хранение томов на диске без их резервного копирования — при восстановлении базы картинки теряются
03
Жёсткая вставка логотипа в макет — при смене логотипа приходится обновлять конфигурацию
04
Вывод полноразмерных фото в динамический список — резкое падение скорости работы

Частые вопросы о картинках в 1С

Чем картинка конфигурации отличается от библиотеки картинок платформы?

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

Какие форматы изображений поддерживает 1С?

Платформа работает с распространёнными растровыми форматами: PNG, JPEG, GIF, BMP, а также с иконками ICO. Для фотографий товаров практичнее JPEG, для логотипов и иконок с прозрачностью — PNG.

Можно ли массово загрузить фото товаров, а не по одному?

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

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

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

Как вывести фото товара в печатную форму прайс-листа?

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

Влияет ли количество картинок в конфигурации на скорость работы пользователей?

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

Итог

Что важно запомнить

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