Мобильное приложение. Сохранить файл по сети

1. Zixxx 23.07.18 16:03 Сейчас в теме +1.58 $m
Пробую записать произвольный текстовый файл на мобильной приложении следующим образом

Текст = Новый ЗаписьТекста("\\192.168.1.33\111\1.txt", КодировкаТекста.UTF8);
Текст.ЗаписатьСтроку("Текст");
Текст.Закрыть();

При записи получаю ошибку Файл не обнаружен '\\192.168.1.33\111\1.txt'

Как правильное следует делать?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
44. ugr_88 23.08.21 16:25 Сейчас в теме
(1) Добрый день, у Вас получилось реализовать данный функционал?
Расскажите пжста, что да как, также паруюсь
45. Zixxx 24.08.21 06:45 Сейчас в теме
(44) Добрый. Нет, пока отложили этот вопрос. А то что привели в примере (41) не пробовали сделать?
46. ugr_88 24.08.21 07:09 Сейчас в теме
(45) Подскажите пжста, что указывать в (41) под переменной ИмяФайла? полностью путь к ПК или как?
И нужно ли связывать с ПК и создавать сетевую папку в ES проводнике?
47. ugr_88 24.08.21 07:11 Сейчас в теме
(45) Кстати, приложений очень много с таким названием, есть ли ссылка на данный проводник?
48. Zixxx 24.08.21 13:47 Сейчас в теме
(47) Судя по всему должен быть этот, https://4pda.to/forum/index.php?showtopic=138744&st=22440 но я его что-то не нашел в маркете. По поводу ИмяФайла то должна быть указана расшариная папка в сети куда можно записать этот файл, возможно если не получиться то можно попробовать создать сетевую папку в ES
49. ugr_88 24.08.21 13:58 Сейчас в теме
(48)
возможно если не получиться то можно попробовать создать сетевую папку в ES

Вот его и скачать через несколько попыток.
Как только я не пытался записывать, результат один = ошибка
50. ugr_88 24.08.21 14:52 Сейчас в теме
(48) да и не понятно в (41) как указывать путь/каталог для сохранения данного файла
61. chuvak007 20.10.21 16:50 Сейчас в теме
(1)Получилось ли справиться с задачей?
2. Timur.V 80 23.07.18 18:10 Сейчас в теме
На android устройстве есть ES Проводник? Проверить доступность записи/чтения сетевой папки.
3. wenzor 39 23.07.18 18:23 Сейчас в теме
C компьютера этот файл (\\192.168.1.33\111\1.txt) виден?
4. Timur.V 80 23.07.18 18:26 Сейчас в теме
В Андроид нет встроенных средств работы по протоколу NetBIOS/NetBEUI. Вам придется реализовать его самостоятельно с нуля.
http://fire-monkey.ru/topic/5081-сохранение-данных-из-андроид-устройства-в-сетевую-папку/

Варианты решения:
http, ftp, облако яндекс.

http - если поднимите веб сервер
ftp - если его установите
облачное хранение - яндекс или любое другое.
o4karek; wolder; Ditron; 33lab; +4 Ответить
10. 33lab 923 23.07.18 20:26 Сейчас в теме
Дополнительно к (4), работа через ftp: https://infostart.ru/public/415329/
5. palsergeich 23.07.18 19:10 Сейчас в теме
Если мобильное приложение общается с сервером, то я бы поднял еще один HTTP сервис для передачи файлов Это будет намного проще, чем остальные реализации.
Самый быстрый способ - передать Двоичные данные в теле запроса (УстановитьТелоИзДвоичныхДанных), а имя файла в заголовке.
Можно воспользоваться передачей формы - все данные по файлу и сами бинарные данные в теле запроса - пример интеграция с телеграммом, но все это будет работать если есть сервер, который может записать в эту папку.
6. Timur.V 80 23.07.18 19:35 Сейчас в теме
(5) Сервер 1с на windows, этим можно воспользоваться ))

Копируйте к клиента(андройд) на сервер 1с файл. Не проверял, но думаю, должно получиться.
https://infostart.ru/public/591967/

а потом копируйте в папку \\192.168.1.33\111
т.е. из временного каталога кластера 1с на сервере - копируем в сетевую папку.
КопироватьФайл(<Имя файла источника>, <Имя файла приемника>)

Предварительно проверьте, что пользователю, под кем запускается сервер 1с (кластер 1с), доступна запись в эту папку.
8. Zixxx 23.07.18 20:09 Сейчас в теме
7. Zixxx 23.07.18 20:09 Сейчас в теме
(5) В том то и дело что сервера нет который сможет это записать. По сути я записываю произвольный текст ZPL команды на сетевой принтер этикеток.
9. Timur.V 80 23.07.18 20:26 Сейчас в теме
(7)
ZPL команды на сетевой принтер

А без мобильного приложения, через тонкий клиент получается распечатать на сетевом принтере? Ответ должен быть, да.
Тогда код печати нужно разместить в серверной процедуре. И к ней обращаться с клиентов.
12. Zixxx 23.07.18 20:32 Сейчас в теме
(9) Да, локально проблем нет
Размещать код на сервере не обязательно, да и если печать сделать на сервере то все равно будет ошибка Файл не обнаружен '\\192.168.1.33\111\1.txt
14. Timur.V 80 23.07.18 20:36 Сейчас в теме
(12)
Предварительно проверьте, что пользователю, под кем запускается сервер 1с (кластер 1с), доступна запись в эту папку.
Нужно дать права логину, под кем запускается кластер 1с.
15. Zixxx 23.07.18 20:38 Сейчас в теме
(14) Права есть через SMB туда все пишется нормально. Нужно чтобы было без промежуточного звена
16. Timur.V 80 23.07.18 23:28 Сейчас в теме
(15) Выступая в роли драйвера принтера для Android, PrintConnect упрощает разработчикам задачу добавления этикетки и печати чеков в их решениях для Android.

PrintConnect решает задачу обнаружения и подключения принтеров Zebra Link-OS через Bluetooth или WLAN, снижая, таким образом, количество кода в вашем приложении. PrintConnect поддерживает нашу функцию Print Touch, делая процесс подключения еще проще!

https://www.zebra.com/ru/ru/products/software/barcode-printers/link-os/print-connect.html
19. Zixxx 24.07.18 06:23 Сейчас в теме
(16) Это не подходит, во первых другой принтер, во вторых печать идет из 1с. Мне просто нужно чтобы мобильное приложение смогло записать текст в расшаринную папку по сети. SMB клиенты не подходят, так как у них синхронизация не в реалтайм идет.
23. user623969_dusa 24.07.18 09:18 Сейчас в теме
(19) переходите на мобильный клиент - будете одним из первых кто проверит его работу
27. Zixxx 24.07.18 11:24 Сейчас в теме
(23) На мобильном клиенте тоже самое файл не найден
11. Гость 23.07.18 20:31
Еще можно попробовать КопироватьФайл(<ИмяФайлаИсточника>, <ИмяФайлаПриемника>);
13. Zixxx 23.07.18 20:33 Сейчас в теме
(11) Будет ошибка, сети не видно
17. Timur.V 80 23.07.18 23:34 Сейчас в теме
(1) Создай функцию, которая будет выполнятся на сервере 1с.
И запускай её с клиента любого. Для начала с тонкого клиента, если ошибок не будет - с мобильного.

&НаСервере
18. Zixxx 24.07.18 06:14 Сейчас в теме
(17) Зачем писать одно и тоже несколько раз. Я же говорю ошибок нигде нет, везде все работает, не работает только с мобильного приложения
20. Xershi 1551 24.07.18 07:16 Сейчас в теме
Возможно ли запись напрямую проверить легко. Открыть папку через диалог. Если получится значит должно работать и у вас нет прав.
21. Zixxx 24.07.18 07:18 Сейчас в теме
(20) Вы это вообще к чему пишите здесь?
22. Xershi 1551 24.07.18 08:48 Сейчас в теме
(21) к тому что с версии 8.3.10 кажись появился диалог работы с ФС, а вот работает ли он с сетевыми ресурсами мне неизвестно! Проверим эту теорию можно будет говорить, можно ли решить вопрос напрямую или придется использовать костыли!
24. Zixxx 24.07.18 09:53 Сейчас в теме
(22) Не работает, МП последняя
25. Xershi 1551 24.07.18 10:56 Сейчас в теме
(24) значит в (4) вам дали исчерпывающий ответ.
Также могу вам посоветовать написать в поддержку в 1С, чтобы возможно они реализовали данный функционал через платформу!
Иначе используйте виндоус на телефоне.
26. Zixxx 24.07.18 11:24 Сейчас в теме
(25) В (4) не то, ниже писал почему
28. Xershi 1551 24.07.18 12:21 Сейчас в теме
(26) с условием в (15) работать не будет, какой ответ вам еще нужен?

Не выполняя (15) есть еще вариант написать компоненту, которая выполнит данную операцию.
29. Zixxx 24.07.18 13:21 Сейчас в теме
(28) Я в курсе что работать не будет. Просто отвечаю на вопросы. Просто не понимаю зачем их все повторяют, выше же все уже написано.
30. Infector 201 24.07.18 14:44 Сейчас в теме
А Вы уверены что у Android используется обратный слеш ("\"), а не прямой ("/")? Он же вроде корнями к Unix восходит. И про передачу на сервер в виде двоичных данных дело говорят, во многих случаях это удобнее, чем морочиться с доступом отдельных пользователей к файловой системе.
31. Zixxx 24.07.18 15:07 Сейчас в теме
(30) Со слешами уже попробовал по разному, и в разном направлении и в разном количестве.
Сервер и двоичные данные там не нужны, если он там будет то и не нужно будет и мобильное приложение
32. Infector 201 24.07.18 15:15 Сейчас в теме
(31) а поискать папку, соответствующую сетевому ресурсу в /mnt/ пытались?
33. Zixxx 24.07.18 15:28 Сейчас в теме
(32) А сетевому ресурсу другого компа там что делать? Ну я посмотрел в эту папку ничего там вроде нет вида ip другого компа, папок конечно много, просто полистал
34. Infector 201 24.07.18 15:37 Сейчас в теме
(33) логика Linux-подобных систем говорит, что любой сетевой ресурс или дисковый раздел следует отобразить как вложенный каталог корневого раздела.
Как вариант, если ES Проводник этого не делает, попытаться смонтировать сетевую папку без него. Вероятно так же, что ES Проводник все-таки что-то монтирует, но не в традиционные места.
35. Zixxx 24.07.18 17:01 Сейчас в теме
(34)Не получилось найти приложение которое бы смонтировало расшаренную папку на устройство. То что пишут либо 2011 года либо приложений нет в маркете, а ссылки не рабочие
36. Timur.V 80 24.07.18 17:21 Сейчас в теме
(35) Добавляем поддержку монтирования Windows шар в Android
https://habr.com/post/220309/

в яндексе: android mount smb
38. Zixxx 24.07.18 17:45 Сейчас в теме
(36)
android mount smb

То что по ссылке я уже видел, для этого нужно заводить отдельную большую тему что бы проделать то что там написано. Также там как писал выше используют CifsManager которой либо нет либо я не знаю где найти, а то что было в виде нее просто не устанавливается на устройство
37. Infector 201 24.07.18 17:27 Сейчас в теме
(35) в теории должно хватать терминала. Очень вероятно, что ЗапуститьПриложение() умеет тоже самое, что и окошко консоли. По крайней мере в Винде можно операторы командной строки так дергать. Ну и очень сомнительно, что с 2011 года андроидописцы успели кардинально поменять файловую систему и работу с ней. Попробуйте тут подчерпнуть, или из текстов по Linux заимствовать
http://upgrade-android.ru/stati/stati/4381-kak-polzovatsya-terminalom-android.html
39. bulbazavr 08.08.18 08:48 Сейчас в теме
Да я вот и себе присматриваю такое приложение, а то надо бы)
Только еще бы найти откуда выкачать, чтоб не было вирусни всякой
40. user1029361 09.08.18 02:13 Сейчас в теме
Так это и нельзя назвать особой проблемой, поскольку даже если вы скачиваете какую-то игру или же приложение на телефон, у вас должен быть родной антивирус или же скачайте сразу новый и все, опасности так таковой не будет. Если же нужно расшифровать мили же записать произвольный текстовый файл, то приложений много, которые помогут вам решить эту проблему. Я обычно все себе скачиваю http://programmy-dlya-android.ru/ , поэтому посмотрите варианты и установите любое похожее приложение даже если вам нужно смонтировать расширенную папку на устройство.
41. CyberCerber 873 15.01.20 15:49 Сейчас в теме
Если кому нужно, можно сделать копирование файла по сети через ES Проводник:

ЗПМУ = Новый ЗапускПриложенияМобильногоУстройства();
ЗПМУ.Действие = "android.intent.action.SEND";
ЗПМУ.ДополнительныеДанные.Добавить("android.intent.extra.STREAM", "file://" + ИмяФайла, "Uri");
ЗПМУ.Тип = "*/*";
ЗПМУ.Приложение = "com.estrongs.android.pop";
ЗПМУ.ИмяКласса =  "com.estrongs.android.pop.app.SaveToESActivity";
ЗПМУ.Запустить(Истина);

В принципе, можно попробовать и другие файловые менеджеры с передачей по LAN. Тогда надо поменять Приложение и ИмяКласса .
42. FronGon 15.05.20 15:54 Сейчас в теме
(41) А можно программно указать папку назначения, без открытия формы ES Проводник?
43. CyberCerber 873 15.05.20 16:17 Сейчас в теме
(42) Нет, такой возможности не нашел
51. ugr_88 24.08.21 14:55 Сейчас в теме
(41)
SaveToESActivity

Можете помочь с объяснением данного кода?

Мне нужно сохранить файл ххх.txt с андроида в сетевую папку testfolder и обратно получать?

Установил приложение, пытался скопировать, не получается
52. Zixxx 24.08.21 15:14 Сейчас в теме
(51) Ну это классы самого приложения, можно попробовать написать в техподдержку самого приложения.
То что написано в (41) взято вероятно от сюда https://4pda.to/forum/index.php?showtopic=138744&st=22420#entry101557245
Еще нашел что делают сначала так
com.estrongs.android.pop
com.estrongs.android.pop.app.ESFileSharingActivity
А потом вот так
com.estrongs.android.pop
com.estrongs.android.pop.app.SaveToESActivity
Не знаю получиться ли что-то если запустить это два раза

Напиши если что-то получиться
53. Zixxx 24.08.21 15:19 Сейчас в теме
(51) А тебе для чего нужно файлик сохранить?
56. ugr_88 24.08.21 18:41 Сейчас в теме
(53)
о нужно файлик сохранить?

ТСД на андройде, пишем конфигурацию на 1С моб версии, после считывания необходимо передать файл на 1С 7.7 для загрузки.
57. Zixxx 24.08.21 18:46 Сейчас в теме
(56) Ну как вариант если есть возможность, то можно сервисы на 8-ке поднять и туда кидать данные, а база уже пусть пишет файлики куда нужно. У меня такой возможности не было, нужно было сразу сохранять на порт принтера чтобы этикетки печатались.
58. ugr_88 24.08.21 18:49 Сейчас в теме
(57)
сервисы на 8

Не хотят они 8ку, будем дальше искать решения, спс за помощь
59. Zixxx 24.08.21 20:06 Сейчас в теме
(58) Восьмерка имелось ввиду просто база для сервисов. Ну если совсем не хотят ее даже видеть), то можно на IIS сделать прослойку. Отправлять на него, а IIS уже тогда пусть пишет файлик по сети в нужно место. А семерка уже будет этот файлик забирать и обрабатывать.
54. CyberCerber 873 24.08.21 15:26 Сейчас в теме
(51) Это методы именно приложения ES Проводник. Методы можно смотреть еще через просмотрщик манифеста
55. CyberCerber 873 24.08.21 15:31 Сейчас в теме
(51) Если не получается через это приложение, можно попробовать какой-то другой проводник.
Надо только сначала проверить, что у него есть работа с LAN, а потом проверить в манефесте, есть ли обработчик интента "android.intent.action.SEND"
60. chuvak007 20.10.21 16:50 Сейчас в теме
Получилось ли справиться с задачей?
62. Zixxx 20.10.21 20:54 Сейчас в теме
(60) На тот момент немного переиграли задачу и обошли этот момент. Видимо если не получается, то средствами 1с это пока не реализовано. Это можно решить через прослойку на IIS но нужен отдельны комп, либо по второму варианту попробовать по порядку как в этих сообщениях: (41) - (52) - (51) - (55). Напиши если по второму варианту что-нибудь получиться.
63. chuvak007 25.10.21 11:04 Сейчас в теме
(62) У меня получилось справиться с задачей. Нужно поставить на телефон приложение SMBSync2. Работает идеально
64. Zixxx 25.10.21 12:56 Сейчас в теме
(63)
SMBSync2

Методы SMBSync2 используешь?

Или такой вариант начинает работать?
Текст = Новый ЗаписьТекста("\\192.168.1.33\111\1.txt", КодировкаТекста.UTF8);
Текст.ЗаписатьСтроку("Текст");
Текст.Закрыть();
65. chuvak007 27.10.21 14:05 Сейчас в теме
(64) В приложении настраиваешь синхронизацию папки.
А в 1С, сохраняешь файл в этот каталог и выполняешь код:

НовВз=Новый ЗапускПриложенияМобильногоУстройства();
		НовВз.Действие="com.sentaroh.android.SMBSync2.ACTION_START_SYNC";   
		НовВз.Запустить(Истина);

И в фоне выполняется синхронизация каталогов
66. Zixxx 27.10.21 17:50 Сейчас в теме
(65) Синхронизация сразу по событию происходит или с какой-то задержкой? В моем случае нужно было отправлять код на порт принтера, сразу нужно было чтобы печатал.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот