|
Альтернатива методу ВызватьHTTPМетодАсинх | ☑ | ||
---|---|---|---|---|
0
aptomilov
25.10.24
✎
13:51
|
Привет всем
Насколько я понял этот метод "ВызватьHTTPМетодАсинх" безнадежно устарел. Хотел поинтересоваться. Каким методом можно асинхронно получить информацию через http-запрос? Для понимания: результатом запроса будет картинка, которую надо будет сохранить на диск. |
|||
1
Волшебник
25.10.24
✎
13:50
|
Вариант 1
&НаКлиенте Асинх Процедура ЗагрузитьКартинку(Команда) Адрес = "https://wizard.mista.ru/img/logo.png"; ВремФайл = ПолучитьИмяВременногоФайла(); Ждать КопироватьФайлАсинх(Адрес,ВремФайл); ОписаниеФайла = Ждать ПоместитьФайлНаСерверАсинх(,,,ВремФайл); КартинкаНаФормеТипаСтрока = ОписаниеФайла.Адрес; ЭтаФорма.ОбновитьОтображениеДанных(); КонецПроцедуры Вариант 2 &НаКлиенте Процедура ЗагрузитьКартинку(Команда) Адрес = "https://wizard.mista.ru/img/logo.png"; ЗагрузитьКартинкуНаСервере(); ЭтаФорма.ОбновитьОтображениеДанных(); КонецПроцедуры &НаСервере Процедура ЗагрузитьКартинкуНаСервере() ВремФайл = ПолучитьИмяВременногоФайла(); КопироватьФайл(Адрес,ВремФайл); дд = Новый ДвоичныеДанные(ВремФайл); Адрес = ПоместитьВоВременноеХранилище(дд); КартинкаНаФормеТипаСтрока = Адрес; КонецПроцедуры |
|||
2
Garykom
гуру
25.10.24
✎
14:39
|
(0) Если &НаСервере, то смысла от этого Асинх нет.
Вот если &НаКлиенте, то есть, но зачем тебе делать http запросы на клиенте-то? |
|||
3
Garykom
гуру
25.10.24
✎
14:28
|
самое прикольное делать http-запросы на клиенте к http-сервису опубликованному в той же базе...
|
|||
4
aptomilov
25.10.24
✎
15:00
|
Соединение = Новый HTTPСоединение("192.168.1.199",8080,,,,,
Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос("/screenshot?channel=SqM1EMQR&figures=1&password=123456"); Результат = Соединение.ОтправитьДляОбработки(Запрос); Результат.ПолучитьТелоКакДвоичныеДанные().Записать(ПутьХранения + ИмяПапки + "\" + Номер + "_" + Талон + ".jpg"); |
|||
5
sikuda
26.10.24
✎
10:47
|
(0) Хохма дня - "ВызватьHTTPМетодАсинх" безнадежно устарел
1. он еще не начал применяться массово 2. он предназначен только для клиента 3. по безопасности он применяется только с того-же сайта, что и база если Web клиент. Процесс сохранения файла на локальный диск в браузере обязательно требует подтверждения пользователя. Поэтому чисто клиентские методы не станут хорошей основой - пользуйтесь серверными функциями |
|||
6
lubitelxml
26.10.24
✎
10:49
|
(3) а вы знаете толк в извращениях ))
|
|||
7
sikuda
26.10.24
✎
10:54
|
(6) Для тех кто до сих пор "в танке 1С": https://habr.com/ru/companies/macloud/articles/553826/
|
|||
8
sikuda
26.10.24
✎
11:01
|
(1) Надо себе закладочку оставить, по загрузке изображений на сайт...
async function load(){ const myImage = document.querySelector("img"); let response = await fetch('test.png'); let blob = await response.blob(); const objectURL = URL.createObjectURL(blob); myImage.src = URL.createObjectURL(blob); } Или красивее: const myImage = document.querySelector("img"); const myRequest = new Request("test.png"); //"flowers.jpg"); fetch(myRequest) .then((response) => { if (!response.ok) { throw new Error(`HTTP error, status = ${response.status}`); } return response.blob(); }) .then((myBlob) => { const objectURL = URL.createObjectURL(myBlob); myImage.src = objectURL; }) .catch((error) => { const p = document.createElement("p"); p.appendChild(document.createTextNode(`Error: ${error.message}`)); document.body.insertBefore(p, myImage); }); |
|||
9
sikuda
31.10.24
✎
10:18
|
(1) И у меня для Вас плохая/хорошая новость
Расширения доступа к файлам 1С в брузерах 2022 года не дает доступ к локальному диску. функции КопироватьФайлАсинх в браузере с установленным расширением 1С дает ошибку что расширение на установлено 🤦 Проверял на firefox Переустановка расширения средствами 1С -
|
|||
10
sikuda
27.10.24
✎
15:39
|
(9) Главное не стоит беспокоиться!
Cкачивание файлов с помощью curl ( Пример можно взять из описания функции БСП ФайловаяСистемаКлиент.ЗапуститьПрограмму |
|||
11
PR
27.10.24
✎
16:23
|
ТС странный, метод с окончанием Асинх устарел, говорит
Самый последний вариант, еще только начинают использовать, а уже устарел, хуя се |
|||
12
sikuda
07.11.24
✎
08:22
|
Причем, что самое интересное ПолучитьИмяВременногоФайла() недоступна из Web-клиента! 🔥
Сырая еще Ваша 1С, сырая 💖💖💖
|
|||
13
Волшебник
28.10.24
✎
13:16
|
(12) Рекомендую использовать Толстый клиент, там всё доступно
|
|||
14
sikuda
29.10.24
✎
08:44
|
И таки да, так долго делать расширения для работы с файлам в браузере, переводить весь код из БСП на авто установку этого расширения, ломая простой код для тонкого и ТОЛСТОГО клиента и в результате через два года не работает запись файла на диск в веб-клиент с расширением.
О современный мир в котором работоспособность в будущем никто не хочет предоставлять, все заняты текущими мега проектами... |
|||
15
aptomilov
07.11.24
✎
09:20
|
Поясню, что к чему.
Это запрос выполняется к трассиру (видеонаблюдение). Он находится на том же сервере, что и база — хттп запрос на получение скрин шота. И так получается, что выполняется ему надо 2 раза на один документ (документ взвешивания авто). Тратится примерно 6 секунд на 2 запроса скрин шота, а это критично, как мне говорит руководство. Формы обычные. Запрос выполняется не на самом сервере, а на машине возле весов (по кабелю 3 метра до коммутатора). База подцеплена по обычной локалке. Как можно сделать это асинхронно, пока не пойму. В целом машина на весах стоит не меньше 60 секунд, всё это время открыта форма мастера взвешивания, по сути времени точно хватить на асинхронное выполнение. |
|||
16
aptomilov
31.10.24
✎
09:59
|
(13) я в толстом клиенте и так
|
|||
17
Мультук
гуру
31.10.24
✎
10:02
|
(15)
Дык исключите из теста 1С вообще. Напишите скрипт (на чём угодно), который получает два скриншота и сохраняет их локально. Если это будет быстрее, чем "6 сек", то думаем в одну сторону, если столько же по времени - в другую. Может у вас скриншоты по 100 Мб, или шнурочек пропускает 10 Мегабит P.S. Асинхронно, синхронно. Синхрофазотронно... |
|||
18
aptomilov
31.10.24
✎
10:02
|
еще добавлю что запрос должен быть выполнен именно в рамках завеса до записи документа
|
|||
19
aptomilov
31.10.24
✎
10:05
|
скрины по 1,5 мб
сетка 100 мб |
|||
20
aptomilov
31.10.24
✎
10:11
|
браузер отдает картинку через три секунды по этой ссылке
|
|||
21
aptomilov
07.11.24
✎
09:19
|
Поэтому и хочу асинхронный запрос,
чтобы в любом месте его запустить и не мешать весовщику делать свое дело. |
|||
22
arsik
гуру
31.10.24
✎
10:12
|
(17) Ну так ТС и топит, за то что 1С не причем. А время в хочет через асинхронность сократить
|
|||
23
aptomilov
07.11.24
✎
09:19
|
Да не хочу я его сократить. Я хочу, чтобы не подвисала форма на эти 6 секунд. ))
Видимо, через обработчик ожидания надо сделать и не париться. |
|||
24
Мультук
гуру
31.10.24
✎
10:24
|
(22)
1) Да, в (19) он в этом явно признался. 2) Насколько я понимаю в словах "1С и асинхронность", у него ничего не получится (0) Асинхронно <> Фоново А почему нельзя (если уж так важно) получить картинки запустив фоновое задание ? Правда не знаю, накладные затраты на запуск фонового и получение картинок обратно, будут ли он намного меньше чем 6 сек |
|||
25
sikuda
31.10.24
✎
15:48
|
(23) Я бы смотрел в сторону НачатьКопированиеФайла(или НачатьПомещениеФайлаНаСервер) с отработкой оповещения (что и есть асинхронно), если в толстом клиенте Ждать КопироватьФайлАсинх не проходит.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |