Получение скриншота (фото) с камеры из 1С. Управляемые формы

20.04.18

Интеграция - Периферийные устройства

Получение и вывод на управляемую форму фото с IP камер видео наблюдения.

Скачать исходный код

Наименование Файл Версия Размер
: ФотоСКамер
.epf 10,07Kb
72
.epf 1.0.0 10,07Kb 72 Скачать

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

В данной обработке присутствует пример получения фото с камер 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).

фото камеры скриншот фото с камеры как получить фото скриншот из 1С камеры и 1С  Дайджест-аутентификация Digest Digest

См. также

Распознавание номеров автомашин с ip - камер, видео, фото

Распознавание документов и образов Периферийные устройства Автомобили, автосервисы Россия Платные (руб)

Программа считывает кадры с ip-камер (http - запрос к камере), видео, фото (источники кадров (нет ограничения на их количество) настраивается в конфигурационном файле), находит и распознает номера автомашин и сохраняет в базу db, с сохранением фото номера и автомашины, а также времени детекции.

20400 руб.

31.05.2023    3947    3    1    

4

Тернистый путь к физической клавиатуре для программиста 1С

Периферийные устройства Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Долгое время я активно пользовался различными хоткеерами, шаблонами текста, специальными раскладками клавиатуры. Я из тех, кто очень долго верил в Снегопат... Так сложилось, что на моем текущем месте работы довольно строгая политика информационной безопасности, а потому со всем привычным софтом, который делал жизнь проще, мне пришлось расстаться. И даже шаблоны кода при каждом терминальном подключении требуется настраивать в конфигураторе заново. Как известно, если какую-то задачу нельзя решить на стороне софта, то стоит поискать железное решение.

1 стартмани

15.04.2024    3822    madonov    35    

26

[История разработки] Управляем промышленным принтером EBS-1500 из 1С

Периферийные устройства Платформа 1С v8.3 Бесплатно (free)

«У нас было два контроллера Huidu, семьдесят две китайские монохромные панели на светоизлучающих диодах, они же LED, четыре мегабайта flash памяти, 1С и целое море поддерживаемых форматов вывода информации - текстов, картинок, анимаций, а так же литр промывочной жидкости, литр разбавителя, ящик черных чернил, и 12 патч-кордов и различных удлинителей. Не то, чтобы всё это было категорически необходимо в маркировке, но если уж начал собирать маркиратор на 1С, то к делу надо подходить серьёзно.» - Страх и ненависть в Маркировке, 2019 г.

01.04.2024    1234    Interrupted    14    

34

Получение изображения с веб-камеры с возможностью его кадрирования по произвольной области

Инструментарий разработчика Периферийные устройства Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Внешняя обработка получения изображения с веб-камеры с возможностью его кадрирования по произвольно выделенной области. Использует собственную внешнюю компоненту на основе библиотеки AForge. Содержит примеры интерактивного взаимодействия с полем HTML.

20.03.2024    395    1    AndSem    1    

4

Прямая печать на принтерах TSC из 1С

Периферийные устройства Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Прямая печать на принтерах TSC из 1С при вызове с сервера позволяет печатать из тонкого клиента, мобильного клиента и веб-клиента. Потребуется установка драйвера и библиотеки для отправки команд на этот драйвер.

1 стартмани

19.02.2024    621    5    realslavyan    0    

5

HotKeys на Python для 1С

Периферийные устройства Конфигурации 1cv8 Бесплатно (free)

Недавно прочитал статью на Инфостарте о KeyPad и вначале захотел себе такой, но через какое-то время я понял, что дополнительная даже маленькая клавиатура занимает место, и нужно все время держать ее под рукой. Это все создает дополнительные неудобства.

20.12.2023    5348    John_d    26    

74

Очистка очереди печати конкретного принтера

Периферийные устройства Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Очистка очереди печати выбранного принтера, перезапуск службы печати, вывод списка системных принтеров, открытие свойств принтера из 1С.

1 стартмани

07.11.2023    1305    2    vsnazarov    1    

26

Печать этикеток на DYMO LabelManager 280 через DYMO Connect Web Service

Периферийные устройства WEB-интеграция Этикетки, ценники Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

На сайте производителя принтера DYMO LabelManager 280 вместе с драйвером поставляется пакет DYMO Connect, который предлагает функционал вёрстки этикеток в фирменном формате и отправки их напрямую на принтер. Так же в этом пакете есть веб-сервис для взаимодействия с принтером через HTTP-запросы, о котором и пойдет речь в этой статье.

29.08.2023    1544    GeraltSnow    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 21.04.18 01:17
Сообщение было скрыто модератором.
...
2. androgin 21.04.18 16:28 Сейчас в теме
Уже можно не использовать временные файлы для получения ответа от соединения.
Пример:
Запрос = Новый HTTPЗапрос;
Запрос.АдресРесурса = Настройка_АдресСкрипта;
Запрос.УстановитьТелоИзСтроки(ТелоЗапроса);
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
ТелоОтвета = Ответ.ПолучитьТелоКакСтроку();
simuljakr; Hexed; +2 Ответить
3. harvester_sorrow 24 21.04.18 17:00 Сейчас в теме
(2) Спасибо за информацию, на момент написания обработки, к сожалению не знал об этом, в будущем учту

(2)
5. androgin 22.04.18 02:31 Сейчас в теме
(3)
Текст = ПрочитатьJSON(ЧтениеДжейсон,Истина);
Для Каждого Стр Из Текст Цикл
......


какой объект в Текст?
7. harvester_sorrow 24 22.04.18 09:44 Сейчас в теме
(5) Насколько я помню структуру,но более точно смогу в понедельник сказать если интересно.
9. androgin 22.04.18 14:59 Сейчас в теме
(7) да, интересно ))
хочу узнать зачем вы циклом ключ ищете)))
10. harvester_sorrow 24 23.04.18 09:05 Сейчас в теме
(9)Прошу прощения, запамятовал, там приходит соответствие, а внутри еще ряд соответствий, в которых хранятся значения.
6. androgin 22.04.18 02:48 Сейчас в теме
(3)
Описание = Новый ОписаниеПередаваемогоФайла(ИмяВременногоФайлаКартини, "");
ПомещаемыеФайлы = Новый Массив;
ПомещенныеФайлы = Новый Массив;
        
ПомещаемыеФайлы.Добавить(Описание);    
ПоместитьФайлы(ПомещаемыеФайлы, ПомещенныеФайлы,,Ложь);

ЭтаФорма.КартинкаТрассер = ПомещенныеФайлы[0].Хранение;
Показать

Это можно заменить этим:
Хранение = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ИмяВременногоФайлаКартини), Новый УникальныйИдентификатор);
ЭтаФорма.КартинкаТрассер = Хранение;
8. harvester_sorrow 24 22.04.18 09:47 Сейчас в теме
(6) можно,не спорю.Также сразу можно избавиться от модальности используя НачатьПомещенияФайла.
В данном примере показан пример работы с камерой, но за критику спасибо,всегда полезно узнать что то новое)
оggghhhiiu; +1 Ответить
4. пользователь 22.04.18 00:43
Сообщение было скрыто модератором.
...
11. Realnt 22.07.18 08:26 Сейчас в теме
Добрый день, для каких моделей видеорегистраторов написана эта обработка?
12. пользователь 21.10.19 18:16
Сообщение было скрыто модератором.
...
13. adeptis 10 05.11.19 12:48 Сейчас в теме
Здравствуйте. Подскажите, какой вы порт указывали для камер Dahua?
14. harvester_sorrow 24 05.11.19 13:23 Сейчас в теме
(13) Добрый день. У нас она висела на 80, но это у админа вашего (или того кто устанавливал/настраивал) нужно узнать на каком порту висит камера.
15. adeptis 10 13.11.19 17:30 Сейчас в теме
Здравствуйте. Не могу понять, откуда берутся эти значения в коде:
nc=00000001
cnonce=""4d705c8aa158ff60""

	ОтветМД5 = НРЕг(MD5(НРег(A1)+":"+Нонс2+":00000001:4d705c8aa158ff60:auth:"+НРег(А2)));	
		fg.Заголовки.Вставить("Authorization","Digest username="+Пользователь+", realm="+realm+", nonce="""+Нонс2+""", uri="+URI+", algorithm=MD5, response="""+ОтветМД5+""", qop=auth, nc=00000001, cnonce=""4d705c8aa158ff60""");	
	


Как вы их получили?
16. harvester_sorrow 24 13.11.19 17:49 Сейчас в теме
(15)
00000001:4d705c8aa158ff60:auth
Данная конструкция была честно стырена к какого то американского сайта, она была на питоне.
17. harvester_sorrow 24 13.11.19 17:49 Сейчас в теме
(15) откуда они взялись, не скажу к сожалению.
18. Logarifm_Andre 13 16.06.21 15:04 Сейчас в теме
добрый день.
Имеется камера ХикВизион.
Скачали обработку, указали параметры.
Выдало сообщение: Не удалось подключится к сайту, по заданным параметрам

Подскажите, что сделали не так?
19. adeptis 10 16.06.21 15:17 Сейчас в теме
(18) рекомендую в коде найти строку http(s)-запроса и попытаться с подставленными значениями (IP, порт и т.д.) открыть эту фотку в браузере. Если в браузере открывается - вы на правильном пути, дальше разбираться надо.

Не знаю как по ХикВиженам, но часто бывает, что у разных камер одного и того же (!!!) производителя разные модели камер требуют разной строки http-запроса. А бывает такое, что камера просто не умеет делать снепшоты. В этом случае можно купить софтовую систему типа Трассир (эта обработка её теоретически поддерживает) или DevLine. Эти системы работают не со снепшотами, а с потоками видео. И уже из потоков могут выдернуть фотку и передать её по http-запросу в 1С.
20. Logarifm_Andre 13 16.06.21 15:42 Сейчас в теме
(19)
Не знаю как по ХикВиженам, но часто бывает, что у разных камер одного и того же (!!!) производителя разные модели камер требуют разной строки http-запроса. А бывает такое, что камера просто не умеет делать снепшоты. В этом случае можно купить софтовую систему типа Трассир (эта обработка её теоретически поддерживает) или DevLine. Эти системы работают не со снепшотами, а с потоками видео. И уже из потоков могут выдернуть фотку и передать её по http-запросу в 1С.


Спасибо за быстрый отклик.

Соединение проходит без ошибок.
Но вот после Соединение.Получить(....) ошибка:

по причине:
Файл не обнаружен '/Streaming/channels/101/picture?snapShotImageType=JPEG'
по причине:
Ошибка работы с Интернет: ресурс не найден (404). <!DOCTYPE html>
<html><head><title>Document Error: Not Found</title></head>
<body><h2>Access Error: 404 -- Not Found</h2>
<p>Request Refuse: cgi integrate function is disabled.</p>
</body>
</html>

по причине:
Ошибка работы с Интернет: ресурс не найден (404)


Может параметры поменялись процедуры Соединение.Получить(....)

ЗЫ: простите за глупые вопросы, не занимался такими http-запроса
21. Logarifm_Andre 13 16.06.21 16:01 Сейчас в теме
Параметры Соединение.Получить(....) не изменялись, по крайней мере в СП
22. Logarifm_Andre 13 16.06.21 16:12 Сейчас в теме
Нашел в инструкции к ХикВижен:
получить JPEG-снимок основного потока камеры:


Удалось, указав свои параметры, получить фото с камеры на Google Chrome, а вот в Internet Explorer отказывается этаже команда работать.

Возможно настройки Internet Explorer играют роль, но какие?
23. Logarifm_Andre 13 16.06.21 17:42 Сейчас в теме
Пытаемся получить JPEG-снимок основного потока камеры (на сайте разработчика ХитВижн имеется ниже описанная инструкция):


При вставке данной ссылки в браузер Google Chrome картинку получаем.
При вставке в Internet Explorer появляется ошибка

Возможно сталкивались с таким?

Спасибо
Прикрепленные файлы:
25. adeptis 10 17.06.21 09:32 Сейчас в теме
(23) По всей видимости приводимые вами инструкции в комментах не отображаются. Не вижу то, что вы после двоеточия приводите.

Вопрос: при попытке в Хроме открыть эту строку, возникает ли диалоговое окно с дополнительным запросом логина-пароля? Если да, то вполне возможно есть какая-нибудь дополнительная аутентификация, которая в этой же обработке описана для камер Dahua. Впрочем, для Dahua она тоже у нас не завелась - пришлось нам переписывать :).

Еще такой момент: строка запроса в Хроме получается http или https??? Скопируйте её из Хрома и вставьте в блокнот. Там несколько по-разному код 1С выглядит для http и https, насколько помню.

P.S. Я не разработчик, я тоже эту обработку купил :)
26. Logarifm_Andre 13 17.06.21 09:42 Сейчас в теме
(25) Спасибо, все получилось.
У нас параллельно с вами шли комментарии тут)))

Вопрос: при попытке в Хроме открыть эту строку, возникает ли диалоговое окно с дополнительным запросом логина-пароля? Если да, то вполне возможно есть какая-нибудь дополнительная аутентификация

Да такое было.

Вообщем, выше я описал что необходимо сделать для работоспособности.....но вот этого сообщения пока не вижу.
Лучше всего приложить скрин настроек из ХикВижн
Прикрепленные файлы:
24. Logarifm_Andre 13 17.06.21 09:31 Сейчас в теме
Решение нашлось.
В 1С получаем http-запросом. Спасибо автору за обработку, она рабочая
Получаем JPEG-снимок основного потока камеры (информация от разработчика по ссылке My Webpage в разделе "RTSP ссылки"):
http://admin:passwd@ip-cam/ISAPI/Streaming/channels/101/picture?snapShotImageType=JPEG


Изменить настройки IP камеры в веб интерфейсе:
1. Сеть - Доп.настройки - Протокол интеграции
1.1. Установить галочку "Включить-Hikv..."
1.2. "Аутентификация Hikvision-CGI" - указать "digest/basic"
2. Система - Безопасность - Авторизация - указать "digest/basic"
27. erutan 104 15.08.21 21:22 Сейчас в теме
Здравствуйте, коллеги.
Спасибо, помогло! Но есть уточнение по Трассиру

на форме порт- это строка, а для поднятия соединения пришлось переделать число

	Попытка
		ssl = Новый ЗащищенноеСоединениеOpenSSL(Неопределено,Неопределено);
		Соединение = Новый HTTPСоединение(ИПТрассир,число(ПортТрассир),,,,,ssl);
	Исключение
		Соединение = Неопределено;	
	КонецПопытки;
28. adeptis 10 16.08.21 09:27 Сейчас в теме
(27) вот-вот. Вообще непонятно, как оно изначально работало с этой ошибкой.

А всё остальное по трассиру прямо таки заработало? Помню, пришлось ещё что-то переделывать по дайджест-аутентификации. Впрочем, может, конечно, от конкретной модели камеры зависит.
29. erutan 104 16.08.21 13:48 Сейчас в теме
(28) да, остальное у нас взлетело.
30. slider_rk 12.01.22 12:57 Сейчас в теме
31. slider_rk 12.01.22 18:53 Сейчас в теме
пришлось допиливать
32. Batman1978 21.09.22 14:31 Сейчас в теме
(31)
Не затруднит поделиться ?
33. slider_rk 28.09.22 13:40 Сейчас в теме
не затруднит. куда?
34. slider_rk 28.09.22 14:47 Сейчас в теме
&НаКлиенте
перем Авторизация;
&НаКлиенте
Процедура ПолучитьИСохранитьФото( ЗаписатьВФайл = ложь )
	//ip порт логин пароль область(узнается отдельно)
	Логин = "admin";
	Пароль = ""; 
	Ресурс = "cgi-bin/snapshot.cgi";
	Соединение = Неопределено;
	Попытка
		Соединение = Новый HTTPСоединение("192.168.1.100", 80);
	Исключение
		Соединение = Неопределено;	
		возврат;
	КонецПопытки;
	Заголовки = Новый Соответствие;
	Заголовки.Вставить("Authorization",Авторизация);	
	Запрос = Новый HTTPЗапрос(Ресурс,Заголовки);
	Результат = неопределено;
	РезультатЗапроса = Общий.ВыполнитьHTTPЗапрос(Соединение, Ресурс, Заголовки, Результат);	
	Если РезультатЗапроса тогда
		 Картинка = СоздатьКартинку(Результат);
		 Если ЗаписатьВФайл тогда
			 ИмяФайла = ПолучитьИмяВременногоФайла("*.jpg");
			 Картинка.Записать( ИмяФайла );
		 конецесли;
		 //ФотоСнимок - реквизит формы "строка"
		 ФотоСнимок = ПоместитьВоВременноеХранилище(Картинка, ЭтаФорма.УникальныйИдентификатор);
		 возврат;
	 Иначе
		 Если Результат = неопределено тогда
			  возврат;
		КонецЕсли;
	КонецЕсли;
	Ответ = Результат.Заголовки.Получить("WWW-Authenticate");
	ОтветСтруктура =  ОтветВСтруктуру(Ответ);
	//Digest realm="Login to c3a2a9416508ed3f90c6ed772e86ec4d", qop="auth", nonce="139864845", opaque="361774fbda64eb3229464463d6bc745e71c66032"
	realm = "";
	Если ОтветСтруктура.Свойство("Digest_realm",realm) Тогда
	КонецЕсли; 
	nonce = "";
	Если ОтветСтруктура.Свойство("nonce",nonce) Тогда
	КонецЕсли; 
	
	
	cnonce = стрзаменить(""+новый УникальныйИдентификатор,"-","");
	      
	
	A1 = MD5(Логин + ":" + realm + ":" + Пароль);
	А2 = MD5("GET:"+Ресурс);

	ОтветМД5 = НРЕг(MD5(НРег(A1)+":"+nonce+":00000001:"+cnonce+":auth:"+НРег(А2)));	
	
	Авторизация = "Digest username="""+Логин+""", realm="""+realm+""", nonce="""+nonce+""", uri="""+Ресурс+""", algorithm=""MD5"", response="""+ОтветМД5+""", qop=""auth"", nc=""00000001"", cnonce="""+cnonce+"""";
	
	Заголовки = Новый Соответствие;
	Заголовки.Вставить("Authorization",Авторизация);	
	
	Результат = неопределено;
	РезультатЗапроса = Общий.ВыполнитьHTTPЗапрос(Соединение, Ресурс, Заголовки, Результат);	
	
	Если РезультатЗапроса тогда
		 Картинка = СоздатьКартинку(Результат);
		 Если ЗаписатьВФайл тогда
			 ИмяФайла = ПолучитьИмяВременногоФайла("*.jpg");
			 Картинка.Записать( ИмяФайла );
		 конецесли;
		 
		 ФотоСнимок = ПоместитьВоВременноеХранилище(Картинка, ЭтаФорма.УникальныйИдентификатор);
		 
		 возврат;
	 Иначе
		// Если Результат = неопределено тогда
		//	  возврат;
		//КонецЕсли;
	КонецЕсли;

КонецПроцедуры

Функция ОтветВСтруктуру(СтрокаОтвет)
	//Digest realm="Login to c3a2a9416508ed3f90c6ed772e86ec4d", qop="auth", nonce="139864845", opaque="361774fbda64eb3229464463d6bc745e71c66032"
	
	Строки = СтрРазделить(СтрокаОтвет,",");
	Результат = новый Структура;
	Для каждого Подстрока Из Строки Цикл
		мКлючИЗначение = СтрРазделить(Подстрока, "=");
		сКлюч = сокрЛП( мКлючИЗначение[0] );
		сКлюч = СтрЗаменить(сКлюч," ","_");
		
		сЗначение = сокрЛП( мКлючИЗначение[1] );
		сЗначение = СтрЗаменить(сЗначение,"""","");
		Результат.Вставить(сКлюч, сЗначение );
	КонецЦикла;
	возврат Результат;
КонецФункции // ОтветВСтруктуру()


&НаСервере
Функция MD5(СтрокаДляХеширования)
  
  Хеш = Новый ХешированиеДанных(ХешФункция.MD5);
  Хеш.Добавить(СтрокаДляХеширования);
  Возврат СтрЗаменить(Строка(Хеш.ХешСумма), " ", "");
    
КонецФункции

/////////////////////////////

Авторизация = "";
Показать
Aili; оggghhhiiu; zvp111; Andy.Shel; +4 Ответить
35. marat055 26.09.23 16:03 Сейчас в теме
Добрый день. Можно ли ее доработать под мобильное приложение?
Оставьте свое сообщение