При работе с базой 1С через веб-браузер на мобильном устройстве часто возникает задача получения фотографии от пользователя. Стандартный метод СредстваМультимедиа.СделатьФотоснимок работает исключительно в мобильном клиенте или мобильном приложении. Рассмотрим, какие существуют альтернативные способы решения этой задачи при использовании обычного веб-интерфейса.
Самый простой и правильный с точки зрения архитектуры способ — это использование мобильного клиента 1С вместо обычного браузера. Это решение позволяет использовать весь нативный функционал платформы, включая прямое взаимодействие с камерой устройства.
СредстваМультимедиа.СделатьФотоснимок.Если переход на мобильный клиент невозможен, воспользуйтесь возможностями HTML5. Вы можете разместить на форме ПолеHTMLДокумента, которое будет выступать посредником между пользователем и базой 1С.
Разберем логику реализации:
ПолеHTMLДокумента создайте элемент input с определенными атрибутами.<input type="file" accept="image/*" capture="environment">.capture="environment" дает команду браузеру сразу открывать заднюю камеру устройства при нажатии на поле.FileReader, чтобы преобразовать изображение в формат Base64.Base64 в 1С через механизм ОповеститьОВыборе или вызов серверной процедуры.Если требуется высокая производительность и работа с большими объемами данных, рассмотрите вариант отправки фотографии через HTTP-сервис, опубликованный на веб-сервере с вашей базой 1С.
Данный подход подразумевает создание собственного веб-сервиса, который принимает POST-запрос от мобильного браузера. Рассмотрим алгоритм действий:
HTTP-сервис, который будет ожидать получение картинки в теле запроса.Base64 представление файла.HTTP-сервиса на сервере 1С примите данные и декодируйте их:
// Пример обработки данных на стороне 1С
Функция POST_ЗагрузитьФото(Запрос)
ДанныеКартинки = Запрос.ПолучитьТелоКакДвоичныеДанные();
// Логика сохранения данных в базу 1С
// Например, привязка к справочнику или документу
Возврат Новый HTTPСервисОтвет(200);
КонецФункции
При выборе метода передачи данных важно учитывать ограничения веб-интерфейса:
HTTP-сервис может привести к превышению времени ожидания (таймаута). Если фотографии имеют высокое разрешение, рекомендуем предварительно сжимать их средствами JavaScript на стороне клиента перед отправкой.PWA (Progressive Web App). Это позволит пользователю установить ярлык на рабочий стол и обеспечит более стабильную работу с медиа-файлами.Анализируя ситуацию, мы видим, что хотя платформа 1С не предоставляет прямого API для работы с камерой в обычном браузере, использование связки HTML5, JavaScript и собственных веб-сервисов позволяет добиться аналогичного функционала. Мы рекомендуем начать с тестирования простого input элемента в поле HTML-документа, так как это требует минимума изменений в архитектуре конфигурации.