Переключение на Главную Страницу Страницы: 1 ... 5 6 [7] 8 9  ОтправитьПечать
Очень популярная тема (более 25 ответов) Перехват диалога открытия/сохранения файла (число прочтений - 83526 )
zar
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Re: Перехват диалога открытия/сохранения файла
Ответ #90 - 19. Февраля 2013 :: 09:54
Печать  
1. не помогло - на типовой конфе вставил загрузку ВК - результат тот же
2. vkloader (1.0.0.4) - тоже не помог - результат тот же
Метод объекта "Система" РегистрироватьКомпонентыВ_HKCU - тот же результат

Такое ощущение что проблема не в регистрации в реестре (объекты в реестре появляются, объект AddIn.OpenFileDialogsManager создается). Какой то метод в самой компоненте при инициализации отрабатывается некорректно в текущей ОС, хотя на той же win8pro64 все работает. У кого нибуть эта ВК на WinServer2008R2 64 работает?
  
Наверх
 
IP записан
 
metaeditor
1c++ power user
Отсутствует


are you nuts?

Сообщений: 564
Зарегистрирован: 04. Июля 2006
Пол: Мужской
Re: Перехват диалога открытия/сохранения файла
Ответ #91 - 20. Февраля 2013 :: 09:44
Печать  
zar писал(а) 18. Февраля 2013 :: 15:23:
Кто нибуть запускал данную компоненту на WinServer2008R2 64?
При загрузке ВК в ГМ выдает маленькое окно с сообщением DoWrap failed: %s. Окно выдается 4 раза (т.е. 4 раза жмем "ОК"). После этого объект AddIn.OpenFileDialogsManager создается, методы отрабатываются - но без результата, т.е. например БлокироватьДиалоги(1) не приводит к блокировке кнопок "Открыть"/"Сохранить".
UAC отключен. В реестре ветки создаются. Пробовал версии 1.0.0.9 и со странд. HKCR с предв. вычищением реестра. В сравнении с win8pro64 ветки реестра вроде бы те же самые. В какую сторону еще можно посмотреть?

попробуй эту
  

OpenFileDialogsManager_1010.rar ( 22 KB | Загрузки )

Регистр.EAX.СводныйОстаток()
Наверх
 
IP записан
 
zar
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Re: Перехват диалога открытия/сохранения файла
Ответ #92 - 20. Февраля 2013 :: 09:51
Печать  
Версия 1.0.0.10 загрузилась нормально!!!

СПАСИБО ОГРОМНОЕ!

А чего было если не секрет?
  
Наверх
 
IP записан
 
metaeditor
1c++ power user
Отсутствует


are you nuts?

Сообщений: 564
Зарегистрирован: 04. Июля 2006
Пол: Мужской
Re: Перехват диалога открытия/сохранения файла
Ответ #93 - 20. Февраля 2013 :: 10:00
Печать  
zar писал(а) 20. Февраля 2013 :: 09:51:
Версия 1.0.0.10 загрузилась нормально!!!
СПАСИБО ОГРОМНОЕ!
А чего было если не секрет?

да там программные тонкости, библиотека "comdlg32.dll" на момент загрузки компоненты еще не была загружена в 1с, просто добавил её LoadLibrary("comdlg32.dll")
  

Регистр.EAX.СводныйОстаток()
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Перехват диалога открытия/сохранения файла
Ответ #94 - 12. Сентября 2013 :: 07:45
Печать  
скажите существует ли возможность при помощи вашей компоненты (или других) сделать недоступным (из определенной печ.формы) реквизит "число копий" в стандартном диалоге печати
  
Наверх
 
IP записан
 
metaeditor
1c++ power user
Отсутствует


are you nuts?

Сообщений: 564
Зарегистрирован: 04. Июля 2006
Пол: Мужской
Re: Перехват диалога открытия/сохранения файла
Ответ #95 - 13. Сентября 2013 :: 11:50
Печать  
dimm73 писал(а) 12. Сентября 2013 :: 07:45:
скажите существует ли возможность при помощи вашей компоненты (или других) сделать недоступным (из определенной печ.формы) реквизит "число копий" в стандартном диалоге печати

диалог печати это стандартный диалог windows и там скорее всего должна быть возможность им управлять как в диалоге открытия файла, но в этой компоненте таких функций сейчас нету.
  

Регистр.EAX.СводныйОстаток()
Наверх
 
IP записан
 
selesta
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 11
Зарегистрирован: 26. Июня 2012
Re: Перехват диалога открытия/сохранения файла
Ответ #96 - 23. Сентября 2013 :: 14:03
Печать  
компонента супер, огромное спасибо автору
пользуюсь больше года - все олично

возникло пару вопросов:
1) как можно реализовать разные ограничения для разных форм - например, стандартно в глобальных предопределенных процедурах прописаны общие ограничения, а в 2-х формах надо персонализировать - конкретно - установленый фильтр с типами файлов
2) можно ли прочитать програмно установление значение фильтра с типами файлов
3) можно ли прописать множественный фильтр, например Катринки (*.jpg *.bmp *.tiff) чтобы создать общий список приемлимых файлов и не раздувать доступный перечень. Пока удалось сэекономить только для файлов Ворд\Ексель разных форматов, указав в маске *.doc* & *.xls* - звездочку понимает как любой символ
4) где хранится последний открытый каталог? есть глюк такой - если перехожу вверх от домашнего каталога и получаю ошибку что об отстуствии доступа, то после етого второй раз диалог открывается тупо в ExtForms текущей базы и хоть ты тресни, хотя в модуле прописан каталогпользователя и опция запоминатьпоследний не используется. Куда копать?

заранее благодарю!
  
Наверх
 
IP записан
 
ShoDm
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Зарегистрирован: 30. Июля 2012
Пол: Мужской
Re: Перехватить диалог открытия/сохранения файла
Ответ #97 - 08. Октября 2013 :: 06:31
Печать  
Здравствуйте!  Мне нужно организовать регистрацию использования внешних отчетов/обработок.
Была мысль использовать вашу ВК, в частности событие глобального модуля ДиалогВыбораФайлаПриВыборе, но что-то оно у меня никак не желает работать.
вот код глобального модуля:
Код
Выбрать все
Процедура ЗагрузитьВнешниеКомпоненты()

	ПутьККаталогу = КаталогИБ() + ?(Прав(КаталогИБ(),1) = "\","","\") + "SystemData\dll\";
	СписокКомпонент = СоздатьОбъект("СписокЗначений");
	СписокКомпонент.ДобавитьЗначение("OpenFileDialogsManager.dll");


	РазмерСписка = СписокКомпонент.РазмерСписка();
	Для НомерКомпоненты = 1 По РазмерСписка Цикл
		ИмяКомпоненты = СписокКомпонент.ПолучитьЗначение(НомерКомпоненты);
		Если ЗагрузитьВнешнююКомпоненту(ПутьККаталогу+ИмяКомпоненты) = 0 Тогда
			Сообщить("Компонента <"+ИмяКомпоненты+"> не загружена.","!!!");
		КонецЕсли;
	КонецЦикла;


КонецПроцедуры // ЗагрузитьВнешниеКомпоненты
//_____________________________________________________________________________
Процедура ПриНачалеРаботыСистемы()

	ЗагрузитьВнешниеКомпоненты();

КонецПроцедуры // ПриНачалеРаботыСистемы()
//_____________________________________________________________________________
Процедура ЗарегистрироватьИспользованиеВнешнегоОтчета(ПолноеИмяФайла)

	// Действия, регистрирующие использование внешнего отчета

КонецПроцедуры // ЗарегистрироватьИспользованиеВнешнегоОтчета(ПолноеИмяФайла)
//_____________________________________________________________________________
Процедура ДиалогВыбораФайлаПриВыборе(ПолноеИмяФайла, РежимДиалога)

	Сообщить("Выбран отчет: " + ПолноеИмяФайла);

	Если РежимДиалога = 0 Тогда
		ЗарегистрироватьИспользованиеВнешнегоОтчета(ПолноеИмяФайла);
	КонецЕсли;
КонецПроцедуры // ДиалогВыбораФайлаПриВыборе(ПолноеИмяФайла, РежимДиалога)
//_____________________________________________________________________________
//// Если это событие определено в глобальном модуле, то стандартный диалог открытия файлов не
//// открывается, но сообщение "Открыт диалог выбора файла." выдается.
//Функция ДиалогВыбораФайлаПриОткрытии(РежимДиалога)
//	Сообщить("Открыт диалог выбора файла.");
//КонецФункции // ДиалогВыбораФайлаПриОткрытии(РежимДиалога)
_ 


Вы не могли бы объяснить что я делаю не так?
  
Наверх
 
IP записан
 
metaeditor
1c++ power user
Отсутствует


are you nuts?

Сообщений: 564
Зарегистрирован: 04. Июля 2006
Пол: Мужской
Re: Перехват диалога открытия/сохранения файла
Ответ #98 - 08. Октября 2013 :: 15:15
Печать  
selesta писал(а) 23. Сентября 2013 :: 14:03:
компонента супер, огромное спасибо автору
пользуюсь больше года - все олично

возникло пару вопросов:
1) как можно реализовать разные ограничения для разных форм - например, стандартно в глобальных предопределенных процедурах прописаны общие ограничения, а в 2-х формах надо персонализировать - конкретно - установленый фильтр с типами файлов

объявить в гл. модуле переменную с объектом компоненты и в зависимости от открытой формы в процедуре
Функция ДиалогВыбораФайлаПриОткрытии(РежимДиалога)
если ... тогда менеджерДиалогов.УстановитьФильтр(...)
иначеесли... тогда менеджерДиалогов.УстановитьФильтр(...)
КонецФункции
устанавливать фильтр
Цитата:
2) можно ли прочитать програмно установление значение фильтра с типами файлов

вообще можно но в компоненте этого сейчас нет
Цитата:
3) можно ли прописать множественный фильтр, например Катринки (*.jpg *.bmp *.tiff) чтобы создать общий список приемлимых файлов и не раздувать доступный перечень. Пока удалось сэекономить только для файлов Ворд\Ексель разных форматов, указав в маске *.doc* & *.xls* - звездочку понимает как любой символ

можно. нужно писать так например:
менеджерДиалогов.УстановитьФильтр("Документы MS Office|*.xls;*.doc|Катринки|*.jpg;*.bmp;*.tiff");

Цитата:
4) где хранится последний открытый каталог? есть глюк такой - если перехожу вверх от домашнего каталога и получаю ошибку что об отстуствии доступа, то после етого второй раз диалог открывается тупо в ExtForms текущей базы и хоть ты тресни, хотя в модуле прописан каталогпользователя и опция запоминатьпоследний не используется. Куда копать?

а как у тебя получилось перейти в верхний каталог? какой параметр указывается в менеджерДиалогов.ЗапретитьИзменениеТекущегоКаталога() ?

  

Регистр.EAX.СводныйОстаток()
Наверх
 
IP записан
 
metaeditor
1c++ power user
Отсутствует


are you nuts?

Сообщений: 564
Зарегистрирован: 04. Июля 2006
Пол: Мужской
Re: Перехватить диалог открытия/сохранения файла
Ответ #99 - 08. Октября 2013 :: 15:16
Печать  
ShoDm писал(а) 08. Октября 2013 :: 06:31:
Здравствуйте!  Мне нужно организовать регистрацию использования внешних отчетов/обработок.
Была мысль использовать вашу ВК, в частности событие глобального модуля ДиалогВыбораФайлаПриВыборе, но что-то оно у меня никак не желает работать.

в функции
Функция ДиалогВыбораФайлаПриОткрытии(РежимДиалога)
КонецФункции

нужно обязательно возвращать 0 или 1
  

Регистр.EAX.СводныйОстаток()
Наверх
 
IP записан
 
ShoDm
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Зарегистрирован: 30. Июля 2012
Пол: Мужской
Re: Перехватить диалог открытия/сохранения файла
Ответ #100 - 17. Октября 2013 :: 10:11
Печать  
metaeditor писал(а) 08. Октября 2013 :: 15:16:
в функции
Функция ДиалогВыбораФайлаПриОткрытии(РежимДиалога)
КонецФункции

нужно обязательно возвращать 0 или 1


Спасибо!
Теперь диалог открытия файлов открывается, обработки запускаются.
Процедуру ДиалогВыбораФайлаПриВыборе(ПолноеИмяФайла, РежимДиалога) переделеал в функцию ....
НО: все равно в ДиалогВыбораФайлаПриВыборе не попадает ни при каких обстоятельствах.

Может что-то еще не учел?
  
Наверх
 
IP записан
 
metaeditor
1c++ power user
Отсутствует


are you nuts?

Сообщений: 564
Зарегистрирован: 04. Июля 2006
Пол: Мужской
Re: Перехватить диалог открытия/сохранения файла
Ответ #101 - 17. Октября 2013 :: 10:37
Печать  
ShoDm писал(а) 17. Октября 2013 :: 10:11:
metaeditor писал(а) 08. Октября 2013 :: 15:16:
в функции
Функция ДиалогВыбораФайлаПриОткрытии(РежимДиалога)
КонецФункции

нужно обязательно возвращать 0 или 1


Спасибо!
Теперь диалог открытия файлов открывается, обработки запускаются.
Процедуру ДиалогВыбораФайлаПриВыборе(ПолноеИмяФайла, РежимДиалога) переделеал в функцию ....
НО: все равно в ДиалогВыбораФайлаПриВыборе не попадает ни при каких обстоятельствах.

Может что-то еще не учел?


Код
Выбрать все
Процедура ДиалогВыбораФайлаПриВыборе(ПолноеИмяФайла, РежимДиалога)
КонецПроцедуры 



наоборот должна быть процедурой и и менно с таким названием. и в ней уже нельзя отменить выбор возвратом 0 или 1

  

Регистр.EAX.СводныйОстаток()
Наверх
 
IP записан
 
ShoDm
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Зарегистрирован: 30. Июля 2012
Пол: Мужской
Re: Перехватить диалог открытия/сохранения файла
Ответ #102 - 17. Октября 2013 :: 11:27
Печать  
metaeditor писал(а) 17. Октября 2013 :: 10:37:
Код
Выбрать все
Процедура ДиалогВыбораФайлаПриВыборе(ПолноеИмяФайла, РежимДиалога)
КонецПроцедуры 



наоборот должна быть процедурой и и менно с таким названием. и в ней уже нельзя отменить выбор возвратом 0 или 1



...и этот вариант попробовал. Эффект - тот же. Точнее нет эффекта.  Может Вы согласитесь посмотреть в мою конфу? (во вложенном файле просто заархивиованный каталог БД, нужно просто распаковать)
  

OFDM_Test_001.rar ( 34 KB | Загрузки )
Наверх
 
IP записан
 
metaeditor
1c++ power user
Отсутствует


are you nuts?

Сообщений: 564
Зарегистрирован: 04. Июля 2006
Пол: Мужской
Re: Перехват диалога открытия/сохранения файла
Ответ #103 - 17. Октября 2013 :: 12:21
Печать  
посмотрел код, оказывается это событие вызывается если установлен один из методов
менеджерДиалогов.ЗапретитьФайловыеОперации(1);
или
менеджерДиалогов.ЗапретитьИзменениеТекущегоКаталога(...);
  

Регистр.EAX.СводныйОстаток()
Наверх
 
IP записан
 
ShoDm
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Зарегистрирован: 30. Июля 2012
Пол: Мужской
Re: Перехват диалога открытия/сохранения файла
Ответ #104 - 17. Октября 2013 :: 12:23
Печать  
metaeditor писал(а) 17. Октября 2013 :: 12:21:
посмотрел код, оказывается это событие вызывается если установлен один из методов
менеджерДиалогов.ЗапретитьФайловыеОперации(1);
или
менеджерДиалогов.ЗапретитьИзменениеТекущегоКаталога(...);


Действительно работает!

А нельзя ли с этим что-нибудь сделать?  Смущённый В смысле не запрещая ничего попась в событие

В любом случае, спасибо превеликое!  Улыбка
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 5 6 [7] 8 9 
ОтправитьПечать