COM-з’єднання 1С
COM-з’єднання 1С — це механізм зовнішнього підключення до інформаційної бази 1С / 1С:Підприємство через COM-об’єкт, який дозволяє стороннім програмам звертатися до 1С, читати довідники, створювати документи, виконувати запити, запускати процедури, отримувати дані, виконувати обміни та автоматизувати інтеграції. Найчастіше для цього використовується COM-об’єкт V83.COMConnector або подібний компонент відповідної версії платформи.
COM-з’єднання часто застосовували для інтеграції 1С/BAS з Excel, сайтами, CRM, WMS, MES, банківськими обробками, внутрішніми сервісами, скриптами адміністрування, міграційними утилітами та старими корпоративними системами.
Головне. COM-з’єднання 1С — це спосіб керувати 1С із зовнішньої програми. Зовнішній застосунок підключається до бази, отримує об’єкт з’єднання і далі може працювати з довідниками, документами, запитами, регістрами та методами 1С майже так, ніби код виконується всередині 1С.
Проста аналогія. COM-з’єднання — це “технічний вхід” у 1С для іншої програми. Не користувач відкриває форму руками, а зовнішній скрипт підключається до бази й сам виконує потрібні дії.
Важливо про 1С та BAS. В Україні продукти екосистеми 1С і частина продуктів BAS пов’язані з санкційними, юридичними, кібербезпековими та репутаційними ризиками. Держспецзв’язку веде офіційний перелік забороненого до використання програмного забезпечення та комунікаційного обладнання, де згадуються продукти 1С/BAS, зокрема 1C:Підприємство 8 і BAS ERP. Указ Президента України №601/2024 ввів у дію рішення РНБО від 2 вересня 2024 року щодо застосування, скасування та внесення змін до санкцій. Перед підтримкою, використанням або міграцією таких систем потрібно перевіряти актуальні офіційні обмеження.
Що таке COM-з’єднання 1С
COM-з’єднання 1С — це технологія, яка дозволяє зовнішнім Windows-застосункам працювати з 1С через COM Automation.
Через COM-з’єднання зовнішня програма може:
- підключитися до файлової або клієнт-серверної бази;
- виконати запит;
- прочитати довідник;
- створити документ;
- записати документ;
- провести документ;
- отримати залишки;
- прочитати регістри;
- викликати експортну процедуру загального модуля;
- сформувати дані для JSON;
- сформувати або прочитати XML;
- запустити міграційне вивантаження;
- виконати службову інтеграцію.
У старих інтеграціях COM-з’єднання часто було основним способом “достукатися” до 1С ззовні.
Для чого використовують COM-з’єднання
COM-з’єднання використовують для:
- інтеграції з Excel;
- вивантаження даних у зовнішню систему;
- завантаження замовлень;
- створення документів із зовнішньої програми;
- автоматизації обмінів;
- міграції даних;
- синхронізації довідників;
- отримання залишків;
- отримання цін;
- формування контрольних сум;
- технічного адміністрування;
- запуску старих інтеграцій;
- зв’язку з .NET, PowerShell, VBScript або іншими Windows-застосунками.
Практичний сенс. COM-з’єднання зручне, коли зовнішній застосунок має напряму прочитати або записати дані в 1С без ручної роботи користувача.
Як працює COMConnector
Типова схема:
Зовнішня програма
↓
COMConnector
↓
Інформаційна база 1С/BAS
↓
Довідники, документи, регістри, запити
Зовнішня програма створює COM-об’єкт, передає рядок підключення, отримує з’єднання з інформаційною базою і далі виконує методи платформи.
Приклад логіки:
- Створити COMConnector.
- Передати параметри підключення.
- Авторизуватися користувачем 1С.
- Отримати об’єкт з’єднання.
- Виконати запит або метод.
- Обробити результат.
- Закрити процес або звільнити COM-об’єкт.
Типові рядки підключення
Для файлової бази:
File="C:\Bases\Accounting";Usr="Администратор";Pwd="password";
Для клієнт-серверної бази:
Srvr="server1c";Ref="Accounting";Usr="Администратор";Pwd="password";
Параметри можуть відрізнятися залежно від середовища, версії платформи, кластера, користувачів, типу авторизації та налаштувань безпеки.
Приклад COM-з’єднання з VBScript
Set Connector = CreateObject("V83.COMConnector")
ConnectionString = "Srvr=""server1c"";Ref=""Accounting"";Usr=""Администратор"";Pwd=""password"";"
Set Connection = Connector.Connect(ConnectionString)
Set Query = Connection.NewObject("Запрос")
Query.Text = "ВЫБРАТЬ Контрагенты.Ссылка КАК Ссылка, Контрагенты.Наименование КАК Наименование ИЗ Справочник.Контрагенты КАК Контрагенты"
Set Result = Query.Execute()
Set Selection = Result.Select()
Do While Selection.Next()
WScript.Echo Selection Наименование
Loop
Це спрощений приклад. У реальному коді потрібно обробляти помилки, кодування, права, порожні значення і завершення COM-об’єктів.
Приклад COM-з’єднання з PowerShell
$connector = New-Object -ComObject "V83.COMConnector"
$connectionString = 'Srvr="server1c";Ref="Accounting";Usr="Администратор";Pwd="password";'
$connection = $connector.Connect($connectionString)
$query = $connection.NewObject("Запрос")
$query.Text = @"
ВЫБРАТЬ
Контрагенты.Ссылка КАК Ссылка,
Контрагенты.Наименование КАК Наименование
ИЗ
Справочник.Контрагенты КАК Контрагенты
"@
$result = $query.Execute()
$selection = $result.Select()
while ($selection.Next()) {
Write-Output $selection.Наименование
}
PowerShell часто використовують для адміністративних скриптів, міграційних перевірок і простих інтеграцій.
Приклад COM-з’єднання з C#
using System;
using System.Runtime.InteropServices;
class Program
{
static void Main()
{
Type connectorType = Type.GetTypeFromProgID("V83.COMConnector");
dynamic connector = Activator.CreateInstance(connectorType);
string connectionString = "Srvr=\"server1c\";Ref=\"Accounting\";Usr=\"Администратор\";Pwd=\"password\";";
dynamic connection = connector.Connect(connectionString);
dynamic query = connection.NewObject("Запрос");
query.Text =
"ВЫБРАТЬ " +
"Контрагенты.Ссылка КАК Ссылка, " +
"Контрагенты.Наименование КАК Наименование " +
"ИЗ Справочник.Контрагенты КАК Контрагенты";
dynamic result = query.Execute();
dynamic selection = result.Select();
while (selection.Next())
{
Console.WriteLine(selection.Наименование);
}
Marshal.ReleaseComObject(connection);
Marshal.ReleaseComObject(connector);
}
}
У C# важливо коректно звільняти COM-об’єкти, інакше можуть залишатися завислі процеси або витоки пам’яті.
Приклад створення документа через COM
Спрощений приклад логіки:
Документ = Соединение.Документы.ЗаказПокупателя.СоздатьДокумент();
Документ.Дата = Соединение.ТекущаяДата();
Документ.Контрагент = Контрагент;
Документ.Склад = Склад;
Рядок = Документ.Товары.Добавить();
Рядок.Номенклатура = Номенклатура;
Рядок.Количество = 2;
Рядок.Цена = 1200;
Рядок.Сумма = 2400;
Документ.Записать();
Якщо потрібно провести документ:
Документ.Записать(РежимЗаписиДокумента.Проведение);
У реальному сценарії треба перевірити права, заповнення обов’язкових реквізитів, договори, організацію, валюту, склад, ПДВ, тип цін і регістри.
Приклад виконання запиту через COM
Запит = Соединение.NewObject("Запрос");
Запит.Текст =
"ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
| ТоварыНаСкладахОстатки.Склад КАК Склад,
| ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОстатков) КАК ТоварыНаСкладахОстатки";
Запит.УстановитьПараметр("ДатаОстатков", Соединение.ТекущаяДата());
Результат = Запит.Выполнить();
Такий підхід зручний для вивантаження залишків, цін, взаєморозрахунків або контрольних сум.
COM-з’єднання і довідники
Через COM можна працювати з довідниками:
- читати контрагентів;
- створювати контрагентів;
- шукати номенклатуру;
- оновлювати зовнішні ID;
- читати склади;
- створювати договори;
- оновлювати ціни;
- отримувати характеристики.
Приклад пошуку номенклатури:
Номенклатура = Соединение.Справочники.Номенклатура.НайтиПоКоду("SKU-001");
Краще шукати за кодом, артикулом або зовнішнім ID, а не тільки за назвою.
COM-з’єднання і документи
Через COM можна створювати або читати документи:
- замовлення покупця;
- рахунки;
- реалізації;
- надходження;
- платежі;
- переміщення;
- списання;
- виробничі документи;
- кадрові документи;
- зарплатні документи.
Але створення документів через COM має ризики: зовнішня програма може обійти частину звичного користувацького сценарію, не заповнити обов’язкові поля або створити дублікати.
COM-з’єднання і регістри
Через COM можна читати дані з регістрів за допомогою запитів.
Наприклад:
- залишки товарів;
- обороти продажів;
- ціни;
- курси валют;
- взаєморозрахунки;
- бухгалтерські обороти;
- зарплатні дані;
- виробничі залишки.
Писати напряму в регістри через зовнішню програму потрібно дуже обережно. У більшості сценаріїв краще створювати документи, які самі формують правильні рухи.
Небезпека. Прямий запис у регістри через COM без розуміння типової логіки може зламати залишки, взаєморозрахунки, ПДВ, зарплату, партії або собівартість.
COM-з’єднання і загальні модулі
Через COM можна викликати експортні процедури й функції загальних модулів, якщо вони доступні в контексті зовнішнього з’єднання.
Приклад ідеї:
Результат = Соединение.ОбщийМодульИнтеграции.ПолучитьОстаткиДляСайта(ДатаОстатков);
Для цього функція в загальному модулі має бути експортною:
Функция ПолучитьОстаткиДляСайта(ДатаОстатков) Экспорт
// Логіка отримання залишків
КонецФункции
Такий підхід часто кращий, ніж писати всю бізнес-логіку в зовнішній програмі.
COM-з’єднання і Excel
Один із популярних старих сценаріїв — Excel підключається до 1С через COM і отримує дані.
Приклади:
- вивантажити прайс-лист;
- отримати залишки;
- отримати продажі;
- оновити звіт;
- сформувати управлінську таблицю;
- перевірити контрольні суми;
- підготувати міграційний файл.
Недолік такого підходу — залежність від робочого місця, версій платформи, прав користувача і ручного запуску.
COM-з’єднання і зовнішні системи
COM-з’єднання може використовуватися в інтеграції з:
- CRM;
- сайтом;
- WMS;
- MES;
- банківськими системами;
- Excel;
- Access;
- .NET-сервісами;
- PowerShell-скриптами;
- старими ERP;
- міграційними утилітами.
У сучасній архітектурі COM краще замінювати на API, web-сервіси, JSON, черги або інтеграційний шар.
COM-з’єднання і JSON
COM-з’єднання може бути проміжним механізмом для формування JSON.
Наприклад:
- C#-сервіс підключається до 1С через COM.
- Виконує запит до залишків.
- Перетворює результат у JSON.
- Відправляє JSON у зовнішній API.
Приклад JSON:
{
"warehouse": "MAIN",
"items": [
{
"sku": "SKU-001",
"quantity": 25
},
{
"sku": "SKU-002",
"quantity": 10
}
]
}
Такий варіант часто використовували, коли сама 1С не мала зручного API або коли інтеграцію робила зовнішня команда.
COM-з’єднання і XML
COM-з’єднання також може використовуватися для формування або читання XML.
Приклади:
- вивантаження CommerceML;
- завантаження замовлень;
- передача цін;
- передача залишків;
- електронний документообіг;
- старі SOAP-інтеграції;
- міграційні файли.
COM у такому випадку може бути “мостом” між 1С і зовнішнім XML-обміном.
COM-з’єднання і клієнт-серверний режим
У клієнт-серверному режимі COM-з’єднання підключається до інформаційної бази через сервер 1С.
Схема:
Зовнішня програма
↓
COMConnector
↓
Сервер 1С
↓
СУБД
У такому режимі потрібно контролювати:
- доступність сервера 1С;
- доступність СУБД;
- ліцензії;
- права користувача;
- активні сеанси;
- блокування;
- продуктивність;
- журнал помилок.
COM-з’єднання і файловий режим
У файловому режимі COM-з’єднання може підключатися без сервера 1С:
File="C:\Bases\Accounting";Usr="Администратор";Pwd="password";
Ризики файлового режиму:
- залежність від шляху;
- проблеми мережевого доступу;
- блокування файлу;
- пошкодження при збоях;
- слабша масштабованість;
- складніше багатокористувацьке використання.
Для продуктивних інтеграцій краще клієнт-серверний режим або сучасний API.
32-bit і 64-bit проблеми
COM-з’єднання дуже залежить від розрядності:
- 32-bit зовнішня програма потребує 32-bit COM-компонент;
- 64-bit зовнішня програма потребує 64-bit COM-компонент;
- Excel 32-bit не побачить 64-bit COM так, як очікується;
- служба Windows може запускатися в іншому середовищі, ніж інтерактивний користувач.
Типова помилка:
ActiveX component can't create object: V83.COMConnector
Можливі причини:
- не встановлено платформу 1С;
- не зареєстровано COM-компонент;
- неправильна розрядність;
- немає прав;
- служба запускається під іншим користувачем;
- використовується не та версія платформи.
Реєстрація COM-компонента
У деяких випадках потрібно зареєструвати COM-компонент платформи.
Типова дія виконується через встановлення або реєстрацію платформи 1С. Конкретні команди залежать від версії платформи, каталогу встановлення і розрядності.
Практичні перевірки:
- чи встановлена потрібна версія 1С;
- чи є COMConnector;
- чи збігається розрядність;
- чи має користувач права;
- чи видно COM-об’єкт із потрібного середовища;
- чи не конфліктують кілька версій платформи.
COM-з’єднання і права доступу
COM-з’єднання працює від імені користувача 1С, який вказаний у рядку підключення.
Цей користувач має мати рівно ті права, які потрібні для інтеграції.
Погана практика:
Usr="Администратор";Pwd="password";
Краще:
- створити окремого службового користувача;
- дати мінімальні права;
- обмежити доступ до зарплати, ПДВ, банку, собівартості;
- заборонити зайві обробки;
- логувати дії;
- регулярно змінювати пароль або використовувати безпечний механізм секретів.
COM-з’єднання і паролі
Рядок підключення часто містить пароль.
Ризики:
- пароль у коді;
- пароль у bat-файлі;
- пароль у PowerShell-скрипті;
- пароль у конфігураційному файлі без шифрування;
- пароль у журналі помилок;
- пароль у Git;
- пароль у листуванні.
Потрібно:
- не зберігати пароль відкритим текстом;
- використовувати захищене сховище секретів;
- обмежувати права службового користувача;
- не логувати рядок підключення повністю;
- відкликати доступ при завершенні інтеграції.
COM-з’єднання і безпека
COM-з’єднання може читати й змінювати критичні дані.
Ризики:
- створення неправильних документів;
- дублювання документів;
- зміна закритого періоду;
- масове оновлення довідників;
- доступ до зарплати;
- доступ до банку;
- доступ до собівартості;
- витік персональних даних;
- витік паролів;
- обхід користувацьких форм і перевірок;
- запуск від імені адміністратора.
Критично. COM-з’єднання — це не просто “технічний доступ”. Це потенційний повний програмний доступ до бази. Його потрібно захищати так само серйозно, як API з правом запису в ERP.
COM-з’єднання і продуктивність
COM-з’єднання може бути повільним, якщо використовувати його неправильно.
Погані практики:
- читати по одному об’єкту в циклі;
- робити запит для кожного рядка;
- створювати документи без пакетної логіки;
- проводити кожен документ одразу;
- не використовувати запити;
- передавати великі таблиці через COM по одному полю;
- запускати важкі операції в робочий час;
- тримати з’єднання відкритим годинами без потреби.
Краще:
- використовувати запити;
- отримувати дані пакетами;
- застосовувати external_id;
- вести журнал обміну;
- розділяти імпорт і проведення;
- запускати важкі обробки вночі;
- контролювати блокування;
- звільняти COM-об’єкти.
COM-з’єднання і блокування
Через COM можна створити блокування так само, як через звичайний код 1С.
Наприклад:
- зовнішня програма масово проводить документи;
- паралельно користувачі працюють із тими самими регістрами;
- регламентне завдання виконує обмін;
- закриття місяця перераховує собівартість.
Наслідки:
- документи не проводяться;
- користувачі чекають;
- база працює повільно;
- виникають конфлікти транзакцій;
- інтеграція падає з помилкою.
COM-з’єднання і журналювання
Для COM-інтеграцій потрібно вести журнал.
Логувати потрібно:
- дату і час;
- зовнішню систему;
- користувача 1С;
- тип операції;
- external_id;
- кількість об’єктів;
- кількість помилок;
- текст помилки;
- час виконання;
- статус;
- повтори;
- результат.
Приклад журналу:
| Час | Операція | Об’єктів | Статус | Помилки |
|---|---|---|---|---|
| 15.05.2026 10:00 | Завантаження замовлень | 120 | Успішно | 0 |
| 15.05.2026 11:00 | Вивантаження залишків | 5000 | Помилка | 3 |
Ідемпотентність COM-інтеграцій
Ідемпотентність означає, що повторний запуск не створює дублікати.
Для цього потрібно:
- використовувати external_id;
- зберігати external_id у 1С;
- перевіряти існування документа перед створенням;
- вести журнал обміну;
- використовувати статуси;
- мати унікальні ключі;
- контролювати повтори після помилок.
Погано:
Кожен запуск створює новий документ.
Добре:
Якщо ExternalID уже існує — документ оновлюється або пропускається.
Типові помилки COM-з’єднання
| Помилка | Причина | Наслідок |
|---|---|---|
| Не створюється COMConnector | Не встановлена платформа, не та розрядність, не зареєстрований COM | Інтеграція не запускається |
| Немає доступу до бази | Неправильний рядок підключення або права | Не вдається підключитися |
| Помилка авторизації | Невірний користувач або пароль | З’єднання не створюється |
| Дублюються документи | Немає external_id | Повторні замовлення або платежі |
| Повільна робота | Запити в циклі, пооб’єктне читання | Інтеграція триває годинами |
| Завислі процеси | COM-об’єкти не звільнені | Пам’ять і процеси не очищуються |
| Помилки прав | Службовий користувач має замало або забагато прав | Операція не виконується або є ризик витоку |
Помилка: ActiveX component can't create object
Типові причини:
- COMConnector не зареєстрований;
- платформа 1С не встановлена;
- використовується неправильна розрядність;
- скрипт запускається під іншим користувачем;
- служба не бачить COM-компонент;
- встановлено кілька версій платформи;
- немає прав на запуск COM.
Що перевірити:
- Версію платформи.
- Розрядність платформи.
- Розрядність зовнішньої програми.
- Реєстрацію COM.
- Права користувача.
- Середовище запуску.
- Чи запускається той самий код інтерактивно.
Помилка: інтеграція працює вручну, але не працює службою
Причини:
- служба Windows запускається під іншим користувачем;
- у службового користувача немає профілю;
- немає доступу до мережевої папки;
- немає доступу до бази;
- не видно COM-компонент;
- інша розрядність;
- немає прав на тимчасові файли;
- пароль або секрет недоступний службі.
Рішення:
- налаштувати окремого службового користувача;
- перевірити доступи;
- перевірити розрядність;
- перевірити змінні середовища;
- не використовувати локальні шляхи користувача;
- логувати помилки запуску.
Помилка: зовнішня програма створює дублікати
Причини:
- немає external_id;
- external_id не зберігається;
- пошук виконується за номером, який може повторюватися;
- помилка після запису документа;
- повторний запуск імпорту;
- немає журналу інтеграції.
Правильний підхід:
- Зовнішня система передає унікальний ID.
- COM-інтеграція шукає документ за цим ID.
- Якщо документ є — не створює новий.
- Якщо документа немає — створює.
- Після запису фіксує статус.
Помилка: COM-з’єднання повільно читає дані
Причини:
- читання об’єктів по одному;
- багато звернень через COM-межу;
- запит у циклі;
- немає індексів для пошуку;
- зовнішня програма обробляє великі таблиці не пакетно;
- дані витягуються з документів замість регістрів;
- немає відбору по періоду.
Рішення:
- використовувати запити;
- читати дані пакетами;
- обмежувати період;
- брати залишки з регістрів;
- не ходити в базу для кожного рядка;
- оптимізувати пошук external_id.
COM-з’єднання і адміністрування
Адміністратор має знати:
- які COM-інтеграції існують;
- де вони запускаються;
- під яким користувачем;
- який рядок підключення використовується;
- де зберігаються паролі;
- які права має службовий користувач;
- які дані читаються;
- які дані записуються;
- чи є журнал;
- хто підтримує інтеграцію;
- що буде, якщо інтеграція зупиниться.
Без такої інформації COM-інтеграція стає “чорною скринькою”.
COM-з’єднання і розширення
Розширення 1С можуть впливати на COM-інтеграції.
Наприклад:
- додано новий обов’язковий реквізит;
- змінено форму, але COM її не використовує;
- додано перевірку перед записом;
- змінено логіку проведення;
- додано підписку на подію;
- змінено права.
Після встановлення розширення потрібно перевірити, чи не зламалися COM-інтеграції.
COM-з’єднання і оновлення 1С/BAS
Після оновлення можуть змінитися:
- версія платформи;
- COM-компонент;
- розрядність;
- метадані;
- назви об’єктів;
- реквізити;
- типи полів;
- логіка проведення;
- права;
- розширення;
- загальні модулі.
Тому COM-інтеграції потрібно обов’язково тестувати після оновлень.
Коли COM-з’єднання доречне
COM-з’єднання може бути доречним, якщо:
- інтеграція працює в Windows-середовищі;
- потрібен швидкий доступ до старої 1С;
- немає готового API;
- потрібно зробити міграційне вивантаження;
- потрібно отримати контрольні суми;
- є старий .NET або PowerShell-інструмент;
- потрібно тимчасово підтримати стару систему до міграції.
Коли COM-з’єднання поганий варіант
COM-з’єднання погано підходить, якщо:
- інтеграція має бути кросплатформною;
- сервіс працює в Linux;
- потрібна cloud-архітектура;
- потрібен стабільний web API;
- багато одночасних підключень;
- потрібна черга повідомлень;
- потрібен масштабований обмін;
- потрібно уникнути залежності від Windows/COM;
- потрібно будувати нову сучасну архітектуру.
Для нових інтеграцій краще розглядати REST API, JSON, webhooks, черги або інтеграційний шар.
COM-з’єднання і міграція з 1С/BAS
Під час переходу з 1С або BAS у K2 ERP COM-з’єднання може виконувати дві ролі:
- тимчасовий інструмент вивантаження даних;
- старий механізм інтеграції, який потрібно замінити.
Через COM можна вивантажити:
- довідники;
- документи;
- регістри;
- залишки;
- ціни;
- взаєморозрахунки;
- партії;
- характеристики;
- бухгалтерські обороти;
- контрольні суми;
- зовнішні ID.
Але після міграції COM-з’єднання зазвичай краще замінити на API або інший сучасний механізм.
Що перевірити перед міграцією COM-інтеграцій
Перед міграцією потрібно зібрати:
- список усіх COM-інтеграцій;
- зовнішні програми, які їх використовують;
- користувачів 1С для підключення;
- рядки підключення;
- права;
- паролі й секрети;
- розклад запуску;
- які дані читаються;
- які дані записуються;
- external_id;
- журнали помилок;
- відповідальних;
- залежності від Excel, PowerShell, C#, служб Windows;
- залежності від версії платформи;
- бізнес-процеси, які інтеграція підтримує.
Варіанти заміни COM-з’єднання в K2 ERP
| Старий сценарій через COM | Варіант у K2 ERP | Коментар |
|---|---|---|
| Excel читає залишки з 1С | Power BI або API | Краще прибрати ручну залежність від Excel |
| C# створює замовлення в 1С | REST API K2 ERP | Потрібна ідемпотентність і external_id |
| PowerShell вивантажує довідники | Scheduled export / API job | Краще з логом і статусами |
| COM формує XML для сайту | JSON/API-конектор | Сучасніший формат |
| COM міграційно читає регістри | Реплікатор K2 / міграційний шар | Потрібні контрольні суми |
| Стара служба Windows підключається до 1С | Integration service | Потрібні секрети, логи, моніторинг |
Карта міграції COM-з’єднання
| Елемент COM-інтеграції | Що означає | Аналог у K2 ERP | Контроль |
|---|---|---|---|
| COMConnector | Технічний доступ до 1С | REST API / integration layer | Авторизація і права |
| Рядок підключення | Адреса бази, користувач, пароль | API endpoint + token | Захист секретів |
| Запит 1С | Вибірка даних | API method / SQL dataset | Контроль полів |
| ExternalID | Зовнішній ключ | External reference | Захист від дублів |
| Журнал обміну | Статус інтеграції | Integration log | Повтори і помилки |
| Служба Windows | Автоматичний запуск | Background job / scheduler | Моніторинг |
Контрольні суми після міграції COM-інтеграцій
Після перенесення потрібно звірити:
- кількість довідників;
- кількість документів;
- кількість рядків;
- суми документів;
- залишки товарів;
- залишки по складах;
- ціни;
- взаєморозрахунки;
- зовнішні ID;
- кількість імпортованих об’єктів;
- кількість помилок;
- дублікати;
- статуси обміну;
- час виконання інтеграції.
Реплікатор K2 і COM-з’єднання 1С
Реплікатор K2 може допомогти при переході з COM-інтеграцій 1С або BAS у K2 ERP.
Він може використовуватися для:
- аналізу старих інтеграцій;
- вивантаження довідників;
- вивантаження документів;
- вивантаження регістрів;
- формування контрольних сум;
- перевірки зовнішніх ID;
- підготовки JSON;
- заміни старих COM-вивантажень;
- підготовки даних для Power BI;
- порівняння старої і нової системи;
- паралельного запуску 1С/BAS і K2 ERP.
COM-з’єднання в сучасній ERP-архітектурі
У сучасній ERP-архітектурі COM-з’єднання вважається застарілим або перехідним підходом.
Замість нього частіше використовують:
- REST API;
- JSON;
- webhooks;
- черги повідомлень;
- інтеграційні сервіси;
- ETL;
- Power BI;
- сервісні облікові записи;
- audit log;
- централізоване сховище секретів;
- моніторинг інтеграцій.
У K2 ERP інтеграції краще будувати як контрольовані API-сценарії з логами, правами, токенами, статусами, повторною обробкою й аудитом.
Санкції та ризики використання 1С/BAS в Україні
При описі COM-з’єднань 1С і BAS в українському контексті потрібно згадувати санкційні та безпекові ризики.
1С історично є російською програмною екосистемою. Після початку російської агресії проти України використання такого програмного забезпечення стало питанням не тільки бухгалтерії, а й кібербезпеки, комплаєнсу, репутації та цифрової незалежності.
Держспецзв’язку веде перелік забороненого до використання програмного забезпечення та комунікаційного обладнання; у переліку згадуються продукти 1С/BAS, зокрема 1C:Підприємство 8 і BAS ERP. Указ Президента України №601/2024 ввів у дію рішення РНБО від 2 вересня 2024 року щодо застосування, скасування та внесення змін до персональних спеціальних економічних та інших санкцій.
Важливо. COM-з’єднання 1С/BAS може давати зовнішній програмі доступ до критичних бізнес-даних: фінансів, складу, банку, зарплати, ПДВ, виробництва, контрагентів, персональних даних, цін, собівартості й документів. Якщо така інтеграція працює в ризиковому або підсанкційному ПЗ, компанії потрібно оцінити юридичні, технічні й кібербезпекові ризики та планувати перехід на безпечну ERP-платформу.
Типові питання
Що таке COM-з’єднання 1С?
COM-з’єднання 1С — це механізм, який дозволяє зовнішній Windows-програмі підключитися до інформаційної бази 1С/BAS через COMConnector і працювати з даними, документами, довідниками, запитами та методами 1С.
Для чого використовується V83.COMConnector?
V83.COMConnector використовується для створення зовнішнього COM-з’єднання з базою 1С 8.x. Через нього зовнішня програма отримує об’єкт підключення до інформаційної бази.
Чому COMConnector не створюється?
Найчастіше через неправильну розрядність, відсутність платформи 1С, незареєстрований COM-компонент, відсутність прав або запуск під іншим користувачем.
Чи безпечно використовувати COM-з’єднання?
Безпечно лише за умови мінімальних прав, захищених паролів, журналювання, контролю external_id, обмеження доступу й регулярного аудиту. COM-з’єднання може мати дуже широкі можливості доступу до бази.
Чи варто робити нові інтеграції через COM?
Для нових інтеграцій краще розглядати REST API, JSON, webhooks або інтеграційний шар. COM доцільний переважно для старих Windows-інтеграцій, тимчасових рішень або міграційних задач.
Що важливо при міграції COM-інтеграцій у K2 ERP?
Потрібно знайти всі COM-з’єднання, зрозуміти, які дані вони читають або записують, які external_id використовують, які права мають, де зберігаються паролі, і замінити їх на API, фонові задачі, Power BI або інтеграційний шар K2 ERP.
Коротко
| Питання | Відповідь |
|---|---|
| Що таке COM-з’єднання 1С? | Зовнішнє підключення до 1С/BAS через COMConnector. |
| Для чого потрібне? | Для інтеграцій, скриптів, Excel, C#, PowerShell, міграцій і автоматизації. |
| Що таке V83.COMConnector? | COM-об’єкт платформи 1С 8.x для підключення до інформаційної бази. |
| Що найчастіше ламається? | Розрядність, реєстрація COM, права, паролі, версії платформи, дублікати документів. |
| Чим небезпечне? | Може дати зовнішній програмі доступ до критичних даних і запису документів. |
| Що краще для нових інтеграцій? | REST API, JSON, webhooks, черги або інтеграційний сервіс. |
Висновок
COM-з’єднання 1С — це потужний, але ризиковий механізм інтеграції. Він дозволяє зовнішнім Windows-програмам підключатися до 1С/BAS, читати дані, виконувати запити, створювати документи, викликати експортні процедури й автоматизувати обміни.
Сильна сторона COM — прямий доступ до можливостей 1С. Слабка сторона — залежність від Windows, COM-компонентів, розрядності, версій платформи, прав користувачів, паролів у рядках підключення і слабка придатність для сучасної cloud/API-архітектури.
COM-з’єднання — це міст між старою 1С і зовнішнім світом. Але цей міст потрібно контролювати: права, паролі, логи, external_id, продуктивність, дублікати й безпека мають бути описані й перевірені.
При переході з 1С або BAS у K2 ERP COM-з’єднання потрібно інвентаризувати окремо. Саме через них часто працюють старі інтеграції, Excel-звіти, служби Windows, міграційні скрипти, обміни з сайтами й неочевидні бізнес-процеси.
Правильна міграція — це не перенесення COM як технології, а перенесення корисної інтеграційної логіки в сучасну ERP-архітектуру: REST API, JSON, фонові задачі, audit log, Power BI, захищені секрети й контрольовані права доступу.
Див. також
- 1С
- BAS
- BAS ERP
- K2 ERP
- ERP
- Інтеграція через JSON
- XML 1С
- Мова 1С
- Зовнішня обробка 1С
- Зовнішній звіт 1С
- Регламентні завдання 1С
- Адміністрування 1С
- Конфігуратор 1С
- Товстий клієнт 1С
- Клієнт-серверний режим 1С
- Сервер 1С
- Розширення 1С
- СКД 1С
- Запити 1С
- Проведення документа 1С
- Рухи документа 1С
- Регістри 1С
- Регістр накопичення 1С
- Регістр відомостей 1С
- Регістр бухгалтерії 1С
- Регістр розрахунків 1С
- Взаєморозрахунки 1С
- Характеристики номенклатури 1С
- Партії 1С
- Типи цін 1С
- ПДВ 1С
- Зарплата 1С
- Виробництво 1С
- Інтеграція з банками
- Power BI
- BI система
- Вивантаження даних 1С
- Міграція даних з 1С
- Міграція з 1С
- Міграція з BAS
- Заміна BAS
- Реплікатор K2
- Права доступу в ERP
- Аудит дій
- Українське програмне забезпечення
- Цифрова незалежність
Зовнішні посилання
- COM-з’єднання 1С
- COMConnector 1С
- Інтеграція 1С
- Обмін даними 1С
- API
- JSON
- XML 1С
- PowerShell
- C Sharp
- Excel
- Зовнішні обробки
- Регламентні завдання
- Мова 1С
- Адміністрування 1С
- Конфігуратор 1С
- Сервер 1С
- Клієнт-серверний режим 1С
- СКД 1С
- Запити 1С
- Регістри 1С
- Проведення документа
- Рухи документа
- Взаєморозрахунки
- Номенклатура
- Партії 1С
- Типи цін 1С
- ПДВ
- Банк
- Power BI
- BI
- 1С
- BAS
- BAS ERP
- K2 ERP
- ERP
- Міграція даних
- Міграція з 1С
- Міграція з BAS
- Заміна BAS
- Реплікатор K2
- Права доступу
- Аудит дій
- Автоматизація бізнесу
- Українське програмне забезпечення
- Цифрова незалежність України