После получения задания от руководства при определенных действиях получать и хранить фото с камер видео наблюдения, решил обратиться к гуглу, но после продолжительного поиска информации по русскоязычным ресурсам наткнулся на старые и уже не актуальные форумы. Решения были найдены на англоязычных форумах и других языках (в основном питон).
В данной обработке присутствует пример получения фото с камер Hikvision , Dahua и получение фото с ПО TRASSIR (по их словам любую камеру можно к ним подключить).
Камеры Dahua используют Дайджест-аутентификация (Digest), в обработке показано, как с ней работать из 1С.
Ниже привожу пример для TRASSIR
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("txt"); //для получения Джейсона
Соединение = Неопределено;
Попытка
ssl = Новый ЗащищенноеСоединениеOpenSSL(Неопределено,Неопределено);
Соединение = Новый HTTPСоединение(ИПТрассир,ПортТрассир,,,,,ssl); //ИП и Порт Вашей камеры
Исключение
Соединение = Неопределено;
КонецПопытки;
Результат = Соединение.Получить("/login?password="+ПарольТрассир,ИмяВременногоФайла); //необходимо передать ТОЛЬКО пароль от камеры в ответ прийдет джейсон
//в котором будет наш ид на текущую сессию
ЧтениеДжейсон = Новый ЧтениеJSON();
ЧтениеДжейсон.ОткрытьФайл(ИмяВременногоФайла,"UTF8");
Текст = ПрочитатьJSON(ЧтениеДжейсон,Истина);
Для Каждого Стр Из Текст Цикл
Если Стр.Ключ = "sid" Тогда
ИДСессии = Стр.Значение;
Прервать;
КонецЕсли;
КонецЦикла;
ЧтениеДжейсон.Закрыть();
УдалитьФайлы(ИмяВременногоФайла); //удалим файл что бы не захламлять
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("txt");
Результат = Соединение.Получить("/objects/?sid=" + ИДСессии,ИмяВременногоФайла); //нам прийдет имена всех подключенных камер
ЧтениеДжейсон = Новый ЧтениеJSON();
ЧтениеДжейсон.ОткрытьФайл(ИмяВременногоФайла,"UTF8");
Текст = ПрочитатьJSON(ЧтениеДжейсон,Истина);
Для Каждого Стр Из Текст Цикл
НоваяСтрока = ТаблицаКамер.Добавить();//ТаблицаКамер ТЧ на форме
НоваяСтрока.ИмяКамеры = Стр.Получить("guid");
НоваяСтрока.НазваниеКамеры = Стр.Получить("name");
КонецЦикла;
ЧтениеДжейсон.Закрыть();
УдалитьФайлы(ИмяВременногоФайла);
///////
//После получения выбираем наше имя камеры
ИмяВременногоФайлаКартини = ПолучитьИмяВременногоФайла("jpeg");
Результат = Соединение.Получить("/screenshot/" + Элементы.ТаблицаКамер.ТекущиеДанные.ИмяКамеры + "?timestamp=0&sid=" + ИДСессии ,ИмяВременногоФайлаКартини);
// и размещение ее на форме:
Описание = Новый ОписаниеПередаваемогоФайла(ИмяВременногоФайлаКартини, "");
ПомещаемыеФайлы = Новый Массив;
ПомещенныеФайлы = Новый Массив;
ПомещаемыеФайлы.Добавить(Описание);
ПоместитьФайлы(ПомещаемыеФайлы, ПомещенныеФайлы,,Ложь);
ЭтаФорма.КартинкаТрассер = ПомещенныеФайлы[0].Хранение;
УдалитьФайлы(ИмяВременногоФайлаКартини);
Интерфейс обработки интуитивно понятен. Присутствуют 3 вкладки для каждой камеры. Необходимо заполнить параметрами и нажать кнопку "Выполнить запрос".
Особенность камер ХикВизион: если камера находится с Вами в одной сети, порт указывать необязательно.
Разработка проводилась на платформе 1С:Предприятие 8.3 (8.3.11.2867).
Работоспособность проверено на конфигурации 1С:CRM для Украины, редакция 2.0 (2.0.13.3).