Содержание:
2. 1С COM-соединение
3. Глобальная переменная и COM-соединение в системе конфигурации 1С
1. Глобальная переменная 1С
Если с локальными переменными всё понятно: они служат, чтобы отображаться в одной части бизнес-процесса, а затем к ним, с их сведениями из той части, можно обращаться в иной части бизнес-процесса и получать сведения.
По сути, глобальные переменные 1С имеют те же свойства, но иной масштаб действия, который отличается следующим:
• Глобальная переменная 1С всегда несёт своё индивидуальное наименование, чтобы её можно было оперативно определить;
• Глобальную переменную 1С можно сразу определить, прямо во время запуска системы;
• Глобальную переменную 1С можно вызывать для любого из бизнес-процессов системы.
Важно понимать, что каждая из категорий системы имеет свою подборку с глобальными переменными. Но, чтобы на вебе обратиться к глобальной переменной 1С – достаточно открыть систему в браузере. Для бэкенда и сервера все глобальные переменные 1С единственны и не повторяются.
2. 1С COM-соединение
В системе 1С COM-соединение, в первую очередь, служит для того, чтобы производить обмен информацией между различными конфигурациями системы 1С.
Для более понятного алгоритма процесса 1С COM-соединения, рассмотрим пример, где нужно выполнить обмен между двумя конфигурациями системы 1С.
Для выполнения этого действия, нужно подключиться к системе 1С. Для этого, необходимо прописать функцию, которая через 1С COM-объект будет подключаться к другой конфигурации. Она будет выглядеть таким образом:
Функция ПолучитьПодключениеКФайловойБД()
Параметры = "File=""C:\1CBase""";Usr=""login"";Pwd=""password"";";
V82COMConnector= Новый COMОбъект("V82.COMConnector");
Попытка
Возврат V82COMConnector.Connect(Параметры);
Исключение
Предупреждение ("Ошибка подключения!");
Возврат Неопределено;
КонецПопытки;
КонецФункции;
Результатом работы такой функции будет 1С COM-объект, который осуществит наши различные действия в конфигурации, к которой мы подключаемся.
Однако, если используется режим клиент-серверного вида, то функция будет выглядеть немного иначе, так, как представлено в примере программного кода ниже:
Функция ПолучитьПодключениеКСервернойБД()
Параметры = "Srvr=""server"";Ref=""BaseName"";Usr=""login"";Pwd=""password"";";
V82COMConnector= Новый COMОбъект("V82.COMConnector");
Попытка
Base1С = V82COMConnector.Connect(Параметры);
Исключение
Предупреждение ("Ошибка подключения!");
КонецПопытки;
3. Глобальная переменная и COM-соединение в системе конфигурации 1С
Как уже выяснили выше, 1С COM-соединение – очень удобная функция, чтобы подключаться по локальной сети к другим конфигурациям системы 1С. Однако, установка этого вида связи выполняется весьма длительное время.
Гораздо удобнее, если оно будет выполняться во время всей сессии подключения, а не отдельно для каждого случая.
Для временной оптимизации можно, конечно, попытаться сохранять соединение при помощи функционала «Параметры сеанса». Однако, этот путь будет ошибочным, так как не поддерживает ни 1С COM-соединение, ни произвольную ссылку.
Поэтому, необходимо косвенно создать глобальную переменную 1С, которая будет являться серверной, так, чтобы отправляемая функция по 1С COM-соединению имела значение «Повторное использование возвращаемых значений». В виде программного кода, функция такого вида будет выглядеть так:
Function Cnn(servername,dbname) Export
ret = Undefined;
Try
com = New ComObject("V83.COMConnector");
ret = com.Connect("Srvr="""+servername+""";Ref="""+dbname+"""; Usr=""admin""; Pwd=""12345678"";");
Except
ret = Undefined;
EndTry;
return ret;
EndFunction
После этого, при следующих обращениях к, созданной выше, функции (она должна иметь точно такие же аргументы, как и в предыдущем обращении), автоматом будет выставляться то же, уже созданное, соединение вида COM.
При этом, здесь, как глобальная переменная 1С, которая является серверной, задействуется величина из кэша со специальным типом.
Специалист компании ООО "Кодерлайн"
Лев Туренко