Предлагаю выкладывать тут методы и примеры решения задач по взаимодействию 1С77 и Excel.
Вот что когда то находил по данному вопросу.
Получение данных из Excel.
Доступ из 1С к Excel производится посредством OLE. Например, код
Попытка
Эксель = СоздатьОбъект("Excel.Application");
Исключение
Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!");
Возврат;
КонецПопытки;
Книга = Эксель.WorkBooks.Open(ПутьКФайлу);
Лист = Книга.WorkSheets(НомерЛиста);
или
Лист = Книга.WorkSheets(ИмяЛиста);
Значение = Лист.Cells(НомерСтроки, НомерКолонки).Value;
Попытка
Эксель = СоздатьОбъект("Excel.Application");
Исключение
Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!");
Возврат;
КонецПопытки;
Книга = Эксель.WorkBooks.Add();
Лист = Книга.WorkSheets(НомерЛиста);
Лист = Книга.Sheets.Add();
Лист.Cells(НомерСтроки, НомерКолонки).Value = Значение;
Попытка
Книга.SaveAs(ПутьКФайлу);
Исключение
Сообщить(ОписаниеОшибки()+" Файл не сохранен!");
Возврат;
КонецПопытки;
Вот еще пример экспорта в эксель без вывода (можно и с выводом) таблицы в 1С.
Таблицу создаем штатными методами и просто передаем готовую таблицу.
Функция ЭкспортExcel(Таблица)
Перем Excel;
Перем Каталог, ИмяФайла, Инд;
Перем ЗанятыеНомера[100];
Если ТипЗначенияСтр(Таблица) = "Таблица" Тогда
Каталог = КаталогВременныхФайлов();
ИмяФайла = ФС.НайтиПервыйФайл(Каталог + "1ctemp??.xls");
Пока ПустаяСтрока(ИмяФайла) = 0 Цикл
Инд = Число(Сред(ИмяФайла,7,2));
ЗанятыеНомера[Инд+1] = 1;
ФС.УдалитьФайл(Каталог + ИмяФайла);
ИмяФайла = ФС.НайтиСледующийФайл()
КонецЦикла;
ИмяФайла = "";
Для Инд = 0 По 99 Цикл
Если ЗанятыеНомера[Инд+1] <> 1 Тогда
ИмяФайла = Каталог + "1ctemp" + Формат(Инд, "Ч(0)2") + ".xls";
Прервать
КонецЕсли;
КонецЦикла;
Если ПустаяСтрока(ИмяФайла) = 0 Тогда
Таблица.Записать(ИмяФайла, "XLS");
Если ФС.СуществуетФайл(ИмяФайла) = 1 Тогда
Попытка
Excel = СоздатьОбъект("Excel.Application");
Исключение
Сообщить("Не удалось иницализировать MS Excel","!");
Возврат 0
КонецПопытки;
Excel.Workbooks.Open(ИмяФайла);
Excel.Visible = 1;
Возврат 1
Иначе
Сообщить("Ошибка записи файла """ + ИмяФайла + """","!");
Возврат 0
КонецЕсли
КонецЕсли
КонецЕсли;
Возврат 0;
КонецФункции
http://pro1c.org.ua/redirect.php?http://infostart.ru/blogs/718/
Fynjy, тема про 7
ЗЫ. перемещаю тему в статьи
Использую Олю для втягивания, но для выброса предпочитаю Йоксель.
Есть такая хорошая обработочка в инете - mxl2xls и есть ее продолжение для многостраничных файлов.
Если кто сталкивался с мегаотчетами - тот поймет.
Кому будет нужно - скину...
У меня возник такой вопросик; Можно ли даныые из Excel перенести в Word? без использования Bookmarks, что бы была конкретная привязка к определённой ячейки таблицы Word? Можно ли ячейкам таблицы Word присвоить другие номена не Cells1,4, т.е. переименовать объекты, конкретное имя для обращеня макроса который находиться в Excel?
И не в падло было в 5.55 писать?
Господа тема 1С77 & Excel
Серёжа, к Вам убедительная просьба: прекращайте курить что попало! Если не перестанете - пойдете в "баню"!!!
Вот немножко, что у меня работает:
// ===============================
// Заполнение ячейки в эксель-таблице:
// параметры:
// 1 xl - объект Эксель = СоздатьОбъект("Excel.Application");;
// 2 Стр - строка, в к-рую помещаем данные
// 3 Кол - колонка, в к-рую помещаем данные
// 4 Значение - данные, к-рые помещаем в выбранную ячейку
// 5 шрифтРазм - размер шрифта в ячейке
// 6 шрифтЖирн - шрифт жирный / не жирный
// 7 гориз - выравнивание по горизогтали
// 1 - по значению, 2 - по левому краю, 3 - по центру
// 8 вертик - -"- -"- вертикали
// 1 - верх, 2 - центр, 3 - низ)
// 9 перенос - есть ли перенос по словам
// 1 - переносить, 0 - не переносить)
// 10 линия - стиль линии обрамления ячейки
// 1 - обычная непрерывная линия
// 2 - пунктир плотный
// 3 - пунктир более разреженный
// 4 - пунктир (типа осевой) --.--.--.--
// 5 - -"- -"- --..--..--..--
// 6 - -"- -"- --.--.--.-- более жирный
// 7 - тонкая сплошная
// 8 - пунктир из коротких пунктиров
// 9 - двойная тонкая сплошная
//
Процедура ПоместитьЗначение(xl,Стр,Кол,Значение, шрифтРазм = 9, шрифтЖирн = 0, гориз = 2, вертик = 1, перенос = 1, линия = 0);
Ячейка = xl.Cells(Стр,Кол);
Ячейка.Value = Значение;
Ячейка.Font.Size = шрифтРазм;
Ячейка.Font.Bold = шрифтЖирн;
Ячейка.HorizontalAlignment = гориз;
Ячейка.VerticalAlignment = вертик;
Ячейка.WrapText = перенос;
Ячейка.Borders.Linestyle = линия;
КонецПроцедуры
// делаем Эксель невидимым:
Эксель.ScreenUpdating = 0;
Эксель.EnableEvents = 0;
Эксель.Visible = 0;
// как выделить область:
область = лист.Range(лист.Cells(текСтрока, 1), лист.Cells(текСтрока, 16));
// Borders(): 1 - лево, 2 - право, 3 - верх, 4 - низ
// Weight: 1 - линия из точек, 2 - тонкая сплошная, 3 - чуть толще тонкого
область.Borders(3).Weight = 3;
// выбор нужного листа:
Если СоздаватьНовыйФайл = 1 Тогда
лист = книга.WorkSheets.Add();
лист = книга.WorkSheets(1);
лист.Name = "Шаблон";
Иначе
лист = книга.WorkSheets("Шаблон");
КонецЕсли;
// задание высоты сроки:
лист.Rows(текСтрока).RowHeight = 60;
// задание ширины колонки
лист.Columns(1).ColumnWidth = 13.57;
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua