Книга: Технологии интеграции "1С:Предприятия 8.3""
Назад: Automation Client
Дальше: Встраивание веб-клиента «1С:Предприятия» в сторонний сайт

Внешнее соединение

Основная задача, решаемая с помощью внешнего соединения, – обеспечение надежного и быстрого программного доступа к данным системы «1С:Предприятие» из внешних приложений. В общем и целом работа с системой «1С:Предприятие» через внешнее соединение подобна работе с системой «1С:Предприятие» в режиме Automation-сервера. Основные отличия заключаются в следующем:

При использовании внешнего соединения для доступа к данным системы «1С:Предприятие» имеются следующие преимущества по сравнению с использованием Automation-сервера:

Для организации доступа к данным системы «1С:Предприятие» через внешнее соединение выполняется следующая последовательность действий:

Поставим задачу загрузить данные из листа программы Microsoft Excel в базу данных «1С:Предприятия» (посредством механизма COM).

В листе данные расположены так же, как и в предыдущем примере (см. рис. 5.1). Признаком конца табличной части является наличие в колонке «Номер» символа «#».

Пример кода приведен в листинге 5.6.

Листинг 5.6. Пример чтения данных из листа Excel

Sub COM()

Dim trade As Object

Dim Элемент As Object

Set obj = CreateObject("V83.ComConnector")

Set trade = obj.Connect("File=""c:\InfoBases\Trade"";Usr=""Director"";")

Rem создаем документ

Set Документ = trade.Документы.РасходнаяНакладная.СоздатьДокумент()

Rem получаем данные из листа

Set Клиент = trade.Справочники.Клиенты.НайтиПоНаименованию(Application.Cells(1, 2).Value)

НомерДокумента = Application.Cells(2, 2).Value

Дата = Application.Cells(3, 2).Value

Rem записываем полученные данные в документ

Документ.Клиент = Клиент

Документ.Дата = Дата

Документ.Номер = НомерДокумента

Номер = 6 'Первая строка табличной части

НомерСтроки = Application.Cells(Номер, 1).Value

Rem в последней строке табличной части будет символ #

While НомерСтроки <> "#"

Rem получаем данные из листа

Set Номенклатура = trade.Справочники.Товары.НайтиПоНаименованию(Application.Cells(Номер, 2).Value)

Количество = Application.Cells(Номер, 5).Value

Цена = Application.Cells(Номер, 6).Value

Сумма = Application.Cells(Номер, 7).Value

Rem записываем полученные данные в строку табличной части

Set Строка = Документ.Товары.Добавить()

Строка.Товар = Номенклатура

Строка.Количество = Количество

Строка.Цена = Цена

Строка.Сумма = Сумма

Номер = Номер + 1

НомерСтроки = Application.Cells(Номер, 1).Value

Wend

Документ.Записать

End Sub

В данном примере запускается и инициализируется конфигурация «1С:Предприятия» с базой данных в каталоге c:\InfoBases\Trade. Далее создается экземпляр документа РасходнаяНакладная. Из листа извлекаются данные документа и записываются в объект «1С:Предприятия». В конце алгоритма документ сохраняется.

Обязанности модуля приложения при работе через внешнее соединение выполняет модуль внешнего соединения. Данный модуль может иметь процедуры-обработчики событий, в которых могут быть размещены действия, выполняемые при инициализации и завершении соединения соответственно.

Процедуры, функции и глобальные переменные, определенные в модуле внешнего соединения с ключевым словом Экспорт, становятся, как и в случае модуля приложения, частью глобального контекста.

Внешнее соединение с информационной базой «1С:Предприятия» предоставляет полный доступ к глобальному контексту и в качестве своих свойств может иметь:

В качестве своих методов внешнее соединение может иметь:

Открытые внешние соединения могут быть сохранены в пуле для их повторного использования, что позволяет экономить ресурсы и ускорять работу пользователей, которые ранее уже подключались к данной информационной базе. Для управления пулом используются свойства менеджера COM-соединений: MaxConnections, PoolCapacity и PoolTimeout. После создания менеджера COM-соединений используются стандартные значения этих параметров – 0. Поэтому пул хотя и есть, но не используется. Чтобы «1С:Предприятие» начало использовать пул, нужно установить значения, отличные от 0.

Имеется возможность из системы «1С:Предприятие» обращаться к другой копии «1С:Предприятия» (например, к другой конфигурации) для обмена данными (листинг 5.7).

подробнее

Подробнее познакомиться с примером работы с информационной базой «1С:Предприятия» через внешнее соединение можно в демонстрационной конфигурации «Интеграция с 1С», которая прилагается к книге.

Листинг 5.7. Пример обращения к другой информационной базе «1С:Предприятия»

Путь = "c:\InfoBases\Trade";

Пароль = "";

Пользователь = "";

 

V8 = Новый COMОбъект("V83.ComConnector");

 

Попытка

Открытие = V8.Connect("File=" + Путь + ";Usr=" + Пользователь + ";Pwd=" + Пароль + ";");

Исключение

Предупреждение("База данных не открыта!!!");

Возврат;

КонецПопытки;

 

МенеджерНоменклатуры = Открытие.Справочники.Товары;

НовыйЭлемент = МенеджерНоменклатуры.СоздатьЭлемент();

НовыйЭлемент.Наименование = "Новый товар";

НовыйЭлемент.Записать();

Назад: Automation Client
Дальше: Встраивание веб-клиента «1С:Предприятия» в сторонний сайт