Изображения в 1С 8.3: товары, логотип, печатные формы и код

· 10 мин

Содержание

Установить картинку в 1С 8 можно тремя способами: загрузить файл в карточку объекта (товар, организация), вставить рисунок в макет печатной формы в Конфигураторе или добавить изображение в саму конфигурацию через Общие → Общие картинки. Для бухгалтера и менеджера хватает первого способа, второй и третий — работа администратора или программиста.

Ниже по шагам каждый вариант для 1С:Предприятие 8.3 с интерфейсом «Такси»: от фотографии товара до логотипа в счёте на оплату и программной загрузки сотни изображений из папки.

Куда и в каком виде можно установить картинки в 1С

Картинка в 1С — не просто файл на диске. Она хранится внутри информационной базы или конфигурации, и от выбора места зависит, кто её увидит и как она переживёт обновление.

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

Платформа 8.3 уверенно работает с форматами:

  • 🖼️ PNG — лучший выбор для логотипов, печатей и иконок, поддерживает прозрачный фон;
  • 📷 JPEG — для фотографий товаров;
  • 🎞️ GIF и BMP — открываются, но BMP раздувает базу без всякой пользы.

Перед загрузкой уменьшите изображение. Фото товара 800×800 пикселей весит 80–150 КБ, а снимок с телефона 4000×3000 — 3–5 МБ. Тысяча таких фото добавит к базе 3–5 ГБ.

Как загрузить картинку в карточку товара и справочника

В типовых конфигурациях (Бухгалтерия предприятия 3.0, Управление торговлей 11, Комплексная автоматизация) у номенклатуры есть основное изображение. Технически это присоединённый файл, на который ссылается карточка.

Пошагово для номенклатуры

  1. Откройте список номенклатуры: в БП 3.0 — Справочники → Товары и услуги → Номенклатура, в УТ 11 — НСИ и администрирование → НСИ → Номенклатура.
  2. Откройте карточку нужного товара.
  3. Найдите область изображения в шапке карточки (пустой прямоугольник или рамка с подписью о добавлении картинки) и щёлкните по ней.
  4. В окне выбора файла укажите JPEG или PNG на диске.
  5. Нажмите Записать и закрыть.

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

Другие справочники

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

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

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

Чтобы он не занимал место:

  1. Откройте список файлов товара (скрепка).
  2. Пометьте ненужный файл на удаление.
  3. Администратор в нерабочее время запускает удаление помеченных объектов: Администрирование → Обслуживание.

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

Если картинка не появилась в карточке, а в списке файлов она есть — значит, файл прикреплён, но не выбран основным изображением. Откройте список файлов и назначьте его основным.

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

Вручную загружать фото к 50 товарам терпимо, к 3000 — нет. Здесь есть два пути.

Хранить в базе или ссылаться на папку

ВариантПлюсыМинусы
Файл внутри базыВидят все, включая веб-клиент и удалённых сотрудников; попадает в резервную копию .dtБаза растёт
Тома на диске (БСП)База не растёт, файлы лежат в сетевой папкеПапку нужно бэкапить отдельно, у сервера 1С должны быть права на неё
Только путь к файлу в реквизитеНичего не хранитсяНе работает в веб-клиенте и у сотрудника без доступа к папке

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

Если файлы хранятся в томах, резервная копия базы без копии папки томов неполная: после восстановления карточки останутся, а картинки — нет.

Массовая загрузка по артикулу

Типовой приём — назвать файлы артикулами (A-1024.jpg, A-1025.jpg) и загрузить их обработкой, которая находит товар по артикулу и прикрепляет файл. Код такой обработки приведён в разделе про программную работу. Сторонние обработки загрузки изображений тоже существуют, но перед запуском в рабочей базе проверяйте их на копии.

Логотип, печать и подписи в печатных формах

Без программиста: данные организации

В Бухгалтерии 3.0 логотип и факсимиле в счёт на оплату ставятся из карточки организации:

  1. Откройте Главное → Организации и карточку своей организации.
  2. Разверните раздел Логотип и печать.
  3. Загрузите логотип, изображение печати, подписи руководителя и главного бухгалтера.
  4. Проверьте результат по ссылке предварительного просмотра счёта в этом же разделе.
  5. Запишите карточку.

Подготовка файлов решает половину проблем:

  • ✅ печать и подписи — PNG с прозрачным фоном, иначе белый прямоугольник закроет текст счёта;
  • ✅ скан в 300 dpi, затем обрезка по краям оттиска;
  • ✅ одинаковый масштаб: печать диаметром около 4 см на бумаге.

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

Печать загружена, а в счёте её нет

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

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

В Конфигураторе: рисунок в макете

Если картинка нужна в форме, где типовой настройки нет (накладная, акт, своя печатная форма), её добавляют в макет табличного документа:

  1. Откройте макет в Конфигураторе двойным щелчком.
  2. Выделите ячейку, куда ставить рисунок.
  3. В меню выберите Таблица → Рисунки → Картинка… и укажите файл.
  4. Задайте в свойствах рисунка имя, например Логотип, и режим размера Пропорционально.

Рисунок, вставленный в макет, неизменен для всех организаций. Если логотип должен подставляться из базы, в макете оставляют пустой рисунок с именем, а картинку присваивают кодом (пример ниже).

Не правьте макет типовой конфигурации на поддержке напрямую: при обновлении правка потеряется или потребует ручного сравнения. Безопаснее сделать печатную форму в расширении конфигурации (расширения есть с платформы 8.3.6) или внешней печатной формой.

Логотип программы, заставка и начальная страница

Тут важно различать, что меняется данными, а что — только в конфигурации.

  • 🏷️ Заголовок окна. Текст заголовка программы меняется в Администрирование → Общие настройки, поле заголовка программы. Это только текст, картинку туда не поставить.
  • 🖼️ Логотип и заставка запуска. Задаются в свойствах корня конфигурации в Конфигураторе: свойства Логотип и Заставка. Чтобы их заменить в типовой конфигурации, придётся включить возможность изменения основной конфигурации со всеми последствиями для обновлений.
  • 📌 Картинка на начальной странице. Делается через расширение: в расширении создают общую форму с декорацией-картинкой и добавляют её на начальную страницу. Пользователь затем включает форму в Вид → Настройка начальной страницы.

Общие картинки

Чтобы картинка была доступна любым формам и командам конфигурации:

  1. В дереве Конфигуратора откройте Общие → Общие картинки.
  2. Нажмите Добавить, задайте имя латиницей или кириллицей без пробелов, например ЛоготипКомпании.
  3. В форме картинки выберите файл.
  4. В форме используйте декорацию типа «Картинка», свойство Картинка — выбрать из библиотеки.

Для кнопок и команд подойдут PNG 16×16 и 32×32. Для декорации на начальной странице — 200–400 пикселей по ширине.

Как установить картинку программно: код на встроенном языке

Свой реквизит с картинкой на форме

Схема для своей конфигурации или расширения: в объекте реквизит Картинка типа ХранилищеЗначения, на форме — реквизит АдресКартинки (строка) и поле картинки, связанное с ним.

&НаКлиенте
Процедура ЗагрузитьКартинку(Команда)
	Оповещение = Новый ОписаниеОповещения("ПослеПомещенияФайла", ЭтотОбъект);
	НачатьПомещениеФайла(Оповещение, , "", Истина, УникальныйИдентификатор);
КонецПроцедуры

&НаКлиенте
Процедура ПослеПомещенияФайла(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт
	Если Результат Тогда
		АдресКартинки = Адрес;
		Модифицированность = Истина;
	КонецЕсли;
КонецПроцедуры

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

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	Если ЭтоАдресВременногоХранилища(АдресКартинки) Тогда
		Данные = ПолучитьИзВременногоХранилища(АдресКартинки);
		ТекущийОбъект.Картинка = Новый ХранилищеЗначения(Данные, Новый СжатиеДанных(9));
	КонецЕсли;
КонецПроцедуры

СжатиеДанных(9) даёт максимальное сжатие. Для JPEG выигрыш мал, для BMP — в разы.

Картинка в печатную форму из базы

В макете заранее нарисован пустой рисунок Логотип. При формировании ему присваивается изображение:

Область = Макет.ПолучитьОбласть("Шапка");
Данные = Организация.Логотип.Получить(); // реквизит типа ХранилищеЗначения
Если Данные <> Неопределено Тогда
	Область.Рисунки.Логотип.Картинка = Новый Картинка(Данные);
КонецЕсли;
ТабДокумент.Вывести(Область);

Картинка из общей библиотеки

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

&НаСервере
Процедура ОбновитьИндикатор()
	Если Объект.Проверен Тогда
		Элементы.Индикатор.Картинка = БиблиотекаКартинок.ЛоготипКомпании;
	Иначе
		Элементы.Индикатор.Картинка = Новый Картинка;
	КонецЕсли;
КонецПроцедуры

Новый Картинка без параметров даёт пустое изображение, декорация просто ничего не показывает. Имена Индикатор, Проверен и ЛоготипКомпании здесь условные: подставьте свои элемент формы, реквизит и общую картинку.

Массовая загрузка из папки в типовой конфигурации

В типовых решениях на Библиотеке стандартных подсистем (БСП) файл прикрепляют через её программный интерфейс РаботаСФайлами, а затем делают его основным изображением товара. Код выполняется на сервере, папка должна быть доступна серверу 1С:

&НаСервере
Процедура ЗагрузитьИзПапки(Каталог)
	Файлы = НайтиФайлы(Каталог, "*.jpg");
	Для Каждого Файл Из Файлы Цикл
		Товар = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Файл.ИмяБезРасширения);
		Если Товар.Пустая() Тогда
			Продолжить;
		КонецЕсли;
		Адрес = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(Файл.ПолноеИмя));
		Параметры = РаботаСФайлами.ПараметрыДобавленияФайла();
		Параметры.ВладелецФайлов = Товар;
		Параметры.ИмяБезРасширения = Файл.ИмяБезРасширения;
		Параметры.РасширениеБезТочки = "jpg";
		НовыйФайл = РаботаСФайлами.ДобавитьФайл(Параметры, Адрес);
		ТоварОбъект = Товар.ПолучитьОбъект();
		ТоварОбъект.ФайлКартинки = НовыйФайл;
		ТоварОбъект.Записать();
	КонецЦикла;
КонецПроцедуры

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

Почему картинка не отображается: ошибки и решения

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

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

Можно ли прикрепить к одному товару несколько фото?
Да. Все они хранятся как присоединённые файлы товара, а основным изображением в карточке назначается одно из них.
Какой размер картинки оптимален для каталога товаров?
800–1000 пикселей по длинной стороне в JPEG. Этого хватает для просмотра и печати прайса с фото, а файл занимает до 150 КБ.
Попадут ли картинки в выгрузку базы в .dt?
Да, если хранятся внутри базы. Файлы из томов на диске в .dt не попадают, их копируют отдельно.
Почему коллега не может загрузить фото в карточку?
Не хватает прав: нужны права на изменение справочника и на добавление присоединённых файлов. Их выдают через группы доступа в Администрирование → Настройки пользователей и прав.
Подойдёт ли SVG для логотипа?
Для печатных форм надёжнее PNG: он одинаково выводится в тонком, толстом и веб-клиенте и при печати.