Не могли ли Вы в своих рассылках осветить технологию передачи данных из 1С
в другие приложения? Конкретно интересует формирование файла Word 97 из 1С
7.5 (Отчет с таблицами, рисунками).
Давайте начнем с самого начала. А что такое OLE?
Цитирую книгу Брайана Сайлера и Джеффа Споттса "Использование Visual Basic
6" под редакцией Петриковца Г.П., изд. "Вильямс" 1999:
OLE - это аббревиатура от Object Linking and Embedding, что переводится как
связывание и внедрение объектов и означает способ интеграции программных
продуктов семейства Microsoft Office.
Приложения, поддерживающие технологию OLE, позволяют пользователю вызывать
одно приложение из другого, не выходя из контекста интерфейса исходной
программы. <...>
Используя OLE-объекты вы практически "дистанционно управляете" приложениями
Word и Excel. Это подразумевает, что приложение установлено на
пользовательском компьютере, и означает, что оно будет функционировать так,
как если бы пользователь сам вводил команды и информацию. Другими словами
приложение загружается в память и, в зависимости от того, как написана ваша
программа, пользователь может или наблюдать за происходящим, либо
взаимодействовать с загруженным приложением. Однако автоматизация OLE на
деле оказывается довольно медленной технологией, хотя и очень полезной в
некоторых случаях.
Конец цитаты.
Теперь несколько слов от себя. Умение работать с OLE - это прежде всего
знание языка команд приложения с которым вы собираетесь работать (для
приложений Microsoft Office таким языком является Visual Basic). Так как
изучение Visual Basic не входит в задачи данной рассылки, то ограничусь
общими советами. Хороший пример работы с OLE вы можете посмотреть в
типовых конфигурациях ("Комплексная..." или "Торговля..."), в
справочнике
"Прайс_лист", форма списка "ФормаСписка", процедура ПрайсInExcel().
1. При установке Microsoft Office обязательно отметьте пункт установки
справки по Visual Basic, по умолчанию он не выбран.
2. Если писать очень надо, а вы не знаете с чего начать, начните в Word с
записи ваших действий в макрос, когда вы откроете его для отладки, то
увидите ваши действия записанные на Visual Basic.
3. При переносе макроса в 1С, во-первых, оформляйте все процедуры, как
функции (пример TypeParagraph), а, во-вторых, преобразуйте полученные
выражения в вид понятный для 1С.
Маленький пример.
Процедура ПримерРаботыСWord()
Попытка
Word = СоздатьОбъект("Word.Application");
Исключение
Предупреждение("Чего-то не получается");
возврат;
КонецПопытки;
Word.Documents.Add();
Area = Word.Selection;
Area.TypeText("Это образец вставки рисунка.");
Area.TypeParagraph();
Area.InlineShapes.AddPicture("C:\Мои документы\Рисунки\1.jpg");
Area.TypeParagraph();
Area.TypeText("Теперь вставим таблицу и заполним ее:");
Word.ActiveDocument.Tables.Add(Area.Range, 2, 2);
Word.Selection.TypeText("Заголовок 1");
Word.Selection.MoveRight(1);
Word.Selection.TypeText("Заголовок 2");
Word.Selection.MoveRight(1);
Word.Selection.TypeText("Значений 1");
Word.Selection.MoveRight(1);
Word.Selection.TypeText("Значение 2");
Word.Visible = 1;
предупреждение("Создание документа завершено");
КонецПроцедуры