Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ β€” основа любой Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ бизнСс-процСссов. Π‘Π΅Π· понимания ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈΠ»ΠΈ ΠΎΡ‚Ρ‡Ρ‘Ρ‚. Однако Π΄Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с нюансами: ΠΏΠΎΡ‡Π΅ΠΌΡƒ функция Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅? Как ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎ ссылкС? МоТно Π»ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ модуля Π±Π΅Π· ошибок? Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π² знаниях β€” ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ синтаксиса Π΄ΠΎ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ… сцСнариСв с асинхронными Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ ΠΈ динамичСским Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

ΠœΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ стандартныС способы Π²Ρ‹Π·ΠΎΠ²Π° Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ . ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, Π½ΠΎ ΠΈ малоизвСстныС ΠΏΡ€ΠΈΡ‘ΠΌΡ‹: Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ, лямбда-выраТСния, Π²Ρ‹Π·ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π’Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…Π”Π°Π½Π½Ρ‹Ρ…. ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»Π΅Π½ΠΎ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌ ошибкам β€” ΠΎΡ‚ "НСопрСдСлённый ΠΌΠ΅Ρ‚ΠΎΠ΄" Π΄ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΏΡ€Π°Π²Π°ΠΌΠΈ доступа. Π’ ΠΊΠΎΠ½Ρ†Π΅ вас ΠΆΠ΄Ρ‘Ρ‚ FAQ с ΠΎΡ‚Π²Π΅Ρ‚Π°ΠΌΠΈ Π½Π° частыС вопросы ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π° сравнСния ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

πŸ“Š Какой способ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² 1Π‘ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
ВочСчная нотация (ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ΠœΠ΅Ρ‚ΠΎΠ΄())
ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ
ДинамичСский Π²Ρ‹Π·ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· Π‘Ρ‚Ρ€ΠΎΠΊΡƒ
РСфлСксия (ΠœΠ΅Ρ‚ΠΎΠ΄(), Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚)
Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚

1. Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ синтаксис: точСчная нотация ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ

Π‘Π°ΠΌΡ‹ΠΉ распространённый способ β€” точСчная нотация, ΠΊΠΎΠ³Π΄Π° функция вызываСтся Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с использованиСм Ρ‚ΠΎΡ‡ΠΊΠΈ. НапримСр, для Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΠžΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠ΅() ΠΈΠ· глобального контСкста ΠΏΠΈΡˆΡƒΡ‚:

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΠžΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠ΅("ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!", 5);

Если функция ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, справочнику ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ), сначала ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ имя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°:

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ.НомСнклатура.ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡŽ("ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€");

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ хранится Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ формируСтся динамичСски. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для Π³ΠΈΠ±ΠΊΠΈΡ… сцСнариСв, Π³Π΄Π΅ имя ΠΌΠ΅Ρ‚ΠΎΠ΄Π° опрСдСляСтся Π² runtime:

Π˜ΠΌΡΠ€ΡƒΠ½ΠΊΡ†ΠΈΠΈ = "ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΠžΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠ΅";

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ(Π˜ΠΌΡΠ€ΡƒΠ½ΠΊΡ†ΠΈΠΈ + "(ВСкст, ВрСмя)");

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ динамичСском Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ‡Π΅Ρ€Π΅Π· Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Ρ‚ΠΈΠΏΠΎΠ² Π½Π° этапС компиляции. Ошибки Π² ΠΈΠΌΠ΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ количСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² проявятся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ врСмя выполнСния.
  • βœ… ΠŸΠ»ΡŽΡΡ‹ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΠΎΠΉ Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ: ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° синтаксиса Π½Π° этапС компиляции, Π°Π²Ρ‚ΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅.
  • βœ… ΠŸΠ»ΡŽΡΡ‹ Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ: Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ· строки.
  • ❌ ΠœΠΈΠ½ΡƒΡΡ‹: динамичСский Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΈ ΠΌΠ΅Π½Π΅Π΅ бСзопасСн.
Π€ΡƒΠ½ΠΊΡ†ΠΈΡΠžΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΡ = Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚.ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΠžΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠ΅;

Π€ΡƒΠ½ΠΊΡ†ΠΈΡΠžΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΡ("ВСкст", 3);

-->

2. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²: ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ vs. ΠΏΠΎ ссылкС

Π’ 1Π‘ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ (ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ) ΠΈΠ»ΠΈ ΠΏΠΎ ссылкС (измСнСния Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ отразятся Π½Π° исходной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ). По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, Π½ΠΎ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (справочников, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²) фактичСски Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠΎ ссылкС ΠΈΠ·-Π·Π° особСнностСй ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Π§Ρ‚ΠΎΠ±Ρ‹ явно ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΏΠΎ ссылкС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠŸΠ΅Ρ€Π΅ΠΌ:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π£Π²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒΠ§ΠΈΡΠ»ΠΎ(Π—Π½Π°Ρ‡ Число, ΠŸΠ΅Ρ€Π΅ΠΌ Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚)

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Число + 1;

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

// Π’Ρ‹Π·ΠΎΠ²:

ΠŸΠ΅Ρ€Π΅ΠΌ МоСЧисло = 5;

Π£Π²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒΠ§ΠΈΡΠ»ΠΎ(МоСЧисло, МоСЧисло);

// МоСЧисло Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π²Π½ΠΎ 6

Π’ΠΈΠΏ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠΎ ссылкС
ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ (Число, Π‘Ρ‚Ρ€ΠΎΠΊΠ°)ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова ΠŸΠ΅Ρ€Π΅ΠΌ
ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠžΠ±ΡŠΠ΅ΠΊΡ‚, Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠžΠ±ΡŠΠ΅ΠΊΡ‚)ЀактичСски ΠΏΠΎ ссылкСВакТС ΠΏΠΎ ссылкС
ΠœΠ°ΡΡΠΈΠ²Ρ‹, Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ΠŸΠΎ ссылкС (измСнСния Π²ΠΈΠ΄Π½Ρ‹)По ссылкС

Π’Π°ΠΆΠ½Ρ‹ΠΉ нюанс: ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ (Π±Π΅Π· ΠŸΠ΅Ρ€Π΅ΠΌ) измСнСния ΠΈΡ… свойств Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сохранятся, Π½ΠΎ пСрСприсваиваниС самого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° β€” Π½Π΅Ρ‚. НапримСр:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΠ”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚(Π”ΠΎΠΊ)

Π”ΠΎΠΊ.Π”Π°Ρ‚Π° = ВСкущаяДата(); // Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡΡ

Π”ΠΎΠΊ = Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹.ΠŸΠΎΡΡ‚ΡƒΠΏΠ»Π΅Π½ΠΈΠ΅Π’ΠΎΠ²Π°Ρ€ΠΎΠ².Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΠ”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚(); // НС ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ исходный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚

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

3. Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ: экспорт ΠΈ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ модуля (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ· ΠΎΠ±Ρ‰Π΅Π³ΠΎ модуля ΠΈΠ»ΠΈ модуля ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°), ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ экспортируСмой. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Экспорт:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠœΠΎΡΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°() Экспорт

// Код

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

Для Π²Ρ‹Π·ΠΎΠ²Π° ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ модуля ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ с ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ:

ΠžΠ±Ρ‰ΠΈΠ΅ΠœΠΎΠ΄ΡƒΠ»ΠΈ.ΠœΠΎΠΉΠœΠΎΠ΄ΡƒΠ»ΡŒ.ΠœΠΎΡΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°();

Если ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½ ΠΊΠ°ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ (свойство Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ = Π˜ΡΡ‚ΠΈΠ½Π°), ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π΅Π· ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ²:

ΠœΠΎΡΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°(); // Если ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ
  • πŸ”Ή ΠžΠ±Ρ‰ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ для часто Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°Π±ΠΎΡ‚Ρ‹ с API, логгирования).
  • πŸ“„ ΠœΠΎΠ΄ΡƒΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²: для Π»ΠΎΠ³ΠΈΠΊΠΈ, привязанной ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ справочнику/Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ.
  • πŸ–₯️ Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ контСкст: для ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, доступных Π²Π΅Π·Π΄Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΠžΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠ΅()).
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ· ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ с ΠΏΡ€Π°Π²Π°ΠΌΠΈ (ΠŸΡ€Π°Π²Π° = АдминистрированиС) провСряйтС, Ρ‡Ρ‚ΠΎ Ρƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ достаточно ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ. Π˜Π½Π°Ρ‡Π΅ Π²Ρ‹Π·ΠΎΠ² Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ ошибкой "ΠžΡ‚ΠΊΠ°Π·Π°Π½ΠΎ Π² доступС".

Экспортирована Π»ΠΈ функция?|Π•ΡΡ‚ΡŒ Π»ΠΈ ΠΏΡ€Π°Π²Π° Π½Π° Π²Ρ‹Π·ΠΎΠ²?|Π£ΠΊΠ°Π·Π°Π½ Π»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡƒΡ‚ΠΈ?|Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ сигнатурС?-->

4. ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ: рСкурсия, лямбда-выраТСния, Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΡΡ‚ΡŒ

РСкурсия β€” Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ самой сСбя. ПолСзна для ΠΎΠ±Ρ…ΠΎΠ΄Π° Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ справочников) ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… структур. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ рСкурсивного ΠΎΠ±Ρ…ΠΎΠ΄Π° справочника:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠžΠ±ΠΎΠΉΡ‚ΠΈΠ“Ρ€ΡƒΠΏΠΏΡ‹(Π“Ρ€ΡƒΠΏΠΏΠ°)

Для КаТдого Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Из Π“Ρ€ΡƒΠΏΠΏΠ°.ΠŸΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹Π΅ Π¦ΠΈΠΊΠ»

Если Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.Π­Ρ‚ΠΎΠ“Ρ€ΡƒΠΏΠΏΠ° Π’ΠΎΠ³Π΄Π°

ΠžΠ±ΠΎΠΉΡ‚ΠΈΠ“Ρ€ΡƒΠΏΠΏΡ‹(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚); // РСкурсивный Π²Ρ‹Π·ΠΎΠ²

Π˜Π½Π°Ρ‡Π΅

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.НаимСнованиС);

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

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

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

Лямбда-выраТСния (Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ "Π½Π° Π»Π΅Ρ‚Ρƒ" Π±Π΅Π· объявлСния. Бинтаксис:

Π€ΡƒΠ½ΠΊΡ†ΠΈΡΠšΠ²Π°Π΄Ρ€Π°Ρ‚ = Ѐункция(Число) Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Число * Число; ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ;

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Π€ΡƒΠ½ΠΊΡ†ΠΈΡΠšΠ²Π°Π΄Ρ€Π°Ρ‚(5); // 25

Для асинхронных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΠ’ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒΠ’Ρ‹Π·ΠΎΠ²Π°() ΠΈΠ»ΠΈ Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒΠΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎ() (доступно Π² управляСмых Ρ„ΠΎΡ€ΠΌΠ°Ρ…):

Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒΠΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎ("ΠžΠ±Ρ‰ΠΈΠ΅ΠœΠΎΠ΄ΡƒΠ»ΠΈ.ΠœΠΎΠΉΠœΠΎΠ΄ΡƒΠ»ΡŒ.Π”ΠΎΠ»Π³Π°ΡΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ", ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹);
Π§Π΅ΠΌ опасна глубокая рСкурсия?

Π’ 1Π‘ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Π³Π»ΡƒΠ±ΠΈΠ½Π° стСка Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ~1000 ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ). ΠŸΡ€ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка "ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка". Для ΠΎΠ±Ρ…ΠΎΠ΄Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… структур ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ с Ρ†ΠΈΠΊΠ»ΠΎΠΌ Пока ΠΈ стСком Π² Π²ΠΈΠ΄Π΅ массива.

5. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий: ΠΊΠ°ΠΊ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ автоматичСски

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² 1Π‘ часто Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий β€” автоматичСски ΠΏΡ€ΠΈ наступлСнии ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ события (Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ поля, запись Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°). ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

  • πŸ–±οΈ ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠ΅ события: ΠŸΡ€ΠΈΠΠ°ΠΆΠ°Ρ‚ΠΈΠΈ, ΠŸΡ€ΠΈΠ˜Π·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ (Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ…).
  • πŸ“‘ Π‘Π΅Ρ€Π²Π΅Ρ€Π½Ρ‹Π΅ события: ΠŸΠ΅Ρ€Π΅Π΄Π—Π°ΠΏΠΈΡΡŒΡŽ, ΠŸΡ€ΠΈΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ (Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ…).
  • ⏱️ Π Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚Π½Ρ‹Π΅ задания: Π²Ρ‹Π·ΠΎΠ² ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° для ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ΅:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠšΠ½ΠΎΠΏΠΊΠ°Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΠΠ°ΠΆΠ°Ρ‚ΠΈΠ΅(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚)

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Кнопка Π½Π°ΠΆΠ°Ρ‚Π°!");

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

Для Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ:

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

Если НС Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ(ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚) Π’ΠΎΠ³Π΄Π°

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

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Π°!");

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

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий ΠŸΠ΅Ρ€Π΅Π΄Π—Π°ΠΏΠΈΡΡŒΡŽ ΠΈ ΠŸΡ€ΠΈΠ—Π°ΠΏΠΈΡΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Если Π² Π½ΠΈΡ… Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π½Π΅ Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°...Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ для ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.
πŸ’‘

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий β€” основа интСрактивности Π² 1Π‘. Π˜Ρ… ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ настройка позволяСт Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Π΅ дСйствия (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…).

6. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ

Π”Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с ошибками ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Рассмотрим самыС частыС:

ΠžΡˆΠΈΠ±ΠΊΠ°ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π°Π Π΅ΡˆΠ΅Π½ΠΈΠ΅
"НСопрСдСлённый ΠΌΠ΅Ρ‚ΠΎΠ΄ (ΠœΠΎΠΉΠœΠ΅Ρ‚ΠΎΠ΄)"ΠžΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠ° Π² ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ функция Π½Π΅ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π°ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ объявлСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΏΡƒΡ‚ΠΈ
"НСдостаточно фактичСских ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²"НС Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ Π»ΠΈΡˆΠ½ΠΈΠ΅Π‘Π²Π΅Ρ€ΡŒΡ‚Π΅ сигнатуру Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π²Ρ‹Π·ΠΎΠ²
"ΠžΡ‚ΠΊΠ°Π·Π°Π½ΠΎ Π² доступС"НС Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ ΠΏΡ€Π°Π² Π½Π° Π²Ρ‹Π·ΠΎΠ² ΠΌΠΎΠ΄ΡƒΠ»ΡΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ настройки ΠΏΡ€Π°Π² Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅
"Ошибка ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°"ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ создан (Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΠžΠ±ΡŠΠ΅ΠΊΡ‚())

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½Π° распространённая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” Π·Π°Ρ†ΠΈΠΊΠ»ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ рСкурсии. ВсСгда добавляйтС условиС Π²Ρ‹Ρ…ΠΎΠ΄Π°:

Ѐункция Π€Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»(Число)

Если Число = 1 Π’ΠΎΠ³Π΄Π°

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ 1; // УсловиС Π²Ρ‹Ρ…ΠΎΠ΄Π°

Π˜Π½Π°Ρ‡Π΅

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Число * Π€Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»(Число - 1);

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

ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

ΠŸΡ€ΠΈ динамичСском Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ‡Π΅Ρ€Π΅Π· Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ошибки слоТно ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°...Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅:

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

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ("ΠΠ΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π°ΡΠ€ΡƒΠ½ΠΊΡ†ΠΈΡ()");

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

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Ошибка: " + ОписаниСОшибки());

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

7. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ: ΠΊΠ°ΠΊ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Π° Π² Ρ†ΠΈΠΊΠ»Π°Ρ… ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΡ‘ΠΌΡ‹ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

  • ⚑ ΠšΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ссылок: Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ссылку Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄ Ρ†ΠΈΠΊΠ»ΠΎΠΌ.
  • πŸ”„ ΠœΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ динамичСских Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²: Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π° Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΡƒΡŽ Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ, Π³Π΄Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
  • πŸ—ƒοΈ Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅: ΠžΠ±ΡŠΡΠ²Π»ΡΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ ΠŸΠ΅Ρ€Π΅ΠΌ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Ρ†ΠΈΠΊΠ»Π°.
  • πŸ“Š ΠœΠ°ΡΡΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ: Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Запрос ΠΈΠ»ΠΈ ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉΠœΠΎΠ΄ΡƒΠ»ΡŒ вмСсто поэлСмСнтных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π°:

// МСдлСнно (динамичСский Π²Ρ‹Π·ΠΎΠ² Π² Ρ†ΠΈΠΊΠ»Π΅)

Для КаТдого Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Из Бписок Π¦ΠΈΠΊΠ»

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ("ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚(" + Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ + ")");

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

// Быстро (ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ссылки)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ = Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚.ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚;

Для КаТдого Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Из Бписок Π¦ΠΈΠΊΠ»

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚);

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ управляСмых Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ частого Π²Ρ‹Π·ΠΎΠ²Π° сСрвСрных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ· клиСнтского ΠΊΠΎΠ΄Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚Π°ΠΊΠΎΠΉ Π²Ρ‹Π·ΠΎΠ² Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ сСтСвого ΠΎΠ±ΠΌΠ΅Π½Π° ΠΈ Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ интСрфСйс. Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ.

FAQ: ΠžΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° частыС вопросы

МоТно Π»ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π±Π°Π·Ρ‹ 1Π‘?

Π”Π°, для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ COM-соСдинСниС ΠΈΠ»ΠΈ HTTP-сСрвисы. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‡Π΅Ρ€Π΅Π· COM:

Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ = Новый COMΠžΠ±ΡŠΠ΅ΠΊΡ‚("V83.ComConnector");

Π‘Π°Π·Π° = Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅.Connect("File=""C:\Bases\Base1""");

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Π‘Π°Π·Π°.ΠžΠ±Ρ‰ΠΈΠ΅ΠœΠΎΠ΄ΡƒΠ»ΠΈ.ΠœΠΎΠΉΠœΠΎΠ΄ΡƒΠ»ΡŒ.ΠœΠΎΠΉΠœΠ΅Ρ‚ΠΎΠ΄();

Для 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3 Ρ‚Π°ΠΊΠΆΠ΅ доступны WS-рСфСрСнсы (Π²Π΅Π±-сСрвисы).

Как ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ массив Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹ΠΌ?

ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ссылкС, поэтому измСнСния Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ отразятся Π½Π° исходном массивС:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π£Π΄Π²ΠΎΠΈΡ‚ΡŒΠœΠ°ΡΡΠΈΠ²(Масс)

Для Инд = 0 По Масс.Π’Π“Ρ€Π°Π½ΠΈΡ†Π°() Π¦ΠΈΠΊΠ»

Масс[Инд] = Масс[Инд] * 2;

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

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

// Π’Ρ‹Π·ΠΎΠ²:

МойМассив = Новый Массив;

МойМассив.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(1); МойМассив.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(2);

Π£Π΄Π²ΠΎΠΈΡ‚ΡŒΠœΠ°ΡΡΠΈΠ²(МойМассив);

// МойМассив Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ [2, 4]

ΠŸΠΎΡ‡Π΅ΠΌΡƒ функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ НСопрСдСлСно?

Π­Ρ‚ΠΎ происходит, Ссли:

  1. Ѐункция Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π’ΠΎΠ·Π²Ρ€Π°Ρ‚.
  2. Π’ ΠΊΠΎΠ΄Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ошибка Π΄ΠΎ Π’ΠΎΠ·Π²Ρ€Π°Ρ‚.
  3. Π’Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ (которая Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ значСния) ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ объявлСниС: Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Ѐункция, Π° Π½Π΅ ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°.

Как Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΠ’ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒΠ’Ρ‹Π·ΠΎΠ²Π°() с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ:

ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΠ’ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒΠ’Ρ‹Π·ΠΎΠ²Π°(

"ΠžΠ±Ρ‰ΠΈΠ΅ΠœΠΎΠ΄ΡƒΠ»ΠΈ.ΠœΠΎΠΉΠœΠΎΠ΄ΡƒΠ»ΡŒ.ΠžΡ‚Π»ΠΎΠΆΠ΅Π½Π½Π°ΡΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ",

Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°("ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€1, ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€2"),

ВСкущаяДата() + 3600 // Π§Π΅Ρ€Π΅Π· 1 час

);

Для клиСнтских Ρ„ΠΎΡ€ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒΠΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎ() с Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ΠΎΠΌ.

МоТно Π»ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ, хранящСмуся Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…?

Π”Π°, Π½ΠΎ это нСбСзопасно. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π˜ΠΌΡΠ€ΡƒΠ½ΠΊΡ†ΠΈΠΈ = Запрос.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ("ВЫБРАВЬ Π€ΡƒΠ½ΠΊΡ†ΠΈΡΠ˜Π·Π‘Π”").ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠžΠ±ΡŠΠ΅ΠΊΡ‚();

Если Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ(Π˜ΠΌΡΠ€ΡƒΠ½ΠΊΡ†ΠΈΠΈ) Π’ΠΎΠ³Π΄Π°

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ(Π˜ΠΌΡΠ€ΡƒΠ½ΠΊΡ†ΠΈΠΈ);

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

⚠️ Риск: Если имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ формируСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΈ ΠΊΠΎΠ΄Π°. ВсСгда Π²Π°Π»ΠΈΠ΄ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅!