Имя: Пароль:
1C
1С v8
Мобильный клиент
0 GRommobile
 
04.12.19
20:53
Добрый день, коллеги.
Подскажите возможно ли решить поставленную задачу стандартными средствами 1С ?
Имеется документ, который использует мобильный клиент. В реквизите документа хранится путь до фотографии, сделанной на мобильном клиенте. Путь выглядит в виде строки "/storage/emulated/0/DCIM/111.jpg". Файл есть, в галерее виден. Задача - через фоновое задание передать этот файл на сервер и записать в справочник, с типом реквизита ХранилищеЗначений.
Следующий код в процедуре фонового задания падает с ошибкой

            СправочникФайлов.Данные = Новый ХранилищеЗначения(Новый ДвоичныеДанные("/storage/emulated/0/DCIM/111.jpg"));

Каталог не обнаружен "/storage/emulated/0/DCIM/111.jpg". Не могу понять почему фоновоеЗадание и серверная процедура не видят данного каталога ?
1 unbred
 
04.12.19
21:56
с сервака пытаешься получить файлик, который ещё не на серваке?
2 GRommobile
 
04.12.19
22:20
(1) Фоновое задание выполняется на мобильном клиенте.
3 SilentMan
 
04.12.19
23:03
(2) не может быть!
Фоновое задание работает на сервере. А сервер - он не на мобиле :)
Наверное стоит фоточку положить во временное хранилище и передать в фоновое задание адрес хранилища
4 Fram
 
05.12.19
04:33
(2) увы!
(3) Передача данных из вызывающего сеанса в сеанс фонового задания невозможна. ИТС (с)
5 Сияющий в темноте
 
05.12.19
09:02
(4) до запуска фонового задания вполне себе.
6 SilentMan
 
05.12.19
09:16
(4) И пруф будет для подтверждения такого уверенного заявления?
7 GRommobile
 
05.12.19
09:18
Коллеги, понял в чем ошибка. Но от этого не стало легче. Вопрос перешел в методологию. Каким образом передать файл с мобильного устройства, ссылка на который расположена в реквизите справочника, на сервер ? Причем процесс передачи должен происходить в определенный период времени.
8 Кац
 
05.12.19
09:27
ДанныеФайла = Новый ХранилищеЗначения(Новый ДвоичныеДанные("file://storage/emulated/0/DCIM/111.jpg"));
9 GRommobile
 
05.12.19
09:41
(8) уже писали выше, так не получится. Код выполняется на сервере
10 Fram
 
05.12.19
09:47
11 sevod
 
05.12.19
09:52
(9) тебе подсказку дали. Сделай двоичный файл на мобиле и пуляй его на сервер. Если нужно в определенное время, держишь на мобиле 1с включенным, он все время стучится на сервер и спрашивает, а не пора ли мне тебе файл отправить?
Ну или смотри как на телефоне папку расшарить, что бы было с сервера видно.
12 sevod
 
05.12.19
09:59
(11) это все для автора разумеется написано.
13 fisher
 
05.12.19
10:03
(7) ПодключитьОбработчикОжидания(), НачатьПомещениеФайла()
14 fisher
 
05.12.19
10:07
Но если передача по расписанию понятна для мобильного приложения, то для мобильного клиента логичнее было бы пулять файлы на сервер сразу, а не аккумулировать их на клиенте и отправлять по расписанию. Тогда "подтормаживания" связанные с отправкой происходили бы в ожидаемые пользователем моменты и вообще лучше бы укладывалось в концепцию мобильного клиента.
15 fisher
 
05.12.19
10:11
В тонком клиенте никому же не приходит в голову пихать в справочник ссылки на локальные файлы и по расписанию их тянуть. А мобильный клиент - тот же самый тонкий клиент, только на мобильном девайсе.
16 SilentMan
 
05.12.19
11:48
(10) Да, убедил.
Ну тогда вариант из (8). Данные передаются параметром серверного вызова и на сервере делай что хочешь, включая передачу двоичных данных прямым параметром вызова фонового задания.