|   |   | 
| 
 | Копирование файлов с клиента на сервер | ☑ | ||
|---|---|---|---|---|
| 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. НачатьПомещениеФайлаНаСервер - Не рекомендуется использовать, начиная ... Ваши ставки господа. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |