ВСхнология COM-соСдинСний (Component Object Model) являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² взаимодСйствия Π² экосистСмС Windows, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ дСсятилСтиями ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅. Π­Ρ‚ΠΎ стандарт, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ свойства, словно ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ Π΅Π΄ΠΈΠ½ΠΎΠΉ систСмы. Π’ контСкстС 1Π‘ это Ρ‡Π°Ρ‰Π΅ всСго ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с офисными ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ Microsoft, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Excel ΠΈΠ»ΠΈ Word, Π»ΠΈΠ±ΠΎ взаимодСйствиС с ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ Outlook.

ПониманиС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ COM Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ эти знания ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ возмоТности для создания ΠΌΠΎΡ‰Π½Ρ‹Ρ… ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ², Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Однако, нСсмотря Π½Π° свою Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Π΅Π½Π½ΠΎΡΡ‚ΡŒ, тСхнология ΠΈΠΌΠ΅Π΅Ρ‚ ряд спСцифичСских особСнностСй настройки бСзопасности ΠΈ управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ часто становятся источником ошибок Ρƒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… спСциалистов.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ COM-взаимодСйствия, рассмотрим синтаксис ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ внСшним прилоТСниям ΠΈ ΡƒΠ΄Π΅Π»ΠΈΠΌ особоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ troubleshooting'Ρƒ распространСнных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΅Π³ΠΎ коллСкциями ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ сСанс связи, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ «висячиС» процСссы Π² диспСтчСрС Π·Π°Π΄Π°Ρ‡.

АрхитСктура COM ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² 1Π‘

Π’ основС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π»Π΅ΠΆΠΈΡ‚ концСпция ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрного взаимодСйствия, Π³Π΄Π΅ 1Π‘ выступаСт Π² Ρ€ΠΎΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (Automation Controller), Π° Ρ†Π΅Π»Π΅Π²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Excel) β€” Π² Ρ€ΠΎΠ»ΠΈ сСрвСра (Automation Server). Когда Π²Ρ‹ создаСтС соСдинСниС, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ класса CLSID ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ProgID. ИмСнно ΠΏΠΎ этим ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌ систСма Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π½ΡƒΠΆΠ½Ρ‹ΠΉ исполняСмый Ρ„Π°ΠΉΠ» ΠΈ рСгистрируСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² памяти.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Π΄Π²ΡƒΡ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ…: внСпроцСссном ΠΈ внутрипроцСссном. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Ρ€Π°Π±ΠΎΡ‚Ρ‹ с офисными прилоТСниями ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ внСпроцСссная модСль, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ запускаСтся ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ процСсс excel.exe. Π­Ρ‚ΠΎ обСспСчиваСт ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ: Ссли Excel Β«ΡƒΠΏΠ°Π΄Π΅Ρ‚Β», сама 1Π‘ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ, хотя соСдинСниС Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΎΡ€Π²Π°Π½ΠΎ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² срСдС Windows. На сСрвСрах ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Linux ΠΈΠ»ΠΈ Π² ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… конфигурациях (1Π‘ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Ρ‚ΠΎΠ½ΠΊΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π±Π΅Π· локального офиса) прямоС созданиС COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· использования ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… шлюзов ΠΈΠ»ΠΈ сСрвисов.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΊ ΡƒΠΆΠ΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΌΡƒ экзСмпляру прилоТСния ΠΈ созданиСм Π½ΠΎΠ²ΠΎΠ³ΠΎ. Если Π²Ρ‹ Π½Π΅ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ явно Ρ€Π΅ΠΆΠΈΠΌ создания, систСма ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π½Π°ΠΉΡ‚ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Excel ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ Π½Π΅ΠΌΡƒ. Π­Ρ‚ΠΎ часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ нСпрСдсказуСмому повСдСнию, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΊΠ½ΠΈΠ³Π΅.

ВСхничСскиС Π΄Π΅Ρ‚Π°Π»ΠΈ рСгистрации COM-сСрвСров

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π±Ρ‹Π» ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ зарСгистрирован Π² рССстрС Windows. ΠšΠ»ΡŽΡ‡ΠΈ рССстра хранят ΠΏΡƒΡ‚ΠΈ ΠΊ DLL ΠΈΠ»ΠΈ EXE Ρ„Π°ΠΉΠ»Π°ΠΌ. ΠŸΡ€ΠΈ установкС Microsoft Office рСгистрация происходит автоматичСски, Π½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΈ офисного ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈΠ»ΠΈ пСрСносС Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ диск ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ошибки «Класс Π½Π΅ зарСгистрирован».

Бинтаксис создания ΠΈ управлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ

Для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ связи Π² языкС 1Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ встроСнная функция Новый COMΠžΠ±ΡŠΠ΅ΠΊΡ‚. АргумСнтом этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ слуТит строковоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ProgID, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ прилоТСния. НапримСр, для Excel это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Excel.Application, Π° для Word β€” Word.Application.

Рассмотрим Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Excel. ПослС создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΡ‹ часто Π΄Π΅Π»Π°Π΅ΠΌ Π΅Π³ΠΎ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, устанавливая свойство Visible Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π˜ΡΡ‚ΠΈΠ½Π°. Π­Ρ‚ΠΎ позволяСт Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСсс Ρ€Π°Π±ΠΎΡ‚Ρ‹ макроса ΠΈΠ»ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°

ExcelApp = Новый COMΠžΠ±ΡŠΠ΅ΠΊΡ‚("Excel.Application");

ExcelApp.Visible = Π˜ΡΡ‚ΠΈΠ½Π°;

ExcelApp.Workbooks.Add();

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Ошибка ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Excel: " + ОписаниСОшибки());

ΠšΠΎΠ½Π΅Ρ†ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠΈ;

Π Π°Π±ΠΎΡ‚Π° с коллСкциями являСтся Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ взаимодСйствия. ΠŸΠΎΡ‡Ρ‚ΠΈ всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² COM-ΠΌΠΎΠ΄Π΅Π»ΠΈ Office ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ: ΠΊΠ½ΠΈΠ³ΠΈ (Workbooks), листы (Worksheets), ячСйки (Cells). ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ элСмСнту ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ ΠΏΠΎ индСксу (начиная с 1) ΠΈΠ»ΠΈ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ.

  • πŸ“‚ Workbooks β€” коллСкция ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΊΠ½ΠΈΠ³ Excel, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ.
  • πŸ“„ Worksheets β€” коллСкция листов Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ.
  • πŸ“ Range β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ячССк, основной ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.
  • βœ‰οΈ MailItem β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ письма Π² Outlook, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для формирования ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сообщСний.

ΠŸΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ критичСски Π²Π°ΠΆΠ½ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ рСсурсы. ΠŸΡ€ΠΎΡΡ‚ΠΎΠ³ΠΎ закрытия прилоТСния часто нСдостаточно, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π² памяти 1Π‘. НСобходимо явно ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ НСопрСдСлСно Π² порядкС, ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ созданию.

β˜‘οΈ Алгоритм ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ закрытия COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

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

Настройка ΠΏΡ€Π°Π² доступа ΠΈ бСзопасности DCOM

Одной ΠΈΠ· самых слоТных Π·Π°Π΄Π°Ρ‡ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с COM являСтся настройка ΠΏΡ€Π°Π² доступа, особСнно ΠΊΠΎΠ³Π΄Π° 1Π‘ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ машинС, Π° офис установлСн Π½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ машинС, ΠΈΠ»ΠΈ Π² ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрном Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΌ сСрвСрС. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма Windows строго ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ мСТпроцСссноС взаимодСйствиС Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ DCOM (Distributed COM).

Если Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ Β«ΠžΡ‚ΠΊΠ°Π·Π°Π½ΠΎ Π² доступС» ΠΈΠ»ΠΈ Β«Π‘Π΅Ρ€Π²Π΅Ρ€ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Β», ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда кроСтся Π² настройках ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ dcomcnfg.exe. Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² спискС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Microsoft Excel Application) ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²Π° запуска ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ настройки Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для 1Π‘ Π“Π΄Π΅ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ подлинности По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ НСт (None) Бвойства ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° β†’ Бвойства COM
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ импСрсонализации По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Аноним (Anonymous) Бвойства ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° β†’ Бвойства COM
ΠŸΡ€Π°Π²Π° запуска (Launch) Волько Π°Π΄ΠΌΠΈΠ½Ρ‹ ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ 1Π‘ / ВсС Настройка DCOM β†’ ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
ΠŸΡ€Π°Π²Π° доступа (Access) Волько Π°Π΄ΠΌΠΈΠ½Ρ‹ ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ 1Π‘ / ВсС Настройка DCOM β†’ ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π’Π°ΠΊΠΆΠ΅ сущСствуСт Π²Π°ΠΆΠ½Ρ‹ΠΉ нюанс, связанный с ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ. Если 1Π‘ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ сСрвис ΠΈΠ»ΠΈ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π° Excel пытаСтся ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»?Β»), процСсс зависнСт, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠΊΠ½ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΠ΄Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. Для прСдотвращСния этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ Π² самом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

πŸ’‘

Если Π²Ρ‹ настраиваСтС сСрвСр 1Π‘, ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ использования офисных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² Π² Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚Π½Ρ‹Ρ… заданиях. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ накоплСнию тысяч Π·Π°Π²ΠΈΡΡˆΠΈΡ… процСссов excel.exe, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‚ всю ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ сСрвСра.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹: Excel ΠΈ Outlook

НаиболСС вострСбованным сцСнариСм являСтся Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ встроСнного Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° 1Π‘, использованиС Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Excel позволяСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ слоТныС Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹, макросы VBA ΠΈ спСцифичСскоС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, нСдоступноС Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ записи Π΄Π°Π½Π½Ρ‹Ρ… Π² ячСйку. ΠœΡ‹ обращаСмся ΠΊ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌΡƒ листу, Π·Π°Ρ‚Π΅ΠΌ ΠΊ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ ячССк Range.

Лист = ExcelApp.ActiveSheet;

Π―Ρ‡Π΅ΠΉΠΊΠ° = Лист.Range("A1");

Π―Ρ‡Π΅ΠΉΠΊΠ°.Value = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, 1Π‘!";

Π―Ρ‡Π΅ΠΉΠΊΠ°.Font.Bold = Π˜ΡΡ‚ΠΈΠ½Π°;

Π―Ρ‡Π΅ΠΉΠΊΠ°.Interior.Color = 65535; // Π–Π΅Π»Ρ‚Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚

Π’ случаС с Outlook сцСнарии Ρ‡Π°Ρ‰Π΅ ΠΊΠ°ΡΠ°ΡŽΡ‚ΡΡ автоматичСской рассылки ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ письмо, Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΌΡƒ, Ρ‚Π΅Π»ΠΎ сообщСния, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ влоТСния ΠΈΠ· Π±Π°Π·Ρ‹ 1Π‘ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. Π­Ρ‚ΠΎ избавляСт ΠΎΡ‚ нСобходимости ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

  • πŸš€ Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ: ΠŸΡ€ΡΠΌΠ°Ρ запись Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ячССк ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π°. Для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ запись сразу Π² массив Variant (ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ).
  • πŸ”„ Π€ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹: COM позволяСт ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² Π»ΡŽΠ±Ρ‹Ρ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ…: .xlsx, .pdf, .csv.
  • πŸ“Ž ВлоТСния: Π’ Outlook ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сохранСнныС Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ.

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

πŸ’‘

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ: Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ ΠΊ свойствам COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π°. Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ 1Π‘ ΠΏΠ΅Ρ€Π΅Π΄ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΈΠ»ΠΈ записывайтС Π΄Π°Π½Π½Ρ‹Π΅ массивом Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ…ΠΎΠ΄.

Π’ΠΈΠΏΠΎΠ²Ρ‹Π΅ ошибки ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΡ… устранСния

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с ошибкой «НСдопустимоС использованиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Β» ΠΈΠ»ΠΈ Β«ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π±Ρ‹Π» ΡƒΠ΄Π°Π»Π΅Π½Β». Π­Ρ‚ΠΎ происходит, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-сСрвСр Π±Ρ‹Π»ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈΠ»ΠΈ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π° ΠΊΠΎΠ΄ 1Π‘ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π΅Π³ΠΎ свойствам. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‚Π°ΠΊΠΈΡ… ситуаций Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°..Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° распространСнная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ разрядности. Если Ρƒ вас установлСна 64-разрядная вСрсия 1Π‘, ΠΎΠ½Π° с Ρ‚Ρ€ΡƒΠ΄ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с 32-разрядными COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. Π’ соврСмСнных вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½Π° Π»ΡƒΡ‡ΡˆΠ΅, Π½ΠΎ ΠΏΡ€ΠΈ использовании сторонних DLL-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΡΠΏΠ»Ρ‹Ρ‚ΡŒ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Ошибка Β«0x800A03ECΒ» Π² Excel часто ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ячСйку Ρ‡Π΅Ρ€Π΅Π· COM. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² (запятая ΠΈΠ»ΠΈ Ρ‚ΠΎΡ‡ΠΊΠ° с запятой) Π² зависимости ΠΎΡ‚ Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… настроСк Windows.

Π’Π°ΠΊΠΆΠ΅ стоит ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ «висячих» процСссах. Если послС выполнСния ΠΊΠΎΠ΄Π° Π² диспСтчСрС Π·Π°Π΄Π°Ρ‡ остался процСсс excel.exe, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ потрСбляСт ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π·Π½Π°Ρ‡ΠΈΡ‚, Π²Ρ‹ Π½Π΅ освободили всС ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π”Π°ΠΆΠ΅ ΠΎΠ΄Π½Π° забытая пСрСмСнная, ΡΡΡ‹Π»Π°ΡŽΡ‰Π°ΡΡΡ Π½Π° лист ΠΈΠ»ΠΈ ΠΊΠ½ΠΈΠ³Ρƒ, Π½Π΅ даст процСссу Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒΡΡ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

πŸ“Š Π‘ ΠΊΠ°ΠΊΠΈΠΌ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго?
Excel
Word
Outlook
Π‘Ρ‚ΠΎΡ€ΠΎΠ½Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ (PDF, ZIP)
НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ COM

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΈ соврСмСнныС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹

НСсмотря Π½Π° ΠΌΠΎΡ‰ΡŒ COM, эта тСхнология считаСтся ΡƒΡΡ‚Π°Ρ€Π΅Π²Π°ΡŽΡ‰Π΅ΠΉ (legacy). Microsoft Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹Π΅ стандарты, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ REST API ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΌΠΈ сСрвисами Ρ‡Π΅Ρ€Π΅Π· HTTP-запросы. Для Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², особСнно Π² сфСрС Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ XML ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π±Π΅Π· запуска тяТСловСсного прилоТСния Office.

Π’ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘ появились встроСнныС срСдства Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ .xlsx Π±Π΅Π· установки Excel Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€. Π­Ρ‚ΠΎ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ лицСнзирования, разрядности ΠΈ зависания процСссов. Однако, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ макрос VBA ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ спСцифичСский ΠΏΠ»Π°Π³ΠΈΠ½ Excel, COM ΠΏΠΎΠΊΠ° остаСтся Π±Π΅Π·Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ.

Π’Ρ‹Π±ΠΎΡ€ ΠΌΠ΅ΠΆΠ΄Ρƒ COM ΠΈ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ срСдствами 1Π‘ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ. Для простой Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ прайс-листа Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнный Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ записью Π² Ρ„Π°ΠΉΠ». Для слоТного финансового ΠΎΡ‚Ρ‡Π΅Ρ‚Π° с худоТСствСнным ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°ΠΌΠΈ β€” COM-соСдинСниС Π±ΡƒΠ΄Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌ инструмСнтом.

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ COM-соСдинСния Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ 1Π‘?

НСт, Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ нСльзя, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ доступа ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π² Ρ‚Π°ΠΊΠΎΠΌ объСмС. Однако, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ толстый ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ локальной машинС Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сцСнарии ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹, Π½ΠΎ это Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ слоТной настройки бСзопасности Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ рСкомСндуСтся.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ процСсс Excel Π½Π΅ закрываСтся послС выполнСния ΠΊΠΎΠ΄Π°?

Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Π²Ρ‹ Π½Π΅ очистили всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (ячСйки, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹, листы). Π”Π°ΠΆΠ΅ Ссли Π²Ρ‹ Π²Ρ‹Π·Π²Π°Π»ΠΈ Quit(), Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ссылки Π² памяти 1Π‘ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ процСсс. НСобходимо ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΏΠΎ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² снизу Π²Π²Π΅Ρ€Ρ… ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ всСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ НСопрСдСлСно.

Как Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с COM Π½Π° сСрвСрС Linux?

Нативно это Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ COM β€” тСхнология Windows. На Linux-сСрвСрах 1Π‘ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ PDF Ρ‡Π΅Ρ€Π΅Π· внСшниС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, wkhtmltopdf) ΠΈΠ»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· HTTP-сСрвисы Π²ΠΎ внСшниС систСмы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·ΡŒΠΌΡƒΡ‚ Π½Π° сСбя Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

БСзопасно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ COM для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…?

ИспользованиС COM само ΠΏΠΎ сСбС Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ, Π½ΠΎ стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ находятся Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти стороннСго процСсса (Excel). Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² общСдоступныС ΠΏΠ°ΠΏΠΊΠΈ ΠΈ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Какая вСрсия Office Π»ΡƒΡ‡ΡˆΠ΅ всСго Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с 1Π‘?

НаиболСС ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ с вСрсиями Office 2016 ΠΈ 2019. ВСрсии Microsoft 365 (подписочныС) ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ автоматичСски, Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ измСнСнию интСрфСйсов ΠΈΠ»ΠΈ повСдСнию ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², трСбуя ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ΄Π° 1Π‘. РСкомСндуСтся Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ офисного ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… мСстах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.