Методы внешних приложений
Методы внешних приложений, а также синтаксис их использования у каждого приложения свои. Описание процедур и функций внешнего приложений можно получить только в документации данного приложения. Например, практически все программы, входящие в пакет Microsoft Office используют для своего управления версию языка Visual Basic.
Чтобы вызвать метод внешнего приложения в языке системы 1С:Предприятие, имя метода (с указанием необходимых параметров) пишется через точку после имени ссылки на объект внешнего приложения.
Пример:
// Создаем объект Excel и присвоим его переменной языка
ОкноЕхсеl = СоздатьОбъект("Excel.Application");
// устанавливаем имя окна Excel
ОкноЕхсеl.Caption = "Отчет";
// создадим новую рабочую книгу
НовыеРабочиеКниги = ОкноЕхсеl.Workbooks;
РабочаяКнига = НовыеРабочиеКниги.Add();
Ограничения:
Не поддерживаются значения, передаваемые по ссылке;
Не поддерживаются массивы, в точности SAFEARRAY;
Не поддерживаются значения типа IUnknown.
Эти ограничения не столь серьезны, т. к. например, все типы данных, с которыми работает Excel и большинство других наиболее распространенных программ, полностью поддерживаются.
Типы поддерживаемых данных:
Boolean
Currency
Date
Double-precision floating-point
Integer
Long integer
Object
Single-precision floating-point
String
Пример:
//В данном примере запускается программа Excel,
// затем в нее передаются некоторые данные, и затем
// на их основе строится диаграмма.
// Создаем объект Excel и присвоим его переменной языка
ОкноЕхсеl = СоздатьОбъект("Excel.Application");
// устанавливаем имя окна Excel
ОкноЕхсеl.Caption = "Отчет";
// создадим новую рабочую книгу
НовыеРабочиеКниги = ОкноЕхсеl.Workbooks;
РабочаяКнига = НовыеРабочиеКниги.Аdd();
ЧислоРядов = 10;
ЧислоСтолбцов = 5;
// проставим названия строк
Для Ряд = 1 По ЧислоРядов Цикл
Ячейка = ОкноЕхсеl.Cells(Ряд + 1, 1);
Ячейка.Value = "Строка " + Строка(Ряд);
КонецЦикла;
// проставим названия столбцов
Для Столбец = 1 По ЧислоСтолбцов Цикл
Ячейка = ОкноЕхсеl.Cells(1, Столбец + 1);
Ячейка.Value = "Столбец " + Строка(Столбец);
КонецЦикла;
// заполним ячейки таблицы значениями
Для Ряд = 1 По ЧислоРядов Цикл
Для Столбец = 1 По ЧислоСтолбцов Цикл
Ячейка = ОкноЕхсеl.Cells(Ряд + 1, Столбец + 1);
Ячейка.Value = Ряд + Столбец;
КонецЦикла;
КонецЦикла;
// выделим область в таблице и присвоим ее переменной языка
Область = ОкноЕхсеl.Range(ОкноЕхсеl.Cells(1, 1),
ОкноЕхсеl.Cells(ЧислоРядов + 1, ЧислоСтолбцов + 1));
// зададим имя выделенной области
Область.Name = "ОбластьДанных";
// определим рамку выделенной области и присвоим ее переменной языка
Рамка = Область.Borders;
// установим стили для рамки выделенной области
Рамка.LineStyle = 1;
Рамка.Colorlndex = 3;
// построим диаграмму Лист=РабочаяКнига.Worksheets(1);
Диаграмма = Лист.ChartObjects();
Диаграмма = Диаграмма.Add(5, 5 + Область.Тор + Область.Height,
Область.Width, Область.Height);
МояДиаграмма = Диаграмма.Chart;
МояДиаграмма.ChartWizard("ОбластьДанных ", -4102, 6, 1, 1, 1, 1, "Отчет");
// сделаем окно Excel видимым и активным
ОкноЕхсеl.Visible = 1;