Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема ФС.ВыбратьФайл() в классе не запоминает имя файла. (число прочтений - 4618 )
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
ФС.ВыбратьФайл() в классе не запоминает имя файла.
06. Октября 2011 :: 13:40
Печать  
В классе пишу такую функцию:
Код
Выбрать все
// ===============================
Функция ВыбратьФайл(Предсталвение="Все файлы (*.*)|*.*", Маска="*",ИмяКаталога="",ИмяФайла="") Экспорт
	_ИмяФайла = "";
	_ИмяКаталога = "";
	Если ФС.ВыбратьФайл(0,_ИмяФайла,_ИмяКаталога,"Выберите файл",Предсталвение,Маска) = 1 Тогда
		Сообщить("_ИмяФайла = "+_ИмяФайла);
		ИмяКаталога = _ИмяКаталога;
		ИмяФайла = _ИмяФайла;
		Возврат(_ИмяКаталога + _ИмяФайла);
	КонецЕсли;
КонецФункции
 



Вызываю из обработки:
Код
Выбрать все
ИмяКаталога = "";
		ИмяФайла="";
		ПолнИмяФайла = СервисФайлы.ВыбратьФайл("Все файлы (*.*)|*.*","*",ИмяКаталога,ИмяФайла);
		Сообщить(ПолнИмяФайла);
 


В результате работы этого метода полный путь состоит только из каталога. Что может быть не так?

Прикладываю класс (для работы надо ВК RiK_SQL.dll)
  

_____________010.ert ( 56 KB | Загрузки )
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: ФС.ВыбратьФайл() в классе не запоминает имя файла.
Ответ #1 - 06. Октября 2011 :: 13:46
Печать  
может попробовать пеерименование  название метода ВыбратьФайл
на что либо другое.
  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ФС.ВыбратьФайл() в классе не запоминает имя файла.
Ответ #2 - 06. Октября 2011 :: 13:48
Печать  
Z1 писал(а) 06. Октября 2011 :: 13:46:
может попробовать пеерименование  название метода ВыбратьФайл
на что либо другое.


Пробовал переименовать функцию на "ВыбратьФайл2" - не помогает.
  
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: ФС.ВыбратьФайл() в классе не запоминает имя файла.
Ответ #3 - 06. Октября 2011 :: 13:50
Печать  
pvase писал(а) 06. Октября 2011 :: 13:48:
Z1 писал(а) 06. Октября 2011 :: 13:46:
может попробовать пеерименование  название метода ВыбратьФайл
на что либо другое.


Пробовал переименовать функцию на "ВыбратьФайл2" - не помогает.

ну тогда после каждой строки в этой функции ставь промежуточные печати чтобы увидеть что полностью происходит.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: ФС.ВыбратьФайл() в классе не запоминает имя файла.
Ответ #4 - 06. Октября 2011 :: 13:54
Печать  
ёпт..

ИмяФайла и _ИмяФайла .. найди 2 отличия в имени.

ЗЫ: смотри параметры своего метода..
  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ФС.ВыбратьФайл() в классе не запоминает имя файла.
Ответ #5 - 06. Октября 2011 :: 14:21
Печать  
Глюк найден, но пока не понятно как решить.

Создается на форме кнопка и ей присваивается объект "MSComctlLib.Toolbar" через класс.
Потом через менеджер событий перехватывается событие "ButtonClick".
В текущей форме вызывается метод, в котором выбирается файл. И вот в этом случае выбор файла не проходит.

Прилагаю базу с классом и обработкой. Необходимо из меню запустить Обработки-Новый2 и нажать кнопку меню потом выбрать файл.
« Последняя редакция: 06. Октября 2011 :: 20:01 - pvase »  

Testfiles.zip ( 23 KB | Загрузки )
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: ФС.ВыбратьФайл() в классе не запоминает имя файла.
Ответ #6 - 06. Октября 2011 :: 16:12
Печать  
Попробуй отдать событие выбора в другой метод по обработке ожидания, например. Или юзать не ФС, а другие методы(точнее методы других объектов, vhs, например или FDSubst1C , что еще лучше) для выбора файла.
  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ФС.ВыбратьФайл() в классе не запоминает имя файла.
Ответ #7 - 06. Октября 2011 :: 20:05
Печать  
Выбор файла происходит в обработке. Похоже что мешает как раз нажатие кнопки в меню. Потому что если вызвать процедуру КнопкаПроверки() по нажатии кнопки на форме (Добавить кнопку и прописать формулу КнопкаПроверки()) - то все прекрасно работает (Кнопка2).
  

Testfiles2.zip ( 31 KB | Загрузки )
Наверх
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ФС.ВыбратьФайл() в классе не запоминает имя файла.
Ответ #8 - 06. Октября 2011 :: 20:09
Печать  
Еще забавнее то, что Windiws Server 2003 - все хорошо работает, а на Windows 7 X64 - глюк.
1С++ - 3.2.3.16
Formex - 2.0.5.104

p.s.
1C++ 2.5.05 - дает тот же результат.
  
Наверх
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ФС.ВыбратьФайл() в классе не запоминает имя файла.
Ответ #9 - 07. Октября 2011 :: 06:13
Печать  
Глюк был в компоненте FDsubst 1С, установил последнюю версию (3.0.20) - ошибка исчезла. Всем спасибо.
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать