Вход | Регистрация
 
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

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