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

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

1. ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка: основныС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹

ΠšΠΎΡ€Π΅Π½ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ всСгда кроСтся Π² ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ доступа ΠΊ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ элСмСнту ΠΏΠΎ индСксу. Но контСкст, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ это происходит, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ. Рассмотрим ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ сцСнарии:

  • πŸ”Ή ΠžΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅: классичСская ошибка ΠΏΡ€ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠΌ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ индСксов массивов ΠΈΠ»ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Для Инд = 1 По Массив.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() + 1 Π¦ΠΈΠΊΠ»).
  • πŸ”Ή ДинамичСскиС Π΄Π°Π½Π½Ρ‹Π΅: ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π²ΠΎ врСмя ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ (ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов Π² Ρ†ΠΈΠΊΠ»Π΅ Для КаТдого).
  • πŸ”Ή НСпровСрСнныС внСшниС Π΄Π°Π½Π½Ρ‹Π΅: Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² Excel, JSON ΠΈΠ»ΠΈ XML с Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ структурой, Π³Π΄Π΅ индСксы столбцов/строк Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ с ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΌΠΈ.
  • πŸ”Ή Ошибки ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹: Ρ€Π΅Π΄ΠΊΠΈΠ΅ Π±Π°Π³ΠΈ Π² ядрС 1Π‘ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅).
  • πŸ”Ή ΠŸΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…: физичСская ΠΏΠΎΡ€Ρ‡Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Ρ‹, приводящая ΠΊ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Π½ΠΈΡŽ «мусорных» индСксов.

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π² 1Π‘ 8.2 ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… вСрсиях ошибка часто ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Π»Π°ΡΡŒ ΠΌΠ΅Π½Π΅Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ сообщСниСм («Ошибка ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌΒ»), Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π² 8.3 тСкст стал Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ диагностику, Π½ΠΎ Π½Π΅ всСгда ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΡƒ.

πŸ“Š Π‘ ΠΊΠ°ΠΊΠΎΠΉ вСрсиСй 1Π‘ Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅?
1Π‘ 8.3 (послСдниС Ρ€Π΅Π»ΠΈΠ·Ρ‹)
1Π‘ 8.2
1Π‘ 7.7
НС знаю Π²Π΅Ρ€ΡΠΈΡŽ

2. Диагностика: ΠΊΠ°ΠΊ Π½Π°ΠΉΡ‚ΠΈ источник ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Π³Π΄Π΅ ΠΎΠ½Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚. Π’ΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ дСйствий:

  1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ трассировку стСка. ΠŸΡ€ΠΈ появлСнии ΠΎΠΊΠ½Π° с ошибкой Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ (ΠΈΠ»ΠΈ Details Π² английской вСрсии) ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ выполнСния ΠΊΠΎΠ΄Π°. Π˜Ρ‰ΠΈΡ‚Π΅ строки с ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ΠΌ массивов, Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²Ρ€ΠΎΠ΄Π΅ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ(), Найти().
  2. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. Π’ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² БСрвис β†’ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ β†’ ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΎΠΏΡ†ΠΈΡŽ Β«ΠžΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…Β». ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ дСйствия, приводящиС ΠΊ сбою.
  3. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΆΡƒΡ€Π½Π°Π» рСгистрации. Π’ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠΈ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ АдминистрированиС β†’ Π–ΡƒΡ€Π½Π°Π»Ρ‹ рСгистрации ΠΈ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠΉΡ‚Π΅ записи ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ возникновСния ошибки.

Если ошибка проявляСтся Ρƒ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π°), попроситС Π΅Π³ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ с экраном ΠΈΠ»ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°ΠΌΠΏ памяти Ρ‡Π΅Ρ€Π΅Π· Π€Π°ΠΉΠ» β†’ Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ для Π°Π½Π°Π»ΠΈΠ·Π°.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ПошаговоС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ (F11) Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ строку ΠΊΠΎΠ΄Π°, Π³Π΄Π΅ происходит Π²Ρ‹Ρ…ΠΎΠ΄ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹. Π­Ρ‚ΠΎ сэкономит часы поисков!

3. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки Π² ΠΊΠΎΠ΄Π΅ ΠΈ ΠΈΡ… исправлСниС

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ связано с Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ с коллСкциями. Π Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ самыС частыС случаи с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ исправлСний.

3.1. Ошибки Π² Ρ†ΠΈΠΊΠ»Π°Ρ… Для

ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠ°Ρ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠ° β€” ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΉ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹. НапримСр:

Массив = Новый Массив(5); // Π˜Π½Π΄Π΅ΠΊΡΡ‹: 0, 1, 2, 3, 4

Для Инд = 0 По Массив.Π’Π“Ρ€Π°Π½ΠΈΡ†Π°() + 1 Π¦ΠΈΠΊΠ» // Ошибка: ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ индСксу 5

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Массив[Инд]);

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

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

Для Инд = 0 По Массив.Π’Π“Ρ€Π°Π½ΠΈΡ†Π°() Π¦ΠΈΠΊΠ» // ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ: Π΄ΠΎ 4 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Массив[Инд]);

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

3.2. Π Π°Π±ΠΎΡ‚Π° с Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Частая ошибка β€” ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ строку ΠΏΠΎ индСксу, ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰Π΅ΠΌΡƒ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ количСство строк:

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

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

Π’Π°Π±Π»ΠΈΡ†Π°.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ();

Π‘Ρ‚Ρ€ΠΎΠΊΠ° = Π’Π°Π±Π»ΠΈΡ†Π°.ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ(10); // Ошибка: Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1 строка!

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

Если Π’Π°Π±Π»ΠΈΡ†Π°.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() > 10 Π’ΠΎΠ³Π΄Π°

Π‘Ρ‚Ρ€ΠΎΠΊΠ° = Π’Π°Π±Π»ΠΈΡ†Π°.ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ(10);

Π˜Π½Π°Ρ‡Π΅

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π½Π΅ сущСствуСт!");

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

3.3. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² запросов

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π—Π°ΠΏΡ€ΠΎΡΠ° Π»Π΅Π³ΠΊΠΎ Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ количСство ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… строк:

Запрос = Новый Запрос("ВЫБРАВЬ ΠŸΠ•Π Π’Π«Π• 5 Π’ΠΎΠ²Π°Ρ€Ρ‹.НаимСнованиС КАК НаимСнованиС");

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

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

Для Инд = 1 По 10 Π¦ΠΈΠΊΠ» // Ошибка, Ссли Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² мСньшС 10!

Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ();

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

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

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

Пока Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ() Π¦ΠΈΠΊΠ» // ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ: Ρ†ΠΈΠΊΠ» ΠΏΠΎ фактичСскому количСству строк

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

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

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π»ΠΈ Ρ†ΠΈΠΊΠ»Ρ‹ с Тёстко Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ?|Π•ΡΡ‚ΡŒ Π»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° количСство элСмСнтов ΠΏΠ΅Ρ€Π΅Π΄ доступом?|ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π»ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ пустыС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ?|Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π»ΠΈ бСзопасныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°...Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅?-->

4. Ошибки ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ внСшними Π΄Π°Π½Π½Ρ‹ΠΌΠΈ

Π˜ΠΌΠΏΠΎΡ€Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Excel, JSON ΠΈΠ»ΠΈ XML часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ошибкам индСксации, Ссли структура Ρ„Π°ΠΉΠ»Π° Π½Π΅ совпадаСт с ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΉ. НапримСр:

  • πŸ“Š Π’ Excel-Ρ„Π°ΠΉΠ»Π΅ 10 столбцов, Π° Π² ΠΊΠΎΠ΄Π΅ 1Π‘ прСдполагаСтся 12.
  • πŸ“„ Π’ JSON-массивС 3 элСмСнта, Π½ΠΎ скрипт пытаСтся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ 5-ΠΉ.
  • πŸ“₯ ΠŸΡ€ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с сайтом ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ пустой массив, Π½ΠΎ ΠΊΠΎΠ΄ Π½Π΅ провСряСт Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€.

РСшСниС:

  1. ВсСгда провСряйтС Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ индСксу:
  2. Если Π”Π°Π½Π½Ρ‹Π΅JSON.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() > 0 Π’ΠΎΠ³Π΄Π°
    

    // ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…

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

  3. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹Π΅ конструкции:
  4. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°
    

    Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = МассивИзExcel[10];

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

    Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Ошибка доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ: " + ОписаниСОшибки());

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Excel-Ρ„Π°ΠΉΠ»Π° с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†

Π’Π°Π±Π»ΠΈΡ†Π°Excel = ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ”Π°Π½Π½Ρ‹Π΅Π˜Π·Excel("Ρ„Π°ΠΉΠ».xls");

Если Π’Π°Π±Π»ΠΈΡ†Π°Excel.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠ‘Ρ‚Ρ€ΠΎΠΊ() > 0 Π’ΠΎΠ³Π΄Π°

Для НомСрБтроки = 1 По Π’Π°Π±Π»ΠΈΡ†Π°Excel.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠ‘Ρ‚Ρ€ΠΎΠΊ() Π¦ΠΈΠΊΠ»

Если Π’Π°Π±Π»ΠΈΡ†Π°Excel.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠ‘Ρ‚ΠΎΠ»Π±Ρ†ΠΎΠ²() >= 3 Π’ΠΎΠ³Π΄Π°

НаимСнованиС = Π’Π°Π±Π»ΠΈΡ†Π°Excel[НомСрБтроки][1];

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ = Π’Π°Π±Π»ΠΈΡ†Π°Excel[НомСрБтроки][2];

Π¦Π΅Π½Π° = Π’Π°Π±Π»ΠΈΡ†Π°Excel[НомСрБтроки][3];

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

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

Π˜Π½Π°Ρ‡Π΅

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π€Π°ΠΉΠ» пуст ΠΈΠ»ΠΈ Π½Π΅ соотвСтствуСт Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ!");

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

5. БистСмныС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹: ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹

Если ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ спонтанно (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ сохранСнии Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°) ΠΈ Π½Π΅ привязана ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ участку ΠΊΠΎΠ΄Π°, ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ:

  • πŸ’Ύ ΠŸΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Ρ‹ (особСнно послС Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹).
  • πŸ”„ ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.
  • πŸ–₯️ ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠ° памяти).

Диагностика ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ:

Π‘ΠΈΠΌΠΏΡ‚ΠΎΠΌ ВСроятная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° ДСйствия
Ошибка появляСтся ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ любой Ρ„ΠΎΡ€ΠΌΡ‹ ΠŸΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ВСстированиС ΠΈ исправлСниС Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ (АдминистрированиС β†’ ВСстированиС ΠΈ исправлСниС)
Π‘Π±ΠΎΠΉ ΠΏΡ€ΠΈ сохранСнии Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠŸΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ† Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΡƒ/Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… (АдминистрированиС β†’ Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅) ΠΈΠ»ΠΈ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΠ· Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ
Ошибка Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ мСстС Π›ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ кэша 1Π‘ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ кэш (%APPDATA%\1C\1Cv8) ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если ошибка появилась послС обновлСния 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ список извСстных Π±Π°Π³ΠΎΠ² для вашСй вСрсии. НСкоторыС Ρ€Π΅Π»ΠΈΠ·Ρ‹ содСрТат критичСскиС ошибки Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² 8.3.20.1500 Π±Ρ‹Π» Π±Π°Π³ с Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.НайтиБтроки()).

6. Как ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ: Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ риск возникновСния ошибок индСксации, слСдуйтС этим ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ:

  1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ бСзопасныС конструкции:
    ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°
    

    Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ = Массив[ИндСкс];

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

    Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Ошибка доступа ΠΊ массиву: индСкс " + ИндСкс + " Π²Π½Π΅ Π³Ρ€Π°Π½ΠΈΡ†");

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

  2. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ доступом:
    Если ИндСкс >= 0 И ИндСкс < Массив.Π’Π“Ρ€Π°Π½ΠΈΡ†Π°() + 1 Π’ΠΎΠ³Π΄Π°
    

    // БСзопасный доступ

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

  3. Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ «магичСских чисСл»** Π² ΠΊΠΎΠ΄Π΅. ВмСсто Для i = 1 По 10 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Для i = 1 По Массив.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ().
  4. ВСстируйтС ΠΊΡ€Π°ΠΉΠ½ΠΈΠ΅ случаи: пустыС массивы, Ρ„Π°ΠΉΠ»Ρ‹ с ΠΎΠ΄Π½ΠΈΠΌ элСмСнтом, Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ информация: Π’ 1Π‘ 8.3.18+ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ΅ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅() для ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ НСопрСдСлСно вмСсто ошибки ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ для упрощСния ΠΊΠΎΠ΄Π°:

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = Массив.Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ΅ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅(100); // Π’Π΅Ρ€Π½Ρ‘Ρ‚ НСопрСдСлСно, Π° Π½Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ

7. ЧастыС вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹

❓ ΠŸΠΎΡ‡Π΅ΠΌΡƒ ошибка появляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ?

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ связано с:

  • Π Π°Π·Π½Ρ‹ΠΌΠΈ ΠΏΡ€Π°Π²Π°ΠΌΠΈ доступа (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²ΠΈΠ΄ΠΈΡ‚ 10 строк Π² ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π΅, Π΄Ρ€ΡƒΠ³ΠΎΠΉ β€” 5).
  • Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ настройками (Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹, ΠΎΡ‚Π±ΠΎΡ€Ρ‹).
  • ΠŸΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ кэша Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ мСстС.

РСшСниС: сравнитС настройки Ρ€ΠΎΠ»Π΅ΠΉ ΠΈ очиститС кэш 1Π‘ Ρƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

❓ Как ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π£Π’ 11)?

Π’ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… конфигурациях ошибка индСксации Ρ‡Π°Ρ‰Π΅ всСго Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚:

  1. ΠŸΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… источников (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ±ΠΌΠ΅Π½ с сайтом).
  2. ΠŸΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡ‚Ρ‡Ρ‘Ρ‚ΠΎΠ² с динамичСским количСством ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ.
  3. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π”Π΅Ρ€Π΅Π²ΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π΅ «Анализ субконто»).

ДСйствия:

  1. ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π΄ΠΎ послСднСго Ρ€Π΅Π»ΠΈΠ·Π°.
  2. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ настройки ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ (особСнно соотвСтствиС ΠΏΠΎΠ»Π΅ΠΉ).
  3. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ Π² ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ 1Π‘ с Π΄Π°ΠΌΠΏΠΎΠΌ ошибки, Ссли ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° сохраняСтся.
❓ МоТно Π»ΠΈ ΠΎΡ‚Π»ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ индСксации Π·Π°Ρ€Π°Π½Π΅Π΅?

Π”Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ статичСский Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π°:

  • Π’ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅: ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ β†’ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (ΠΈΡ‰ΠΈΡ‚Π΅ прСдупрСТдСния ΠΎ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ опасных конструкциях).
  • Π‘Ρ‚ΠΎΡ€ΠΎΠ½Π½ΠΈΠ΅ инструмСнты: 1Π‘:Π‘ΠΊΠ°Π½Π΅Ρ€ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ SonarQube с ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ для 1Π‘.
  • Π ΡƒΡ‡Π½ΠΎΠΉ ΠΊΠΎΠ΄-Ρ€Π΅Π²ΡŒΡŽ: особоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляйтС Ρ†ΠΈΠΊΠ»Π°ΠΌ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с массивами.
❓ Ошибка появляСтся ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΡ‹. Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ?

Π­Ρ‚ΠΎ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ:

  • ΠŸΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΡ Ρ„ΠΎΡ€ΠΌΡ‹ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.
  • Ошибки Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°Ρ… событий (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠŸΡ€ΠΈΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ).
  • ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΏΡ€Π°Π²Π°ΠΌΠΈ доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΌ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅.

ПошаговоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅:

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„ΠΎΡ€ΠΌΡƒ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ (ΠžΠ±ΡŠΠ΅ΠΊΡ‚ β†’ Π€ΠΎΡ€ΠΌΡ‹).
  2. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ всС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ коллСкциям.
  3. Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ (Ссли ΠΎΠ½ΠΈ Π΅ΡΡ‚ΡŒ).
  4. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ВСстированиС ΠΈ исправлСниС Π±Π°Π·Ρ‹.
❓ Как Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Ссли ошибка ΠΏΡ€ΠΈΠ²Π΅Π»Π° ΠΊ ΠΊΡ€Π°Ρ…Ρƒ Π±Π°Π·Ρ‹?

Если послС ошибки индСксации Π±Π°Π·Π° пСрСстала ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ:

  1. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ 1Π‘ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ /RepairIB.
  2. ВосстановитС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию (Ссли ΠΎΠ½Π° Π΅ΡΡ‚ΡŒ).
  3. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ chdbfl.exe (Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² поставку 1Π‘) для физичСской ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Π°Π·Ρ‹:
    chdbfl.exe "C:\ΠŸΡƒΡ‚ΡŒ\ΠΊ\Π±Π°Π·Π΅\1Cv8.1CD" /L
  4. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ Π² слуТбу ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ 1Π‘ с Π»ΠΎΠ³Π°ΠΌΠΈ ошибок.
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: НС ΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π±Π°Π·Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, .1CD) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сторонних инструмСнтов β€” это ΠΏΠΎΡ‡Ρ‚ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ….
πŸ’‘

90% ошибок индСксации Π² 1Π‘ связаны с отсутствиСм ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π³Ρ€Π°Π½ΠΈΡ† массивов ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ динамичСских Π΄Π°Π½Π½Ρ‹Ρ…. ВсСгда провСряйтС Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄ доступом ΠΏΠΎ индСксу!