v7: 1c 7.7. Работа с Ole объектом из "Таблицы" #784094


#0 by Lunatik_5
При нажатии кнопки печать в отчете, в таблицу нужно вывести некоторые данные + секцию с данными Excel. В конфигураторе в таблицу вставил OLE объект с типом "Лист Microsoft Excel", в поле текст написал процедуру ОлеДокумент(Таб.ТекущийОбъект, ПутьКФайлу) Мне нужно чтобы при выводе на печать этот объект открывал файл "ПутьКФайлу". В процедуре ОлеДокумен я планировал открывать нужный мне файл Процедура ОлеДокумент(Объект, ПутьФайла) Сообщить(ТипЗначенияСТР(Объект)); Объект.WorkBooks.Open(ПутьФайл); ....... ТипЗначенияСТР дает значение "OLE._Workbook", но любые команды которые работают с Объект = СоздатьОбъект("Excel.Application") в случае когда этот объект получен из таблицы не работают. Пробовал разные варианты ничего не работает. То же самое пробовал и с Word, проблема та же. Подскажите что я не правильно делаю? Или с объект "excel" полученным из таблицы шаблона 1с нельзя программно работать?
#1 by Курцвейл
Напишите текст ошибки. Непонятно почему объект класс не хочет открывать файл. Вообще же в ООП (и не только) вы должны перехватить ошибку и тогда смогли бы сами разобраться в чем проблема.
#2 by Курцвейл
+ В VBA ошибка пакуется в отдельный контейнер после попытки выполнить
#3 by Ёпрст
на счет загрузить из файла - хз. А вот управлять листом смогешь:
#4 by Lunatik_5
Работать с листом тоже получилось. Похоже проблема в том, что в качестве "Объекта" передается рабочая книга, а чтобы открыть другую рабочую книгу нужно плясать от параметра Эксель. Эксель.WorkBooks.Open(ИмяФайла) В этом вся и сложность, как получить параметр эксель привязанный к таблице? Если я создам новый объект Эксель = СоздатьОбъект("Excel.Application"), то открытие рабочей книги будет не в таблице, а в отдельном окне экселя. Может ошибаюсь, но сейчас мне кажется что проблема именно в этом. К сожалению опыта работы с эксель через 1с у меня очень мало
#5 by Lunatik_5
Ну как я на текущий момент понимаю, я применяю метод не подходящий для текущего объекта.   А можно для тех кто в танке "В VBA ошибка пакуется в отдельный контейнер после попытки выполнить" это как посмотреть? Мало опыта в программировании за рамками стандартного 1с.
#6 by Курцвейл
#7 by Курцвейл
Не совсем так. Вам нужно обратиться к родителю вашего объекта. А не создавать новый объект-Excel
#8 by Ёпрст
Хз, как там получить саму книгу, но если уж так хочется, то создай объект Excel.Application, открой в нём твой файл далее сделай Sheets("Лист1").Range.Copy и в твоём листе в 1с-ине Paste
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С