Π Π°Π±ΠΎΡ‚Π° с соврСмСнными систСмами ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ часто Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° 1Π‘ умСния ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ нСстандартными способами. Когда Ρ€Π΅Ρ‡ΡŒ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎ взаимодСйствии с Π²Π΅Π±-сСрвисами, API сторонних ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ парсингС слоТной структуры Π΄Π°Π½Π½Ρ‹Ρ…, стандартных Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… частСй ΠΈ списков Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ становится нСдостаточно. ИмСнно здСсь Π½Π° сцСну выходят COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ языкС с внСшними прилоТСниями Windows.

Π’Π΅Ρ€ΠΌΠΈΠ½ "сом ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ 1Π‘" Π² запросах ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ часто являСтся ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΎΠΉ ΠΈΠ»ΠΈ сокращСниСм ΠΎΡ‚ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (Component Object Model). Π­Ρ‚ΠΎ тСхнология мСТпроцСссного взаимодСйствия, разработанная Microsoft, которая позволяСт ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π’ контСкстС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ это ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Word, Excel, Outlook ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ JSON Ρ‡Π΅Ρ€Π΅Π· Scripting.Dictionary ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ систСмныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

ПониманиС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² управлСния этими ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ ΠΈ программистом ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Ρ‹ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ. ВмСсто написания слоТных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ спСциализированному ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ, управляя ΠΈΠΌ ΠΈΠ· ΠΊΠΎΠ΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Однако этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ строгого соблюдСния ΠΏΡ€Π°Π²ΠΈΠ» создания ΠΈ освобоТдСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ памяти.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² экосистСмС 1Π‘

COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ прСдставляСт собой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ свойств для внСшнСго использования. Π’ 1Π‘ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Ρ‚Π°ΠΊΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· конструктор Новый COMΠžΠ±ΡŠΠ΅ΠΊΡ‚. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΆΠΈΠ²ΡƒΡ‚ Π²Π½Π΅ процСсса 1Π‘ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой Windows.

ОсновноС прСимущСство использования этой Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отсутствуСт Π² самой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ "ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ". НапримСр, для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со слоТными JSON-структурами Π² старых вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ часто использовали ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Scripting.Dictionary, Π° для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² β€” прямой Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Excel Ρ‡Π΅Ρ€Π΅Π· COM.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° с COM Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ наличия установлСнного ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π½Π° машинС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ сСрвСра. Если Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Word.Application, Π° Microsoft Office Π½Π΅ установлСн, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ выбросит ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ограничСния Π½Π° использованиС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π² ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… срСдах ΠΈ Π½Π° Ρ‚ΠΎΠ½ΠΊΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°Ρ… Π±Π΅Π· Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… рСсурсов.

Бинтаксис создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ прост, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ указания ProgID (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°):

COMΠžΠ±ΡŠΠ΅ΠΊΡ‚ = Новый COMΠžΠ±ΡŠΠ΅ΠΊΡ‚("Scripting.Dictionary");
πŸ’‘

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π° сСрвСрС 1Π‘ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π·Π°ΠΏΡƒΡ‰Π΅Π½ сСрвис 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ, Π΅ΡΡ‚ΡŒ ΠΏΡ€Π°Π²Π° Π½Π° созданиС ΠΈ взаимодСйствиС с COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ доступа.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ Π² мобильном ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ 1Π‘. ИспользованиС ΠΊΠΎΠ΄Π° с Новый COMΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС выполнСния, Ссли ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ сцСнарии использования ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π°

НаиболСС популярным сцСнариСм примСнСния являСтся ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON Π΄ΠΎ появлСния Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… срСдств Ρ€Π°Π±ΠΎΡ‚Ρ‹ с JSON Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 8.3.8. Π”Π°ΠΆΠ΅ сСйчас Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Microsoft.XMLHTTP ΠΈΠ»ΠΈ WinHttp.WinHttpRequest для выполнСния HTTP-запросов, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ эти ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ ΠΈ Ρ‚Π΅Π»ΠΎΠΌ запроса.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° внСшний сСрвСр. ΠœΡ‹ создаСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ запроса, настраиваСм ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈ отправляСм Π΄Π°Π½Π½Ρ‹Π΅. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт Π³ΠΈΠ±ΠΊΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π°ΠΌΠΈ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ошибок, Ρ‡Ρ‚ΠΎ Π½Π΅ всСгда доступно Π² стандартном ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ HTTPΠ‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅.

Π”Ρ€ΡƒΠ³ΠΎΠΉ распространСнный кСйс β€” взаимодСйствиС с офисными прилоТСниями. АвтоматичСская Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹ Π² Excel с особым Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ячССк ΠΈΠ»ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π° Π² Word ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ с подстановкой Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ². Π—Π΄Π΅ΡΡŒ COM выступаСт ΠΊΠ°ΠΊ мост ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ 1Π‘ ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ прСдставлСниСм Π² офисном ΠΏΠ°ΠΊΠ΅Ρ‚Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° для выполнСния GET-запроса Ρ‡Π΅Ρ€Π΅Π· COM:

HTTP = Новый COMΠžΠ±ΡŠΠ΅ΠΊΡ‚("WinHttp.WinHttpRequest.5.1");

HTTP.Open("GET", "https://api.example.com/data", Π˜ΡΡ‚ΠΈΠ½Π°);

HTTP.Send();

ΠžΡ‚Π²Π΅Ρ‚ = HTTP.ResponseText;

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° готовности ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ с COM

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой Ρ‚Π°ΠΊΠΆΠ΅ часто ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Scripting.FileSystemObject. Он позволяСт ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ„Π°ΠΉΠ»Π°Ρ…, Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ тСкста Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ…, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ стандартных для 1Π‘, ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ².

Π Π°Π±ΠΎΡ‚Π° с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΈ свойствами Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

ВзаимодСйствиС с COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ строится Π½Π° Π²Ρ‹Π·ΠΎΠ²Π΅ Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ свойств. Бинтаксис 1Π‘ позволяСт ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½ΠΈΠΌ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Однако, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ типизация COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² часто динамичСская, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ Π½Π΅ всСгда ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ доступныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² подсказках Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π°.

Для получСния списка доступных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ свойств ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ внСшними ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ OLE Viewer, ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° создаваСмый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. НапримСр, Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Scripting.Dictionary Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Add, Exists, Remove ΠΈ свойство Count.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Ρ‚ΠΈΠΏΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. COM ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ систСму Ρ‚ΠΈΠΏΠΎΠ² (Variant), которая автоматичСски прСобразуСтся Π² Ρ‚ΠΈΠΏΡ‹ 1Π‘ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Однако ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹, особСнно ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ массивов ΠΈΠ»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Null. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ явноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ².

Имя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ProgID ОсновноС Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
Π‘Π»ΠΎΠ²Π°Ρ€ΡŒ Scripting.Dictionary Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ€Π°Π±ΠΎΡ‚Π° с JSON
HTTP Запрос WinHttp.WinHttpRequest.5.1 Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²Π΅Π±-запросов (GET, POST)
Ѐайловая систСма Scripting.FileSystemObject Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ ΠΏΠ°ΠΏΠΊΠ°ΠΌΠΈ
РСгулярныС выраТСния VBScript.RegExp Поиск ΠΈ Π·Π°ΠΌΠ΅Π½Π° ΠΏΠΎ шаблонам
Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ вызываСтся?

Если ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка "НСвСрный Ρ‚ΠΈΠΏ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°", ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠ°ΠΊ Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΈΠ»ΠΈ явно ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ. Иногда ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° значСния Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ стоит ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ошибок. COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ с ΠΊΠΎΠ΄Π°ΠΌΠΈ ошибок, спСцифичными для Windows. Для ΠΈΡ… ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°...Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Анализ свойства Number ΠΈ Description ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ сбоя.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° сСрвСрС ΠΈ Π² ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрном Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅

Запуск COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° сСрвСрС 1Π‘ ΠΈΠΌΠ΅Π΅Ρ‚ свои Π½ΡŽΠ°Π½ΡΡ‹, связанныС с Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ Windows. Π‘Π΅Ρ€Π²Π΅Ρ€ 1Π‘ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, USR1CV8), которая ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€Π°Π² Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ взаимодСйствиС с Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ столом ΠΈΠ»ΠΈ запуск ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Π²Π°ΠΆΠ½Ρ‹ΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠΌ являСтся настройка ΠΏΡ€Π°Π² DCOM. Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ dcomcnfg Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ProgID, ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² свойства ΠΈ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ "Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ" Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ запуск ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΡŽ для ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи сСрвиса 1Π‘. Π‘Π΅Π· этой настройки ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ ошибкой доступа.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ использования COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… отобраТСния интСрфСйса (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, запуск Π²ΠΈΠ΄ΠΈΠΌΠΎΠ³ΠΎ Excel), Π½Π° сСрвСрС Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ зависанию сСссии сСрвСра 1Π‘, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ процСсс Π±ΡƒΠ΄Π΅Ρ‚ ΠΆΠ΄Π°Ρ‚ΡŒ взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅Ρ‚.

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° β€” ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ тяТСлая опСрация. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ тысячи строк, создавайтС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΏΠ΅Ρ€Π΅Π΄ Ρ†ΠΈΠΊΠ»ΠΎΠΌ, Π° Π½Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ. Π­Ρ‚ΠΎ сущСствСнно снизит Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° сСрвСр ΠΈ ускорит Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°.

Для Π·Π°Π΄Π°Ρ‡, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… спСцифичСского Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° COM, Π½Π° сСрвСрС Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ срСдства ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘. Они ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ срСдС ΠΈ Π½Π΅ зависят ΠΎΡ‚ настроСк ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы.

πŸ“Š Π“Π΄Π΅ Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹?
Волько Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ Π² толстом Ρ€Π΅ΠΆΠΈΠΌΠ΅
На сСрвСрС для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΉ
Волько для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Excel/Word
Π’ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ срСдства

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

Бамая частая ошибка ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ β€” это "Π‘Π΅Ρ€Π²Π΅Ρ€ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½" ΠΈΠ»ΠΈ "Класс Π½Π΅ зарСгистрирован". Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ опСрационная систСма Π½Π΅ Π·Π½Π°Π΅Ρ‚, ΠΊΠ°ΠΊΠΎΠΉ исполняСмый Ρ„Π°ΠΉΠ» ассоциирован с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ProgID. РСшСниС: ΠΏΠ΅Ρ€Π΅ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ПО ΠΈΠ»ΠΈ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ DLL Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· regsvr32.

Вторая распространСнная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” ΡƒΡ‚Π΅Ρ‡ΠΊΠ° памяти. Если Π²Ρ‹ создаСтС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΈΠ»ΠΈ Π² Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ сСссии, Π½ΠΎ Π½Π΅ освобоТдаСтС Π΅Π³ΠΎ, ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти Π±ΡƒΠ΄Π΅Ρ‚ расти. Π₯отя сборщик мусора 1Π‘ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ с этим, явноС ΠΎΠ±Π½ΡƒΠ»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (ΠžΠ±ΡŠΠ΅ΠΊΡ‚ = НСопрСдСлСно) являСтся Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ.

Π’Ρ€Π΅Ρ‚ΡŒΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” нСсоотвСтствиС разрядности. Если сСрвСр 1Π‘ Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π² 64-Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π° COM-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ являСтся строго 32-Π±ΠΈΡ‚Π½Ρ‹ΠΌ (ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ 64-Π±ΠΈΡ‚Π½ΠΎΠΉ вСрсии), ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π΅ удастся. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях приходится Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ процСссы 1Π‘ Π² 32-Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈΠ»ΠΈ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΆΡƒΡ€Π½Π°Π» рСгистрации 1Π‘. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ логирования "Ошибка" ΠΈ "ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅". Часто Ρ‚Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ отобраТаСтся Π² Π΄ΠΈΠ°Π»ΠΎΠ³Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

πŸ’‘

ВсСгда ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ с COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π² Π±Π»ΠΎΠΊ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°-Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ сбой внСшнСго ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π° Π½Π΅ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒΡΡ.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Π² соврСмСнных вСрсиях 1Π‘

Π‘ Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ Π½ΠΎΠ²Ρ‹Ρ… вСрсий ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3 ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π½ΡŒΡˆΠ΅ Ρ€Π΅ΡˆΠ°Π»ΠΈΡΡŒ Ρ‡Π΅Ρ€Π΅Π· COM, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π Π°Π±ΠΎΡ‚Π° с JSON Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выполняСтся Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π§Ρ‚Π΅Π½ΠΈΠ΅JSON ΠΈ Π—Π°ΠΏΠΈΡΡŒJSON, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС ΠΈ кроссплатформСнно.

Для HTTP-запросов стандартом Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ стал ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ HTTPΠ‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈ HTTPЗапрос. Они Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ установки Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π½Π° сСрвСр ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… конфигурациях. ИспользованиС WinHttp Ρ‡Π΅Ρ€Π΅Π· COM ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ΠΎ лишь Π² Ρ€Π΅Π΄ΠΊΠΈΡ… случаях, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½Ρ‹ спСцифичСскиС Ρ„Π»Π°Π³ΠΈ бСзопасности ΠΈΠ»ΠΈ прокси-настройки, нСдоступныС Π² Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅.

ВзаимодСйствиС с офисными Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π»ΠΎ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈΠ»ΠΈ спСциализированныС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π° Π½Π΅ прямой COM-Π²Ρ‹Π·ΠΎΠ² Excel, особСнно Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅. Π­Ρ‚ΠΎ обСспСчиваСт ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π° Linux-сСрвСры ΠΈ Π² Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π·Π½Π°Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с COM остаСтся Π²Π°ΠΆΠ½Ρ‹ΠΌ Π½Π°Π²Ρ‹ΠΊΠΎΠΌ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈlegacy-систСм ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ нСстандартных Π·Π°Π΄Π°Ρ‡ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ со спСцифичСским ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ старым ПО, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌ соврСмСнных API.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ старой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π° Π½ΠΎΠ²Ρ‹Π΅ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Π΄ΠΈΡ‚Π΅ Π°ΡƒΠ΄ΠΈΡ‚ ΠΊΠΎΠ΄Π° Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠŸΠΎΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ срСдства 1Π‘ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ систСмы.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ 1Π‘?

НСт, Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Новый COMΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π² ΠΊΠΎΠ΄Π΅, выполняСмом Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅, нСльзя. Π’Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ доступа ΠΊ систСмным COM-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π° сСрвСрС ΠΈΠ»ΠΈ Π² толстом ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка "НСвСрная ΠΏΡ€ΠΎΠ³Π°" ΠΏΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°?

Π­Ρ‚Π° ошибка ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ нСсоотвСтствиС разрядности процСссов. Π’Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ 32-Π±ΠΈΡ‚Π½Ρ‹ΠΉ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² 64-Π±ΠΈΡ‚Π½ΠΎΠΌ процСссС 1Π‘ (ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚). ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ€Π°Π·Ρ€ΡΠ΄Π½ΠΎΡΡ‚ΡŒ устанавливаСмого ПО ΠΈ Ρ€Π΅ΠΆΠΈΠΌ запуска кластСра сСрвСров 1Π‘.

Как ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ· памяти?

Для явного освобоТдСния достаточно ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ НСопрСдСлСно. НапримСр: ΠœΠΎΠΉΠžΠ±ΡŠΠ΅ΠΊΡ‚ = НСопрСдСлСно. Π­Ρ‚ΠΎ Ρ€Π°Π·Ρ€Ρ‹Π²Π°Π΅Ρ‚ ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΈ опСрационная систСма смоТСт Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· памяти ΠΏΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ сборкС мусора.

БСзопасно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ COM Π½Π° сСрвСрС 1Π‘?

ИспользованиС COM сниТаСт ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ сСрвСра. Π‘Π±ΠΎΠΉ Π²ΠΎ внСшнСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Excel) ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ зависанию процСсса rphost. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ COM Π½Π° сСрвСрС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π½Π΅Ρ‚ Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΈ Π²Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Π² ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ внСшнСго ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.

Π“Π΄Π΅ Π½Π°ΠΉΡ‚ΠΈ список всСх доступных COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² систСмС?

Полного ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ списка Π½Π΅ сущСствуСт, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ устанавливаСмыми ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ зарСгистрированныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· рССстр Windows (Π²Π΅Ρ‚ΠΊΠ° HKEY_CLASSES_ROOT) ΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ OLE/COM Object Viewer ΠΈΠ· состава Windows SDK.