|
Копирование файлов с клиента на сервер | ☑ | ||
---|---|---|---|---|
0
Pol1C
27.08.21
✎
11:26
|
Добрый день
Помещаю файлы во временное хранилище через НачатьПомещениеФайловНаСервер Далее сохраняю их &НаСервере Функция ЗаписатьНаСервере(АдресХранилища, ЛокальныйАдресКаталога, ИмяФайла, РасширениеФайла); ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресХранилища); Попытка СоздатьКаталог(ЛокальныйАдресКаталога); ДвоичныеДанные.Записать(ЛокальныйАдресКаталога + ИмяФайла + "." + РасширениеФайла); УдалитьИзВременногоХранилища(АдресХранилища); Исключение ЗаписьЖурналаРегистрации("Запись файла на сервере.", УровеньЖурналаРегистрации.Ошибка, , ,ОписаниеОшибки()); ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ОписаниеОшибки()); КонецПопытки; КонецФункции В тонком клиенте все работает, но в web-клиенте нет и ошибки не выдает. |
|||
1
ДенисЧ
27.08.21
✎
11:34
|
А расширение для работы с файлами установил для веб-клиента?
|
|||
2
Pol1C
27.08.21
✎
11:40
|
(1) Да
|
|||
3
Garykom
гуру
27.08.21
✎
11:44
|
браузер перезапусти
|
|||
4
Pol1C
27.08.21
✎
11:57
|
(3) Не помогло
веб-клиент работает удаленно через vpn |
|||
5
Pol1C
30.08.21
✎
10:42
|
Подниму разок
|
|||
6
lodger
30.08.21
✎
11:29
|
(2) НачатьПодключениеРасширенияРаботыСФайлами дергал?
|
|||
7
Pol1C
30.08.21
✎
12:44
|
(6) &НаКлиенте
Процедура СписокФайловФайлНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) НачатьПодключениеРасширенияРаботыСФайлами(Новый ОписаниеОповещения("ОповещениеПодключенияРасширенияРаботыСФайлами", ЭтотОбъект)); КонецПроцедуры &НаКлиенте Процедура ОповещениеПодключенияРасширенияРаботыСФайлами(Подключено, ДополнительныеПараметры) Экспорт Если Подключено Тогда ДиалогОткрытия = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогОткрытия.ПолноеИмяФайла = ""; Фильтр = "Файл (*.pdf;*.jpg;*.jpeg;*.tif)|*.pdf;*.jpg;*.jpeg;*.tif|"; ДиалогОткрытия.Фильтр = Фильтр; ДиалогОткрытия.МножественныйВыбор = Ложь; ДиалогОткрытия.Заголовок = "Выберите файлы"; ДиалогОткрытия.Показать(Новый ОписаниеОповещения("ОповещениеВыборФайла", ЭтотОбъект)); Иначе Сообщить("Не подключено расширение для работы с файлами!!"); КонецЕсли; КонецПроцедуры |
|||
8
lodger
30.08.21
✎
13:29
|
(7) ну если тебе западло сразу весь код работы с файлами выкладывать...
давайте теперь посмотрим, как ты наполнил ОписанияПередаваемыхФайлов |
|||
9
Pol1C
30.08.21
✎
13:47
|
(8) Сорри
&НаКлиенте Процедура СписокФайловФайлНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) НачатьПодключениеРасширенияРаботыСФайлами(Новый ОписаниеОповещения("ОповещениеПодключенияРасширенияРаботыСФайлами", ЭтотОбъект)); КонецПроцедуры // Процедура прикрепления файлов к документу &НаКлиенте Процедура ОповещениеПодключенияРасширенияРаботыСФайлами(Подключено, ДополнительныеПараметры) Экспорт Если Подключено Тогда ДиалогОткрытия = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогОткрытия.ПолноеИмяФайла = ""; Фильтр = "Файл (*.pdf;*.jpg;*.jpeg;*.tif)|*.pdf;*.jpg;*.jpeg;*.tif|"; ДиалогОткрытия.Фильтр = Фильтр; ДиалогОткрытия.МножественныйВыбор = Ложь; ДиалогОткрытия.Заголовок = "Выберите файлы"; ДиалогОткрытия.Показать(Новый ОписаниеОповещения("ОповещениеВыборФайла", ЭтотОбъект)); Иначе Сообщить("Не подключено расширение для работы с файлами!!"); КонецЕсли; КонецПроцедуры // Процедура прикрепления файлов к документу &НаКлиенте Процедура ОповещениеВыборФайла(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт Если ВыбранныеФайлы <> Неопределено И ВыбранныеФайлы.Количество() > 0 Тогда ЭтотОбъект.ТекущийЭлемент.ТекущиеДанные.Файл = ВыбранныеФайлы[0]; ЭтотОбъект.ТекущийЭлемент.ТекущиеДанные.ПутьКФайлуВХранилище = ИмяСерверноФайлов(ЭтотОбъект.ТекущийЭлемент.ТекущиеДанные.Файл, ЭтотОбъект); ЭтотОбъект.ТекущийЭлемент.ТекущиеДанные.ПризнакРедактирования = Истина; ЭтаФорма.Модифицированность = Истина; Иначе Сообщить("Нет выбранных файлов!"); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) МассивПолучаемыхФайлов = Новый Массив; Для Каждого ТекущаяСтрока Из ЭтотОбъект.Объект.СписокФайлов Цикл Если ТекущаяСтрока.ПризнакРедактирования = Истина Тогда МассивПолучаемыхФайлов.Добавить(Новый ОписаниеПередаваемогоФайла(ТекущаяСтрока.Файл)); КонецЕсли; КонецЦикла; ОписаниеОповещения = Новый ОписаниеОповещения("ЗагрузитьЗавершение", ЭтотОбъект); Идентификатор = Новый УникальныйИдентификатор; НачатьПомещениеФайловНаСервер(ОписаниеОповещения,,, МассивПолучаемыхФайлов, Идентификатор); КонецПроцедуры &НаКлиенте Процедура ЗагрузитьЗавершение(ОписаниеФайла, ДопПараметры) Экспорт Для Каждого Строка Из ОписаниеФайла Цикл Для Каждого ТекСтрока Из ЭтотОбъект.Объект.СписокФайлов Цикл Если Строка.СсылкаНаФайл.Файл.ПолноеИмя = ТекСтрока.Файл Тогда ПолноеИмяФайла = Сред(ТекСтрока.ПутьКФайлуВХранилище, СтрНайти(ТекСтрока.ПутьКФайлуВХранилище, "\", НаправлениеПоиска.СКонца)+1); ИмяФайла = Лев(ПолноеИмяФайла, Найти(ПолноеИмяФайла, ".")-1); РасширениеФайла = Сред(ПолноеИмяФайла, Найти(ПолноеИмяФайла, ".")+1); ЛокальныйАдресКаталога = Лев(ТекСтрока.ПутьКФайлуВХранилище, СтрНайти(ТекСтрока.ПутьКФайлуВХранилище, "\", НаправлениеПоиска.СКонца)); КонецЕсли; КонецЦикла; ЗаписатьНаСервере(Строка.Адрес, ЛокальныйАдресКаталога, ИмяФайла, РасширениеФайла); КонецЦикла; КонецПроцедуры &НаСервере Функция ЗаписатьНаСервере(АдресХранилища, ЛокальныйАдресКаталога, ИмяФайла, РасширениеФайла); ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресХранилища); Попытка СоздатьКаталог(ЛокальныйАдресКаталога); ДвоичныеДанные.Записать(ЛокальныйАдресКаталога + ИмяФайла + "." + РасширениеФайла); УдалитьИзВременногоХранилища(АдресХранилища); Исключение ЗаписьЖурналаРегистрации("Запись файла на сервере.", УровеньЖурналаРегистрации.Ошибка, , ,ОписаниеОшибки()); ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ОписаниеОшибки()); КонецПопытки; КонецФункции |
|||
10
lodger
30.08.21
✎
14:33
|
попробуй вместо
Идентификатор = Новый УникальныйИдентификатор передать ничего или ЭтотОбъект.УникальныйИдентификатор; |
|||
11
Pol1C
31.08.21
✎
10:50
|
(10) Не помогло
|
|||
12
Вафель
31.08.21
✎
10:54
|
попробуй через одиночный файл
НачатьПомещениеФайлаНаСервер вроде как не требуется для этого расширение |
|||
13
lodger
31.08.21
✎
10:55
|
(11) после (12) попробуй по кнопке помещать файл, а не в ПередЗаписью.
|
|||
14
Вафель
31.08.21
✎
10:56
|
Только если с выбором файла сразу
НачатьПомещениеФайлаНаСервер(<ОписаниеОповещенияОЗавершении>, <ОписаниеОповещенияОХодеВыполнения>, <ОписаниеОповещенияПередНачалом>, <Адрес>, <ПараметрыДиалога>, <УникальныйИдентификаторФормы>) |
|||
15
Pol1C
31.08.21
✎
16:05
|
(13) Ты прав, по кнопке все заработало.
Всем спасибо за помощь. Буду думать как лучше исправить |
|||
16
lodger
01.09.21
✎
09:21
|
(15) делаем вывод - недокументированная фича.
НачатьПомещениеФайлаНаСервер не работает в процедуре ПередЗаписью в веб-клиенте. или наоборот: НачатьПомещениеФайлаНаСервер какого-то хрена работает в процедуре ПередЗаписью в тонком-клиенте. |
|||
17
Garykom
гуру
01.09.21
✎
09:31
|
(16) баг это а не фича
|
|||
18
ДенисЧ
01.09.21
✎
09:43
|
(17) В (16) это продокументировано. Значит, фича.
|
|||
19
Garykom
гуру
01.09.21
✎
09:51
|
(18) Это когда Миста стала официальным ресурсом фирмы 1С?
|
|||
20
sikuda
01.09.21
✎
09:59
|
НачатьПомещениеФайлаНаСервер - устаревший метод, тестируем ПоместитьФайлНаСерверАсинх
|
|||
21
ДенисЧ
01.09.21
✎
10:00
|
(19) А когда перестала? )))
|
|||
22
sikuda
01.09.21
✎
10:03
|
ПоместитьФайл - Не рекомендуется использовать, начиная с версии 8.3.13.
НачатьПомещениеФайла - Не рекомендуется использовать, начиная с версии 8.3.15. НачатьПомещениеФайлаНаСервер - Не рекомендуется использовать, начиная ... Ваши ставки господа. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |