Передмова
Вирішували Ви завдання інтеграції на платформі 1С: Підприємство? Якщо так, то Вам напевно доводилося налаштовувати обмін даними між інформаційними базами 1С: Підприємства або з іншими інформаційними системами через COM-з'єднання. З ростом інтенсивності використання подібного обміну починає вставити питання оптимізації - скорочення часу на виконання обміну або навіть створення обміну в реальному часі.
У подібних умовах використовувати COM-об'єкт з'єднання стає проблематичним, адже при кожному підключенні до іншої бази він повністю завантажує конфігурацію. А якщо в якості конфігурації виступає, скажімо, "Управління виробничим підприємством", де розмір зміни давно перевищив 200 МБ? Тоді час на ініціалізацію з'єднання буде значним. А використовувати COM-з'єднання для обміну по "тонким" каналах зв'язку буде взагалі неможливо!
У статті розглянемо три способи кешування COM-об'єкта з'єднання з метою оптимізації швидкості підключення та обміну.
Для наочного уявлення шляхів вирішення такого завдання звернемося до наступною схемою:
Найпростішим, але найменш універсальним є спосіб кешування об'єкта з'єднання в глобальній змінній модуля форми. Такий спосіб підійде, якщо COM-з'єднання використовується рідко в будь-якій обробці або іншому об'єкті конфігурації. Для постійного використання з'єднання цей спосіб навряд чи підійде, адже при відкритті форми буде необхідно вновть форматувати з'єднання, що займе чимало часу через завантаження конфігурації підключається бази. Практичний приклад використання такого способу Ви можете подивитися в статті "Підтримка COM-з'єднання. Частина №1".
На противагу першим способом за складністю пропонується кешувати COM-з'єднання на окремій машині, веб-сервері. Наприклад, можна створити веб-сервіс, який буде ініціалізувати з'єднання через COM-об'єкт при першому зверненні. Далі підключаються до веб-сервісу клієнти зможуть працювати з кешуватися з'єднанням, виконуючи всі необхідні методи об'єкта. З точки зору продуктивності і економії ліцензій сервера 1С: Підприємства це ідеальний варіант, але його вибір обгрунтований тільки в тому випадку, якщо в подальшому робота з цим з'єднанням буде інтенсивним. Інакше вийде, що ми поставимо купимо і налаштуємо окрему машину з веб-сервером, який буде кешувати з'єднання для декількох користувачів. А це не раціонально. Статтю про практичну реалізацію такого способу кешування COM-з'єднання Ви можете подивитися тут: "Підтримка COM-з'єднання. Часть №2".
Але що, якщо використовуватися COM-з'єднання буде часто, але не настільки, щоб витрачатися на реалізації останнього запропонованого варіанту, при цьому використовувати глобальні змінні модуля форми також не варіант - з'єднання повинно кешуватися не для однієї форми, а для декількох об'єктів (обробка, звіт , документ). Тоді більш правильніше було б використовувати варіант "золотої середини" - кешувати з'єднання у тимчасовому сховищі в рамках кожного окремого сеансу, якому це з'єднання. Цей варіант дійсно підходить для більшості виникають подібних завдань. Невеликий приклад його використання продемонстрований в статті "Підтримка COM-з'єднання. Частина №3. Золота середина".
висновок
Використання COM-з'єднання для інтеграції прикладних рішень на платформі 1С: Підприємство між собою і з іншими програмними продуктами дозволяє вирішувати найскладніші завдання зі створення єдиної інформаційної системи підприємства.