Фотографии в 1С 8.3: съёмка, прикрепление к карточке, хранение и печать

· 10 мин

Содержание

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

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

Как снять и подготовить фото до загрузки в 1С

Большинство проблем с картинками в базе начинается не в 1С, а на этапе съёмки. Снимок с телефона весит 3–8 МБ и имеет размер 4000×3000 пикселей. Для карточки товара и печатной формы это в десятки раз больше нужного.

Подготовьте файл заранее:

  1. 📷 Снимайте на светлом однотонном фоне, товар по центру, без бликов.
  2. ✂️ Обрежьте лишнее поле вокруг товара.
  3. 📐 Уменьшите длинную сторону до 800–1200 пикселей — для экрана и печати на А4 этого достаточно.
  4. 💾 Сохраните в JPEG с качеством 80–85%. Итоговый вес — 100–300 КБ.
  5. 🏷️ Назовите файл по артикулу или коду товара: A-1024.jpg. Это пригодится при массовой загрузке.

Пакетно уменьшить сотню снимков удобно бесплатными программами вроде IrfanView или XnConvert: задаёте размер и качество один раз и прогоняете всю папку.

Если в учёте нужен не товар, а документ (скан накладной, чек, договор), лучше использовать сканер или приложение-сканер на телефоне. Такие файлы прикрепляют к документу так же, через присоединённые файлы.

Как прикрепить фото к карточке номенклатуры

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

Бухгалтерия предприятия 3.0

  1. Откройте Справочники → Номенклатура и нужную карточку.
  2. Щёлкните по области картинки в карточке — откроется выбор файла.
  3. Укажите подготовленный снимок и нажмите «Открыть».
  4. Запишите карточку.

Файл сохраняется как присоединённый к этому элементу, а в карточке показывается как основное изображение. Остальные файлы (паспорт, сертификат, второе фото) добавляют через команду присоединённых файлов в шапке карточки.

Управление торговлей 11 и ERP

  1. Откройте НСИ и администрирование → Номенклатура (в УТ 11 раздел так и называется) и карточку товара.
  2. Щёлкните по области изображения или откройте список файлов карточки.
  3. Добавьте один или несколько снимков с диска.
  4. Если файлов несколько, выберите тот, который станет основным изображением: он показывается в карточке, подборе и выгружается на сайт первым.

Фото, загруженное в карточку, но не выбранное основным, в карточке не отображается. Пользователь думает, что загрузка «не сработала», и добавляет файл ещё раз — в базе копятся дубли.

Через перетаскивание

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

ДействиеБухгалтерия 3.0УТ 11 / ERP
Открыть справочникСправочники → НоменклатураНСИ и администрирование → Номенклатура
Добавить фотощелчок по картинке в карточкещелчок по картинке или список файлов
Несколько фото на товарда, через присоединённые файлыда, с выбором основного

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

Платформа 8.3 показывает в поле картинки распространённые растровые форматы и SVG.

ФорматГде уместенЗамечание
JPEGфото товаровосновной вариант, лучший баланс веса и качества
PNGлоготипы, схемы, прозрачный фондля фотографий весит в 3–5 раз больше JPEG
GIF, BMP, TIFFстарые архивы, сканыBMP и TIFF без сжатия тяжёлые, лучше пересохранить
SVGзначки, векторные логотипыдля фотографий не подходит
HEIC (iPhone)—на Windows-клиенте обычно не отображается, конвертируйте в JPEG

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

Хорошее правило: фото товара — не больше 500 КБ. Тысяча товаров по 300 КБ — это 300 МБ, по 5 МБ — уже 5 ГБ, и база начинает расти быстрее, чем учёт.

Где хранить фотографии: в базе или в томах на диске

Типовые конфигурации умеют хранить файлы двумя способами.

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

В томах на диске. Файлы лежат в папке на сервере, база хранит только ссылку. Плюс — база остаётся компактной. Минус — папку нужно бэкапить отдельно и следить за правами доступа.

Хранение в томах включают в разделе Администрирование → Общие настройки, в группе настроек работы с файлами. После этого создают элемент справочника томов хранения: путь к папке, максимальный размер тома, порядок заполнения.

Требования к тому:

  • 📁 Путь — сетевой UNC-путь вида \\fileserver\1c-files\trade, а не D:\Фото на компьютере бухгалтера.
  • 🔐 В клиент-серверном варианте права на запись нужны учётной записи, под которой работает служба сервера 1С, а не пользователю Windows.
  • 🗄️ В файловом варианте — всем пользователям, которые добавляют файлы.

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

КритерийВ базеВ томах
До 1–2 тыс. фотоудобноизбыточно
Десятки тысяч фотобаза растёт на гигабайтырекомендуется
Резервное копированиеодним файломбаза + папка
Облачная база (1С:Фреш и т. п.)единственный вариантобычно недоступно

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

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

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

Принцип вывода картинки в табличный документ:

  1. В макете печатной формы в нужную область добавляют объект «Рисунок» и задают ему имя, например Фото.
  2. При формировании печатной формы получают двоичные данные снимка.
  3. Присваивают картинку рисунку в области и выводят область.
// Область — область макета, в которой размещён рисунок с именем "Фото"
ДанныеФото = ПолучитьДанныеФото(Товар); // ДвоичныеДанные или Неопределено
Если ДанныеФото <> Неопределено Тогда
    Область.Рисунки.Фото.Картинка = Новый Картинка(ДанныеФото);
КонецЕсли;
ТабДок.Вывести(Область);

Задайте рисунку в макете режим размера «Пропорционально». Тогда вертикальные и горизонтальные снимки впишутся в ячейку без искажений.

Для прайс-листа с фотографиями на 500 позиций особенно важен вес исходников. Табличный документ с тяжёлыми снимками формируется медленно и при сохранении в PDF превращается в файл на сотни мегабайт.

Фото в своей конфигурации: реквизит и поле картинки

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

  • реквизит справочника Фото с типом ХранилищеЗначения;
  • реквизит формы АдресКартинки с типом «Строка»;
  • поле картинки на форме, связанное с АдресКартинки.

При открытии формы показываем сохранённое фото по навигационной ссылке, при загрузке — помещаем файл во временное хранилище, при записи — переносим его в реквизит.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если ЗначениеЗаполнено(Объект.Ссылка) Тогда
        АдресКартинки = ПолучитьНавигационнуюСсылку(Объект.Ссылка, "Фото");
    КонецЕсли;
КонецПроцедуры

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

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

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

Сжатие Новый СжатиеДанных(9) для фото в JPEG почти ничего не даёт: формат уже сжат. Экономить место нужно на этапе подготовки файла, а не в коде.

Массовая загрузка фото: обмен с сайтом и пакет из папки

Вручную прикреплять фото к трём тысячам товаров никто не станет. Есть три рабочих пути.

1. Обмен с сайтом. Типовой обмен с интернет-магазином по формату CommerceML передаёт изображения номенклатуры вместе с товарами. Обычно фото ведут в 1С и выгружают на сайт, а не наоборот: так 1С остаётся единственным источником правды.

2. Загрузка из Excel . Стандартная загрузка табличных данных в типовых переносит текстовые и числовые поля — наименование, артикул, цены. Картинки из ячеек Excel она не забирает. Поэтому из Excel загружают справочник, а фото — отдельно, по артикулу.

3. Обработка «папка → карточки». Снимки лежат в папке, имя файла совпадает с артикулом. Обработка находит товар и прикрепляет файл. Для своей конфигурации с реквизитом Фото основа выглядит так:

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

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

Перед массовой загрузкой фото
Выполнено: 0 / 6

Когда фото не загружается или не видно

Ошибки с картинками однотипны, и почти всегда их видно по симптому.

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

Как не раздуть базу фотографиями

Когда фото становится много, база растёт, бэкап идёт ночь, а список товаров открывается с задержкой. Что помогает:

  • 📉 Лимит на входе. Договоритесь, что в базу попадают только подготовленные снимки до 500 КБ. Это дешевле, чем потом чистить.
  • 🗂️ Тома вместо базы. От нескольких тысяч фото включайте хранение в томах и переносите туда старые файлы.
  • 🧹 Удаление дублей. Пройдитесь по карточкам с несколькими одинаковыми снимками. Помеченные на удаление файлы физически исчезнут только после удаления помеченных объектов.
  • 🔍 Контроль роста. В клиент-серверном варианте раз в квартал смотрите размер таблиц в СУБД: если лидирует таблица присоединённых файлов, пора переносить их в тома.

Удаление помеченных объектов и перенос файлов в тома выполняйте вне рабочего времени и после резервного копирования базы и папки томов.

Можно ли сделать фото камерой ноутбука прямо из 1С?
В типовых конфигурациях на компьютере — нет. Снимок делают отдельной программой и прикрепляют файл. Камера доступна в мобильном клиенте и мобильных приложениях 1С.
Сколько фото можно прикрепить к одному товару?
Платформа количество не ограничивает. В карточке показывается одно основное изображение, остальные доступны в списке присоединённых файлов.
Выгружаются ли фото на сайт автоматически?
Да, если настроен обмен с сайтом и фото прикреплены к номенклатуре. Обычно выгружается основное изображение, а в части модулей сайта — и дополнительные.
Видят ли фото пользователи веб-клиента?
Да. Картинки отображаются и в тонком, и в веб-клиенте, если формат поддерживается браузером и платформой.
Попадают ли фото в резервную копию .dt?
Только если хранятся в базе. Файлы из томов на диске в выгрузку не входят — папку тома копируют отдельно.