|
Результат выполнения фонового задания | ☑ | ||
---|---|---|---|---|
0
nAPACEHAK
15.07.20
✎
10:35
|
Доброго.
Форма запускает фоновое. в фоновом получает скрины с камер и выводит картинку АдресКартинокДляФонового, ИдентификаторЗаданияПолученияИзображенияСКамер - реквизит формы *** Форма &НаКлиенте Процедура ПриОткрытии(Отказ) АдресКартинокДляФонового = ПоместитьВоВременноеХранилище(Неопределено, ЭтаФорма.УникальныйИдентификатор); ЗапуститьФоновоеКамера (АдресКартинокДляФонового, ИдентификаторЗаданияПолученияИзображенияСКамер, ЭтаФорма.УникальныйИдентификатор); ПодключитьОбработчикОжидания("Подключаемый_ПроверитьВыполнениеЗаданияПолученияИзображенияСКамер",Интервалы.ИнтервалОбновленияИзображений); КонецПроцедуры &НаСервереБезКонтекста Процедура ЗапуститьФоновоеКамера(АдресКартинокДляФонового, ИдентификаторЗаданияПолученияИзображенияСКамер, УИД) ДлительныеОперации.ОтменитьВыполнениеЗадания(ИдентификаторЗаданияПолученияИзображенияСКамер); ИдентификаторЗаданияПолученияИзображенияСКамер = Неопределено; ПараметрыПроцедуры = Новый Массив; ПараметрыПроцедуры.Добавить(АдресКартинокДляФонового); НаименованиеЗадания = НСтр("ru = 'Получение изображений с камер'"); Задание = ФоновыеЗадания.Выполнить("КамерыВызовСервера.ПолучитьИзображениеСКамер", ПараметрыПроцедуры,, НаименованиеЗадания); ИдентификаторЗаданияПолученияИзображенияСКамер = Задание.УникальныйИдентификатор; КонецПроцедуры &НаКлиенте Процедура Подключаемый_ПроверитьВыполнениеЗаданияПолученияИзображенияСКамер() ЗаданиеВыполненоУспешно = Ложь; Если ЗаданиеФоновоеВыполнено(ИдентификаторЗаданияПолученияИзображенияСКамер) Тогда ЗаданиеВыполненоУспешно = Истина; КонецЕсли; Если ЗаданиеВыполненоУспешно Тогда Картинки = ПолучитьИзВременногоХранилища(АдресКартинокДляФонового); АдресКартинки1 = Картинки.АдресКартинки1; АдресКартинки2 = Картинки.АдресКартинки2; АдресКартинки3 = Картинки.АдресКартинки3; АдресКартинки4 = Картинки.АдресКартинки4; ;;;;; Данные = ПолучитьИзВременногоХранилища(ВходныеПараметры.АдресКартинки1); *** (1) ЗапуститьФоновоеКамера (АдресКартинокДляФонового, ИдентификаторЗаданияПолученияИзображенияСКамер, ЭтаФорма.УникальныйИдентификатор); КонецЕсли; КонецПроцедуры *** Общий модуль Процедура ПолучитьИзображениеСКамер(АдресКартинок = "") Экспорт Парам = Неопределено; ВходныеПараметры = Новый Структура("АдресКартинки1, АдресКартинки2, АдресКартинки3, АдресКартинки4", "", "", "", ""); ВыходныеПараметры = Неопределено; Результат = ПолучитьИзображенияСКамерыHTTP(Парам, ВходныеПараметры, ВыходныеПараметры); Если Результат Тогда ПоместитьВоВременноеХранилище(ВходныеПараметры, АдресКартинок); КонецЕсли; ;;;;; Данные = ПолучитьИзВременногоХранилища(ВходныеПараметры.АдресКартинки1); *** (2) КонецПроцедуры Помогите разобраться, плз С формы запускается фоновое В фоновом получаем картинки, кидаем их во временное (ПолучитьИзображенияСКамерыHTTP). ВходныеПараметры - структура с адресами картинок. (тут в (2) есть данные) Кидаем ВходныеПараметры по переданному адресу. фоновое завершено на форме проверяем завершение фонового. По сохраненному адресу получаем структуру адресов с данными. Тут АдресКартинки1 на форме и АдресКартинки1 в фоновом - идентичны но в (2) по этому адресу данные есть а в (1), по этому же адресу данные = неопределено хотя структуру с адресами, записанную в фоновом, после выполнения получили на клиенте. а по адресам из структуры - неопределено ЧЯДНТ? есть еще мысль что дело в УИДе когда помещаем в хранилище в фоновом сеансе и принимаем на клиенте - это разные хранилища, хоть и адрес одинаковый. Может так? |
|||
1
nAPACEHAK
15.07.20
✎
10:36
|
блин. промахнулся со сносками. чот не подумал что он из них ссылки на пост сделает
|
|||
2
nAPACEHAK
15.07.20
✎
10:36
|
(2)
|
|||
3
vi0
15.07.20
✎
11:23
|
стабильно воспроизводится?
какая платформа? |
|||
4
nAPACEHAK
15.07.20
✎
11:27
|
(3) каждый раз получаю неопределено
8.3.15.1830 |
|||
5
nAPACEHAK
15.07.20
✎
11:55
|
каждый раз структура адресов хранилища (заполненная в фоновом) но клиенте получаю
по адресу из структуры (по которому лежит картинка из фонового) получаю всегда неопределено как то непонятно получается. адрес1 формы = адрес1 фонового, адрес2 формы = адрес2 фонового на форме по адрес1 есть данные и там и там по адрес2 в фоне еть на форме неопределено |
|||
6
vi0
15.07.20
✎
12:41
|
(5) без обид, но воспринимать такой текст тяжело, особенно последнюю строку
|
|||
7
Ёпрст
15.07.20
✎
12:48
|
(0)
Данные = ПолучитьИзВременногоХранилища(ВходныеПараметры.АдресКартинки1); *** (1) а зачем ты передаешь ВходныеПараметры.АдресКартинки1 а выше получаешь АдресКартинки1 ? И есть уверенность, что в этот момент, в ВходныеПараметры.АдресКартинки1 не дырка от бублика ? |
|||
8
nAPACEHAK
15.07.20
✎
12:56
|
(7) есть уверенность
и то что в коде как Данные = .... это просто для точек останова временно ставил что бы посмотреть что там. оно нигде не используется но в 1. там неопределено а в 2 там данные в 1 и 2 адрес, по которому получаю, одинаковый. 2 это в фоновом а 1 это на клиенте после выполнения фонового т.е получается фоновое поместило данные по конкретному адресу, завершилось, и уже после завершения, на клиенте, по этому же адресу неопределено |
|||
9
Franchiser
гуру
15.07.20
✎
13:03
|
(0) Передавай картинку как двоичные данные, возможно так в фоновое передавать нельзя параметры в составе ВХ. Такая же проблема была с передачей файлов (смотри мои темы).
|
|||
10
nAPACEHAK
15.07.20
✎
13:11
|
(9) в смысле? она и так хранится как ДД
там в ПолучитьИзображенияСКамерыHTTP ДвоичныеДанные = Ответ.ПолучитьТелоКакДвоичныеДанные(); ПоместитьВоВременноеХранилище(ДвоичныеДанные, Адр); |
|||
11
Ёпрст
15.07.20
✎
13:24
|
(0) почитай описалово метода ПоместитьВоВременноеХранилище, там есть на счет фонового и родительской формы, откуда оно запущено и что и где доступно будет
|
|||
12
Franchiser
гуру
15.07.20
✎
13:40
|
(10) не помещай в ВХ
|
|||
13
Franchiser
гуру
15.07.20
✎
13:47
|
(10) у меня была проблема именно с передачей двоичных данных в фоновое (что обошел передачей двоичных данных в качестве параметра), обратно (из фонового) можно ли передать без ВХ не знаю (проблемы такой не было.)
|
|||
14
Franchiser
гуру
15.07.20
✎
13:51
|
Так пробовал?
АдресКартинокДляФонового = ПоместитьВоВременноеХранилище(Неопределено, ЭтаФорма.УникальныйИдентификатор); Заменить на АдресКартинокДляФонового = ПоместитьВоВременноеХранилище(Неопределено, Новый УникальныйИдентификатор); |
|||
15
nAPACEHAK
15.07.20
✎
13:53
|
(11) потопал в очередной раз читать буквы (((
хотя сейчас попробовал вернуть не структуру адресов с адресами ДД в хранилище, а сразу адрес на ДД (в принципе ничего основного не поменялось в коде) - и на клиенте по переданному адресу получил ДД а если передаю структуру с адресами и получаю из ВХ по адресу из структуры адресов полученной (адреса идентичны) - почему то вместо ДД неопределено выходит (12) а как передать ДД как результат работы фоновой на клиента? с файлами извращаться тоже не комильфо (13) вроде как только ВХ из фонового. это если без контекста. если с контекстом то можно рекв.формы например какой нить заполнить (14) да. однопенисуально |
|||
16
vi0
15.07.20
✎
14:03
|
есть баг один, но вроде не твой случай
https://bugboard.v8.1c.ru/error/000048128 |
|||
17
Franchiser
гуру
15.07.20
✎
14:04
|
(15) Почему нельзя сделать структуру не
Новый Структура("АдресКартинки1, АдресКартинки2, АдресКартинки3, АдресКартинки4", "", "", "", ""); а Новый Структура("ДДКартинки1, ДДКартинки2, ДДКартинки3, ДДКартинки4", "", "", "", ""); Насколько я помню будет доступен только тот адрес с данными хранилища который определен на клиенте перед передачей в фоновое. |
|||
18
vi0
15.07.20
✎
14:07
|
Адрес = ПоместитьВоВременноеХранилище(Неопределено);
|
|||
19
Franchiser
гуру
15.07.20
✎
14:09
|
(18) у него есть такой код в ПриОткрытии()
|
|||
20
vi0
15.07.20
✎
14:11
|
(19) не вижу у него такого вызова, чтобы с одним параметром
|
|||
21
Franchiser
гуру
15.07.20
✎
14:12
|
(0) Что есть АдресКартинки1, АдресКартинки2, АдресКартинки3 ...
Это адреса картинок в ВХ, созданном в фоновом задании или адреса на объекты в БД ? |
|||
22
Franchiser
гуру
15.07.20
✎
14:18
|
(20) если без второго параметра данные в хранилище как раз точно исчезнут после первого же серверного вызова.
|
|||
23
vi0
15.07.20
✎
14:45
|
(22) ну да, правда я не вчитывался в код и топик, бегло прочитал
|
|||
24
nAPACEHAK
15.07.20
✎
15:30
|
(21) АдресКартинки1 это реквизит формы, в который дожны попадать адреса из фонового
Картинки это структура ("АдресКартинки1,2,3...) в значениях которой адреса ДД помещенных в фоновом Картинки = ПолучитьИзВременногоХранилища(АдресКартинокДляФонового); АдресКартинки1 = Картинки.АдресКартинки1; итд |
|||
25
Franchiser
гуру
15.07.20
✎
16:20
|
(24) то есть ты в фоновом задании каждую картинку помещаешь в отдельный ВХ, адреса которых инициированы в фоновом задании?
|
|||
26
Franchiser
гуру
15.07.20
✎
16:24
|
(0) Покажи код из ПолучитьИзображенияСКамерыHTTP()
|
|||
27
nAPACEHAK
16.07.20
✎
08:17
|
(26)
Точно. Походу я промохал с идентификатором ВХ и после фонового на клиенте там ничего нет АдресКартинки = Неопределено; (!!!) Попытка HTTPСоединение = Новый HTTPСоединение(ИмяСервера, Порт, Логин, Пароль, Неопределено, Таймаут); HTTPЗапрос = Новый HTTPЗапрос(URLПодключения); //ИмяФайла = ПолучитьИмяВременногоФайла("~jpg"); Ответ = HTTPСоединение.Получить(HTTPЗапрос); //, ИмяФайла); Если Не ПолучитьФайл Тогда //ДвоичныеДанные = Новый ДвоичныеДанные(ИмяФайла); //АдресКартинки = ПоместитьВоВременноеХранилище(ДвоичныеДанные, АдресКартинки); //УдалитьФайлы(ИмяФайла); ДвоичныеДанные = Ответ.ПолучитьТелоКакДвоичныеДанные(); АдресКартинки = ПоместитьВоВременноеХранилище(ДвоичныеДанные, АдресКартинки); ВходныеПараметры["АдресКартинки" + й] = АдресКартинки; Иначе //ВыходныеПараметры.Добавить(ИмяФайла); КонецЕсли; Исключение |
|||
28
Franchiser
гуру
16.07.20
✎
10:43
|
(27) Интересный у тебя код:
АдресКартинки = Неопределено; (!!!) АдресКартинки = ПоместитьВоВременноеХранилище(ДвоичныеДанные, АдресКартинки); |
|||
29
Franchiser
гуру
16.07.20
✎
10:46
|
Зачем у тебя еще в ПолучитьИзображениеСКамер():
Если Результат Тогда ПоместитьВоВременноеХранилище(ВходныеПараметры, АдресКартинок); КонецЕсли; ? |
|||
30
nAPACEHAK
16.07.20
✎
13:01
|
(28) спасибо, разобрался ))))
просто код этой процедуры по диагонали просмотрел. перемкнуло чота |
|||
31
vi0
16.07.20
✎
15:39
|
(30) твоя ошибка в спешке
рекомендую пофиксить ее накорню |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |