Π Π°Π±ΠΎΡ‚Π° Π² срСдС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ часто сопровоТдаСтся появлСниСм Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… тСхничСских сообщСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Ρ‚ΡƒΠΏΠΈΠΊ Π΄Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Одной ΠΈΠ· самых распространСнных ΠΈ Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ являСтся сообщСниС ΠΎΠ± ошибкС, гласящСС, Ρ‡Ρ‚ΠΎ Β«Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°Β». Π­Ρ‚Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ выполнСния ΠΊΠΎΠ΄Π°, ΠΊΠΎΠ³Π΄Π° систСма пытаСтся ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ свойствам ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, которая Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ содСрТит ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π‘ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ кроСтся Π² строгой Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Если пСрСмСнная объявлСна ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, БправочникБсылка ΠΈΠ»ΠΈ Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠžΠ±ΡŠΠ΅ΠΊΡ‚), Π½ΠΎ Π² процСссС выполнСния Π΅ΠΉ Π±Ρ‹Π»ΠΎ присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ НСопрСдСлСно ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ (строка, число), Ρ‚ΠΎ любая ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ .ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠšΠΎΠ΄Ρƒ() ΠΈΠ»ΠΈ свойство .НаимСнованиС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ критичСскому сбою. ПониманиС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° возникновСния этой ошибки β€” ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг ΠΊ Π΅Ρ‘ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌΡƒ ΡƒΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈΡŽ.

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

ΠŸΡ€ΠΈΡ€ΠΎΠ΄Π° возникновСния ошибки ΠΈ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ слоТной систСмой Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. Ошибка Β«Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°Β» Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ встрСчаСт ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Ρ‡Π»Π΅Π½Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (Ρ‚ΠΎΡ‡ΠΊΠ° ΠΈ имя ΠΌΠ΅Ρ‚ΠΎΠ΄Π°/свойства) Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, которая Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ выполнСния ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ НСопрСдСлСно. Π­Ρ‚ΠΎ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ 1Π‘.

Часто Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ, полагая, Ρ‡Ρ‚ΠΎ пСрСмСнная Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ содСрТит ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ послС выполнСния запроса ΠΈΠ»ΠΈ поиска. Однако, Ссли запись Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°, ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠšΠΎΠ΄Ρƒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡƒΡΡ‚ΡƒΡŽ ссылку, которая ΠΏΡ€ΠΈ строгой ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ Ρ‚ΠΈΠΏΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΊΠ°ΠΊ Π½Π΅Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… дСйствий. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях систСма просто Π½Π΅ Π·Π½Π°Π΅Ρ‚, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ.

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Ошибка ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ intermittently (пСриодичСски), Ссли ΠΎΠ½Π° зависит ΠΎΡ‚ наличия ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±Π°Π·Π΅. На тСстовой Π±Π°Π·Π΅ с ΠΏΠΎΠ»Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ идСально, Π° Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π±Π°Π·Π΅ с Π½Π΅ΠΏΠΎΠ»Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ β€” ΠΏΠ°Π΄Π°Ρ‚ΡŒ с этой ошибкой.

Для диагностики Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. ЗапуститС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ с ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ ΠΈ воспроизвСдитС ΠΎΡˆΠΈΠ±ΠΊΡƒ. Когда Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ остановится Π½Π° строкС с ошибкой, Π½Π°Π²Π΅Π΄ΠΈΡ‚Π΅ курсор Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. Если Π² подсказкС Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏ НСопрСдСлСно, Π·Π½Π°Ρ‡ΠΈΡ‚, Π²Ρ‹ нашли источник ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ сочСтаниС клавиш Ctrl+Shift+F12 для быстрого просмотра значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°, Π½Π΅ прСрывая Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠ°.

Π’ΠΈΠΏΠΎΠ²Ρ‹Π΅ сцСнарии Π² ΠΊΠΎΠ΄Π΅ ΠΈ запросах

БущСствуСт нСсколько классичСских ситуаций, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ‡Π°Ρ‰Π΅ всСго ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ. ΠŸΠ΅Ρ€Π²Π°Ρ ΠΈ самая частая β€” Ρ€Π°Π±ΠΎΡ‚Π° с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΈΠ· запроса. Если Π² запросС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π»Π΅Π²ΠΎΠ΅ соСдинСниС (Π›Π•Π’ΠžΠ• Π‘ΠžΠ•Π”Π˜ΠΠ•ΠΠ˜Π•), Ρ‚ΠΎ поля ΠΈΠ· ΠΏΡ€Π°Π²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ пустыми (NULL), Ρ‡Ρ‚ΠΎ Π² 1Π‘ транслируСтся Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ НСопрСдСлСно.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ элСмСнт ΠΈΠ· Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΈ сразу ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π΅Π³ΠΎ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρƒ:

Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° = Запрос.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ().Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ();

Пока Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ() Π¦ΠΈΠΊΠ»

// Ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ здСсь, Ссли БправочникБсылка пуст

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚.НаимСнованиС);

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Π’Ρ‚ΠΎΡ€ΠΎΠΉ сцСнарий связан с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ Ρ„ΠΎΡ€ΠΌ ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ². Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ» ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΎΡ‚Π±ΠΎΡ€Π°, Π° Π² ΠΊΠΎΠ΄Π΅ Π½Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΡΡ‚ΡŒ, пСрСмСнная ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° останСтся пустой. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ справочника ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ сбою. ВсСгда провСряйтС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ использованиСм.

  • πŸ”΄ ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° ΠŸΡƒΡΡ‚Π°ΡΠ‘ΡΡ‹Π»ΠΊΠ°() ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΊ свойствам.
  • 🟠 ΠŸΡ€ΡΠΌΠΎΠ΅ использованиС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π›Π•Π’ΠžΠ• Π‘ΠžΠ•Π”Π˜ΠΠ•ΠΠ˜Π• Π±Π΅Π· контроля NULL-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.
  • 🟑 ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ»ΠΈ Π²Π΅Π±-сСрвисов.

Π’Ρ€Π΅Ρ‚ΠΈΠΉ распространСнный случай β€” Ρ€Π°Π±ΠΎΡ‚Π° с пСрСчислСниями. Иногда программисты ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· строки ΠΈΠ»ΠΈ числа Π±Π΅Π· явного прСобразования. Π₯отя это Ρ‡Π°Ρ‰Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ привСдСния Ρ‚ΠΈΠΏΠΎΠ², Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… контСкстах это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ°ΡΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Ссли пСрСмСнная объявлСна динамичСски.

πŸ“Š Π“Π΄Π΅ Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго встрСчаСтС эту ΠΎΡˆΠΈΠ±ΠΊΡƒ?
Π’ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ… Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…
Π’ слоТных ΠΎΡ‚Ρ‡Π΅Ρ‚Π°Ρ…
ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²
Π’ Π²Π΅Π±-сСрвисах

Алгоритм поиска ΠΈ исправлСния Π² модулях

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

ВмСсто прямого обращСния ΠΊ свойству, ΠΎΠ±Π΅Ρ€Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ Π² ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ. Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½ΠΎ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ вывСсти ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ понятноС сообщСниС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ структуры ΠΊΠΎΠ΄Π°.

Если НС ΠŸΡƒΡΡ‚Π°ΡΠ‘ΡΡ‹Π»ΠΊΠ°(Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚) Π’ΠΎΠ³Π΄Π°

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚.НаимСнованиС);

Π˜Π½Π°Ρ‡Π΅

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ Π² строкС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹");

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

Если ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π² слоТном Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ с мноТСством Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ трассировку. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ тСхнологичСский ΠΆΡƒΡ€Π½Π°Π» ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ() для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠΎΠΊΠ½ΠΎ сообщСний ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠΉ строкой. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Π½Π° ΠΊΠ°ΠΊΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° Π΄Π°Π½Π½Ρ‹Π΅ становятся Π½Π΅Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΌΠΈ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°...Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ просто для скрытия ошибки. Π­Ρ‚ΠΎ Π½Π΅ исправляСт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Π° лишь маскируСт Π΅Ρ‘, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΡ€Ρ‡Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ опСрация Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

Π’Π°ΠΊΠΆΠ΅ стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ(). Она ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π° ΠΈ провСряСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π½Π° пустоту, Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΈ Π½ΡƒΠ»Π΅Π²Ρ‹Π΅ значСния. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ для быстрой Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² Π½Π°Ρ‡Π°Π»Π΅ любой ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

β˜‘οΈ Π§Π΅ΠΊ-лист бСзопасного ΠΊΠΎΠ΄Π°

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

Ошибки Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΈ Π‘ΠšΠ” (БистСма Компоновки Π”Π°Π½Π½Ρ‹Ρ…)

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ², особСнно Ссли ΠΎΡ‚Ρ‡Π΅Ρ‚ построСн Π½Π° Π±Π°Π·Π΅ Π‘ΠšΠ”. Π’ этом случаС ошибка ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ скрыта Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ°ΠΊΠ΅Ρ‚Π° ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΡ‚Ρ‡Π΅Ρ‚Π°. Часто ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° кроСтся Π² настройках ΠΎΡ‚Π±ΠΎΡ€Π° ΠΈΠ»ΠΈ Π² вычисляСмых полях.

Если ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΏΠ°Π΄Π°Π΅Ρ‚ с ошибкой "Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°", ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ настройки Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΎΡ‚Ρ‡Π΅Ρ‚Π°. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² выраТСниях ΠΏΠΎΠ»Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°ΠΌ справочника, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ…. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° пытаСтся Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅, Π½ΠΎ ссылаСтся Π½Π° пустоту.

ΠœΠ΅ΡΡ‚ΠΎ возникновСния ВСроятная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ
ΠœΠ°ΠΊΠ΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΠΎΠ»Π΅ обращаСтся ΠΊ пустому ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π‘ΠšΠ”
ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΡ‚Ρ‡Π΅Ρ‚Π° ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠŸΡ€ΠΈΠšΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ΅Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ структуру запроса Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅
Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Ρ‚ΠΈΠΏΠΎΠ² Π² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΈ ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ
Π’Π½Π΅ΡˆΠ½ΡΡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° НСвСрная вСрсия Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ внСшнюю ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ

Π’ слоТных случаях, ΠΊΠΎΠ³Π΄Π° ΠΎΡ‚Ρ‡Π΅Ρ‚ содСрТит Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π½Π°Π±ΠΎΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ошибка ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈ объСдинСнии Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ². ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ соСдинСния ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π΄Π΅Ρ€Π΅Π²Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏΡ‹ соСдиняСмых ΠΏΠΎΠ»Π΅ΠΉ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ ΠΈ Π½Π΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π±Π΅Π· ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Π‘Π΅ΠΊΡ€Π΅Ρ‚ настройки Π‘ΠšΠ”

Если ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΌΠ°ΠΊΠ΅Ρ‚ оформлСния. Иногда ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΊΡ€ΠΎΡŽΡ‚ΡΡ Π² условном ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ссылаСтся Π½Π° Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ поля.

Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ ΠΈ обновлСниями

БоврСмСнная экосистСма 1Π‘ heavily relies on extensions (Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ). ПослС обновлСния Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ установки Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ старая самописная Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ ошибки ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Π­Ρ‚ΠΎ происходит ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ 1Π‘ ΠΌΠΎΠ³Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ структуру ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏΡ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΎΠ±Ρ‰ΠΈΡ… модулях.

НапримСр, Π² Π½ΠΎΠ²ΠΎΠΉ вСрсии Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ функция ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Π°() ΠΌΠΎΠ³Π»Π° Π½Π°Ρ‡Π°Ρ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ НСопрСдСлСно Π² ситуациях, Π³Π΄Π΅ Ρ€Π°Π½ΡŒΡˆΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π»Π° ΠΏΡƒΡΡ‚ΡƒΡŽ ссылку. Π’Π°Ρˆ ΠΊΠΎΠ΄, написанный ΠΏΠΎΠ΄ ΡΡ‚Π°Ρ€ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ, Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° событий ΠΈ ΠΏΠ°Π΄Π°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ свойства.

ΠŸΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ всСгда тСстируйтС всС критичСскиС бизнСс-процСссы. Если ошибка появилась Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ послС обновлСния, сравнитС сигнатуры ΠΎΠ±Ρ‰ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² старой ΠΈ Π½ΠΎΠ²ΠΎΠΉ вСрсии ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π² своих Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ….

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΡ‚ сторонних Π²Π΅Π½Π΄ΠΎΡ€ΠΎΠ², ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ вСрсия Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ совмСстима с вашСй вСрсиСй ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. ΠΠ΅ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ вСрсий β€” частая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° скрытых ошибок Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² спСцифичСских сцСнариях использования.

ΠŸΡ€ΠΎΡ„ΠΈΠ»Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ риски появлСния ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ошибок Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, слСдуСт ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ строгих стандартов кодирования. Одним ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ» являСтся явноС объявлСниС Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π₯отя 1Π‘ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΡŽ, ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ систСмС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° этапС компиляции ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ встроСнныС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎ внСшниС систСмы ΠΈΠ»ΠΈ записью Π² рСгистры, ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ структуры ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΎ особСнно Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с сайтами ΠΈΠ»ΠΈ маркСтплСйсами, Π³Π΄Π΅ входящиС Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ.

  • βœ… ВсСгда ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄ использованиСм.
  • βœ… Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² функциях ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ….
  • βœ… ВнСдряйтС ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ тСсты для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (пустыС ссылки, null).

РСгулярный Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ конструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Ρ‚ΡŒ источником ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. УдаляйтС ΠΌΠ΅Ρ€Ρ‚Π²Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°ΠΉΡ‚Π΅ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ. Π§Π΅ΠΌ ΠΏΡ€ΠΎΡ‰Π΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², Ρ‚Π΅ΠΌ Π»Π΅Π³Ρ‡Π΅ ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ мСсто возникновСния ошибки.

πŸ’‘

Π“Π»Π°Π²Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ 1Π‘: Никогда Π½Π΅ довСряйтС Π΄Π°Π½Π½Ρ‹ΠΌ "Π½Π° слово". ВсСгда провСряйтС сущСствованиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ с Π΅Π³ΠΎ содСрТимым.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Π·Π°Π΄Π°Π½ΠΈΠΈ?

Если ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Π·Π°Π΄Π°Π½ΠΈΠΈ, стандартный ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΏΠΎΠΌΠΎΡ‡ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ процСсс выполняСтся Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ событий Π² тСхнологичСском ΠΆΡƒΡ€Π½Π°Π»Π΅ (Π’Π–). НастройтС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ Π’Π– Π½Π° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ "Ошибка" ΠΈ имя процСсса "BackgroundJob". ΠŸΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ стСк Π²Ρ‹Π·ΠΎΠ²Π° Π² Ρ„Π°ΠΉΠ»Π΅ Π»ΠΎΠ³Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΎΡ‡Π½ΡƒΡŽ строку ΠΊΠΎΠ΄Π°.

ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ эта ошибка Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…?

Π’ Ρ€Π΅Π΄ΠΊΠΈΡ… случаях Π΄Π°. Если ссылки Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ссылок ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½Ρ‹ (Π±ΠΈΡ‚Ρ‹Π΅ ссылки), ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΠΎ Ρ‚Π°ΠΊΠΎΠΉ ссылкС ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ тСстированиС ΠΈ исправлСниС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (chdbfl.exe) Π² монопольном Ρ€Π΅ΠΆΠΈΠΌΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ физичСскоС ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ².

Как ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ эту ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΎΡ‚ "ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½"?

Ошибка "ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½" Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ систСма Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠ΄ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. Ошибка "Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°" ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½, Π½ΠΎ пСрСмСнная пуста. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ: ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ β€” ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ, Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” логичСский.

ВлияСт Π»ΠΈ вСрсия ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘ Π½Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ этой ошибки?

Π”Π°, влияСт. Π’ Π½ΠΎΠ²Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 8.3.20+) уТСсточился ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Ρ‚ΠΈΠΏΠΎΠ² Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… встроСнных функциях. Код, Ρ€Π°Π±ΠΎΡ‚Π°Π²ΡˆΠΈΠΉ Π½Π° вСрсии 8.3.10, ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ ошибки Π½Π° Π½ΠΎΠ²ΠΎΠΉ вСрсии ΠΈΠ·-Π·Π° Π±ΠΎΠ»Π΅Π΅ строгой ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.