Изображения в 1С 8.3: товары, логотип, печатные формы и код
Содержание
Установить картинку в 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, Комплексная автоматизация) у номенклатуры есть основное изображение. Технически это присоединённый файл, на который ссылается карточка.
Пошагово для номенклатуры
- Откройте список номенклатуры: в БП 3.0 —
Справочники → Товары и услуги → Номенклатура, в УТ 11 —НСИ и администрирование → НСИ → Номенклатура. - Откройте карточку нужного товара.
- Найдите область изображения в шапке карточки (пустой прямоугольник или рамка с подписью о добавлении картинки) и щёлкните по ней.
- В окне выбора файла укажите JPEG или PNG на диске.
- Нажмите
Записать и закрыть.
Картинка сохранится как присоединённый файл товара. Увидеть все файлы объекта можно по команде со значком скрепки в командной панели карточки: там же меняют основное изображение, если загружено несколько фото.
Другие справочники
У контрагентов, сотрудников, основных средств отдельного поля для фото обычно нет, но есть те же присоединённые файлы — через скрепку. Скан паспорта, фото оборудования или схему склада прикрепляют именно так. На экран в карточке такое изображение не выводится, его открывают из списка файлов.
Как заменить или удалить изображение
Заменить фото проще, чем кажется: загрузите новый файл через ту же область изображения или через список файлов и назначьте его основным. Старый файл при этом остаётся в списке присоединённых.
Чтобы он не занимал место:
- Откройте список файлов товара (скрепка).
- Пометьте ненужный файл на удаление.
- Администратор в нерабочее время запускает удаление помеченных объектов:
Администрирование → Обслуживание.
Пока пометка не обработана, файл физически лежит в базе. Пометка снимается в любой момент, так что случайную ошибку легко откатить.
Если картинка не появилась в карточке, а в списке файлов она есть — значит, файл прикреплён, но не выбран основным изображением. Откройте список файлов и назначьте его основным.
Картинки из папки на диске: внешние файлы и массовая загрузка
Вручную загружать фото к 50 товарам терпимо, к 3000 — нет. Здесь есть два пути.
Хранить в базе или ссылаться на папку
| Вариант | Плюсы | Минусы |
|---|---|---|
| Файл внутри базы | Видят все, включая веб-клиент и удалённых сотрудников; попадает в резервную копию .dt | База растёт |
| Тома на диске (БСП) | База не растёт, файлы лежат в сетевой папке | Папку нужно бэкапить отдельно, у сервера 1С должны быть права на неё |
| Только путь к файлу в реквизите | Ничего не хранится | Не работает в веб-клиенте и у сотрудника без доступа к папке |
Хранение в томах включает администратор в разделе Администрирование — в настройках работы с файлами. После этого новые присоединённые файлы пишутся в каталог тома, а не в таблицы базы.
Если файлы хранятся в томах, резервная копия базы без копии папки томов неполная: после восстановления карточки останутся, а картинки — нет.
Массовая загрузка по артикулу
Типовой приём — назвать файлы артикулами (A-1024.jpg, A-1025.jpg) и загрузить их обработкой, которая находит товар по артикулу и прикрепляет файл. Код такой обработки приведён в разделе про программную работу. Сторонние обработки загрузки изображений тоже существуют, но перед запуском в рабочей базе проверяйте их на копии.
Логотип, печать и подписи в печатных формах
Без программиста: данные организации
В Бухгалтерии 3.0 логотип и факсимиле в счёт на оплату ставятся из карточки организации:
- Откройте
Главное → Организациии карточку своей организации. - Разверните раздел
Логотип и печать. - Загрузите логотип, изображение печати, подписи руководителя и главного бухгалтера.
- Проверьте результат по ссылке предварительного просмотра счёта в этом же разделе.
- Запишите карточку.
Подготовка файлов решает половину проблем:
- ✅ печать и подписи — PNG с прозрачным фоном, иначе белый прямоугольник закроет текст счёта;
- ✅ скан в 300 dpi, затем обрезка по краям оттиска;
- ✅ одинаковый масштаб: печать диаметром около 4 см на бумаге.
Подпись с прозрачным фоном получается так: сканируете подпись синей ручкой на белом листе, в графическом редакторе удаляете белый цвет и сохраняете в PNG.
Печать загружена, а в счёте её нет
Частая ситуация после настройки. Печать и подписи выводятся не в каждой печатной форме, а в отдельном варианте счёта. В документе счёта на оплату откройте меню Печать и выберите вариант с печатью и подписями. Обычный вариант печатается без факсимиле, и это не ошибка.
Логотип, наоборот, выводится в шапке обычного счёта. Если его нет, проверьте, что счёт выписан от той организации, в карточку которой вы загружали файл: при нескольких организациях в базе путаница встречается часто.
В Конфигураторе: рисунок в макете
Если картинка нужна в форме, где типовой настройки нет (накладная, акт, своя печатная форма), её добавляют в макет табличного документа:
- Откройте макет в Конфигураторе двойным щелчком.
- Выделите ячейку, куда ставить рисунок.
- В меню выберите
Таблица → Рисунки → Картинка…и укажите файл. - Задайте в свойствах рисунка имя, например
Логотип, и режим размераПропорционально.
Рисунок, вставленный в макет, неизменен для всех организаций. Если логотип должен подставляться из базы, в макете оставляют пустой рисунок с именем, а картинку присваивают кодом (пример ниже).
Не правьте макет типовой конфигурации на поддержке напрямую: при обновлении правка потеряется или потребует ручного сравнения. Безопаснее сделать печатную форму в расширении конфигурации (расширения есть с платформы 8.3.6) или внешней печатной формой.
Логотип программы, заставка и начальная страница
Тут важно различать, что меняется данными, а что — только в конфигурации.
- 🏷️ Заголовок окна. Текст заголовка программы меняется в
Администрирование → Общие настройки, поле заголовка программы. Это только текст, картинку туда не поставить. - 🖼️ Логотип и заставка запуска. Задаются в свойствах корня конфигурации в Конфигураторе: свойства
ЛоготипиЗаставка. Чтобы их заменить в типовой конфигурации, придётся включить возможность изменения основной конфигурации со всеми последствиями для обновлений. - 📌 Картинка на начальной странице. Делается через расширение: в расширении создают общую форму с декорацией-картинкой и добавляют её на начальную страницу. Пользователь затем включает форму в
Вид → Настройка начальной страницы.
Общие картинки
Чтобы картинка была доступна любым формам и командам конфигурации:
- В дереве Конфигуратора откройте
Общие → Общие картинки. - Нажмите
Добавить, задайте имя латиницей или кириллицей без пробелов, напримерЛоготипКомпании. - В форме картинки выберите файл.
- В форме используйте декорацию типа «Картинка», свойство
Картинка— выбрать из библиотеки.
Для кнопок и команд подойдут PNG 16×16 и 32×32. Для декорации на начальной странице — 200–400 пикселей по ширине.
Как установить картинку программно: код на встроенном языке
Свой реквизит с картинкой на форме
Схема для своей конфигурации или расширения: в объекте реквизит Картинка типа ХранилищеЗначения, на форме — реквизит АдресКартинки (строка) и поле картинки, связанное с ним.
&НаКлиенте
Процедура ЗагрузитьКартинку(Команда)
Оповещение = Новый ОписаниеОповещения("ПослеПомещенияФайла", ЭтотОбъект);
НачатьПомещениеФайла(Оповещение, , "", Истина, УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура ПослеПомещенияФайла(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт
Если Результат Тогда
АдресКартинки = Адрес;
Модифицированность = Истина;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
Данные = ТекущийОбъект.Картинка.Получить();
Если Данные <> Неопределено Тогда
АдресКартинки = ПоместитьВоВременноеХранилище(Данные, УникальныйИдентификатор);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
Если ЭтоАдресВременногоХранилища(АдресКартинки) Тогда
Данные = ПолучитьИзВременногоХранилища(АдресКартинки);
ТекущийОбъект.Картинка = Новый ХранилищеЗначения(Данные, Новый СжатиеДанных(9));
КонецЕсли;
КонецПроцедуры
СжатиеДанных(9) даёт максимальное сжатие. Для JPEG выигрыш мал, для BMP — в разы.
Картинка в печатную форму из базы
В макете заранее нарисован пустой рисунок Логотип. При формировании ему присваивается изображение:
Область = Макет.ПолучитьОбласть("Шапка");
Данные = Организация.Логотип.Получить(); // реквизит типа ХранилищеЗначения
Если Данные <> Неопределено Тогда
Область.Рисунки.Логотип.Картинка = Новый Картинка(Данные);
КонецЕсли;
ТабДокумент.Вывести(Область);
Картинка из общей библиотеки
Общие картинки конфигурации доступны в коде через глобальный объект БиблиотекаКартинок. Так меняют картинку декорации на форме в зависимости от состояния, например показывают зелёную или красную метку:
&НаСервере
Процедура ОбновитьИндикатор()
Если Объект.Проверен Тогда
Элементы.Индикатор.Картинка = БиблиотекаКартинок.ЛоготипКомпании;
Иначе
Элементы.Индикатор.Картинка = Новый Картинка;
КонецЕсли;
КонецПроцедуры
Новый Картинка без параметров даёт пустое изображение, декорация просто ничего не показывает. Имена Индикатор, Проверен и ЛоготипКомпании здесь условные: подставьте свои элемент формы, реквизит и общую картинку.
Массовая загрузка из папки в типовой конфигурации
В типовых решениях на Библиотеке стандартных подсистем (БСП) файл прикрепляют через её программный интерфейс РаботаСФайлами, а затем делают его основным изображением товара. Код выполняется на сервере, папка должна быть доступна серверу 1С:
&НаСервере
Процедура ЗагрузитьИзПапки(Каталог)
Файлы = НайтиФайлы(Каталог, "*.jpg");
Для Каждого Файл Из Файлы Цикл
Товар = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Файл.ИмяБезРасширения);
Если Товар.Пустая() Тогда
Продолжить;
КонецЕсли;
Адрес = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(Файл.ПолноеИмя));
Параметры = РаботаСФайлами.ПараметрыДобавленияФайла();
Параметры.ВладелецФайлов = Товар;
Параметры.ИмяБезРасширения = Файл.ИмяБезРасширения;
Параметры.РасширениеБезТочки = "jpg";
НовыйФайл = РаботаСФайлами.ДобавитьФайл(Параметры, Адрес);
ТоварОбъект = Товар.ПолучитьОбъект();
ТоварОбъект.ФайлКартинки = НовыйФайл;
ТоварОбъект.Записать();
КонецЦикла;
КонецПроцедуры
Запускайте обработку сначала на копии базы. Повторный запуск прикрепит те же фото второй раз: перед добавлением проверяйте, есть ли у товара основное изображение.
Почему картинка не отображается: ошибки и решения
Частые вопросы
Можно ли прикрепить к одному товару несколько фото?
Какой размер картинки оптимален для каталога товаров?
Попадут ли картинки в выгрузку базы в .dt?
Почему коллега не может загрузить фото в карточку?
Администрирование → Настройки пользователей и прав.