|
v7: Активный контекст | ☑ | ||
---|---|---|---|---|
0
Масянька
26.03.13
✎
12:51
|
День добрый!
Открыта печ. форма док-та. Хочу сохранить эту печ. форму в файл. На панель инструментов добавила кнопку, на кнопку повесила свою обработку. В обработке - ПриОткрытии - как получить эту таблицу? Спасибо. |
|||
1
DGorgoN
26.03.13
✎
12:54
|
7-как точно?
|
|||
2
Aleksey
26.03.13
✎
12:55
|
можно и в 7-ке, но через ВК
|
|||
3
Aleksey
26.03.13
✎
12:58
|
пример можно тут глянуть http://infostart.ru/public/18989/
|
|||
4
Масянька
26.03.13
✎
13:00
|
(2) Я знаю - как?
мСервис = СоздатьОбъект("Сервис"); mxl_doctorВК = СоздатьОбъект("AddIn.mxl_doctor"); mxl_doctorВК.ВылечитьMXL(); Сообщить("1 - " + мСервис.АктивныйКонтекст(РабочаяОбласть)); Если мСервис.АктивныйКонтекст(РабочаяОбласть) = 0 Тогда Возврат; Конецесли; |
|||
5
Попытка1С
26.03.13
✎
13:01
|
Кнопку на панель с вызовом обработки
Обработка с кодом Процедура ПриОткрытии() Перем ВыбИмяФайла; Перем ВыбИмяКаталога; Перем АктивныйКонтекст; СтатусВозврата(0); Если (глСервис.АктивныйКонтекст(АктивныйКонтекст) = 1) Тогда Если (ТипЗначенияСтр(АктивныйКонтекст) = "Таблица") тогда Если (ФС.ВыбратьФайл(1, ВыбИмяФайла, ВыбИмяКаталога, "Выберите файл", "*.xls|*.xls", "xls") = 1) Тогда НедопустимыеСимволы = "\/:*?""<>| "; Для СчетчикЦикла = 1 По СтрДлина(НедопустимыеСимволы) Цикл ВыбИмяФайла = СтрЗаменить(ВыбИмяФайла, Сред(НедопустимыеСимволы, СчетчикЦикла, 1), "_"); КонецЦикла; Если НЕ(ВРег(Прав(ВыбИмяФайла, 4)) = ВРег(".xls")) Тогда ВыбИмяФайла = ВыбИмяФайла + ".xls"; КонецЕсли; СохранитьМакетВфайл=ВыбИмяКаталога+ВыбИмяФайла; Если ФС.СуществуетФайл(СохранитьМакетВфайл)=1 Тогда ФС.УдалитьФайл(СохранитьМакетВфайл); КонецЕсли; ТабДокумент = СоздатьОбъект ("ТабличныйДокумент"); ТабДокумент.ЗагрузитьИзТаблицы (АктивныйКонтекст); ТабДокумент.Записать(СохранитьМакетВфайл, 1); КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры // ПриОткрытии() |
|||
6
Попытка1С
26.03.13
✎
13:03
|
Если (ЗагрузитьВнешнююКомпоненту(КаталогКомпонент + "FormEx.dll") = 1) Тогда
глСервис = СоздатьОбъект("Сервис"); |
|||
7
Масянька
26.03.13
✎
13:14
|
(5) Спасибо!
|
|||
8
Масянька
26.03.13
✎
13:21
|
(7) Еще раз - СПАСИБО!!!!!!
Пошла бантики вешать :)))))))))))) |
|||
9
Масянька
26.03.13
✎
13:22
|
(5) Маленький вопрос: а можно получить имя таблицы?
|
|||
10
Злопчинский
26.03.13
✎
13:25
|
Масяня, не изобретай велосипедов
http://infostart.ru/public/14180/ . упомянутая обработка передает перехваченную таблицу (или таблицы) для отправки на почту, есть точно такой же вариант - который вместо отправки на почту дает возможность сохранить - эксель, моксель, пнг. + куча бантиков дополнительных. в т.ч. и сохранение таблиц прилепленных к форме (например регламентная отчетность). |
|||
11
Масянька
26.03.13
✎
13:27
|
(10) ХОЧУ! (веписед :))))))
|
|||
12
Конфигуратор1с
26.03.13
✎
13:29
|
(11) Анечка! Переходите на 8ку. Ну будь ласочка
|
|||
13
Масянька
26.03.13
✎
13:32
|
(12)На фиг, на фиг.... И, кстати, захватите, свой график :))))
|
|||
14
Злопчинский
26.03.13
✎
14:41
|
(10) Оформляй заказ, в течении суток порсле оплаты получишь. С запретом перепродажи/сдачи в аренду/безвозмездного дарения/и прочего третьим лицам. Только себе. А то мы знаем, вас, франчей... ;-0
|
|||
15
Злопчинский
26.03.13
✎
14:42
|
(12) а шо, в снеговике уже можно извне перехватить любую печформу?
|
|||
16
chief accountant
26.03.13
✎
14:46
|
(15) ага щаз
|
|||
17
Масянька
26.03.13
✎
14:56
|
Хватит тут базарить :))))
Как же получить имя таблицы или окна? |
|||
18
Масянька
26.03.13
✎
15:02
|
Информатор не помог.....
|
|||
19
Попытка1С
модератор
26.03.13
✎
15:04
|
Может это подойдет
ПолучитьИменаТаблицы(<?>) Синтаксис: ПолучитьИменаТаблицы(<Таблица>) Назначение: Возвращает таблицу значений с адресами и идентификаторами поименованных областей (колонки ТЗ: 'Адрес', 'Идентификатор', 'Лево', 'Верх', 'Право', 'Низ'). Параметры: <Таблица> - объект "Таблица"; |
|||
20
Масянька
26.03.13
✎
15:13
|
(19) Не-а.
А где Ёпрст? |
|||
21
Масянька
26.03.13
✎
16:03
|
Эх вы.....
А все так просто (до безобразия). PS А я умнее (тут я язык показываю) :)))))) |
|||
22
Ёпрст
26.03.13
✎
16:34
|
(20)
на,кинешь в поделку, повешаешь вызов на кнопку в панели струментов: Перем гТаблица,ВыбНазваниеЛиста,ВыбИмяФайла; //----------------------------------------------------------------------------- Функция Проверка () Попытка Сервис = СоздатьОбъект("Сервис"); Исключение Если ЗагрузитьВнешнююКомпоненту("formex")=0 Тогда Возврат 0; КонецЕсли; КонецПопытки; Попытка Табл = СоздатьОбъект("ТабличныйДокумент"); Исключение Если ЗагрузитьВнешнююКомпоненту ("SpreadSheet.dll")=0 Тогда Возврат 0; КонецЕсли; КонецПопытки; Сервис = СоздатьОбъект ("Сервис"); Если Сервис.АктивныйКонтекст (гТаблица) = 1 Тогда Если ТипЗначенияСтр (гТаблица) = "Таблица" Тогда Возврат 1; Иначе Попытка гТаблица = гТаблица.Таблица; Возврат 1; Исключение КонецПопытки; КонецЕсли; КонецЕсли; Возврат 0; КонецФункции //----------------------------------------------------------------------------- Процедура ВыполнитьСохранение () ИмяФайла = ВыбИмяФайла; ИмяКаталога = ВосстановитьЗначение("ИмяКаталога"); Если ФС.ВыбратьФайл (1, ИмяФайла, ИмяКаталога, "Укажите имя файла", "Книга Microsoft Excel (*.xls)|*.xls|Документ Adobe Acrobat (*.pdf)|*.pdf", "xls") = 0 Тогда Возврат; КонецЕсли; СохранитьЗначение("ИмяКаталога",ИмяКаталога); ВыбИмяФайла = ИмяКаталога + ИмяФайла; Документ = СоздатьОбъект ("ТабличныйДокумент"); Если ТипЗначенияСтр(гТаблица)="Таблица" Тогда Документ.ЗагрузитьИзТаблицы(гТаблица); Иначе врИмя = КаталогВременныхФайлов()+"\"+_GetPerformanceCounter()+"mxl"; гТаблица.Записать(врИмя); Документ.Открыть(врИмя); КонецЕсли; Если Прав(ВыбИмяФайла,3)="xls" Тогда Конвертер = СоздатьОбъект ("КонвертерExcel"); Книга = Конвертер.Создать (); Книга.Листы.Добавить (ВыбНазваниеЛиста, Документ); Книга.ПараметрыКонвертера.РаспознаватьЧисловыеЗначения = 1; Книга.Записать (ВыбИмяФайла); Иначе Конвертер = СоздатьОбъект ("Йоксель.ГрафическийКонвертер.PDF"); Конвертер.ВысотаСтраницы = 297*56.7; Конвертер.ШиринаСтраницы = 210*56.7; Конвертер.КоличествоБитНаПиксел = 24; Конвертер.Документ = Документ; Конвертер.ПолеСлева = 0; Конвертер.ПолеСверху = 0; Конвертер.ПолеСправа = 0; Конвертер.ПолеСнизу = 0; Конвертер.ЗаписатьВФайл (ВыбИмяФайла); КонецЕсли; КонецПроцедуры //----------------------------------------------------------------------------- Процедура СохранитьТаблицу () Попытка ВыполнитьСохранение (); Исключение Предупреждение ("Не удалось выполнить сохранение: " + ОписаниеОшибки() + " Возможно, указано неверное имя файла или " + "файл, куда выполняется сохранение, открыт",60); КонецПопытки; КонецПроцедуры Процедура ПриОткрытии () СтатусВозврата(0); Если Проверка () = 0 Тогда Возврат; Сообщить ("Обнаружены ошибки - сохранение таблицы будет недоступно"+"" ""+"загрузите вк что ли ..."); КонецЕсли; ВыбНазваниеЛиста = "Лист 1"; СохранитьТаблицу (); КонецПроцедуры |
|||
23
Масянька
26.03.13
✎
16:50
|
(22) Ты, блин, поздно пришел :))))
У меня есть твоя поделка. Мне нужно не только красиво в xls сохранить, но и по умолчанию задать имя файла (в зависимости от открытого дока). Все получилось! Спасибо! |
|||
24
Ёпрст
26.03.13
✎
16:55
|
(23)если красиво - то пихай в определенную ячейку мокселя в расшифровку название документа, её и имей потом в качестве названия файла.
|
|||
25
Ёпрст
26.03.13
✎
16:56
|
когда контекст открытой формы мокселя получишь.
|
|||
26
Ёпрст
26.03.13
✎
16:56
|
в поделке сохранения
|
|||
27
Масянька
26.03.13
✎
17:10
|
(26) Вот ты, блин, УМНЫЙ :)))))))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |