0. Xershi 715 09.06.19 17:33 Сейчас в теме

Работа с файлами (обычная и управляемая форма)

Нужно загрузить файл с клиента на сервер или же, наоборот, файл загрузить с сервера на клиент, а впридачу все это на web-клиенте, да еще и асинхронно? Нет ничего проще, читай далее, как это сделать!

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. Malfarion 193 11.06.19 02:21 Сейчас в теме
С клиента на сервер
НачатьПомещениеФайла(..)


С сервера на клиент
ПолучитьФайл(...)


Использовать расширения для работы с файлами очень не удобно так как требуют установки внешнего софта/расширений, что не всегда возможно и в каждый браузер отдельно. Методы выше работают без них и на много лучше адаптированы к веб клиенту.
2. Xershi 715 11.06.19 10:52 Сейчас в теме
(1)
НачатьПомещениеФайла

В справке говорится, что нужно указать:
В веб-клиенте, если расширение работы с файлами не установлено, то параметр <ПомещаемыеФайлы>:
в интерактивном режиме должен иметь тип ДиалогВыбораФайла,
в неинтерактивном режиме СсылкаНаФайл.

Я использую не интерактивный режим. Что вы в ссылку на файл помещаете?
А для
ПолучитьФайл

Выйдет что обязательно пользователю диалог кидать, что по моему мнению не всегда нужно!
<Интерактивно> (необязательный)
Тип: Булево.
Истина - режим, в котором пользователю показывается диалог, в котором он может выбрать действие с получаемым файлом: запустить его или сохранить по выбранному расположению.
В веб-клиенте параметр должен быть равен Истина. В противном случае будет сгенерировано сообщение об ошибке.

В новой версии платформы 8.3.15 разработчики сделали новые методы работы:
https://wonderland.v8.1c.ru/blog/unifikatsiya-metodov-raboty-s-faylami/
Но пока не понятно нужно ли платформа для них или режим совместимости.
Кстати и далее там есть ссылка:
https://wonderland.v8.1c.ru/blog/uluchshenie-raboty-s-faylami-v-veb-kliente/
Которая позволяет не использовать расширение работы с файлами с версии платформы 8.3.13.1513, если указывать диалог, т.е. работать интерактивно, без привязки пути файла на клиенте к реквизиту.
3. Xershi 715 11.06.19 13:01 Сейчас в теме
(1) а второй момент, что эти методы для 1 файла, я рассматривал ситуацию, где передается 1 файл и легко расширить до множества файлов, но с вашей рекомендацией масштабировать до нескольких файлов за раз не получится.
7. Xershi 715 16.06.19 17:16 Сейчас в теме
(1) реализовал данные методы. Но как было сказано для корректной работы данных методов нужна платформа 8.3.13.1513 и выше. Режим совместимости конфигурации не влияет.
И на мобильной платформе параметр <Интерактивно> игнорируется и диалоговое окно выбора файла не отображается никогда.
Что делает реализацию еще более ограниченной.
Поэтому выкладываю обработку отдельным файлом.
4. Malfarion 193 11.06.19 16:02 Сейчас в теме
Есть аналогичные методы для группы файлов, все получится, читайте справку и зезеркалье.
5. Xershi 715 11.06.19 16:32 Сейчас в теме
(4) не универсально. Интересовал конкретный пример.
6. androgin 12.06.19 00:47 Сейчас в теме
8. Vida 11 17.06.19 20:55 Сейчас в теме
С сервера на клиент по упрощенной версии 2:

Диалог отлично показывается и отрабатывает на Тонком клиенте, а в веб-клиенте IE показывает странный диалог, на который не реагирует.

Подозреваю что это где то в настройках IE. Подскажите где искать?

Вот кусок моего кода:
			
ПолноеИмяФайла = КаталогЭкспортаДокументов + МассивФайлов[Сч].Имя; 
ПолучитьФайл(МассивФайлов[Сч].Хранение, ПолноеИмяФайла, Истина);
Прикрепленные файлы:
9. Xershi 715 17.06.19 22:59 Сейчас в теме
(8) почитайте ограничение. Ничего странного!
Когда выпустят стабильную версию 8.3.15 сделаю 3 версию, возможно они полный путь на клиенте получат иначе тоже самое будет.
10. Vida 11 18.06.19 02:18 Сейчас в теме
(9) да, ждем 8.3.15
А пока посоветуйте как быть? Попробовать по 1 сложной версии?
13. Xershi 715 18.06.19 10:37 Сейчас в теме
(10) первый и второй вариант практически не отличаются.
11. Vida 11 18.06.19 04:07 Сейчас в теме
Прошу подсказки по первому варианту ЧЯДНТ
			
ПолучаемыеФайлы = Новый Массив;	
Для Сч = 0 По МассивФайлов.Количество() - 1 Цикл
				
ОписаниеПередаваемогоФайла = Новый ОписаниеПередаваемогоФайла(МассивФайлов[Сч].Имя, МассивФайлов[Сч].Хранение);				
ПолучаемыеФайлы.Добавить(ОписаниеПередаваемогоФайла);
	    
КонецЦикла;
ОповещениеОЗавершении = Новый ОписаниеОповещения("ВыполнитьПослеПолученияФайлов", ЭтотОбъект);						
НачатьПолучениеФайлов(ОповещениеОЗавершении, ПолучаемыеФайлы, КаталогЭкспортаДокументов, Ложь);
Показать


На тонком клиенте отрабатывает и файл создает,
на веб-клиенте задает вопрос нужно ли сохранить файл
(и кто его просил вопросы задавать) и никакого файла нет((

хотя в ОповещениеОЗавершении вместо открытия у меня сообщение об успехе с полным именем - его выводит

пити разные задавала не помогает

складывается впечатление что в IE что-то не так, полазила там - ничего не нашла
Прикрепленные файлы:
12. Xershi 715 18.06.19 10:36 Сейчас в теме
(11) для начала вы не описали что у вас в переменных, а во вторых посмотрите какой код написан в примере или скачайте обработку.
Разница же видна не вооруженным взглядом.
16. Xershi 715 20.06.19 19:21 Сейчас в теме
(11) как оказалось у код был рабочий, просто были проблемы с ОС или антивирусом, и файл получался пустой!
14. Vida 11 18.06.19 13:23 Сейчас в теме
(12) Обработку скачала.

Да, код несколько упростила, но думала не критично - раз на тонком выполняется.

Мои переменные
1) МассивФайлов состоящий из структуры:
Имя (просто название без пути)
Хранение (адрес указывающий на значение во временном хранилище)

2)КаталогЭкспортаДокументов путь куда должно сохраняться состоит из выбранного в диалоге и "/", если не хватает

Прощу подсказать, что видно невооруженным глазом? У меня уже замылился наверное.
15. Xershi 715 18.06.19 15:34 Сейчас в теме
(14) скорее всего косяк в КаталогЭкспортаДокументов. Создайте лучше тему для обсуждения вашего написания кода.
17. ssn5810 82 30.06.19 09:12 Сейчас в теме
Можно указать конкретное место на сервере куда перемещаем файл с клиента ???
18. Xershi 715 30.06.19 09:48 Сейчас в теме
(17) да. Из описания и скриншотов это было не понятно?
19. ssn5810 82 30.06.19 10:03 Сейчас в теме
Зачем вопросы, проще сразу подсказать.
В итоге мне нужно загрузить текстовый (txt) файл в табличную часть внешней обработки.....
У меня пишет файл не найден...и текст переданного файла.
20. Xershi 715 30.06.19 10:19 Сейчас в теме
(19) разбирайтесь с настройками вашего сервера. И по данному описанию не понятно что вы делаете и как.
21. ssn5810 82 30.06.19 10:51 Сейчас в теме
понятно, спасибо за помощь...
22. Xershi 715 30.06.19 23:14 Сейчас в теме
Скачал 8.3.15.1489.
Перевел конфигурацию в режим совместимости 8.3.15.
Решил просто заменить на новые методы НачатьПомещениеФайловНаСервер.
И получаю ошибку:
Ошибка преобразования данных XDTO:
НачалоСвойства: param	Форма: Элемент	Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'ОписаниеПомещенногоФайла'


ОписаниеПередаваемогоФайла преобразуется в ОписаниеПомещенногоФайла, а оно не доступно на сервере.

Проверил. Ошибка вылетает даже если оставить конфигурацию на 8.3.14.
23. androgin 01.07.19 13:24 Сейчас в теме
(22) БРЕД!! Я перевел все методы в нетиповой на новые методы и прекрасно отрабатывает, как с диалогом, так и без!
Ничего там не подменяется)))
Ничто не мешает вам создать общие функции ВыгрузитьФайлы/ЗагрузитьФайлы (например) и вызывать их с оповещениями и параметрами.
24. Xershi 715 02.07.19 23:47 Сейчас в теме
(23) почитайте внимательно что написано и посмотрите что конфигуратор выдает.
В любом случае в 3 версии все корректно работает.
25. androgin 10.07.19 23:37 Сейчас в теме
(24) я не только читаю, но и практикую, к сведению!
26. Светлый ум 228 12.07.19 04:55 Сейчас в теме
(23) Бывают и экзотические косяки, просто вы везунчик или мало вариантов реализовывали
28. Xershi 715 12.07.19 08:14 Сейчас в теме
(26) Вы про что? Есть 3 вариант событий?
29. Светлый ум 228 12.07.19 10:37 Сейчас в теме
(28) я не про ваш функционал а про работу с файлами в целом
31. Xershi 715 12.07.19 13:22 Сейчас в теме
(29) понял. Да реализованы базовые сценарии обработки, что в 90% покроет потребность разработчика. Остальное конечно пилить, как нужно клиенту!
30. androgin 12.07.19 12:39 Сейчас в теме
(26) вы не читаете, что вам пишут?
Синтаксис откройте! Там все варианты перечислены!
Я не вижу реализации их у вас! Зато много слов в воздух
27. Светлый ум 228 12.07.19 04:56 Сейчас в теме
Закреплю описание статьи, теперь буду так оформлять +1
32. ccserg 37 06.08.19 18:42 Сейчас в теме
второй вариант не хочет работать
вроде как без расширения должно работать
33. Xershi 715 06.08.19 19:53 Сейчас в теме
(32) не указана платформа, тип клиента и последовательность действий. Внимательно прочтите описание.
34. ccserg 37 06.08.19 20:22 Сейчас в теме
(33)
windows_8_3_15_1534
веб клиент
открываю файл , жму Загрузить с клиента на сервер
35. Xershi 715 06.08.19 20:33 Сейчас в теме
36. ccserg 37 06.08.19 20:40 Сейчас в теме
37. Xershi 715 06.08.19 20:41 Сейчас в теме
(36) завтра проверю на 8.3.15.
Возможно надо использовать 3 версию.
38. Xershi 715 07.08.19 10:46 Сейчас в теме
(36) проверил, да все верно. Это операция требует расширения. Как сказано в описании работа без расширения возможна только в интерактивных операциях, т.к. доступа к файловой системе у 1С нету.
39. ccserg 37 07.08.19 11:38 Сейчас в теме
(38)
так а как решить ? расширение установить ?
расширение скачивается , устанавливается , но все равно не пашет
это наверно уже другая проблема правда
40. Xershi 715 07.08.19 11:59 Сейчас в теме
(39) данная кнопка работает только с расширением. Да это другая проблема. Если не получается решить, поменяйте браузер.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Ведущий программист 1С
Санкт-Петербург
зарплата от 130 000 руб.
Полный день

Ведущий программист 1С
Омск
зарплата от 70 000 руб. до 110 000 руб.
Полный день

Консультант-аналитик 1С ЗУП 3.1
Белгород
зарплата от 40 000 руб. до 50 000 руб.
Полный день

Программист 1С
Москва
зарплата от 130 000 руб. до 200 000 руб.
Полный день

Бизнес-архитектор 1С, ведущий консультант
Санкт-Петербург
Полный день