Ошибка «НСсовмСстимыС Ρ‚ΠΈΠΏΡ‹Β» ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ строку β€” ΠΎΠ΄Π½Π° ΠΈΠ· самых распространённых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3. Она Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ автоматичСски ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈΠ»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выраТСния Π² строковый Ρ‚ΠΈΠΏ. НапримСр, ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ числа ΠΈ строки, записи значСния нСсовмСстимого Ρ‚ΠΈΠΏΠ° Π² Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ с Ρ‚ΠΈΠΏΠΎΠΌ Β«Π‘Ρ‚Ρ€ΠΎΠΊΠ°Β» ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΡƒΡŽ строку.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ языков с динамичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, JavaScript), 1Π‘ строго ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ Ссли логичСски опСрация каТСтся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, слоТСниС строки ΠΈ числа), ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ явного прСобразования. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ всС ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ сцСнарии возникновСния ошибки, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ€Π°Π±ΠΎΡ‚Ρƒ с коллСкциями, NULL-значСниями ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ случаи с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ особСнностСй 1Π‘ 8.3.20+.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»ΠΈΠΌ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌ Β«ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹ΠΌ камням»:

  • πŸ”Ή АвтоматичСскоС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Π² выраТСниях с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ + (конкатСнация vs слоТСниС).
  • πŸ”Ή NULL ΠΈ НСопрСдСлён β€” ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ΠΈ Π»ΠΎΠΌΠ°ΡŽΡ‚ строку ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ.
  • πŸ”Ή ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ (справочники, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹) β€” ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… строковоС прСдставлСниС.
  • πŸ”Ή ДинамичСскиС списки ΠΈ запросы β€” ошибки ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ.

Если Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ сообщСниС Π²Ρ€ΠΎΠ΄Π΅ Ошибка Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ: НСсовмСстимыС Ρ‚ΠΈΠΏΡ‹ (Π‘Ρ‚Ρ€ΠΎΠΊΠ°, Число) ΠΈΠ»ΠΈ НС ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° 'ДокумСнтБсылка.Π—Π°ΠΊΠ°Π·ΠšΠ»ΠΈΠ΅Π½Ρ‚Π°' Π² Ρ‚ΠΈΠΏ 'Π‘Ρ‚Ρ€ΠΎΠΊΠ°', эта ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ… ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΊΠΎΠ΄Π°.

πŸ“Š Π‘ ΠΊΠ°ΠΊΠΎΠΉ вСрсиСй 1Π‘ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅?
8.3.20 ΠΈ Π²Ρ‹ΡˆΠ΅
8.3.10–8.3.19
8.2
НС знаю

1. ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка «НСсовмСстимыС Ρ‚ΠΈΠΏΡ‹Β» ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ Π² строку

Π’ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ ошибка «НСсовмСстимыС Ρ‚ΠΈΠΏΡ‹Β» сигнализируСт ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ нСявно ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Для строк это Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ Π² Ρ‚Ρ€Ρ‘Ρ… ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… сцСнариях:

1. ΠšΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡ строки с нСстроковым Ρ‚ΠΈΠΏΠΎΠΌ. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ + Π² 1Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈ для слоТСния чисСл, ΠΈ для объСдинСния строк. Если ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ контСкст, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚:

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π˜Ρ‚ΠΎΠ³ΠΎ: " + 100); // Ошибка! Число 100 нСявно Π½Π΅ прСобразуСтся Π² строку

Π’ этом случаС 1Π‘ Π½Π΅ Π·Π½Π°Π΅Ρ‚, Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ строки ΠΈΠ»ΠΈ числа, ΠΈ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

2. ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ нСсовмСстимого Ρ‚ΠΈΠΏΠ° Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρƒ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. НапримСр, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ Ρ‚ΠΈΠΏΠ° Π‘Ρ‚Ρ€ΠΎΠΊΠ°, Π° Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π½Π΅Π³ΠΎ ссылку Π½Π° справочник:

Π Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹ΠΉ = Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ.НомСнклатура.ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡŽ("Π’ΠΎΠ²Π°Ρ€1"); // Ошибка!

3. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ/ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΡƒΡŽ строку. ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ€ΠΎΠ΄Π΅ БтрНачинаСтсяБ() ΠΈΠ»ΠΈ Π›Π΅Π²(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ строковый Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚:

Если БтрНачинаСтсяБ(123, "1") Π’ΠΎΠ³Π΄Π° // Ошибка! ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€” число

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ вСрсиях 1Π‘ 8.3.20+ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ нСявного прСобразования Ρ‚ΠΈΠΏΠΎΠ² Π±Ρ‹Π»ΠΎ уТСсточСно. Π Π°Π½Π΅Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, конкатСнация строки с числом) ΠΌΠΎΠ³Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Β«ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽΒ», Π½ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ явного привСдСния.

2. Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² строку: ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибки, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ явноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ². Π’ 1Π‘ для этого Π΅ΡΡ‚ΡŒ нСсколько встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΏΡ€ΠΈΡ‘ΠΌΠΎΠ²:

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠœΠ΅Ρ‚ΠΎΠ΄ прСобразования ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°
Число Π‘Ρ‚Ρ€ΠΎΠΊΠ°()
БтрокаЧисло = Π‘Ρ‚Ρ€ΠΎΠΊΠ°(100); // "100"
Π”Π°Ρ‚Π° Π€ΠΎΡ€ΠΌΠ°Ρ‚() ΠΈΠ»ΠΈ Π‘Ρ‚Ρ€ΠΎΠΊΠ°()
Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π”Π°Ρ‚Π° = Π€ΠΎΡ€ΠΌΠ°Ρ‚(ВСкущаяДата(), "Π”Π€=dd.MM.yyyy");
Π‘ΡƒΠ»Π΅Π²ΠΎ (Π˜ΡΡ‚ΠΈΠ½Π°/Π›ΠΎΠΆΡŒ) ?() (Ρ‚Π΅Ρ€Π½Π°Ρ€Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€)
Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π‘ΡƒΠ»Π΅Π²ΠΎ = ?(Π˜ΡΡ‚ΠΈΠ½Π°, "Π”Π°", "НСт");
NULL ΠΈΠ»ΠΈ НСопрСдСлён Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ() + Π·Π°ΠΌΠ΅Π½Π°
Π‘Ρ‚Ρ€ΠΎΠΊΠ°NULL = Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ(ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ) ? Π‘Ρ‚Ρ€ΠΎΠΊΠ°(ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ) : "";
Бсылка (справочник, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚) ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅() ΠΈΠ»ΠΈ .НаимСнованиС
БтрокаБсылка = Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ.ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Ρ‹.ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡŽ("ООО Ромашка").ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅();

Для ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ (массивов, структур, соотвСтствий) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ†ΠΈΠΊΠ» ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘Ρ‚Ρ€Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ():

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

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

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

Π‘Ρ‚Ρ€ΠΎΠΊΠ°ΠœΠ°ΡΡΠΈΠ²Π° = Π‘Ρ‚Ρ€Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ(Массив, ", "); // "1, 2"

Если Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ запроса, Π½Π΅ Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ поля Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ NULL. ВсСгда провСряйтС Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΡΡ‚ΡŒ:

Запрос = Новый Запрос("ВЫБРАВЬ Π’ΠΎΠ²Π°Ρ€ КАК Π’ΠΎΠ²Π°Ρ€Π˜Π— Π—Π°ΠΊΠ°Π·Π°");

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Запрос.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ();

Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° = Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ();

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

Если Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ(Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π’ΠΎΠ²Π°Ρ€Π˜Π—) Π’ΠΎΠ³Π΄Π°

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°(Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π’ΠΎΠ²Π°Ρ€Π˜Π—));

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

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

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ NULL (Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ())|

Π’ΠΈΠΏ значСния совмСстим с Π‘Ρ‚Ρ€ΠΎΠΊΠ°()|

Для ссылок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ .ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅() ΠΈΠ»ΠΈ .НаимСнованиС|

Для Π΄Π°Ρ‚ примСняСм Π€ΠΎΡ€ΠΌΠ°Ρ‚() с явным ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°-->

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

Π”Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌΠΈ случаями ошибки «НСсовмСстимыС Ρ‚ΠΈΠΏΡ‹Β». Π Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ самыС распространённыС:

1. ΠšΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡ с пустой строкой. Если ΠΎΠ΄Π½Π° ΠΈΠ· частСй выраТСния β€” NULL ΠΈΠ»ΠΈ НСопрСдСлён, опСрация Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ ошибкой:

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ = НСопрСдСлён;

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: " + ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ); // Ошибка!

РСшСниС: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘Ρ‚Ρ€ΠΎΠΊΠ°() с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ:
Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: " + ?(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ(ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ), Π‘Ρ‚Ρ€ΠΎΠΊΠ°(ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ), ""));

2. Π Π°Π±ΠΎΡ‚Π° с динамичСскими списками. ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ полю динамичСского списка Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠ°:

ДинамичСскийБписок = ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΠ”ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΈΠΉΠ‘ΠΏΠΈΡΠΎΠΊ();

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = ДинамичСскийБписок[0].ПолС; // ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ!

БтрокаЗначСния = Π‘Ρ‚Ρ€ΠΎΠΊΠ°(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅); // Ошибка, Ссли ПолС β€” Π½Π΅ число/Π΄Π°Ρ‚Π°/строка

РСшСниС: ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ Ρ‚ΠΈΠΏ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π’ΠΈΠΏΠ—Π½Ρ‡():
Если Π’ΠΈΠΏΠ—Π½Ρ‡(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) = Π’ΠΈΠΏ("Π‘Ρ‚Ρ€ΠΎΠΊΠ°") Или Π’ΠΈΠΏΠ—Π½Ρ‡(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) = Π’ΠΈΠΏ("Число") Π’ΠΎΠ³Π΄Π°

БтрокаЗначСния = Π‘Ρ‚Ρ€ΠΎΠΊΠ°(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅);

Π˜Π½Π°Ρ‡Π΅

БтрокаЗначСния = "";

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

3. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. МногиС стандартныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π‘Ρ‚Ρ€ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ(), НРСг()) Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ строковыС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° числа ΠΈΠ»ΠΈ Π΄Π°Ρ‚Ρ‹ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ:

НРСг(100); // Ошибка! ΠžΠΆΠΈΠ΄Π°Π΅Ρ‚ΡΡ строка
РСшСниС: ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠΉΡ‚Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π·Π°Ρ€Π°Π½Π΅Π΅:
НРСг(Π‘Ρ‚Ρ€ΠΎΠΊΠ°(100)); // "100"

4. Π Π°Π±ΠΎΡ‚Π° с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ. Если Π²Ρ‹ создаётС собствСнныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°()), ΠΈΡ… нСльзя Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² строку:

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ = Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°("Имя, Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅", "ВСст", 123);

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(ΠžΠ±ΡŠΠ΅ΠΊΡ‚); // Ошибка!

РСшСниС: Π‘Π΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ JSON:
Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒJSON(ΠžΠ±ΡŠΠ΅ΠΊΡ‚)); // {"Имя":"ВСст","Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅":123}

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π’ΠΈΠΏΠ—Π½Ρ‡(ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ)); // Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚ "Число", "Π‘Ρ‚Ρ€ΠΎΠΊΠ°", "ДокумСнтБсылка.Π—Π°ΠΊΠ°Π·ΠšΠ»ΠΈΠ΅Π½Ρ‚Π°" ΠΈ Ρ‚.Π΄.

Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ быстро ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.-->

4. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с NULL ΠΈ НСопрСдСлён

NULL ΠΈ НСопрСдСлён β€” это Β«ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅Β» значСния Π² 1Π‘, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ часто становятся ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ошибок ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ Π² строку. Π˜Ρ… ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅:

  • πŸ”Έ NULL β€” это отсутствиС значСния Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅).
  • πŸ”Έ НСопрСдСлён β€” это нСинициализированная пСрСмСнная ΠΈΠ»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π΅Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Оба значСния нСльзя Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² строку. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ошибкС:

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ = NULL;

Π‘Ρ‚Ρ€ΠΎΠΊΠ°ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ = Π‘Ρ‚Ρ€ΠΎΠΊΠ°(ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ); // Ошибка!

Для бСзопасной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ:

БтрокаБСзопасная =

?(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ(ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ),

Π‘Ρ‚Ρ€ΠΎΠΊΠ°(ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ),

""); // ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

Если Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с запросами, Π³Π΄Π΅ поля ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ NULL, всСгда добавляйтС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ:

Запрос = Новый Запрос("ВЫБРАВЬ Π•Π‘Π’Π¬NULL(ПолС, '') КАК ΠŸΠΎΠ»Π΅Π‘Π΅Π·NULL Π˜Π— Π’Π°Π±Π»ΠΈΡ†Π°");

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Запрос.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ();

Для динамичСских списков ΠΈ Ρ‚Π°Π±Π»ΠΈΡ† Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠŸΡƒΡΡ‚Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°() ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½Ρƒ Π½Π° Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

Π’Π°Π±Π»ΠΈΡ†Π° = Новый Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ;

Π’Π°Π±Π»ΠΈΡ†Π°.Колонки.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("ПолС");

Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’Π°Π±Π»ΠΈΡ†Ρ‹ = Π’Π°Π±Π»ΠΈΡ†Π°.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ();

Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’Π°Π±Π»ΠΈΡ†Ρ‹.ПолС = NULL;

// БСзопасноС Ρ‡Ρ‚Π΅Π½ΠΈΠ΅:

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = ?(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’Π°Π±Π»ΠΈΡ†Ρ‹.ПолС), Π‘Ρ‚Ρ€ΠΎΠΊΠ°(Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’Π°Π±Π»ΠΈΡ†Ρ‹.ПолС), "");

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ 1Π‘ 8.3.21+ появилась функция Π‘Ρ‚Ρ€ΠΎΠΊΠ°NULL(), которая автоматичСски замСняСт NULL Π½Π° ΠΏΡƒΡΡ‚ΡƒΡŽ строку. Однако ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ· запросов, Π° Π½Π΅ для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

5. Π Π°Π±ΠΎΡ‚Π° со ссылками: справочники, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, пСрСчислСния

Бсылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… (справочники, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, пСрСчислСния) β€” это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π² 1Π‘, ΠΈ ΠΈΡ… нСльзя Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² строку. НапримСр, этот ΠΊΠΎΠ΄ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ:

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

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Бсылка); // Ошибка: "НСсовмСстимыС Ρ‚ΠΈΠΏΡ‹ (ДокумСнтБсылка.НомСнклатура, Π‘Ρ‚Ρ€ΠΎΠΊΠ°)"

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ строковоС прСдставлСниС ссылки, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅:

  • πŸ“Œ .ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅() β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ строку Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Β«[Код] НаимСнованиС».
  • πŸ“Œ .НаимСнованиС β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.
  • πŸ“Œ .Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€() β€” GUID ссылки (для тСхничСских Ρ†Π΅Π»Π΅ΠΉ).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

// 1. ПолноС прСдставлСниС (ΠΊΠΎΠ΄ + Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅)

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Бсылка.ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅()); // "[000001] Π’ΠΎΠ²Π°Ρ€1"

// 2. Волько наимСнованиС

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Бсылка.НаимСнованиС); // "Π’ΠΎΠ²Π°Ρ€1"

// 3. Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (для Π»ΠΎΠ³ΠΎΠ² ΠΈΠ»ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ)

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Бсылка.Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€()); // "a1b2c3d4-5678-90ef-ghij-klmnopqrstuv"

Если ссылка ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ NULL (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ запроса), Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ:

Бсылка = Запрос.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ().Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ().Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ().ΠŸΠΎΠ»Π΅Π‘ΡΡ‹Π»ΠΊΠ°;

Если Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ(Бсылка) Π’ΠΎΠ³Π΄Π°

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Бсылка.ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅());

Π˜Π½Π°Ρ‡Π΅

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Бсылка Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π°");

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

Для пСрСчислСний ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ свойство .ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ .Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€:

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅ = ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡ.БтатусыДокумСнтов.Новый();

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅.ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅); // "Новый"

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅.Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€); // "Новый"

6. Ошибки ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с запросами ΠΈ динамичСскими списками

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ запросов ΠΈ динамичСскиС списки β€” это «горячиС Ρ‚ΠΎΡ‡ΠΊΠΈΒ» для ошибок «НСсовмСстимыС Ρ‚ΠΈΠΏΡ‹Β», ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ:

  • πŸ“Š Поля Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ NULL.
  • πŸ“Š Π’ΠΈΠΏΡ‹ ΠΏΠΎΠ»Π΅ΠΉ Π½Π΅ всСгда ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ»Π΅ Π”Π°Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ строкой, Ссли использовалась функция Π€ΠΎΡ€ΠΌΠ°Ρ‚() Π² запросС).
  • πŸ“Š ДинамичСскиС списки Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ с слоТной структурой.

Рассмотрим Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ошибки ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° запроса:

Запрос = Новый Запрос(

"ВЫБРАВЬ

| Π’ΠΎΠ²Π°Ρ€ КАК Π’ΠΎΠ²Π°Ρ€,

| ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ КАК Колво

|Π˜Π— Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.Π—Π°ΠΊΠ°Π·ΠšΠ»ΠΈΠ΅Π½Ρ‚Π°");

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Запрос.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ();

Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° = Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ();

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

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π’ΠΎΠ²Π°Ρ€: " + Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π’ΠΎΠ²Π°Ρ€ + ", Кол-Π²ΠΎ: " + Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Колво); // Ошибка!

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

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ здСсь:

  1. ПолС Π’ΠΎΠ²Π°Ρ€ β€” это ссылка Π½Π° справочник, Π΅Ρ‘ нСльзя ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ со строкой.
  2. ПолС Колво β€” число, Π΅Π³ΠΎ Ρ‚ΠΎΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ явно ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ.

Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚:

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

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π’ΠΎΠ²Π°Ρ€: " + Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π’ΠΎΠ²Π°Ρ€.ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅() +

", Кол-Π²ΠΎ: " + Π‘Ρ‚Ρ€ΠΎΠΊΠ°(Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Колво));

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

Для динамичСских списков ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ() с явным ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ°:

ДинамичСскийБписок = ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΠ”ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΈΠΉΠ‘ΠΏΠΈΡΠΎΠΊ();

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = ДинамичСскийБписок.ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ(0, "ПолС"); // ΠœΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ NULL ΠΈΠ»ΠΈ нСсовмСстимый Ρ‚ΠΈΠΏ

// БСзопасная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°:

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

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅);

Π˜Π½Π°Ρ‡Π΅Π•ΡΠ»ΠΈ Π’ΠΈΠΏΠ—Π½Ρ‡(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) = Π’ΠΈΠΏ("Число") Π’ΠΎΠ³Π΄Π°

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅));

Π˜Π½Π°Ρ‡Π΅

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("НСкоррСктный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…");

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

Если Π² запросС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ вычисляСмыС поля (с функциями Π²Ρ€ΠΎΠ΄Π΅ Π’Π«Π‘ΠžΠ  ΠΈΠ»ΠΈ Π•Π‘Π’Π¬NULL), ΠΈΡ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. НапримСр:

Запрос.ВСкст =

"ВЫБРАВЬ

| Π’Π«Π‘ΠžΠ 

| ΠšΠžΠ“Π”Π Бтатус = Π—ΠΠΠ§Π•ΠΠ˜Π•(ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅.БтатусыДокумСнтов.Новый)

| Π’ΠžΠ“Π”Π ""Новый""

| Π˜ΠΠΠ§Π• ""ΠŸΡ€ΠΎΡ‡ΠΈΠΉ""

| КАК БтатусБтрокой";

Π—Π΄Π΅ΡΡŒ ΠΏΠΎΠ»Π΅ БтатусБтрокой Π±ΡƒΠ΄Π΅Ρ‚ строкой, Π½ΠΎ Ссли Π»ΠΎΠ³ΠΈΠΊΠ° Π’Π«Π‘ΠžΠ  измСнится, Ρ‚ΠΈΠΏ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ.

πŸ’‘

ВсСгда провСряйтС Ρ‚ΠΈΠΏΡ‹ ΠΏΠΎΠ»Π΅ΠΉ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠœΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅().Поля ΠΈΠ»ΠΈ Π’ΠΈΠΏΠ—Π½Ρ‡(), Ссли запрос формируСтся динамичСски.

7. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠ΄Π°: ΠΊΠ°ΠΊ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ

ЧастыС прСобразования Ρ‚ΠΈΠΏΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΌΠ΅Π΄Π»ΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°, особСнно Π² Ρ†ΠΈΠΊΠ»Π°Ρ… ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…. Π‘Π»Π΅Π΄ΡƒΠΉΡ‚Π΅ этим рСкомСндациям для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ:

1. ΠšΡΡˆΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ. Если Π²Π°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ строковоС прСдставлСниС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, сохранитС Π΅Π³ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ:

Бсылка = Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ.ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Ρ‹.ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡŽ("ООО Ромашка");

БтрокаБсылки = Бсылка.ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅(); // ΠžΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅

// Π”Π°Π»Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ БтрокаБсылки, Π° Π½Π΅ обращаСмся ΠΊ Бсылка.ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅() ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(БтрокаБсылки);

Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ›ΠΎΠ³(БтрокаБсылки);

2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ форматирования. Для чисСл ΠΈ Π΄Π°Ρ‚ вмСсто Π‘Ρ‚Ρ€ΠΎΠΊΠ°() примСняйтС Π€ΠΎΡ€ΠΌΠ°Ρ‚() β€” это Π³ΠΈΠ±Ρ‡Π΅ ΠΈ быстрСС:

// ВмСсто:

БтрокаЧисла = Π‘Ρ‚Ρ€ΠΎΠΊΠ°(1234.56); // "1234.56"

// Π›ΡƒΡ‡ΡˆΠ΅:

БтрокаЧисла = Π€ΠΎΡ€ΠΌΠ°Ρ‚(1234.56, "Π§Π”Π¦=2; Π§Π Π”=."); // "1 234.56"

3. Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Π² Ρ†ΠΈΠΊΠ»Π°Ρ…. Если Π²Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Π² Ρ‚ΠΈΠΏΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с фиксированной структурой), ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ():

Π’Π°Π±Π»ΠΈΡ†Π° = Новый Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ;

Π’Π°Π±Π»ΠΈΡ†Π°.Колонки.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Код", Новый ОписаниСВипов("Π‘Ρ‚Ρ€ΠΎΠΊΠ°"));

Π’Π°Π±Π»ΠΈΡ†Π°.Колонки.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π‘ΡƒΠΌΠΌΠ°", Новый ОписаниСВипов("Число"));

// Π’Π°ΠΊ ΠΊΠ°ΠΊ структура фиксирована, ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ:

Для КаТдого Π‘Ρ‚Ρ€ΠΎΠΊΠ° Из Π’Π°Π±Π»ΠΈΡ†Π° Π¦ΠΈΠΊΠ»

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°.Код + ": " + Π‘Ρ‚Ρ€ΠΎΠΊΠ°(Π‘Ρ‚Ρ€ΠΎΠΊΠ°.Π‘ΡƒΠΌΠΌΠ°)); // Π‘Π΅Π· Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ()

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

4. Для массовых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒJSON(). Если Π½ΡƒΠΆΠ½ΠΎ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ структуру (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Π»ΠΎΠ³Π° ΠΈΠ»ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π°), JSON справится быстрСС, Ρ‡Π΅ΠΌ Ρ€ΡƒΡ‡Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅:

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° = Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°;

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("Π”Π°Ρ‚Π°", ВСкущаяДата());

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("Π‘ΡƒΠΌΠΌΠ°", 1000);

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚", Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ.ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Ρ‹.ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡŽ("ООО Ромашка"));

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒJSON(Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°));

// {"Π”Π°Ρ‚Π°":"2023-10-01T00:00:00","Π‘ΡƒΠΌΠΌΠ°":1000,"ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚":{"$type":"БправочникБсылка.ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Ρ‹","$value":"a1b2c3..."}}

5. Для часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ создавайтС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΠΈ:

Ѐункция БСзопаснаяБтрока(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠŸΠΎΠ£ΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ = "")

Если Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) Π’ΠΎΠ³Π΄Π°

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π‘Ρ‚Ρ€ΠΎΠΊΠ°(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅);

Π˜Π½Π°Ρ‡Π΅

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠŸΠΎΠ£ΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ;

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

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

// ИспользованиС:

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(БСзопаснаяБтрока(NULL, "Н/Π”")); // "Н/Π”"

8. ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΈ диагностика ошибок

Если Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с ошибкой «НСсовмСстимыС Ρ‚ΠΈΠΏΡ‹Β», слСдуйтС этому Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ диагностики:

  1. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅, Π³Π΄Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° стСк Π²Ρ‹Π·ΠΎΠ²Π° Π² ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ β€” это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΎΡ‡Π½ΡƒΡŽ строку ΠΊΠΎΠ΄Π°.
  2. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π’ΠΈΠΏΠ—Π½Ρ‡():
    Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π’ΠΈΠΏΠ—Π½Ρ‡(ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Π°ΡΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ));
  3. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ останова ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠΉ строкой ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅.
  4. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π½Π° NULL:
    Если Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ(ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Π°ΡΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ) Π’ΠΎΠ³Π΄Π°
    

    Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ, Ρ‚ΠΈΠΏ: " + Π’ΠΈΠΏΠ—Π½Ρ‡(ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Π°ΡΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ));

    Π˜Π½Π°Ρ‡Π΅

    Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL ΠΈΠ»ΠΈ НСопрСдСлён!");

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

  5. ВСстируйтС ΠΏΠΎ частям. Π Π°Π·Π±Π΅ΠΉΡ‚Π΅ слоТноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° простыС шаги, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠΉ ошибки:

// Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ с ошибкой:

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π˜Ρ‚ΠΎΠ³ΠΎ: " + Π˜Ρ‚ΠΎΠ³ΠΎΠ²Π°ΡΠ‘ΡƒΠΌΠΌΠ° + " Ρ€ΡƒΠ±. ΠΎΡ‚ " + Π”Π°Ρ‚Π°Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°);

// Диагностика:

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π’ΠΈΠΏΠ—Π½Ρ‡(Π˜Ρ‚ΠΎΠ³ΠΎΠ²Π°ΡΠ‘ΡƒΠΌΠΌΠ°)); // "Число"

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π’ΠΈΠΏΠ—Π½Ρ‡(Π”Π°Ρ‚Π°Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°)); // "Π”Π°Ρ‚Π°"

// Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄:

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π˜Ρ‚ΠΎΠ³ΠΎ: " + Π‘Ρ‚Ρ€ΠΎΠΊΠ°(Π˜Ρ‚ΠΎΠ³ΠΎΠ²Π°ΡΠ‘ΡƒΠΌΠΌΠ°) + " Ρ€ΡƒΠ±. ΠΎΡ‚ " + Π€ΠΎΡ€ΠΌΠ°Ρ‚(Π”Π°Ρ‚Π°Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, "Π”Π€=dd.MM.yyyy"));

Для слоТных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅:

// ΠŸΠ»ΠΎΡ…ΠΎ (слоТно ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ):

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°(Запрос.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ().Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ().Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ().ПолС1) + " | " + Запрос.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ().Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ().Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ().ПолС2);

// Π₯ΠΎΡ€ΠΎΡˆΠΎ (ясно ΠΈ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Π΅ΠΌΠΎ):

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π—Π°ΠΏΡ€ΠΎΡΠ° = Запрос.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ();

Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° = Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π—Π°ΠΏΡ€ΠΎΡΠ°.Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ();

Если Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ() Π’ΠΎΠ³Π΄Π°

ПолС1 = Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.ПолС1;

ПолС2 = Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.ПолС2;

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°(ПолС1) + " | " + Π‘Ρ‚Ρ€ΠΎΠΊΠ°(ПолС2));

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

Если ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ события (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ записи Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°), ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ‚ΠΈΠΏΡ‹ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ² Π² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. Иногда ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° кроСтся Π² нСсоотвСтствии Ρ‚ΠΈΠΏΠΎΠ² Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π° ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ значСния.

Как ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ² Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅

1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚) Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅.

2. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° Π·Π°ΠΊΠ»Π°Π΄ΠΊΡƒ Π Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹.

3. Π’ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ Π’ΠΈΠΏ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ допустимыС Ρ‚ΠΈΠΏΡ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°.

4. Для Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ² Ρ‚ΠΈΠΏΠ° Π‘Ρ‚Ρ€ΠΎΠΊΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ β€” ΠΎΠ½ΠΎ Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ошибок.

Для ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΈΠ· XML ΠΈΠ»ΠΈ JSON) всСгда Π²Π°Π»ΠΈΠ΄ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ‚ΠΈΠΏΡ‹ приходящих Π΄Π°Π½Π½Ρ‹Ρ…:

Π”Π°Π½Π½Ρ‹Π΅JSON = ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒJSON(Π‘Ρ‚Ρ€ΠΎΠΊΠ°JSON);

Если Π’ΠΈΠΏΠ—Π½Ρ‡(Π”Π°Π½Π½Ρ‹Π΅JSON.Π‘ΡƒΠΌΠΌΠ°) <> Π’ΠΈΠΏ("Число") Π’ΠΎΠ³Π΄Π°

Π’Ρ‹Π·Π²Π°Ρ‚ΡŒΠ˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ "ОТидалось число Π² ΠΏΠΎΠ»Π΅ 'Π‘ΡƒΠΌΠΌΠ°', ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ: " + Π’ΠΈΠΏΠ—Π½Ρ‡(Π”Π°Π½Π½Ρ‹Π΅JSON.Π‘ΡƒΠΌΠΌΠ°);

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

FAQ: ЧастыС вопросы ΠΏΠΎ ошибкС «НСсовмСстимыС Ρ‚ΠΈΠΏΡ‹Β»

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ + ΠΈΠ½ΠΎΠ³Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ слоТСниС, Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ конкатСнация?

Π’ 1Π‘ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ + ΠΈΠΌΠ΅Π΅Ρ‚ контСкстно-зависимоС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅:

  • Если ΠΎΠ±Π° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° β€” числа, выполняСтся слоТСниС.
  • Если хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ β€” строка, выполняСтся конкатСнация (Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ ΠΌΠΎΠΆΠ½ΠΎ нСявно ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² строку).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(1 + 2);      // 3 (слоТСниС)

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("1" + 2); // "12" (конкатСнация)

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(1 + "2"); // "12" (конкатСнация)

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(1 + Π˜ΡΡ‚ΠΈΠ½Π°); // Ошибка! Π‘ΡƒΠ»Π΅Π²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ прСобразуСтся нСявно

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ двусмыслСнности, всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ явноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅: Π‘Ρ‚Ρ€ΠΎΠΊΠ°(1) + Π‘Ρ‚Ρ€ΠΎΠΊΠ°(2).

Как ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² строку массив ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ?

Для массивов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π‘Ρ‚Ρ€Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ():

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

Массив.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("А");

Массив.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π‘");

Π‘Ρ‚Ρ€ΠΎΠΊΠ°ΠœΠ°ΡΡΠΈΠ²Π° = Π‘Ρ‚Ρ€Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ(Массив, ", "); // "А, Π‘"

Для Ρ‚Π°Π±Π»ΠΈΡ† Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΠ±Ρ…ΠΎΠ΄Π°:

Ѐункция Π’Π°Π±Π»ΠΈΡ†Π°Π’Π‘Ρ‚Ρ€ΠΎΠΊΡƒ(Π’Π°Π±Π»ΠΈΡ†Π°)

Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ = "";

Для КаТдого Π‘Ρ‚Ρ€ΠΎΠΊΠ° Из Π’Π°Π±Π»ΠΈΡ†Π° Π¦ΠΈΠΊΠ»

Если Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ <> "" Π’ΠΎΠ³Π΄Π°

Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ = Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ + Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ;

К