Справочники и Данные · 10 мин
Что такое картинка в 1С и как с ней работать
Что такое картинка в 1С: библиотека картинок, картинки справочников и товаров, форматы, способы добавления и вывода на формы и в печатные документы.
Термин «картинка в 1С» используется в нескольких разных смыслах, и путаница между ними — частая причина вопросов у пользователей и начинающих разработчиков. В одних случаях речь идёт о встроенной библиотеке картинок платформы — стандартных пиктограммах для кнопок и команд. В других — о фотографиях товаров в карточках номенклатуры, логотипах организаций в печатных формах или изображениях, которые разработчик размещает на управляемой форме.
С точки зрения платформы «1С:Предприятие» картинка — это специальный тип данных, предназначенный для хранения и отображения графической информации. Картинки могут храниться внутри конфигурации (в составе метаданных), в базе данных (например, в реквизитах справочников с типом «ХранилищеЗначения») или загружаться из внешних файлов во время работы программы.
Понимание того, где именно хранится изображение и каким способом оно выводится, определяет и инструменты работы с ним: от простой загрузки фото товара пользователем до программного формирования картинки в коде. Ниже разобраны основные виды картинок в 1С, способы их добавления, типичные задачи и ограничения.
Какие виды картинок существуют в 1С
Первый вид — общие картинки конфигурации. Их добавляет разработчик в ветку «Общие картинки» дерева конфигурации. Такие изображения хранятся внутри самой конфигурации, доступны из любого модуля и обычно используются для оформления интерфейса: иконки кнопок, фоны, логотипы. Обновляются они только при обновлении конфигурации.
Второй вид — стандартная библиотека картинок платформы. Это встроенный набор пиктограмм («Записать», «Провести», «Печать», «Справка» и сотни других), который поставляется вместе с платформой и не требует добавления файлов. В конфигураторе к ней обращаются через объект БиблиотекаКартинок, например БиблиотекаКартинок.Печать.
Третий вид — картинки, хранящиеся в данных. Это фотографии товаров, сканы документов, подписи сотрудников, логотипы организаций. Технически они сохраняются в реквизитах типа «ХранилищеЗначения» или в присоединенных файлах (в типовых конфигурациях для этого используется механизм работы с файлами БСП). Именно с этим видом чаще всего работают обычные пользователи.
Как пользователю добавить картинку к товару или документу
В типовых конфигурациях («Управление торговлей», «ERP», «Комплексная автоматизация», «Розница») карточка номенклатуры содержит область для изображения. Обычно достаточно открыть карточку товара, перейти в раздел с файлами или изображениями и выбрать файл с диска. Программа сохранит картинку в базе и будет показывать её в карточке, а при настройке — в отчётах, прайс-листах и интернет-магазине при обмене с сайтом.
Перед массовой загрузкой стоит уменьшить размер фотографий. Изображения с фотоаппарата по несколько мегабайт каждое быстро раздувают базу: тысяча таких фото добавляет гигабайты к размеру данных, замедляет резервное копирование и обмены. Практичный ориентир — сжатие до разумного разрешения (например, 800–1200 пикселей по большей стороне) перед загрузкой.
- 1Откройте карточку номенклатуры
- 2Найдите блок «Изображение» или ссылку «Файлы» / «Присоединенные файлы»
- 3Нажмите «Добавить из файла» и выберите изображение с диска
- 4При наличии нескольких файлов отметьте основное изображение
- 5Запишите карточку и проверьте отображение фото
Как разработчику работать с картинками в конфигураторе
Для оформления команд и кнопок разработчик назначает картинку в свойстве «Картинка» команды — через диалог выбора, где доступны три источника: из конфигурации, из библиотеки платформы и из файла. Использование стандартных пиктограмм предпочтительнее: интерфейс остаётся единообразным, а при смене версии платформы иконки автоматически соответствуют её стилю.
Для вывода изображения на форму используется элемент формы «Поле картинки» или реквизит формы типа «Картинка» либо строка с адресом временного хранилища. Типовой приём: двоичные данные из реквизита объекта помещают во временное хранилище, а в элемент формы передают адрес — так изображение отображается без лишнего трафика между клиентом и сервером.
Пример получения картинки из хранилища значений и вывода на форму:
ДвоичныеДанные = Объект.ХранилищеКартинки.Получить();
Если ДвоичныеДанные <> Неопределено Тогда
АдресКартинки = ПоместитьВоВременноеХранилище(ДвоичныеДанные, УникальныйИдентификатор);
КонецЕсли;Для программного создания изображения «с нуля» используется конструктор Новый Картинка с указанием файла, а для построения графических схем и диаграмм — отдельные объекты платформы (графическая схема, диаграмма, географическая схема). Это разные механизмы, и смешивать их не следует.
Картинки в печатных формах и отчётах
Логотип организации, печать и подпись в печатных формах — тоже картинки. В табличном документе (макете типа «ТабличныйДокумент») изображение вставляется как рисунок: в конфигураторе через меню «Таблица — Рисунки — Вставить рисунок», программно — через коллекцию рисунков области. В типовых конфигурациях логотип и факсимиле обычно задаются в карточке организации, а макеты читают их оттуда.
В СКД (системе компоновки данных) картинку можно вывести через макет оформления или вычисляемое поле, но это менее прямолинейный путь. Если задача — показать фото товаров в прайсе, проще использовать табличный документ с программным выводом рисунков, чем бороться с ограничениями СКД.
Где хранятся картинки и как это влияет на базу
Выбор места хранения влияет на размер базы, скорость работы и удобство обменов. Картинки в составе конфигурации увеличивают размер файла конфигурации, но не базу данных. Изображения в реквизитах объектов попадают в каждую резервную копию и при файловом варианте работы — в файл 1Cv8.1CD. Присоединенные файлы в типовых решениях можно настроить на хранение в томах на диске — тогда в базе остаются только ссылки, а сами файлы лежат в файловой системе.
Хранение в томах на диске разгружает базу, но требует отдельного резервного копирования каталога томов: копия базы без копии томов оставит вас без картинок. Это частая ошибка при организации бэкапов.
| Способ хранения | Где лежит файл | Плюсы | Минусы |
|---|---|---|---|
| Общие картинки конфигурации | Внутри конфигурации | Всегда доступны, единая поставка | Меняются только обновлением |
| Реквизит «ХранилищеЗначения» | В базе данных | Простота, единый бэкап | Рост размера базы |
| Присоединенные файлы в томах | Каталог на диске | База не раздувается | Нужен отдельный бэкап томов |
Типичные проблемы и как их диагностировать
Самая частая жалоба — «картинка не отображается». Причины обычно такие: реквизит хранилища пуст (файл не был записан), в элемент формы передан пустой или устаревший адрес временного хранилища, либо у пользователя нет прав на объект, из которого читается изображение. Проверка начинается с того, есть ли вообще данные в хранилище.
Вторая группа проблем — производительность. Если форма списка товаров открывается медленно и в списке выводятся фото, значит, при каждом обновлении из базы читаются мегабайты двоичных данных. Решение — показывать картинку только в карточке объекта либо хранить уменьшенные превью отдельно от полноразмерных изображений.
Как проверить, что картинка работает правильно
ХранилищеЗначения.Получить() возвращает двоичные данные
Возвращается Неопределено — файл не записан
Картинка видна сразу после открытия и после перезаписи
Пустое поле или картинка пропадает после записи — неверный адрес хранилища
Список открывается без задержек
Список «тормозит» — фото грузятся при каждом обновлении
Частые вопросы о картинках в 1С
Чем картинка конфигурации отличается от библиотеки картинок платформы?
Картинку конфигурации добавляет разработчик, и она хранится внутри прикладного решения. Библиотека картинок — встроенный набор иконок самой платформы, доступный всегда и не требующий файлов. Для стандартных действий (записать, провести, удалить) лучше брать пиктограммы из библиотеки.
Какие форматы изображений поддерживает 1С?
Платформа работает с распространёнными растровыми форматами: PNG, JPEG, GIF, BMP, а также с иконками ICO. Для фотографий товаров практичнее JPEG, для логотипов и иконок с прозрачностью — PNG.
Можно ли массово загрузить фото товаров, а не по одному?
Можно. В типовых конфигурациях есть обработки загрузки изображений из каталога, где имена файлов сопоставляются с артикулами или кодами товаров. При нестандартной структуре папок задачу решает несложная внешняя обработка на встроенном языке.
Почему после переноса базы на другой сервер пропали картинки?
Наиболее вероятная причина — картинки хранились в томах на диске, и каталог томов не перенесли вместе с базой. В базе остались только ссылки на несуществующие файлы. Перенесите каталог томов и проверьте настройку путей к томам в параметрах информационной базы.
Как вывести фото товара в печатную форму прайс-листа?
Нужно в макете табличного документа добавить рисунок, а при формировании документа программно получать двоичные данные изображения из карточки товара и присваивать их рисунку области. Область с рисунком выводится для каждой строки товара в цикле.
Влияет ли количество картинок в конфигурации на скорость работы пользователей?
Общие картинки конфигурации загружаются с метаданными и почти не влияют на скорость. Замедление дают именно изображения в данных: их чтение из базы при каждом открытии формы или обновлении списка создаёт нагрузку, особенно при больших файлах.
Что важно запомнить
Картинка в 1С — это тип данных платформы с тремя основными источниками: общие картинки конфигурации, библиотека платформы и изображения в данных базы. Пользовательские фото добавляйте в разумном разрешении, для интерфейса используйте стандартные пиктограммы, а при хранении файлов в томах не забывайте про их резервное копирование.