Диалог выбора файла и Mozilla FireFox 32.0.3

  1. 9 г. назад

    Mozilla FireFox 32.0.3
    1C 8.2.19.106
    Режим: веб-клиент

    Имеется файлик-картинка "01.JPG", сохранен в базе. Чтобы сохранить к себе на локальную машину, жмем "Сохранить как...", открывается Диалог выбора.

    	ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
    	ВыборФайла.МножественныйВыбор = Ложь;
    

    Указываем папку, жмем ОК. Состояние: "Идет сохранение файла 01.JPG. Подождите...", а затем БАЦ! Ошибка доступа к файлу 01.JPG.

    В Internet Explorer всё прекрасно работает, никаких ошибок.

    Выяснил, что диалог выбора файла "теряет" выбранный путь к файлу:
    Результат такой:

    ВыборФайла.Каталог = "";
    ВыборФайла.ПолноеИмяФайла = "01.JPG";

    Сталкивались с таким? Может, я что-то не знаю?

  2. http://itrunet.ru/arenda-1c/podderzhka/-l1-mf.html

    Ответы: (2)
  3. (1) Спасибо. Это я уже видел. Работа с файлами есть. Речь о том, что диалог возвращает не полный путь типа "c:\folder\01.jpg", а "01.jpg" без указания папки

    Ответы: (6)
  4. на bugboard.v8.1c.ru я эту тему не нашел.

  5. покажь полный код сохранения файла

  6. Общий модуль "РаботаСФайламиСлужебныйКлиент" в УНФ. Процедура "СохранитьКак"

  7. (2) кстати, возможно это сервер возвращает, он пути типа c:\ не соображает, ему пути к шарам нужно скармливать \\Server\Shara\File
    И шара должна быть в правах USR1CV8 который серверный от 1С рулит.

    Ответы: (7)
  8. (6) Для Интернет эксплорера ведь сервер всё возвращает.

  9. Фрагмент:

    		// выбираем путь к файлу на диске
    		ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
    		ВыборФайла.МножественныйВыбор = Ложь;
    		ВыборФайла.ПолноеИмяФайла = ИмяСРасширением;
    		Фильтр = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
    			НСтр("ru = 'Все файлы (*.%1)|*.%1'"), Расширение, Расширение);
    		ВыборФайла.Фильтр = Фильтр;
    		ВыборФайла.Каталог = ПутьВыбора;
    		
    		Если ВыборФайла.Выбрать() Тогда
    			
    			АдресФайла = ДанныеФайла.НавигационнаяСсылкаТекущейВерсии;
    			
    			Если ДанныеФайла.ТекущаяВерсия <> ДанныеФайла.Версия Тогда
    				АдресФайла = РаботаСФайламиСлужебныйВызовСервера.ПолучитьНавигационнуюСсылкуДляОткрытия(
    					ДанныеФайла.Версия, УникальныйИдентификатор);
    			КонецЕсли;	
    			
    			ИмяФайла = ОбщегоНазначенияКлиентСервер.ПолучитьИмяСРасширением(
    				ДанныеФайла.ПолноеНаименованиеВерсии, ДанныеФайла.Расширение);
    			
    			РазмерВМб = ДанныеФайла.Размер / (1024 * 1024);
    			
    			ТекстПояснения =
    			СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
    				НСтр("ru = 'Выполняется сохранение файла ""%1"" (%2 Мб)...
    					       |Пожалуйста, подождите.'"),
    				ИмяФайла, 
    				ФайловыеФункцииСлужебныйКлиентСервер.ПолучитьСтрокуСРазмеромФайла(РазмерВМб));
    				
    			Состояние(ТекстПояснения);	
    			
    			Файл = Новый Файл(ВыборФайла.ПолноеИмяФайла);
    			Если Файл.Существует() Тогда
    				Если ПутьКФайлуВКеше <> ВыборФайла.ПолноеИмяФайла Тогда
    					Файл.УстановитьТолькоЧтение(Ложь);
    					УдалитьФайлы(ВыборФайла.ПолноеИмяФайла);
    				КонецЕсли;
    			КонецЕсли;
    			
    			Если ПутьКФайлуВКеше = "" Тогда
    				
    				ПередаваемыеФайлы = Новый Массив;
    				Описание = Новый ОписаниеПередаваемогоФайла(ВыборФайла.ПолноеИмяФайла, АдресФайла);
    				ПередаваемыеФайлы.Добавить(Описание);
    				
    				ПутьКФайлу = Файл.Путь;
    				ПутьКФайлу = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ПутьКФайлу, ОбщегоНазначенияКлиентПовтИсп.ТипПлатформыКлиента());
    				
    				// Сохраним Файл из БД на диск
    				Если ПолучитьФайлы(ПередаваемыеФайлы,, ПутьКФайлу, Ложь) Тогда
    					
    					// для варианта с хранением файлов на диске (на сервере) удаляем Файл из временного хранилища после получения
    					Если ЭтоАдресВременногоХранилища(АдресФайла) Тогда
    						УдалитьИзВременногоХранилища(АдресФайла);
    					КонецЕсли;
    					
    					Если СохранятьСРасшифровкой Тогда
    						ИмяФайлаСПутем = ВыборФайла.ПолноеИмяФайла;
    						
    						Попытка
    							МенеджерКриптографии = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьМенеджерКриптографии();
    							МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу = Пароль;
    							
    							ИмяФайлаСПутемРасшифрованное = ИмяФайлаСПутем + ".dec";
    							МенеджерКриптографии.Расшифровать(ИмяФайлаСПутем, ИмяФайлаСПутемРасшифрованное);
    							
    							УдалитьФайлы(ИмяФайлаСПутем);
    							ПереместитьФайл(ИмяФайлаСПутемРасшифрованное, ИмяФайлаСПутем);
    						Исключение
    							УдалитьФайлы(ИмяФайлаСПутем);
    							ВызватьИсключение;
    						КонецПопытки;
    					КонецЕсли;
    					
    					
    					НовыйФайл = Новый Файл(ВыборФайла.ПолноеИмяФайла);
    					
    					НовыйФайл.УстановитьУниверсальноеВремяИзменения(
    						ДанныеФайла.ДатаМодификацииУниверсальная);
    					
    					Состояние(НСтр("ru = 'Файл успешно сохранен'"), , ВыборФайла.ПолноеИмяФайла);
    				КонецЕсли;
    			Иначе
    				Если ПутьКФайлуВКеше <> ВыборФайла.ПолноеИмяФайла Тогда
    					КопироватьФайл(ПутьКФайлуВКеше, ВыборФайла.ПолноеИмяФайла);
    				КонецЕсли;
    				Состояние(НСтр("ru = 'Файл успешно сохранен'"), , ВыборФайла.ПолноеИмяФайла);
    			КонецЕсли;
    
    Ответы: (19)
  10. Не совсем это по снеговику, но может на что-то натолкнет...
    В клюшках работало все себе и работало... Тут - бац! Поставили седьмые окна, да еще и 64 бита...
    И понеслось...
    Все внешние обработки (которые прописаны в конфе) перестали на других компе запускаться (одноранговая сетка, 3 компа).
    Выкрутилась:
    ОткрытьФормуМодально("Отчет", СписокПараметров, КаталогИБ() + "\Dopolnitelno\ЖурналКассира-Операциониста.ert");
    КаталогИБ() - рабочий каталог БД (кстати, посмотри, что возвращает 1С ).
    \Dopolnitelno\ЖурналКассира-Операциониста.ert - остальной путь.
    Реально файл лежит - D:\1Cv7\DB\Dopolnitelno

    Ответы: (10)
  11. 30.09.2014 17:28:09 отредактировано Масянька

    +(9) Забыла: а до этого в ОткрытьФормуМодально("Отчет", СписокПараметров, КаталогИБ() + "\Dopolnitelno\ЖурналКассира-Операциониста.ert") вместо КаталогИБ() + "\Dopolnitelno\ЖурналКассира-Операциониста.ert" был прописан сетевой путь (имя компа и т. д.)

    Ответы: (11)
  12. Масянька был прописан сетевой путь

    это похоже на проблемы сетевого доступа. у себя я уже и гостевую уч.запись включил и доступ всем на всё дал. Фих там. Ошибка, и всё тут.

    Ответы: (12)
  13. (11) Согласна - похоже. В седьмых окнах чего там только не рыли... Там, блин, так накрутили с безопасностью - мама не горюй.
    Я уже точно не помню, но (по-моему) там была ошибка тоже нечто с доступом. А может и нет.
    Короче, ройся... ;)

  14. 30.09.2014 18:04:33 отредактировано Bekas

    Стоп. До прав доступа, имхо, еще рано копать.
    Открывается форма выбора файла, я выбираю путь и имя файла. Жму ОК, и тут же смотрю имена: Каталог = "", Имя файла = "01.JPG".
    Понимаете?
    Каталог - пустая строка.
    Куда он (кстати, кто? FireFox? или 1С?) ее "потерял"?

    Ответы: (15)
  15. Еще был прикол со снеговиком.
    Сервак и полтора десятка зверей.
    Поставила новую БД - с машины одного зверя на сервак. Подключила остальным зверям. Ни один из других зайти в новую БД не может - файловая ошибка... Долго плясала с бубном... Оказалось: админ (кАзел) настроил сервак таким макаром, что доступ имеет к созданному файлу имеет только тот зверь, который его создал. Хотя на весь диск (на серваке) - общий доступ. В общем, пришлось саму папку с БД делать общей.

    PS Не знаю понятно написала или нет... Зверь = юзерь = пользователь.

    Ответы: (16)
  16. (13) Говорю же - смотри, что возвращает Каталог. И с каким доступом.

  17. (14) С этим всё в порядке - база не файловая. На сервере.

  18. Поправьте меня, если я ошибаюсь. Не похоже на права доступа к папке. Любой веб-клиент запущен на моей машине от моего имени. В первом случае - Internet Explorer записывает файл в указанную мной папку, во втором случае - Mozilla FireFox не хочет это делать.

  19. ВыборФайла.ПолноеИмяФайла
    ВыборФайла.Каталог

    какие там значения до строки
    Если ВыборФайла.Выбрать() Тогда

    и какие - после?

  20. (8) а где у тебя учитывается ВыборФайла.Каталог после выбора файла?

  21. До выбора - пустые строки. Счас выбываю в офлайн. Завтра продолжу.

  22. В общем, скачал Mozilla FireFox 14.0.1 Portable. Подключился к базе, выбрал куда сохранять файл, оно послушно всё отработало.

    Ответы: (22)
  23. (21) попробуй на 27 релизе огнелиса. они в последних релизах там какие-то апи поменяли, возможно, в этом собака порылась.

    14-й слишком древний, а 27-й нормальный

    Ответы: (23)
  24. (22) У меня 32.0.3. Ничё так...

    Ответы: (24)
  25. (23) сабж работает?

    Ответы: (25)
  26. (24) Как проверять-то?

    Ответы: (26)
  27. (25) сохрани файл через веб-клиент

    Ответы: (27)
  28. (26) Сейчас у меня нет снеговика под рукой.

или зарегистрируйтесь чтобы ответить!