Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 7.7 и ранее

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

v7: 1c 7.7. Работа с Ole объектом из "Таблицы"
Я
   Lunatik_5
 
31.10.16 - 09:37
При нажатии кнопки печать в отчете, в таблицу нужно вывести некоторые данные + секцию с данными Excel.
В конфигураторе в таблицу вставил OLE объект с типом "Лист Microsoft Excel", в поле текст написал процедуру ОлеДокумент(Таб.ТекущийОбъект, ПутьКФайлу)
Мне нужно чтобы при выводе на печать этот объект открывал файл "ПутьКФайлу".
В процедуре ОлеДокумен я планировал открывать нужный мне файл
Процедура ОлеДокумент(Объект, ПутьФайла) 
Сообщить(ТипЗначенияСТР(Объект)); 
Объект.WorkBooks.Open(ПутьФайл); 
.......

ТипЗначенияСТР дает значение "OLE._Workbook", но любые команды которые работают с Объект = СоздатьОбъект("Excel.Application") в случае когда этот объект получен из таблицы не работают. Пробовал разные варианты ничего не работает. То же самое пробовал и с Word, проблема та же. Подскажите что я не правильно делаю? Или с объект "excel" полученным из таблицы шаблона 1с нельзя программно работать?
 
 
   Курцвейл
 
1 - 31.10.16 - 09:46
(0) Напишите текст ошибки.

Непонятно почему объект класс не хочет открывать файл.
Вообще же в ООП (и не только) вы должны перехватить ошибку и тогда смогли бы сами разобраться в чем проблема.
   Курцвейл
 
2 - 31.10.16 - 09:47
+(1) В VBA ошибка пакуется в отдельный контейнер после попытки выполнить
   Ёпрст
 
3 - 31.10.16 - 10:24
(0) на счет загрузить из файла - хз. А вот управлять листом смогешь:

Процедура ОлеДокумент(Объект, ПутьФайла)
   Лист = объект.WorkSheets.Add();
   Лист.Cells(1,2).Value = "Вася"
   Lunatik_5
 
4 - 31.10.16 - 11:45
(3) Работать с листом тоже получилось. Похоже проблема в том, что в качестве "Объекта" передается рабочая книга, а чтобы открыть другую рабочую книгу нужно плясать от параметра Эксель.
Эксель.WorkBooks.Open(ИмяФайла)
В этом вся и сложность, как получить параметр эксель привязанный к таблице? Если я создам новый объект Эксель = СоздатьОбъект("Excel.Application"), то открытие рабочей книги будет не в таблице, а в отдельном окне экселя. Может ошибаюсь, но сейчас мне кажется что проблема именно в этом.
К сожалению опыта работы с эксель через 1с у меня очень мало
   Lunatik_5
 
5 - 31.10.16 - 11:49
(2) Ну как я на текущий момент понимаю, я применяю метод не подходящий для текущего объекта.  
А можно для тех кто в танке "В VBA ошибка пакуется в отдельный контейнер после попытки выполнить" это как посмотреть? Мало опыта в программировании за рамками стандартного 1с.
   Курцвейл
 
6 - 01.11.16 - 09:16
   Курцвейл
 
7 - 01.11.16 - 09:18
(4) Не совсем так.
Вам нужно обратиться к родителю вашего объекта. А не создавать новый объект-Excel
   Ёпрст
 
8 - 01.11.16 - 09:42
(0)
Хз, как там получить саму книгу, но если уж так хочется, то создай объект Excel.Application, открой в нём твой файл далее
сделай Sheets("Лист1").Range().Copy и в твоём листе в 1с-ине Paste

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует