Как настроить автоматическое добавление фотографий к элементам справочников и документам в 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В процессе работы часто возникает необходимость оперативно прикреплять изображения бумажных документов или товаров к элементам справочников и документам 1С. Рассмотрим, как реализовать процесс, при котором пользователь помещает документ на рабочее место, нажимает кнопку (или активирует триггер), и снимок автоматически сохраняется в платформе и привязывается к нужному объекту.

Разберем варианты решения задачи

Существует несколько архитектурных подходов для реализации этой задачи в зависимости от используемого оборудования (веб-камера, смартфон, документ-камера, профессиональный фотоаппарат или IP-камера) и требований к инфраструктуре.

  1. Стандартный механизм Библиотеки Стандартных Подсистем (БСП) через TWAIN / WIA: использование штатного подсистемного сканирования.
  2. Прямой HTTP-запрос к камере (Snapshot API): мгновенное получение снимка со смартфона или IP-камеры.
  3. Мобильное приложение 1С с HTTP-сервисом: съемка на мобильное устройство с прямой передачей файла в базу.
  4. Внешние компоненты Native API: прямой захват видеопотока с USB-веб-камер и документ-камер на форме 1С.
  5. Мониторинг каталога: отслеживание появления новых файлов на диске и вызов внешних событий.

Способ 1. Использование встроенных механизмов БСП (TWAIN и WIA)

Рассмотрим использование штатной подсистемы работы с файлами из БСП. Платформа 1С содержит встроенные механизмы работы со сканерами и устройствами ввода изображений, поддерживающими интерфейсы TWAIN или WIA (Windows Image Acquisition).

Если используемая камера или документ-камера имеет системный драйвер TWAIN/WIA, получать изображения можно напрямую без написания сторонних компонент. В БСП за это отвечают функции получения файлов со сканера. Проанализируем порядок действий:

  1. Устанавливаем WIA- или TWAIN-драйвер для камеры в операционной системе.
  2. В настройках работы с файлами 1С выбираем подключенное устройство сканирования.
  3. Вызываем стандартный диалог или команду сканирования/захвата изображения из интерфейса формы 1С.

Способ 2. Захват кадра по HTTP (Snapshot API)

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

В этом случае при нажатии кнопки в 1С выполняется GET-запрос к устройству. В ответ камера возвращает готовые двоичные данные кадра в формате JPEG или PNG, которые сразу же прикрепляются к объекту базы.

Посмотрим на пример кода получения снимка через объект HTTPСоединение:


// Создаем соединение с сетевой камерой или смартфоном
IPАдрес = "192.168.1.50";
Порт = 8080;
Соединение = Новый HTTPСоединение(IPАдрес, Порт);

// Запрос кадра (путь зависит от модели камеры/приложения)
Запрос = Новый HTTPЗапрос("/shot.jpg");
Ответ = Соединение.Получить(Запрос);

Если Ответ.КодСостояния = 200 Тогда
    // Получаем картинку в виде двоичных данных
    ДвоичныеДанныеИзображения = Ответ.ПолучитьТелоКакДвоичныеДанные();
    
    // Привязываем двоичные данные к текущему документу или справочнику
    // Например, через механизм прикрепленных файлов БСП или реквизит "ХранилищеЗначения"
КонецЕсли;

Способ 3. Мобильное приложение 1С и интеграция через HTTP-сервис

Разберем вариант применения мобильного клиента или отдельного мобильного приложения на платформе 1С. Это позволяет избавиться от проводов и использовать встроенную камеру планшета или смартфона.

Схема работы включает в себя следующие шаги:

  1. На мобильном устройстве запускается приложение 1С, с помощью которого оператор делает фото документа.
  2. Приложение отправляет полученные данные на опубликованный HTTPСервис основной базы 1С.
  3. HTTPСервис принимает файл, определяет объект (например, по переданному коду или УИД) и автоматически записывает фото в базу данных.

Способ 4. Использование документ-камер и внешних компонент Native API

Для создания полноценного рабочего места оператора оптимально подходят настольные документ-камеры или USB-веб-камеры. Для прямой работы с видеопотоком прямо на форме 1С применяются внешние компоненты на базе Native API (использующие DirectShow или OpenCV).

Такой подход позволяет отображать онлайн-превью с камеры в поле формы 1С и делать мгновенный снимок по кнопке или горячей клавише без открытия сторонних окон.

Способ 5. Мониторинг каталога с обработкой внешних событий

Рассмотрим вариант, когда съемка выполняется внешним оборудованием (например, фотиком с Wi-Fi картой памяти или софтом захвата), которое автоматически сохраняет снимки в локальную или сетевую папку.

Выясним, как настроить автоматический захват из папки:

  1. Настраиваем стороннюю утилиту или камеру на сохранение снимков в выделенный каталог.
  2. В 1С запускаем обработчик ожидания или подписку на мониторинг каталога.
  3. При появлении файла в папке 1С считывает его через ДвоичныеДанные, прикрепляет к активному объекту и удаляет файл из временного каталога.

Автоматизация запуска съемки без ручных действий

Чтобы оператору не требовалось нажимать кнопки на экране, проанализируем триггеры автоматического запуска фокации:

Важные технические ограничения и особенности платформы

При выборе архитектурного решения обязательно учтем следующие эксплуатационные ограничения:

← На главную