В процессе работы часто возникает необходимость оперативно прикреплять изображения бумажных документов или товаров к элементам справочников и документам 1С. Рассмотрим, как реализовать процесс, при котором пользователь помещает документ на рабочее место, нажимает кнопку (или активирует триггер), и снимок автоматически сохраняется в платформе и привязывается к нужному объекту.
Существует несколько архитектурных подходов для реализации этой задачи в зависимости от используемого оборудования (веб-камера, смартфон, документ-камера, профессиональный фотоаппарат или IP-камера) и требований к инфраструктуре.
Рассмотрим использование штатной подсистемы работы с файлами из БСП. Платформа 1С содержит встроенные механизмы работы со сканерами и устройствами ввода изображений, поддерживающими интерфейсы TWAIN или WIA (Windows Image Acquisition).
Если используемая камера или документ-камера имеет системный драйвер TWAIN/WIA, получать изображения можно напрямую без написания сторонних компонент. В БСП за это отвечают функции получения файлов со сканера. Проанализируем порядок действий:
Если в качестве камеры используется смартфон (с запущенным приложением IP-камеры) или стандартная сетевая IP-камера, простейшим решением является отправка HTTP-запроса на получение текущего кадра.
В этом случае при нажатии кнопки в 1С выполняется GET-запрос к устройству. В ответ камера возвращает готовые двоичные данные кадра в формате JPEG или PNG, которые сразу же прикрепляются к объекту базы.
Посмотрим на пример кода получения снимка через объект HTTPСоединение:
// Создаем соединение с сетевой камерой или смартфоном
IPАдрес = "192.168.1.50";
Порт = 8080;
Соединение = Новый HTTPСоединение(IPАдрес, Порт);
// Запрос кадра (путь зависит от модели камеры/приложения)
Запрос = Новый HTTPЗапрос("/shot.jpg");
Ответ = Соединение.Получить(Запрос);
Если Ответ.КодСостояния = 200 Тогда
// Получаем картинку в виде двоичных данных
ДвоичныеДанныеИзображения = Ответ.ПолучитьТелоКакДвоичныеДанные();
// Привязываем двоичные данные к текущему документу или справочнику
// Например, через механизм прикрепленных файлов БСП или реквизит "ХранилищеЗначения"
КонецЕсли;
Разберем вариант применения мобильного клиента или отдельного мобильного приложения на платформе 1С. Это позволяет избавиться от проводов и использовать встроенную камеру планшета или смартфона.
Схема работы включает в себя следующие шаги:
HTTPСервис основной базы 1С.HTTPСервис принимает файл, определяет объект (например, по переданному коду или УИД) и автоматически записывает фото в базу данных.Для создания полноценного рабочего места оператора оптимально подходят настольные документ-камеры или USB-веб-камеры. Для прямой работы с видеопотоком прямо на форме 1С применяются внешние компоненты на базе Native API (использующие DirectShow или OpenCV).
Такой подход позволяет отображать онлайн-превью с камеры в поле формы 1С и делать мгновенный снимок по кнопке или горячей клавише без открытия сторонних окон.
Рассмотрим вариант, когда съемка выполняется внешним оборудованием (например, фотиком с Wi-Fi картой памяти или софтом захвата), которое автоматически сохраняет снимки в локальную или сетевую папку.
Выясним, как настроить автоматический захват из папки:
ДвоичныеДанные, прикрепляет к активному объекту и удаляет файл из временного каталога.Чтобы оператору не требовалось нажимать кнопки на экране, проанализируем триггеры автоматического запуска фокации:
HTTPСервис 1С с готовым кадром.При выборе архитектурного решения обязательно учтем следующие эксплуатационные ограничения: