Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Сохранить как... через Yoksel (число прочтений - 4190 )
ziflex
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Местоположение: Владивосток
Зарегистрирован: 05. Мая 2011
Пол: Мужской
Сохранить как... через Yoksel
02. Ноября 2011 :: 04:52
Печать  
Доброго времени суток, коллеги!

Хочу заменить штатный механизм сохранения в xls на Yoksel. Да вот незадача - не могу найти способа перехвата события "Сохранить как".

Смотрел эту компоненту - OpenFileDialogsManager. Но по описанию мне показалось, что она не совсем подойдет.

Уверен, многие уже  реализовали это.

  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Сохранить как... через Yoksel
Ответ #1 - 08. Ноября 2011 :: 09:19
Печать  
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Сохранить как... через Yoksel
Ответ #2 - 08. Ноября 2011 :: 10:11
Печать  
  
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Сохранить как... через Yoksel
Ответ #3 - 09. Ноября 2011 :: 12:05
Печать  
Самый простой вариант.
1.Подгружаешь компоненту:RWidjets.dll и SpreadSheet.dll
2.В глобальнике Создаешь процедуру:
Код
Выбрать все
Процедура ПриПолученииКоманды(Команда,Флаг)
	Если Команда=57604 Тогда
// это команда из меню файл (Сохранить как)
		Конт=1;
		ОткрытьФормуМодально("Обработка.СохранениеТаблицы",Конт);
		Если Конт=1 Тогда
			Флаг=1;
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры	// ПриПолученииКоманды

 


3.Добавляешь в обработки обработку из вложения.
И.
Получаешь перехват стандартной команды сохранить как
для выбора возможности сохранить в формате Excel или 1С
а если объект Йоксель то вообще не спрашует в каком в формате, а тупо предлагает использовать Excel.
У мене уже 2 года пашет на ура.
  

__________________003.ert ( 51 KB | Загрузки )
Наверх
 
IP записан
 
ziflex
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Местоположение: Владивосток
Зарегистрирован: 05. Мая 2011
Пол: Мужской
Re: Сохранить как... через Yoksel
Ответ #4 - 11. Ноября 2011 :: 00:22
Печать  
Спасибо всем ответившим!
Да, Rwidjets то что доктор прописал! Улыбка)
varelchik, спасибо за обработку Улыбка а зачем ты сделал такие сложности с выбором значения формата?
  
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Сохранить как... через Yoksel
Ответ #5 - 11. Ноября 2011 :: 07:30
Печать  
Потому что не всегда нужно в excel сохранять.
Да и еще чтоб у пользователя был выбор.
И еще вот что.
ПРобовал когда-то добавить в системное меню отдельную строку с командой для сохранения в excel, но вылезли косяки с падением на разных интерфейсах, посем решил просто перехватить команду при предложить пользователю выбор.

ps. Вснгда пожалста.
Если что надо стучись в аську.
  
Наверх
 
IP записан
 
ziflex
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Местоположение: Владивосток
Зарегистрирован: 05. Мая 2011
Пол: Мужской
Re: Сохранить как... через Yoksel
Ответ #6 - 11. Ноября 2011 :: 07:55
Печать  
Гм, я сделал через Найти()

Код
Выбрать все
			ИмяФормы	= "Укажите имя файла";
			ТипыФайлов	= "Книга Microsoft Excel (*.xls)|*.xls|Таблицы 1С Предприятия (*.mxl)|*.mxl";
			Расширения  = "xls|mxl";

			ИмяФайла 		= "";
			ИмяКаталога 	= ФС.ТекКаталог();
			Если ФС.ВыбратьФайл (1, ИмяФайла, ИмяКаталога, ИмяФормы, ТипыФайлов,Расширения) = 1 Тогда
				ВыбИмяФайла = ИмяКаталога+ИмяФайла;
				Если Найти(ИмяФайла,".xls") > 0 Тогда
					_Рез = YE_СохранитьВЭксель(ВыбИмяФайла, гТаблица);
				Иначе
					гТаблица.Записать(ВыбИмяФайла);
				КонецЕсли;
			КонецЕсли;


 

  
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Сохранить как... через Yoksel
Ответ #7 - 11. Ноября 2011 :: 09:52
Печать  
Не совсем то.
Дело в том что тама есть еще и опция выбора не только mxl
но и в других форматах
txt html.
Вот только из того меню ты не определишь в кой формат выбрал пользователь, тут проблема.
Посему  я и сделал выбор через меню
А тама дальше уже разруливаю что делать.
либо подсовывать йоксель либо оставить стандартный вариант.
Я сперва тож подумал об этом.
И причем если файлика небудет?
Что тоди?
  
Наверх
 
IP записан
 
ziflex
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Местоположение: Владивосток
Зарегистрирован: 05. Мая 2011
Пол: Мужской
Re: Сохранить как... через Yoksel
Ответ #8 - 11. Ноября 2011 :: 13:26
Печать  
какого файлика?)
мне этот перехват нужен только для сохранения таблиц. т.е. перед началом этого кода берется контекст активного окна и проверяется на тип "таблица". в формате txt и html пусть текст сохраняют ))

почему не определишь? если ты передал "Расширения", то в переменную  "ИмяФайла" записывается и расширение (пользователь просто вводит имя без него).
  
Наверх
 
IP записан
 
ziflex
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Местоположение: Владивосток
Зарегистрирован: 05. Мая 2011
Пол: Мужской
Re: Сохранить как... через Yoksel
Ответ #9 - 13. Ноября 2011 :: 23:55
Печать  
Хм. Столкнулся с проблемой.
Если программно не указывать необходимый шрифт, то Йоксель ставит  Arial.  Ладно, это программно решается.
Но вот размер шрифта слетает. В параметрах пользоваталей установлено значение "Табличные документы = Шрифт + Размер" 1С при сохранении в xls учитывает эти значения. Йоксель судя по всему нет...
« Последняя редакция: 14. Ноября 2011 :: 04:19 - ziflex »  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать