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

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

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

АрхитСктура Ρ‚ΠΈΠΏΠ° ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π² 1Π‘

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

Бсылка Π½Π° пСрСчислСниС behaves ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ссылкам Π½Π° справочники ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ ряд ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ. НапримСр, Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт пСрСчислСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ выполнСния, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ состав элСмСнтов ТСстко Π·Π°Π΄Π°Π½ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ структуру пСрСчислСния Π±Π΅Π· обновлСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ….

ИспользованиС ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡ.Π˜ΠΌΡΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡ Π² ΠΊΠΎΠ΄Π΅ являСтся стандартным ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠΌ. Однако стоит ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с динамичСскими Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Ρ‚ΠΈΠΏ ссылки Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ явно ΡƒΠΊΠ°Π·Π°Π½ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΌΡƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ. Π­Ρ‚ΠΎ особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈ использовании ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² сСриализации Π΄Π°Π½Π½Ρ‹Ρ….

πŸ’‘

ВсСгда провСряйтС Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с динамичСскими ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ссылку Π½Π° пСрСчислСниС, Π° Π½Π΅ строковоС прСдставлСниС.

Бинтаксис получСния ссылки Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅

Для получСния ссылки Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ элСмСнт пСрСчислСния Π² ΠΊΠΎΠ΄Π΅ 1Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ синтаксис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ компилятор транслируСт Π² Π²Ρ‹Π·ΠΎΠ² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. НаиболСС распространСнный способ β€” это прямоС ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΡƒ. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π³Π΄Π΅ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ссылку Π½Π° статус Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

БсылкаНаБтатус = ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡ.БтатусыДокумСнтов.Π’Π Π°Π±ΠΎΡ‚Π΅;

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС пСрСмСнная БсылкаНаБтатус Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π‘ΡΡ‹Π»ΠΊΠ°ΠΠ°ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ Π² запросах, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΠΎΡ€ΠΌ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π² полях Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… частСй. Ошибкой Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ сюда строковоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅"Π’Π Π°Π±ΠΎΡ‚Π΅" Π±Π΅Π· явного привСдСния Ρ‚ΠΈΠΏΠ°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ систСма строго слСдит Π·Π° соотвСтствиСм Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

Если имя элСмСнта пСрСчислСния содСрТит ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈΠ»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы, синтаксис Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ услоТняСтся. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки ΠΈΠ»ΠΈ строковыС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ скобок, хотя Π² соврСмСнной ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΌΠΎΠ²Π΅Ρ‚ΠΎΠ½ΠΎΠΌ ΠΈ ΠΈΡ… слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Π½Π° этапС проСктирования ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ….

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° коррСктности получСния ссылки

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

Π Π°Π±ΠΎΡ‚Π° с пСрСчислСниями Π² запросах

ΠŸΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ запросов ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… использованиС ссылок Π½Π° пСрСчислСния Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ соблюдСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ» синтаксиса языка запросов 1Π‘. Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ имя элСмСнта Π² тСкст запроса ΠΊΠ°ΠΊ строку. БистСма ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ являСтся ссылкой Π½Π° элСмСнт ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ….

Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ конструкция Π—ΠΠΠ§Π•ΠΠ˜Π•(ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅.Π˜ΠΌΡΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚Π°). Π­Ρ‚Π° функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ константу Ρ‚ΠΈΠΏΠ° ссылка, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΄Π²ΠΈΠΆΠΎΠΊ запросов ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ построСнии ΠΏΠ»Π°Π½Π° выполнСния. Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ этой ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС синтаксиса ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Ρ…ΡƒΠΆΠ΅, ΠΊ Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, Ссли Π² Π±Π°Π·Π΅ сущСствуСт справочник с ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², находящихся Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ статусС. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ систСмС, Ρ‡Ρ‚ΠΎ сравниваСм ΠΏΠΎΠ»Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° со ссылкой Π½Π° элСмСнт пСрСчислСния.

ВЫБРАВЬ

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹.РСализацияВоваровУслуг.Бсылка КАК Бсылка,

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹.РСализацияВоваровУслуг.Бтатус КАК Бтатус

Π˜Π—

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹.РСализацияВоваровУслуг

Π“Π”Π•

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹.РСализацияВоваровУслуг.Бтатус = Π—ΠΠΠ§Π•ΠΠ˜Π•(ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡ.БтатусыДокумСнтов.ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½)

ИспользованиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… запросов Ρ‚Π°ΠΊΠΆΠ΅ допускаСт ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ ссылки Π½Π° пСрСчислСниС ΠΊΠ°ΠΊ значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π’ этом случаС Π² тСкстС запроса указываСтся имя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, Π° Π² ΠΊΠΎΠ΄Π΅ 1Π‘ ΠΏΡ€ΠΈ установкС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² пСрСдаСтся пСрСмСнная, содСрТащая ссылку, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ стандартным способом.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с NULL Π² пСрСчислСниях

Поля Ρ‚ΠΈΠΏΠ° ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL (Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ), Ссли это Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ свойствами ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈ сравнСнии Π² запросС ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ NULL Π½Π΅ Ρ€Π°Π²Π΅Π½ Π½ΠΈΠΊΠ°ΠΊΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ пСрСчислСния, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт.

ДинамичСскоС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ элСмСнтов пСрСчислСния

Π’ ситуациях, ΠΊΠΎΠ³Π΄Π° имя пСрСчислСния ΠΈΠ»ΠΈ элСмСнта нСизвСстно Π½Π° этапС написания ΠΊΠΎΠ΄Π° ΠΈ опрСдСляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, приходится ΠΏΡ€ΠΈΠ±Π΅Π³Π°Ρ‚ΡŒ ΠΊ динамичСским ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ прСдоставляСт Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ инструмСнтарий для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠœΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅.

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

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ дСйствий для бСзопасного получСния ссылки:

  • πŸ” ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ описания ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… пСрСчислСния ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ.
  • πŸ”— Π’Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ получСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ элСмСнта ΠΏΠΎ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡Ρƒ.
  • βœ… ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° пустоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ элСмСнт ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ.
  • πŸ›‘οΈ ΠžΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π² Π±Π»ΠΎΠΊ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°...Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок имСнования.

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

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

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈ валидация ссылок

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сравнСния ссылок Π½Π° пСрСчислСния Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ достаточно быстро, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΎΠ½ΠΈ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌ (UUID), Π° Π½Π΅ ΠΏΠΎ тСкстовым ΠΈΠΌΠ΅Π½Π°ΠΌ. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄Π°ΠΆΠ΅ Π² распрСдСлСнных ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π±Π°Π·Π°Ρ…, Π³Π΄Π΅ ΠΈΠΌΠ΅Π½Π° элСмСнтов ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ.

ΠŸΡ€ΠΈ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… источников, часто трСбуСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, соотвСтствуСт Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ допустимому элСмСнту пСрСчислСния. ΠŸΡ€ΡΠΌΠΎΠ΅ сравнСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° Π‘ΡΡ‹Π»ΠΊΠ°ΠΠ°ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅ с константой являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ способом.

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

Если Π’ΠΈΠΏΠ—Π½Ρ‡(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) = Π’ΠΈΠΏ("Π‘ΡΡ‹Π»ΠΊΠ°ΠΠ°ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅") Π’ΠΎΠ³Π΄Π°

// БСзопасная Ρ€Π°Π±ΠΎΡ‚Π° со ссылкой

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

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ сравнСниС ссылок Π½Π° Ρ€Π°Π·Π½Ρ‹Π΅ пСрСчислСния всСгда Π²Π΅Ρ€Π½Π΅Ρ‚ Π›ΠΎΠΆΡŒ, Π΄Π°ΠΆΠ΅ Ссли Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΊΠΎΠ΄Ρ‹ элСмСнтов ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚. Виповая ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π° сравнСния Π² систСмС 1Π‘.

πŸ’‘

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ссылок Π½Π° пСрСчислСния происходит ΠΏΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌΡƒ GUID, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ нСзависимым ΠΎΡ‚ языка интСрфСйса ΠΈ наимСнования элСмСнта.

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ способы ΠΈΡ… устранСния

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с рядом Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с пСрСчислСниями. Одной ΠΈΠ· самых распространСнных ошибок являСтся ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ строковоС прСдставлСниС элСмСнта Ρ‚Π°ΠΌ, Π³Π΄Π΅ трСбуСтся ссылка. Π­Ρ‚ΠΎ часто происходит ΠΏΡ€ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² XML ΠΈΠ»ΠΈ JSON, Π³Π΄Π΅ ссылка автоматичСски сСриализуСтся Π² строку, Π° ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π½Π΅ восстанавливаСтся Π² Ρ‚ΠΈΠΏ ссылки.

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

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ основныС симптомы ошибок ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ:

Π‘ΠΈΠΌΠΏΡ‚ΠΎΠΌ ошибки ВСроятная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Бпособ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ
ΠœΠΎΠ΄ΡƒΠ»ΡŒ Π½Π΅ компилируСтся НСвСрноС имя элСмСнта пСрСчислСния ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ имя Π² Π΄Π΅Ρ€Π΅Π²Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π°
Ошибка выполнСния"Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ..." ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° привСсти строку ΠΊ ссылкС Π±Π΅Π· ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅
Запрос Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡƒΡΡ‚ΡƒΡŽ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ НСвСрный синтаксис Π² условии Π“Π”Π• ΠžΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π—ΠΠΠ§Π•ΠΠ˜Π•(...)
НСвСрный Ρ‚ΠΈΠΏ Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅ ΠŸΡ€ΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ значСния вмСсто ссылки Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ синтаксис ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡ.Имя.Π­Π»Π΅ΠΌΠ΅Π½Ρ‚

Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ слоТных ситуаций ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΊΠ½ΠΎ"ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…" Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°. Оно позволяСт ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½ΠΎ ΠΈ Π΅Ρ‘ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ быстро Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ нСсоотвСтствия Ρ‚ΠΈΠΏΠΎΠ².

πŸ“Š Какая ошибка встрСчаСтся Ρƒ вас Ρ‡Π°Ρ‰Π΅ всСго?
Ошибка компиляции ΠΈΠΌΠ΅Π½ΠΈ
Ошибка Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…
ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² запросС
БлоТности с динамичСским Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ использования пСрСчислСний

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

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

Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта пСрСчислСния Π² синонимах ΠΈ коммСнтариях ΠΊ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌ. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ контСкст использования Π±Π΅Π· Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ погруТСния Π² бизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° пСрСчислСний ΠΈ ΠΈΡ… элСмСнтов ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² Π½ΠΎΠ²Ρ‹Ρ… вСрсиях Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ. ВсСгда свСряйтС Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° элСмСнтов Π² вашСй вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ поставщика ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π°.

БоблюдСниС этих простых Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния, Π³Π΄Π΅ Ρ€Π°Π±ΠΎΡ‚Π° со статусами ΠΈ фиксированными Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠΉ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ пСрСчислСния β€” это ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ стоит Π½Π΅Π΄ΠΎΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π°Π²Ρ‚ΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ 1Π‘: Π½Π°ΠΆΠ°Π² Ctrl+Space послС Π²Π²ΠΎΠ΄Π°"ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡ.", Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ список всСх доступных пСрСчислСний ΠΈ ΠΈΡ… элСмСнтов, Ρ‡Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ.

МоТно Π»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт пСрСчислСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ?

НСт, состав элСмСнтов пСрСчислСния опрСдСляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ Π½Π° этапС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ»ΠΈ обновлСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ прСдприятия Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… элСмСнтов Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это справочник с ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ имя элСмСнта пСрСчислСния ΠΏΠΎ Π΅Π³ΠΎ ссылкС?

Для получСния ΠΈΠΌΠ΅Π½ΠΈ (ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°) элСмСнта ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ свойство Имя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ссылки. НапримСр: Π˜ΠΌΡΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚Π° = Π‘ΡΡ‹Π»ΠΊΠ°ΠΠ°ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅.Имя;. Π­Ρ‚ΠΎ Π²Π΅Ρ€Π½Π΅Ρ‚ строковоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΈΠΌΠ΅Π½ΠΈ Π² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ….

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΎΠΌ с ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ элСмСнтами?

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡ хранятся Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ быстрСС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ². Они ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для фиксированных Π½Π°Π±ΠΎΡ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π΄ΠΊΠΎ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ. Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠ΅, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ большС рСсурсов.

Π§Ρ‚ΠΎ Π²Π΅Ρ€Π½Π΅Ρ‚ запрос, Ссли элСмСнт пСрСчислСния Π±Ρ‹Π» ΡƒΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ?

Если Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ Π±Ρ‹Π»Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° послС удалСния элСмСнта ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π² запросС ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ошибки ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ этому элСмСнту. ПослС обновлСния Π±Π°Π·Ρ‹ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ ссылки становятся Π½Π΅Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΌΠΈ, ΠΈ запись ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π° ΠΊΠ°ΠΊ содСрТащая ΠΎΡˆΠΈΠ±ΠΊΡƒ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ….

Как ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ссылку Π½Π° пСрСчислСниС Π²ΠΎ внСшнюю систСму Ρ‡Π΅Ρ€Π΅Π· HTTP-сСрвис?

ΠŸΡ€ΠΈ сСриализации Π² JSON ΠΈΠ»ΠΈ XML ссылка Π½Π° пСрСчислСниС ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСобразуСтся Π² строку (имя элСмСнта ΠΈΠ»ΠΈ UUID). На ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΉ сторонС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ восстановлСния ссылки, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ имя пСрСчислСния ΠΈ имя элСмСнта для Π²Ρ‹Π·ΠΎΠ²Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² 1Π‘.