Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1C_pr77_Lang2.doc
Скачиваний:
7
Добавлен:
20.11.2019
Размер:
2.52 Mб
Скачать

Методы системы 1с:Предприятие как ole Automation сервера

Система 1С:Предприятие в качестве OLE Automation сервера предоставляет полный доступ к своему глобальному контексту (см. «Контекст выполнения программного модуля»). Поэтому объект OLE-сервер 1С:Предприятие в каче­стве своих методов может иметь: системные процедуры и функции, а также процедуры и функции глобального программного модуля, объявленные с клю­чевым словом Экспорт. Кроме того, OLE-сервер 1С:Предприятие имеет три дополнительных метода: Initialize, EvalExpr, ExecuteBatch.

Initialize

Выполнить инициализацию системы 1С:Предприятие.

Синтаксис:

Initialize(<Имя_Объекта>.RMTrade, <КоманднаяСтрока>, <ПустаяСтрока>)

Англоязычный синоним:

Initialize

Параметры:

<Имя_Объекта>

Идентификатор созданного OLE объекта 1С:Предприятие.

RMTrade

Добавочное ключевое слово.

<КоманднаяСтрока>

Строковое выражение — командная строка за­пуска 1С:Предприятие.

<ПустаяСтрока>

Строковое выражение. Параметр может содер­жать пустую строку или строковое значение "NO_SPLASH_SHOW" — отключить заставку при запуске системы 1С:Предприятие в режиме OLE Automation сервера.

Возвращаемое значение:

Значение логического типа: TRUE, если инициализация прошла удачно, или FALSE, если нет.

Замечание: В OLE Automation TRUE и FALSE имеют соответственно значе­ния: -1 (минус единица) и 0.

Описание:

Метод Initialize выполняет инициализацию системы 1С:Предприятие.

Пример:

* здесь пример приводится на языке MS Visual Basic:

Dim v7 As Object

Set v7 = CreateObject("V77.Application")

result = v7.Initialize(v7.RMTrade, "/DC:\V7\DB /M", "")

EvalExpr

Вычислить выражение системы 1С:Предприятие.

Синтаксис:

EvalExpr(<СтрокаВыражения>)

Англоязычный синоним:

EvalExpr

Параметры:

<СтрокаВыражения>

Строковое выражение — выражение, записанное на встроенном языке 1С:Предприятие.

Возвращаемое значение:

Результат вычисленного выражения.

Описание:

Метод EvalExpr вычисляет выражение, записанное в параметре <СтрокаВыражения> на встроенном языке 1С:Предприятие и возвращает ре­зультат вычисления. Результатом выражения может быть число, строка, дата или значение любого агрегатного типа данных. Результат с неопределенным типом данных преобразуются к строковому типу.

Пример:

* здесь пример приводится на языке MS Visual Basic:

Dim v7 As Object

Dim Товары As Object

Set v7 = CreateObject("V77.Application")

result = v7.Initialize(v7.RMTrade, "/DC:\V7\DB /M", "")

Set Товары = v7.EvalExpr("ОтдатьСправочникТоваров()");

CreateObject

Создает объект агрегатного типа данных системы 1С:Предприятие и возвращает ссылку на него.

Синтаксис:

CreateObject(<ИмяАгрегатногоТипа>)

Англоязычный синоним:

CreateObject

Параметры:

<ИмяАгрегатногоТипа>

Строковое выражение, значение которого со­держит имя агрегатного типа данных, объявлен­ного в конфигураторе.

Возвращаемое значение:

Ссылка на созданный объект агрегатного типа данных.

Описание:

Метод CreateObject создает объект агрегатного типа данных системы 1С:Предприятие и возвращает ссылку на него. Данная функция обычно ис­пользуется одновременно с неявным определением переменной и присвоением ей ссылки на объект агрегатного типа данных.

Пример:

Процедура Загрузить()

Если ФС.Существуетфайл(Путь + "\NUL") = 0 Тогда

Предупреждение("Путь информационной базы не найден!");

Иначе

V7 = СоздатьОбъект("V77.Application");

Открыта = V7.Initialize(V7.RMTrade, "/d" + Путь +

" /M /N" + Пользователь, "");

Если Открыта = 0 Тогда

Предупреждение("Ошибка открытия информационной базы");

Возврат;

КонецЕсли;

Импорт = V7.CreateObject("Справочник.Контрагенты");

Импорт.ВыбратьЭлементы();

Пока Импорт.ПолучитьЭлемент() = 1 Цикл

Если Импорт.ЭтоГруппа() = 0 Тогда

Сообщить(Импорт.Наименование);

КонецЕсли;

КонецЦикла;

КонецЕсли;

КонецПроцедуры

ExecuteBatch

Выполнить последовательность операторов системы 1С:Предприятие.

Синтаксис:

ExecuteBatch(<СтрокаОператоров>)

Англоязычный синоним:

ExecuteBatch

Параметры:

<СтрокаОператоров>

Строковое выражение — текст программы на встроенном языке 1С:Предприятие.

Возвращаемое значение:

Значение логического типа: TRUE, если последовательность операторов вы­полнены успешно, или FALSE, если нет.

Замечание: В OLE Automation TRUE и FALSE имеют соответственно значе­ния: -1 (минус единица) и 0.

Описание:

Метод ExecuteBatch выполняет последовательность операторов, запи­санную в параметре <СтрокаОператоров> на встроенном языке 1С:Предприятие.

Пример:

* здесь пример приводится на языке MS Visual Basic:

Sub Command1_Click ()

Dim v7 As Object

Dim Price As Object

Set v7 = CreateObject("V77.Application")

result = v7.Initialize(v7.RMTrade, "/DC:\V7\DB /M", "")

Set Price = v7.EvalExpr("ОтдатьСправочникТоваров()")

Price.New

Price.Code = "112233"

Price.Description = "Test string"

Price.Write;

BoolResult = v7.ExecuteBatch("ПроцедураРегл1();ПроцедураРегл2()")

End Sub

* Обращение к программе 1С:Предприятие из модуля MS Excel. В данном примере запускается и инициализируется конфигурация 1С:Предприятие с базой данных в каталоге C:\V7\DB в монопольном режиме. Далее в про­грамме 1С:Предприятие создается объект типа "Справочник.Товары", где создается новая группа элементов с названием "***** Экспорт из Excel ******". Во вновь созданную группу каталога записываются данные из таб­лицы MS Excel. Здесь пример приводится на языке MS Visual Basic.

Sub Excel_to_trade()

Dim trade As Object

Dim Товар As Object

Set trade = CreateObject("V77 .Application")

result = trade.Iinitialize(trade.RMTrade, "/DC:\V7\DB /M", "")

Set Товар = trade.EvalExpr("CreateObject(""Справочник.Товары"")")

Товар.НоваяГруппа

Товар.Наименование = "***** Экспорт из Excel ******"

Товар.Записать

Товар.ИспользоватьРодителя Товар.ТекущийЭлемент

N = 100 'Количество строк в документе

For Count = 1 То N Товар.Новый

Товар.Наименование = Application.Cells(Count, 2).Value

Товар.Розн_Цена = Application.Cells(Count, 3).Value

Товар.Мел_Опт_Цена = Application.Cells(Count, 4).Value

Товар.Onт_Цена = Application.Cells(Count, 5).Value

Товар.Записать

Next Count

End Sub

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]