Ошибка Β«ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΊΠ°ΠΊ ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΒ» β€” ΠΎΠ΄Π½Π° ΠΈΠ· самых распространённых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅, Ρ‚Π°ΠΊ ΠΈ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ. Она Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° систСма пытаСтся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ (которая ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚), ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ это функция. Π’ Π»ΡƒΡ‡ΡˆΠ΅ΠΌ случаС это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΡŽ Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ рСгистрации, Π² Ρ…ΡƒΠ΄ΡˆΠ΅ΠΌ β€” ΠΊ ΠΊΡ€Π°Ρ…Ρƒ выполнСния ΠΊΠΎΠ΄Π°.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ появлСния ошибки, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ скрытыС Π½ΡŽΠ°Π½ΡΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с динамичСскими Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ ΠΈ внСшними ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ прСдоставим 5 ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… способов Π΅Ρ‘ устранСния β€” ΠΎΡ‚ элСмСнтарных ΠΏΡ€Π°Π²ΠΎΠΊ ΠΊΠΎΠ΄Π° Π΄ΠΎ слоТных Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠ². ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»ΠΈΠΌ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌ сцСнариям Π² конфигурациях Π£Π’ 11, Π‘ΠŸ 3.0 ΠΈ Π—Π£ΠŸ 3.1, Π³Π΄Π΅ ошибка проявляСтся Ρ‡Π°Ρ‰Π΅ всСго.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ 1Π‘ воспринимаСт ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ: 3 основныС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹

ΠšΠΎΡ€Π΅Π½ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ кроСтся Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ языка 1Π‘, Π³Π΄Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€” это Ρ€Π°Π·Π½Ρ‹Π΅ сущности с Ρ‡Ρ‘Ρ‚ΠΊΠΈΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ отвСтствСнности. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° выполняСт дСйствия (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, записываСт Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈΠ»ΠΈ обновляСт рСгистр), Π° функция ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π’ΠΎΠ·Π²Ρ€Π°Ρ‚. Когда систСма ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΠΎΡ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Ρ‚ΠΈΠΏΠΎΠ².

Рассмотрим ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ сцСнарии, ΠΏΡ€ΠΎΠ²ΠΎΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ:

  • πŸ”Ή Π―Π²Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π² контСкстС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, присваиваниС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Π‘Π΅Π·Π’ΠΎΠ·Π²Ρ€Π°Ρ‚Π°()).
  • πŸ”Ή ДинамичСскиС Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ‡Π΅Ρ€Π΅Π· Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ(): ΠΊΠΎΠ³Π΄Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ вызываСтся ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ строки, Π° систСма Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ‚ΠΈΠΏ Π·Π°Ρ€Π°Π½Π΅Π΅.
  • πŸ”Ή Ошибки Π² Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ…: Ссли ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 1C:Enterprise Development Tools) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ·-Π·Π° Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΠΈ.

Π›ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΊΡ‚: Π² 1Π‘ 7.7 подобная ошибка ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»Π° ΠΊ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΠΎΠΌΡƒ сбою, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π² 8.x систСма Ρ‡Π°Ρ‰Π΅ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈ пытаСтся ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Однако ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ нСльзя β€” это Ρ‡Ρ€Π΅Π²Π°Ρ‚ΠΎ потСрями Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ.

πŸ“Š Π‘ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ 1Π‘ Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅?
Π£Π’ 11
Π‘ΠŸ 3.0
Π—Π£ΠŸ 3.1
КА 2.4
Бамописная
Другая

Бпособ 1: ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ΄Π° Π½Π° присваиваниС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅

Π‘Π°ΠΌΡ‹ΠΉ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΉ ΠΈ частый случай β€” ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΠΎ ошибкС пытаСтся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΡ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. НапримСр:

// НСкоррСктный ΠΊΠΎΠ΄:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π—Π°ΠΏΠΈΡΠΈ = Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.ΠžΠ±ΡŠΠ΅ΠΊΡ‚.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ(); // Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ() β€” ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°!

// ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄:

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.ΠžΠ±ΡŠΠ΅ΠΊΡ‚.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ(); // ΠŸΡ€ΠΎΡΡ‚ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ

Если Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.ΠžΠ±ΡŠΠ΅ΠΊΡ‚.Π­Ρ‚ΠΎΠ“Ρ€ΡƒΠΏΠΏΠ°() Π’ΠΎΠ³Π΄Π° // Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ записан Π² Π³Ρ€ΡƒΠΏΠΏΡƒ");

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ всС Ρ‚Π°ΠΊΠΈΠ΅ ошибки Π² ΠΊΠΎΠ΄Π΅:

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅.
  2. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ВСксты ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ (Ctrl+Shift+T).
  3. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ поиск ΠΏΠΎ тСксту: = (ΠΏΡ€ΠΎΠ±Π΅Π» послС Π·Π½Π°ΠΊΠ° равСнства) + имя ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹.

Π˜ΡΠΊΠ°Ρ‚ΡŒ конструкции Π²ΠΈΠ΄Π° `ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ = ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°()`

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ динамичСскиС Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ‡Π΅Ρ€Π΅Π· `Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ()`

ΠΠ½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, `ΠŸΠ΅Ρ€Π΅Π΄Π—Π°ΠΏΠΈΡΡŒΡŽ`)

Π£Π΄Π΅Π»ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ внСшним ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ ΠΈ интСграциям-->

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий β€” Ρ‚Π°ΠΌ часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΡ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ Ρ‚ΠΈΠΏΠ° ΠŸΠ΅Ρ€Π΅Π΄Π—Π°ΠΏΠΈΡΡŒΡŽ ΠΈΠ»ΠΈ ΠŸΡ€ΠΈΠŸΡ€ΠΎΠ²ΠΎΠ΄ΠΊΠ΅. НапримСр:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠŸΠ΅Ρ€Π΅Π΄Π—Π°ΠΏΠΈΡΡŒΡŽ(ΠžΡ‚ΠΊΠ°Π·, РСТимЗаписи)

// Ошибка: пытаСмся Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

Если НС ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒΠ”Π°Π½Π½Ρ‹Π΅() Π’ΠΎΠ³Π΄Π°

ΠžΡ‚ΠΊΠ°Π· = Π˜ΡΡ‚ΠΈΠ½Π°;

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚; // Π›ΠΈΡˆΠ½ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€! ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π½ΠΈΡ‡Π΅Π³ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ.

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

Бпособ 2: Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ динамичСских Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²

ДинамичСскиС Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ‡Π΅Ρ€Π΅Π· Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ() β€” частая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° ошибки, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ систСма Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° это ΠΈΠ»ΠΈ функция. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π˜ΠΌΡΠœΠ΅Ρ‚ΠΎΠ΄Π° = "ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒΠ”Π°Π½Π½Ρ‹Π΅";

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ("ΠžΠ±ΡŠΠ΅ΠΊΡ‚." + Π˜ΠΌΡΠœΠ΅Ρ‚ΠΎΠ΄Π° + "()"); // Ошибка, Ссли ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒΠ”Π°Π½Π½Ρ‹Π΅ β€” ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°

РСшСния:

  • πŸ”§ Π―Π²Π½ΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²:
    Если Π’ΠΈΠΏΠ—Π½Ρ‡(ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹[Π˜ΠΌΡΠœΠ΅Ρ‚ΠΎΠ΄Π°]) = Π’ΠΈΠΏ("Ѐункция") Π’ΠΎΠ³Π΄Π°
    

    Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ("ΠžΠ±ΡŠΠ΅ΠΊΡ‚." + Π˜ΠΌΡΠœΠ΅Ρ‚ΠΎΠ΄Π° + "()");

    Π˜Π½Π°Ρ‡Π΅

    Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ("ΠžΠ±ΡŠΠ΅ΠΊΡ‚." + Π˜ΠΌΡΠœΠ΅Ρ‚ΠΎΠ΄Π° + "()");

    ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

  • πŸ”§ ИспользованиС ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΎΠΊ: создайтС ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ-ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΡƒ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ.

Для массовой ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ динамичСских Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π² ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… конфигурациях (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ERP 2.4) рСкомСндуСтся Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° 1Script, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ всС Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ() ΠΈ выявит ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ опасныС мСста.

πŸ’‘

Π’ конфигурациях с большим количСством динамичСских Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² систСмах с Π³ΠΈΠ±ΠΊΠΎΠΉ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ) ΠΈΠΌΠ΅Π΅Ρ‚ смысл завСсти рСгистр свСдСний, Π³Π΄Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Ρ‚ΠΈΠΏΠ°Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π­Ρ‚ΠΎ ускорит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ.

Бпособ 3: Π Π°Π±ΠΎΡ‚Π° с внСшними ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ

Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 1C:Enterprise Development Tools, AddIn для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ) часто становятся источником ошибки, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ описаны Π² 1Π‘. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ симптомы:

  • πŸ–₯️ Ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΡƒΠΊΠ°Π·Π°Π½ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, Π½ΠΎ Π²Π΅Π΄Ρ‘Ρ‚ сСбя ΠΊΠ°ΠΊ функция.
  • πŸ–₯️ ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° проявляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° клиСнтской сторонС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ‚ΠΎΠ½ΠΊΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅), Π½ΠΎ Π½Π΅ Π² толстом.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΉ ScanOPOS для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со сканСрами ΡˆΡ‚Ρ€ΠΈΡ…ΠΊΠΎΠ΄ΠΎΠ²:

// Ошибка: ΠΌΠ΅Ρ‚ΠΎΠ΄ Initialize() Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ β€” ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, Π½ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ статус

Π‘ΠΊΠ°Π½Π΅Ρ€ = Новый COMΠžΠ±ΡŠΠ΅ΠΊΡ‚("ScanOPOS.ScanManager");

Бтатус = Π‘ΠΊΠ°Π½Π΅Ρ€.Initialize(); // 1Π‘ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ, Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

РСшСния:

  1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ скрытых Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, статус ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ).
  2. ΠžΠ±Π΅Ρ€Π½ΠΈΡ‚Π΅ Π²Ρ‹Π·ΠΎΠ² Π² Π±Π»ΠΎΠΊ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°β€¦Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅:
    ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°
    

    Π‘ΠΊΠ°Π½Π΅Ρ€.Initialize();

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

    Если Найти(ОписаниСОшибки(), "ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅") > 0 Π’ΠΎΠ³Π΄Π°

    Бтатус = НСопрСдСлСно; // Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌ "Π»ΠΎΠΆΠ½Ρ‹ΠΉ" Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

    Π˜Π½Π°Ρ‡Π΅

    Π’Ρ‹Π·Π²Π°Ρ‚ΡŒΠ˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅;

    ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

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

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с COM Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°Ρ… 1Π‘

Π’ Ρ‚ΠΎΠ½ΠΊΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΈ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ вСсти сСбя ΠΈΠ½Π°Ρ‡Π΅, Ρ‡Π΅ΠΌ Π² толстом. НапримСр, ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² толстом ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚, Π² Ρ‚ΠΎΠ½ΠΊΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ Null ΠΈΠ»ΠΈ ΠΏΡƒΡΡ‚ΡƒΡŽ строку. Π­Ρ‚ΠΎ связано с особСнностями marshaling-Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ 1Π‘ ΠΈ COM.

Для диагностики ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ OLEView ΠΎΡ‚ Microsoft β€” ΠΎΠ½Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ сигнатуры ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ описанных Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

Бпособ 4: Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ошибок Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°Ρ… событий

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠŸΡ€ΠΈΠ—Π°ΠΏΠΈΡΠΈ, ΠŸΠ΅Ρ€Π΅Π΄Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ) β€” излюблСнноС мСсто для ошибки Β«ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΊΠ°ΠΊ функция». Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, хотя ΠΏΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ 1Π‘ это Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ.

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ Π°Π½Ρ‚ΠΈΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠŸΠ΅Ρ€Π΅Π΄Π—Π°ΠΏΠΈΡΡŒΡŽ(ΠžΡ‚ΠΊΠ°Π·, РСТимЗаписи)

Если НС ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒΠ—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅() Π’ΠΎΠ³Π΄Π°

ΠžΡ‚ΠΊΠ°Π· = Π˜ΡΡ‚ΠΈΠ½Π°;

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π›ΠΎΠΆΡŒ; // Ошибка! ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

Как ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ:

ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ПояснСниС
Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π›ΠΎΠΆΡŒ; ΠžΡ‚ΠΊΠ°Π· = Π˜ΡΡ‚ΠΈΠ½Π°; Для ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠžΡ‚ΠΊΠ°Π·.
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒΠ”Π°Π½Π½Ρ‹Π΅(); ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒΠ”Π°Π½Π½Ρ‹Π΅(); Если ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒΠ”Π°Π½Π½Ρ‹Π΅ β€” ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, Π½Π΅ присваивайтС Π΅Ρ‘ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.
Ѐункция = ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°(); ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°();
Ѐункция = ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚();
Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ Π»ΠΎΠ³ΠΈΠΊΡƒ Π½Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ (дСйствиС) ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ (ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…).

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»ΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π² управляСмых Ρ„ΠΎΡ€ΠΌΠ°Ρ…, Π³Π΄Π΅ часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ Ρ‚ΠΈΠΏΠ° ΠŸΡ€ΠΈΠ˜Π·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΠŸΡ€ΠΈΠΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ. НапримСр:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π€ΠΎΡ€ΠΌΡ‹ΠŸΡ€ΠΈΠ˜Π·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚)

НовоСЗначСниС = Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅;

Если НовоСЗначСниС < 0 Π’ΠΎΠ³Π΄Π°

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = 0;

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚; // Π›ΠΈΡˆΠ½ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€! ΠœΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

Бпособ 5: Массовая Π·Π°ΠΌΠ΅Π½Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

Если ошибка распространСна ΠΏΠΎ всСму ΠΊΠΎΠ΄Ρƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² унаслСдованной ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ), Ρ€ΡƒΡ‡Π½ΠΎΠ΅ исправлСниС Π·Π°ΠΉΠΌΡ‘Ρ‚ слишком ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’ этом случаС ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ автоматизированная Π·Π°ΠΌΠ΅Π½Π° с использованиСм рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

Алгоритм дСйствий:

  1. ЭкспортируйтС всС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² тСкстовыС Ρ„Π°ΠΉΠ»Ρ‹ (Ρ‡Π΅Ρ€Π΅Π· Π€Π°ΠΉΠ» β†’ Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ как…).
  2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Notepad++ ΠΈΠ»ΠΈ VS Code для поиска ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ:
    [а-яА-Я0-9_]+(\s*)=(\s*)[а-яА-Я0-9_]+\.[а-яА-Я0-9_]+\([^)]*\);

    Π­Ρ‚ΠΎΡ‚ шаблон Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ всС присваивания Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

  3. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ΅ совпадСниС Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ β€” Π½Π΅ всС присваивания ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹!

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°ΠΌΠ΅Π½Ρ‹ для Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠ³ΠΎ случая:

// Π‘Ρ‹Π»ΠΎ:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ΠŸΡ€ΠΎΠ²Π΅ΡΡ‚ΠΈ();

// Π‘Ρ‚Π°Π»ΠΎ:

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ΠŸΡ€ΠΎΠ²Π΅ΡΡ‚ΠΈ();

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½(); // Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ статуса

πŸ’‘

Автоматизированная Π·Π°ΠΌΠ΅Π½Π° опасна! ВсСгда провСряйтС контСкст ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ совпадСния. НапримСр, конструкция `Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅()` ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Π°, Ссли `ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅` β€” функция.

Для слоТных ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, КомплСксная автоматизация 2.4) ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт Π½Π° 1Script ΠΈΠ»ΠΈ PowerShell, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ синтаксичСскоС Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ выявит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹Π΅ присваивания.

ΠŸΡ€ΠΎΡ„ΠΈΠ»Π°ΠΊΡ‚ΠΈΠΊΠ° ошибки: 5 ΠΏΡ€Π°Π²ΠΈΠ» чистого ΠΊΠΎΠ΄Π° Π² 1Π‘

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибки Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, слСдуйтС этим рСкомСндациям:

  • πŸ“Œ Π―Π²Π½ΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ: Ссли ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, оформляйтС Π΅Π³ΠΎ ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. НапримСр, вмСсто ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΠ‘ΡƒΠΌΠΌΡƒ(), которая записываСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ‘ΡƒΠΌΠΌΡƒ().
  • πŸ“Œ ИмСнованиС ΠΏΠΎ стандартам:
    • ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹: Π³Π»Π°Π³ΠΎΠ»Ρ‹ (Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ¦Π΅Π½Ρ‹).
    • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ: Π³Π»Π°Π³ΠΎΠ»Ρ‹ с Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠΌ (ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ‘ΠΏΠΈΡΠΎΠΊΠ’ΠΎΠ²Π°Ρ€ΠΎΠ², Π Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΠΠ”Π‘).
  • πŸ“Œ Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅: добавляйтС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ, указывая ΠΈΡ… Ρ‚ΠΈΠΏ:
    // Ѐункция. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π·Π° ΠΏΠ΅Ρ€ΠΈΠΎΠ΄.
    

    // ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

    // ДатаНачала, Π”Π°Ρ‚Π°ΠžΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΡ - Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π°

    // Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚: Массив

Для ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° статичСского Π°Π½Π°Π»ΠΈΠ·Π° Π² 1Π‘:EDT ΠΈΠ»ΠΈ SonarQube, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ автоматичСски Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ опасныС конструкции. НапримСр, ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ для SonarQube ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

// Настройка для поиска присваиваний Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€

rules:

- id: "no-procedure-assignment"

pattern: "$VAR = $OBJ.$METHOD(...);"

message: "Possible procedure-to-function call: '$OBJ.$METHOD'"

severity: ERROR

languages: [bsl]

Π’ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ отраслСвых Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ) ΠΈΠΌΠ΅Π΅Ρ‚ смысл завСсти рСгистр соглашСний ΠΏΠΎ ΠΊΠΎΠ΄Ρƒ, Π³Π΄Π΅ Π±ΡƒΠ΄ΡƒΡ‚ прописаны ΠΏΡ€Π°Π²ΠΈΠ»Π° имСнования ΠΈ использования ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€/Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π­Ρ‚ΠΎ особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ для ΠΊΠΎΠΌΠ°Π½Π΄, Π³Π΄Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ с Ρ€Π°Π·Π½Ρ‹ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ ΠΎΠΏΡ‹Ρ‚Π°.

FAQ: ЧастыС вопросы ΠΏΠΎ ошибкС Β«ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ΠΊΠ°ΠΊ ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΒ»

ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ ошибка ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ?

Π”Π°, Π½ΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ Ρ€Π΅Π΄ΠΊΠΎ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это связано с:

  • πŸ”Έ Ошибками Π² обновлСниях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3.20 Π±Ρ‹Π» Π±Π°Π³ с динамичСскими Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ Π² Ρ‚ΠΎΠ½ΠΊΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅).
  • πŸ”Έ НСкоррСктной Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² оборудования).

Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ установка послСднСго Ρ€Π΅Π»ΠΈΠ·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚ Π½Π° ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ.

Как ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…?

Π’ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅:

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (F12).
  2. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€” Ѐункция.
  3. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ содСрТат ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π’ΠΎΠ·Π²Ρ€Π°Ρ‚.

Для динамичСского опрСдСлСния Ρ‚ΠΈΠΏΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅:

Π’ΠΈΠΏΠœΠ΅Ρ‚ΠΎΠ΄Π° = Π’ΠΈΠΏΠ—Π½Ρ‡(ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹["Π˜ΠΌΡΠœΠ΅Ρ‚ΠΎΠ΄Π°"]);
ΠŸΠΎΡ‡Π΅ΠΌΡƒ ошибка проявляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠ½ΠΊΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅?

Π­Ρ‚ΠΎ связано с особСнностями выполнСния ΠΊΠΎΠ΄Π° Π½Π° сСрвСрС ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅:

  • πŸ”Έ Π’ толстом ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° выполняСтся локально, Π³Π΄Π΅ ошибка ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π°.
  • πŸ”Έ Π’ Ρ‚ΠΎΠ½ΠΊΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ вСсь ΠΊΠΎΠ΄ выполняСтся Π½Π° сСрвСрС, Π³Π΄Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ строТС.

РСшСниС: тСстируйтС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π² ΠΎΠ±ΠΎΠΈΡ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

МоТно Π»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π½Π° эту ΠΎΡˆΠΈΠ±ΠΊΡƒ?

ВСхничСски Π΄Π°, Π½ΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ Π½Π΅ рСкомСндуСтся. ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ:

  • πŸ”Έ ΠŸΠΎΡ‚Π΅Ρ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ… (Ссли ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π° Π΅Ρ‘ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ игнорируСтся).
  • πŸ”Έ НСпрСдсказуСмому повСдСнию бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ.

ВмСсто ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΡΠΏΡ€Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΠΈ для опасных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².

Как Π±Ρ‹Ρ‚ΡŒ, Ссли внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° всСгда Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½ΠΎ докумСнтация ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅?

Π­Ρ‚ΠΎ типичная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. РСшСния:

  1. Π‘Π²ΡΠΆΠΈΡ‚Π΅ΡΡŒ с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ для уточнСния Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ сигнатуры ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.
  2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΡƒ Π½Π° 1Script ΠΈΠ»ΠΈ C#, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.
  3. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ‚ΠΈΠΏΠ° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°:
    Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = НСопрСдСлСно;
    

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

    Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.ΠœΠ΅Ρ‚ΠΎΠ΄();

    Если Π’ΠΈΠΏΠ—Π½Ρ‡(Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚) = Π’ΠΈΠΏ("НСопрСдСлСно") Π’ΠΎΠ³Π΄Π°

    Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Π˜ΡΡ‚ΠΈΠ½Π°; // ПодмСна "пустого" Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°

    ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

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

    // ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибки

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

πŸ’‘

Ошибка Β«ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ΠΊΠ°ΠΊ ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΒ» β€” это Π½Π΅ просто ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π° сигнал ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ логичСской ошибкС Π² ΠΊΠΎΠ΄Π΅. Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, особСнно Π² Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… опСрациях (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΊΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²).

Если послС примСнСния всСх описанных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ошибка сохраняСтся, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅:

  • πŸ” Π’Π΅Ρ€ΡΠΈΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹: Π² 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3.18–8.3.19 Π±Ρ‹Π»ΠΈ Π±Π°Π³ΠΈ с динамичСскими Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ.
  • πŸ” Настройки совмСстимости: Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π’Π΅Ρ€ΡΠΈΡΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ = 8.3.10) ΠΌΠΎΠ³ΡƒΡ‚ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ошибок.
  • πŸ” АнтивирусноС ПО: Ρ€Π΅Π΄ΠΊΠΎ, Π½ΠΎ Π±Ρ‹Π²Π°ΡŽΡ‚ случаи, ΠΊΠΎΠ³Π΄Π° антивирус Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ доступ ΠΊ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

Для слоТных случаСв рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ 1Π‘ с ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π° β€” это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹Π·ΠΎΠ² ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ошибкС.