|
Работа в 1С 42
Тема 15 Связь с внешними приложениями посредством механизмов DDE и OLE Цель:
Пояснения к работе При формировании пользовательского интерфейса прикладной задачи довольно часто существуют ситуации, когда для удобства работы пользователя необходимо дать возможность обрабатывать имеющиеся данные с помощью других, имеющихся на компьютере программ. Одним из примеров использования такой возможности может служить запуск программы Microsoft Excel (непосредственно из программы 1С:Предприятие) с одновременным выводом в нее результатов расчета. Далее пользователь может обрабатывать полученные результаты (просматривать, редактировать, печатать и т. п.) непосредственно в среде Microsoft Excel. Одну из возможностей запуска и управления внешними приложениями дает механизм OLE Automation. Встроенный язык системы 1С:Предприятие поддерживает технологию управления объектами OLE. Непосредственно при помощи операторов языка можно управлять, например, программами, входящими в Microsoft Office. Внешнее приложение, с которым предполагается устанавливать связь, должно отвечать следующим условиям: внешнее приложение должно поддерживать механизм OLE Automation и должно быть установлено на том компьютере, где его намечено использовать. Во всех программных модулях вызов процедур или функций внешнего приложения может выполняться только при помощи переменной со ссылкой на объект, который создается функцией СоздатьОбъект(). Чтобы вызвать метод внешнего приложения, имя метода (с указанием необходимых параметров) пишется через точку после идентификатора переменной. При создании переменной со ссылкой на внешнее приложение, в качестве имени объекта в операторе СоздатьОбъект() должен выступать зарегистрированный OLE идентификатор внешнего приложения. Зарегистрированный OLE идентификатор внешнего приложения – это уникальный идентификатор программного продукта, который записывается в регистрационную базу Windows при инсталляции программы. Примеры OLE идентификаторов: Excel – "Excel.Application" LotusApproach – "Approach.Application" MSGraph – "MSGraph.Application" PowerPoint – "PowerPoint.Application" Кроме того, другие приложения могут использовать 1С:Предприятие в качестве OLE Automation сервера и получать данные из 1С:Предприятие. В этом случае выполняется следующая последовательность действий:
Поскольку программа 1С:Предприятие является одновременно OLE Automation сервером и OLE Automation клиентом, то возможно из 1С:Предприятие обращаться к другой копии 1С:Предприятие (например, к другой конфигурации) для обмена данными. В основном все современные программные продукты поддерживают механизм OLE Automation, это касается в частности MS Office, MS FoxPro и приложений на них написанных, DAO и т. п., поэтому программа 1С:Предприятие может полностью интегрироваться с ними. Другим способом обращения к данным 1С:Предприятие а из внешних программ является режим DDE. Основное преимущество данного режима является динамическое обновление получаемых из 1С:Предприятие данных. Система 1С:Предприятие является DDE сервером и предоставляет свой сервис в получении данных и уведомлении DDE клиента об их изменении. Не рекомендуется обращаться посредством DDE к функциям 1С:Предприятие, которые могут выполняться продолжительное время. Это связано с тем, что обращение к данной функции будет выполняться достаточно часто при обновлениях DDE связей. 15.1 Методы для работы с Microsoft Excel Методы для работы через механизм OLE Automation Методы внешних приложений, а также синтаксис их использования у каждого приложения свои. Описание процедур и функций внешнего приложений можно получить только в документации данного приложения. Например, практически все программы, входящие в пакет Microsoft Office используют для своего управления версию языка Visual Basic. Чтобы вызвать метод внешнего приложения в языке системы 1С:Предприятие, имя метода (с указанием необходимых параметров) пишется через точку после имени ссылки на объект внешнего приложения. Рассмотрим методы для работы с внешними приложениями на примере Microsoft Excel. // Создать объект Excel (запускаем программу Excel) ОкноЕхсеl = СоздатьОбъект("Excel.Application"); // сделать окно программы Excel видимым и активным ОкноЕхсеl.Visible = 1; // установить имя окна Excel ОкноЕхсеl.Caption = "Отчет"; // создать новую рабочую книгу НовыеРабочиеКниги = ОкноЕхсеl.Workbooks; РабочаяКнига = НовыеРабочиеКниги.Add(); // определить ячейку (номер строки, номер столбца) Ячейка = ОкноЕхсеl.Cells(2, 1); // задать значение ячейки Ячейка.Value = "Строка "; // формат ячейки // размер шрифта Ячейка.Font.Size=20; // шрифт Ячейка.Font.Name="Courier New"; // ширина столбца Ячейка.ColumnWidth = 100; // вертикальное выравнивание в ячейке: 2 – по левому краю, 3 – по центру, // 4 – по правому краю Ячейка.VerticalAlignment = 3; // горизонтальное выравнивание Ячейка.HorizontalAlignment = 3; // установка RGB цвета Ячейка.Font.Color=456; // установка стиля «выделенный» Ячейка.Font.Bold = 1; // ориентация текста внутри ячейки в градусах Ячейка.Orientation = 90; // высота строки Ячейка.RowHeight=50; // пернос по словам внутри ячейки Ячейка.WrapText=1; // формат числовой ячейки Ячейка.NumberFormat = "0,00"; // выделить область в таблице (указывается левая верхняя ячейка области и правая нижняя) // и присвоим ее переменной языка Область = ОкноЕхсеl.Range(ОкноЕхсеl.Cells(1, 1), ОкноЕхсеl.Cells(2, 5)); //объединение ячеек области Область.Merge(); // задать имя выделенной области Область.Name = "ОбластьДанных"; // определить рамку выделенной области и присвоим ее переменной языка Рамка = Область.Borders; // установить стили для рамки выделенной области Рамка.LineStyle = 1; Рамка.Colorlndex = 567; // формат ячеек обрасти задается так же, как формат ячейки // высота строки Область.RowHeight=50; Методы для работы Microsoft Excel в режим DDE для связи с 1С: Предприятие В качестве DDE сервера 1С:Предприятие может возвращать значение некоторого выражения, записанного на встроенном языке 1С:Предприятие. Возвращаемое значение является строкой. Для того, чтобы рассматривать результат выражения в качестве числа или даты, например в ячейке MS Excel, может потребоваться задание формата значения. Для доступа к 1С:Предприятие посредством DDE следует использовать DDE–объект с именем 1CV7|DDE. Пример: Ниже приведены примеры размещения в ячейках MS Excel DDE связей с программой 1С:Предприятие. Первое выражение в примере обращается к стандартной функции встроенного языка 1С:Предприятие. Второе выражение в примере обращается к функции, записанной в глобальном модуле конфигурации программы 1С:Предприятие. ='1CV7'|DDE!'РабочаяДата()' Для правильной интерпретации значения выражения в качестве числа или даты в MS Excel, нужно в операционной системе установить соответствующий формат представления даты и числа, как он принят в 1С:Предприятие. 15.2 Выгрузка данных в Microsoft Excel Создадим процедуру, которая выгружаем данные отчета ОСотрудниках непосредственно в Microsoft Excel. Разместите на форме отчета ОСотрудниках кнопку Excel (рисунок 15.2.1), указав в качестве ее свойства Формула – ВыгрузитьВExcel(). Рисунок 15.2.1 В программном модуле создадим процедуру: Процедура ВыгрузитьВExcel()
КонецПроцедуры Сохраните конфигурацию и запустите 1С в режиме Предприятие. Выберите из меню отчет О сотрудниках, отметьте группировки и нажмите кнопку Excel. Приблизительный результат приведен на рисунке 15.2.2. Рисунок 15.2.2 Теперь попробуем получить данные из 1С: Предприятия в Microsoft Excel посредством механизма DDE. Запустите 1С в режиме Предприятие (если 1С: Предприятие не запущено данные передать не удастся). Затем запустите Microsoft Excel, выберите любую ячейку и запишите в ячейку следующую формулу: ='1CV7'|DDE!'Константа.ЮридическийАдрес' И нажмите Enter. При правильной последовательности действий в выбранной ячейке появится юридический адрес, хранящийся в константе. Задания: В конфигурациях, созданных на прошлых занятиях, выполните выгрузку данных в Microsoft Excel через механизм OLE Automation в отчете по главному справочнику. Контрольные вопросы:
|
Loading
|