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

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

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

1. Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄: Π£Π΄Π°Π»ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ() ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌ строк

Π‘Π°ΠΌΡ‹ΠΉ простой способ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ строки ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнный ΠΌΠ΅Ρ‚ΠΎΠ΄ Π£Π΄Π°Π»ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ(). Он ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ массив Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² строк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΡƒΠ΄ΠΎΠ±Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π·Π°Ρ€Π°Π½Π΅Π΅ Π·Π½Π°Π΅Ρ‚Π΅ индСксы строк ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡ… Π»Π΅Π³ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Π£Π΄Π°Π»ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ(ΠœΠ°ΡΡΠΈΠ²ΠΠΎΠΌΠ΅Ρ€ΠΎΠ²Π‘Ρ‚Ρ€ΠΎΠΊ);

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ строки ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ, сначала Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° строк, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… этому ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ. Для этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» Для ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ НайтиБтроки(). Рассмотрим ΠΎΠ±Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°.

  • πŸ”Ή Π¦ΠΈΠΊΠ» Для: ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ всС строки Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ провСряСм условиС. Если условиС выполняСтся, добавляСм Π½ΠΎΠΌΠ΅Ρ€ строки Π² массив для удалСния.
  • πŸ”Ή ΠœΠ΅Ρ‚ΠΎΠ΄ НайтиБтроки(): создаём структуру с условиСм ΠΎΡ‚Π±ΠΎΡ€Π° ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ массив Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² строк, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… этому ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ.
  • πŸ”Ή ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с ΠΊΠΎΠ½Ρ†Π°: Ссли удаляСтС строки Π² Ρ†ΠΈΠΊΠ»Π΅, Π½Π°Ρ‡ΠΈΠ½Π°ΠΉΡ‚Π΅ с послСднСй строки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ сбивались индСксы.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ с Ρ†ΠΈΠΊΠ»ΠΎΠΌ:

ΠœΠ°ΡΡΠΈΠ²Π”Π»ΡΠ£Π΄Π°Π»Π΅Π½ΠΈΡ = Новый Массив;

Для ИндСкс = Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() - 1 По 0 Π¦ΠΈΠΊΠ»

Если Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ[ИндСкс].Π‘ΡƒΠΌΠΌΠ° < 1000 Π’ΠΎΠ³Π΄Π°

ΠœΠ°ΡΡΠΈΠ²Π”Π»ΡΠ£Π΄Π°Π»Π΅Π½ΠΈΡ.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(ИндСкс);

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

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

Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Π£Π΄Π°Π»ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ(ΠœΠ°ΡΡΠΈΠ²Π”Π»ΡΠ£Π΄Π°Π»Π΅Π½ΠΈΡ);

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ строк Π² Ρ†ΠΈΠΊΠ»Π΅ с Π½Π°Ρ‡Π°Π»Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ индСксы ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ строк ΡΠ΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ пропуску строк ΠΈΠ»ΠΈ ошибкам. ВсСгда удаляйтС строки с ΠΊΠΎΠ½Ρ†Π° ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π£Π΄Π°Π»ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ() с ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ собранным массивом индСксов.

2. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ с использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° НайтиБтроки()

ΠœΠ΅Ρ‚ΠΎΠ΄ НайтиБтроки() позволяСт Π½Π°ΠΉΡ‚ΠΈ всС строки, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ, ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΈΡ… Π½ΠΎΠΌΠ΅Ρ€Π° Π² Π²ΠΈΠ΄Π΅ массива. Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° условиС ΠΎΡ‚Π±ΠΎΡ€Π° слоТноС ΠΈΠ»ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ строки ΠΏΠΎ нСскольким критСриям ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

Бинтаксис ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

ΠœΠ°ΡΡΠΈΠ²ΠΠΎΠΌΠ΅Ρ€ΠΎΠ² = Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.НайтиБтроки(Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°ΠžΡ‚Π±ΠΎΡ€Π°);

Π“Π΄Π΅ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°ΠžΡ‚Π±ΠΎΡ€Π° β€” это структура, ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ, Π° значСниями β€” условия ΠΎΡ‚Π±ΠΎΡ€Π°. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС строки, Π³Π΄Π΅ Π”Π°Ρ‚Π° < ВСкущаяДата() - 365 ΠΈ Π‘ΡƒΠΌΠΌΠ° = 0, ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌ:

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

ΠžΡ‚Π±ΠΎΡ€.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("Π”Π°Ρ‚Π°", НачалоДня(ВСкущаяДата() - 365));

ΠžΡ‚Π±ΠΎΡ€.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("Π‘ΡƒΠΌΠΌΠ°", 0);

ΠœΠ°ΡΡΠΈΠ²ΠΠΎΠΌΠ΅Ρ€ΠΎΠ² = Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.НайтиБтроки(ΠžΡ‚Π±ΠΎΡ€);

Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Π£Π΄Π°Π»ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ(ΠœΠ°ΡΡΠΈΠ²ΠΠΎΠΌΠ΅Ρ€ΠΎΠ²);

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстро Π΄Π°ΠΆΠ΅ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… (тысячи строк), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΡ‚Π±ΠΎΡ€ выполняСтся Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘, Π° Π½Π΅ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ Π² Ρ†ΠΈΠΊΠ»Π΅. Однако Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ ограничСния:

  • πŸ“Œ НС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ слоТныС условия с логичСскими ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ (Π˜Π›Π˜, НЕ).
  • πŸ“Œ НСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вычисляСмыС поля (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π‘ΡƒΠΌΠΌΠ° * ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ).
  • πŸ“Œ Для Π΄Π°Ρ‚ Π½ΡƒΠΆΠ½ΠΎ явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π°Ρ‡Π°Π»ΠΎ/ΠΊΠΎΠ½Π΅Ρ† дня, ΠΈΠ½Π°Ρ‡Π΅ сравнСниС ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если Π² структурС ΠΎΡ‚Π±ΠΎΡ€Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ НСопрСдСлённо для ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, ΠΌΠ΅Ρ‚ΠΎΠ΄ НайтиБтроки() Π²Π΅Ρ€Π½Ρ‘Ρ‚ всС строки, Π³Π΄Π΅ это ΠΏΠΎΠ»Π΅ пустоС ΠΈΠ»ΠΈ Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для удалСния строк с Π½Π΅Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.
πŸ“Š Какой ΠΌΠ΅Ρ‚ΠΎΠ΄ удалСния строк Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
Π¦ΠΈΠΊΠ» с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ условий
НайтиБтроки()
Π£Π΄Π°Π»ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ() с ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ массивом
Бвоя функция

3. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ строк с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΡ‚Π±ΠΎΡ€Π° ΠΈ копирования

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

Алгоритм дСйствий:

  1. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ структурой ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ.
  2. ΠŸΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ строки исходной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π½ΠΎΠ²ΡƒΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ удалСния.
  3. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π½Π° Π½ΠΎΠ²ΡƒΡŽ (Ссли Π½ΡƒΠΆΠ½ΠΎ).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

НоваяВаблица = Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΠšΠΎΠ»ΠΎΠ½ΠΊΠΈ();

Для ΠšΠ°ΠΆΠ΄Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ° Из Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π¦ΠΈΠΊΠ»

Если НЕ (ΠšΠ°ΠΆΠ΄Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°.Π‘ΡƒΠΌΠΌΠ° = 0 И ΠšΠ°ΠΆΠ΄Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°.Π”Π°Ρ‚Π° < НачалоДня(ВСкущаяДата())) Π’ΠΎΠ³Π΄Π°

НоваяБтрока = НоваяВаблица.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ();

НоваяБтрока.Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ(ΠšΠ°ΠΆΠ΄Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°);

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

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

Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ = НоваяВаблица;

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ сохраняСт порядок строк ΠΈ Π½Π΅ зависит ΠΎΡ‚ сдвига индСксов ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ. Однако ΠΎΠ½ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ памяти, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ создаётся копия Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ† (дСсятки тысяч строк) это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ.

ΠœΠ΅Ρ‚ΠΎΠ΄ Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠŸΠ°ΠΌΡΡ‚ΡŒ Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ условий Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ порядка
Π£Π΄Π°Π»ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ() + Ρ†ΠΈΠΊΠ» БрСдняя Низкая Π›ΡŽΠ±Ρ‹Π΅ Π”Π° (Ссли с ΠΊΠΎΠ½Ρ†Π°)
НайтиБтроки() Высокая Низкая ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ Π”Π°
ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π½ΠΎΠ²ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Низкая Высокая Π›ΡŽΠ±Ρ‹Π΅ Π”Π°
πŸ’‘

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ всС строки (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1-2 ΠΈΠ· сотни), ΠΏΡ€ΠΎΡ‰Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π½Π΅Ρ‘ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΡƒΠΆΠ½Ρ‹Π΅ строки, Ρ‡Π΅ΠΌ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ лишниС ΠΈΠ· ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

4. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ строк с использованиСм запроса (для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†)

Если Ρ‚Π°Π±Π»ΠΈΡ†Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ содСрТит дСсятки тысяч строк, стандартныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ слишком ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ язык запросов 1Π‘, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π‘Π£Π‘Π”, Π° Π·Π°Ρ‚Π΅ΠΌ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

Алгоритм:

  1. Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….
  2. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ запрос с условиСм ΠΎΡ‚Π±ΠΎΡ€Π°, ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΌ строки для удалСния.
  3. Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ запроса ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

// 1. Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ

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

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

"ВЫБРАВЬ

| Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉΠ‘Ρ‚Ρ€ΠΎΠΊΠ°.Бсылка КАК Бсылка,

| Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉΠ‘Ρ‚Ρ€ΠΎΠΊΠ°.Π”Π°Ρ‚Π° КАК Π”Π°Ρ‚Π°,

| Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉΠ‘Ρ‚Ρ€ΠΎΠΊΠ°.Π‘ΡƒΠΌΠΌΠ° КАК Π‘ΡƒΠΌΠΌΠ°

|Π˜Π—

| &Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ КАК Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉΠ‘Ρ‚Ρ€ΠΎΠΊΠ°

|Π“Π”Π•

| НЕ (Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉΠ‘Ρ‚Ρ€ΠΎΠΊΠ°.Π‘ΡƒΠΌΠΌΠ° = 0)";

Запрос.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€("Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ", Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ);

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

// 2. Π—Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ();

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

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

НоваяБтрока = Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ();

НоваяБтрока.Бсылка = Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Бсылка;

НоваяБтрока.Π”Π°Ρ‚Π° = Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π”Π°Ρ‚Π°;

НоваяБтрока.Π‘ΡƒΠΌΠΌΠ° = Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π‘ΡƒΠΌΠΌΠ°;

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

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ быстрСС Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΡ‘ΠΌΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ выполняСтся Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π‘Π£Π‘Π”. Однако ΠΎΠ½ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚:

  • πŸ”§ Наличия ΠΏΡ€Π°Π² Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запросов ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ….
  • πŸ”§ Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов сСрвСра (Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹).
  • πŸ”§ Π―Π²Π½ΠΎΠ³ΠΎ описания структуры Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² запросС.
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ использовании Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎ. Если Π² процСссС выполнСния запроса ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚ ошибка, исходная Ρ‚Π°Π±Π»ΠΈΡ†Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡ‚Π°Ρ‚ΡŒΡΡ пустой. ВсСгда Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄ массовыми опСрациями.
Как ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†?

Для Ρ‚Π°Π±Π»ΠΈΡ† с Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 50 000 строк рСкомСндуСтся Ρ€Π°Π·Π±ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΏΠΎ 10 000 строк, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΈ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ памяти. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ асинхронныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Π½ΠΈΠΉ.

5. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ строк с использованиСм рСкурсивных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (для слоТных условий)

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ строк, Π³Π΄Π΅ сумма мСньшС срСднСй ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для строк с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ Π΄Π°Ρ‚ΠΎΠΉ.

Ѐункция ΠΡƒΠΆΠ½ΠΎΠ£Π΄Π°Π»ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, БрСдняяБумма, Π”Π°Ρ‚Π°ΠžΡ‚Π±ΠΎΡ€Π°)

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π‘Ρ‚Ρ€ΠΎΠΊΠ°.Π‘ΡƒΠΌΠΌΠ° < БрСдняяБумма И Π‘Ρ‚Ρ€ΠΎΠΊΠ°.Π”Π°Ρ‚Π° > Π”Π°Ρ‚Π°ΠžΡ‚Π±ΠΎΡ€Π°;

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

// ВычисляСм ΡΡ€Π΅Π΄Π½ΡŽΡŽ сумму

БуммаВсСго = 0;

Для ΠšΠ°ΠΆΠ΄Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ° Из Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π¦ΠΈΠΊΠ»

БуммаВсСго = БуммаВсСго + ΠšΠ°ΠΆΠ΄Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°.Π‘ΡƒΠΌΠΌΠ°;

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

БрСдняяБумма = БуммаВсСго / Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ();

// УдаляСм строки

ΠœΠ°ΡΡΠΈΠ²Π”Π»ΡΠ£Π΄Π°Π»Π΅Π½ΠΈΡ = Новый Массив;

Для ИндСкс = Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() - 1 По 0 Π¦ΠΈΠΊΠ»

Если ΠΡƒΠΆΠ½ΠΎΠ£Π΄Π°Π»ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ(Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ[ИндСкс], БрСдняяБумма, НачалоДня(ВСкущаяДата() - 30)) Π’ΠΎΠ³Π΄Π°

ΠœΠ°ΡΡΠΈΠ²Π”Π»ΡΠ£Π΄Π°Π»Π΅Π½ΠΈΡ.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(ИндСкс);

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

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

Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Π£Π΄Π°Π»ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ(ΠœΠ°ΡΡΠΈΠ²Π”Π»ΡΠ£Π΄Π°Π»Π΅Π½ΠΈΡ);

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° рСкурсивного ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°:

  • 🧩 Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ: ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ условия, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ.
  • 🧩 Π§ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ: Π»ΠΎΠ³ΠΈΠΊΠ° удалСния вынСсСна Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΊΠΎΠ΄Π°.
  • 🧩 Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования: Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†.

НСдостатки:

  • ⚠️ Π‘ΠΎΠ»Π΅Π΅ мСдлСнная Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ со стандартными ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ.
  • ⚠️ Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ аккуратности ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с рСкурсиСй, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ зацикливания.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ строк

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

6. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ строк

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (тысячи ΠΈ дСсятки тысяч строк) стандартныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ удалСния ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ слишком ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. Π’ΠΎΡ‚ нСсколько совСтов, ΠΊΠ°ΠΊ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ процСсс:

  • πŸš€ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ НайтиБтроки() вмСсто Ρ†ΠΈΠΊΠ»ΠΎΠ², Ссли условиС простоС.
  • πŸš€ УдаляйтС строки ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ: Ρ€Π°Π·Π±ΠΈΠ²Π°ΠΉΡ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π½Π° части ΠΏΠΎ 1000 строк ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΈΡ… ΠΏΠΎΠΎΡ‡Π΅Ρ€Ρ‘Π΄Π½ΠΎ.
  • πŸš€ ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π° врСмя удалСния: Π€ΠΎΡ€ΠΌΠ°.ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ().
  • πŸš€ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ запросы для Ρ‚Π°Π±Π»ΠΈΡ† Π±ΠΎΠ»Π΅Π΅ 50 000 строк.
  • πŸš€ Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ частых Π£Π΄Π°Π»ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ(): Π»ΡƒΡ‡ΡˆΠ΅ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ всС индСксы Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ…ΠΎΠ΄.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° для удалСния строк ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ:

Π Π°Π·ΠΌΠ΅Ρ€ΠŸΠ°ΠΊΠ΅Ρ‚Π° = 1000;

ВсСгоБтрок = Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ();

ΠœΠ°ΡΡΠΈΠ²Π”Π»ΡΠ£Π΄Π°Π»Π΅Π½ΠΈΡ = Новый Массив;

Для Начало = 0 По ВсСгоБтрок - 1 Π¨Π°Π³ Π Π°Π·ΠΌΠ΅Ρ€ΠŸΠ°ΠΊΠ΅Ρ‚Π° Π¦ΠΈΠΊΠ»

ΠšΠΎΠ½Π΅Ρ†ΠŸΠ°ΠΊΠ΅Ρ‚Π° = Мин(Начало + Π Π°Π·ΠΌΠ΅Ρ€ΠŸΠ°ΠΊΠ΅Ρ‚Π° - 1, ВсСгоБтрок - 1);

Для ИндСкс = ΠšΠΎΠ½Π΅Ρ†ΠŸΠ°ΠΊΠ΅Ρ‚Π° По Начало Π¦ΠΈΠΊΠ»

Если Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ[ИндСкс].Π‘ΡƒΠΌΠΌΠ° = 0 Π’ΠΎΠ³Π΄Π°

ΠœΠ°ΡΡΠΈΠ²Π”Π»ΡΠ£Π΄Π°Π»Π΅Π½ΠΈΡ.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(ИндСкс);

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

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

Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Π£Π΄Π°Π»ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ(ΠœΠ°ΡΡΠΈΠ²Π”Π»ΡΠ£Π΄Π°Π»Π΅Π½ΠΈΡ);

ΠœΠ°ΡΡΠΈΠ²Π”Π»ΡΠ£Π΄Π°Π»Π΅Π½ΠΈΡ.ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ();

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

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

πŸ’‘

Для Ρ‚Π°Π±Π»ΠΈΡ† Π±ΠΎΠ»Π΅Π΅ 10 000 строк ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ ΠΈΠ· НайтиБтроки() ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ удалСния. Π­Ρ‚ΠΎ сокращаСт врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² 5-10 Ρ€Π°Π· ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с поэлСмСнтным ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ Π² Ρ†ΠΈΠΊΠ»Π΅.

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

ΠŸΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ строк ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ† Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ приводят ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Рассмотрим самыС распространённыС ΠΈΠ· Π½ΠΈΡ… ΠΈ способы ΠΈΡ… ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ.

  • πŸ’₯ Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ строк Π² прямом Ρ†ΠΈΠΊΠ»Π΅ (с Π½Π°Ρ‡Π°Π»Π°): ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ сдвигу индСксов ΠΈ пропуску строк. РСшСниС: удаляйтС с ΠΊΠΎΠ½Ρ†Π° ΠΈΠ»ΠΈ собирайтС индСксы Π² массив.
  • πŸ’₯ Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ: Ссли Ρ‚Π°Π±Π»ΠΈΡ†Π° связана с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, измСнСния ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ошибкС. РСшСниС: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΠ°Ρ‡Π°Ρ‚ΡŒΠ’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ() ΠΈ Π—Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΠ’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ().
  • πŸ’₯ ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° с Π΄Π°Ρ‚Π°ΠΌΠΈ: сравнСниС Π΄Π°Ρ‚ Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ошибкам. РСшСниС: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ НачалоДня() ΠΈΠ»ΠΈ ΠšΠΎΠ½Π΅Ρ†Π”Π½Ρ().
  • πŸ’₯ Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ строк, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹: ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ошибкам цСлостности. РСшСниС: провСряйтС ссылки ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ошибки с Π΄Π°Ρ‚Π°ΠΌΠΈ:

// НСкоррСктно: сравнСниС Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

Если Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ[ИндСкс].Π”Π°Ρ‚Π° = ВСкущаяДата() Π’ΠΎΠ³Π΄Π°

// Π­Ρ‚Π° строка ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ВСкущаяДата() Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ врСмя

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

// ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ: сравнСниС с Π½Π°Ρ‡Π°Π»ΠΎΠΌ дня

Если Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ[ИндСкс].Π”Π°Ρ‚Π° = НачалоДня(ВСкущаяДата()) Π’ΠΎΠ³Π΄Π°

// Π’Π΅ΠΏΠ΅Ρ€ΡŒ сравнСниС Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ

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

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½Π° типичная ошибка β€” ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ строк Π²ΠΎ врСмя ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с использованиСм конструкции Для КаТдого. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ коллСкция мСняСтся Π²ΠΎ врСмя ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚:

// НСкоррСктно: ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ

Для ΠšΠ°ΠΆΠ΄Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ° Из Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π¦ΠΈΠΊΠ»

Если ΠšΠ°ΠΆΠ΄Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°.Π‘ΡƒΠΌΠΌΠ° = 0 Π’ΠΎΠ³Π΄Π°

Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(ΠšΠ°ΠΆΠ΄Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°); // Ошибка!

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

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

// ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ: сбор индСксов ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ

ΠœΠ°ΡΡΠΈΠ²Π”Π»ΡΠ£Π΄Π°Π»Π΅Π½ΠΈΡ = Новый Массив;

Для ΠšΠ°ΠΆΠ΄Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ° Из Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π¦ΠΈΠΊΠ»

Если ΠšΠ°ΠΆΠ΄Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°.Π‘ΡƒΠΌΠΌΠ° = 0 Π’ΠΎΠ³Π΄Π°

ΠœΠ°ΡΡΠΈΠ²Π”Π»ΡΠ£Π΄Π°Π»Π΅Π½ΠΈΡ.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(ΠšΠ°ΠΆΠ΄Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°.ИндСкс);

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

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

Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Π£Π΄Π°Π»ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ(ΠœΠ°ΡΡΠΈΠ²Π”Π»ΡΠ£Π΄Π°Π»Π΅Π½ΠΈΡ);

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если Ρ‚Π°Π±Π»ΠΈΡ†Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ привязана ΠΊ Ρ„ΠΎΡ€ΠΌΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² управляСмом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ), Π΅Ρ‘ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ автоматичСскоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ интСрфСйса, Ρ‡Ρ‚ΠΎ замСдляСт Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΏΠ΅Ρ€Π΅Π΄ массовым ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ строк ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹: Π­Ρ‚Π°Π€ΠΎΡ€ΠΌΠ°.ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ(), Π° послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ: Π­Ρ‚Π°Π€ΠΎΡ€ΠΌΠ°.ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ().

FAQ: ЧастыС вопросы ΠΏΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ строк ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ† Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС строки, ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π£Π΄Π°Π»ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ() с массивом индСксов всСх строк, ΠΊΡ€ΠΎΠΌΠ΅ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ:

ΠœΠ°ΡΡΠΈΠ²Π”Π»ΡΠ£Π΄Π°Π»Π΅Π½ΠΈΡ = Новый Массив;

Для ИндСкс = 1 По Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() - 1 Π¦ΠΈΠΊΠ»

ΠœΠ°ΡΡΠΈΠ²Π”Π»ΡΠ£Π΄Π°Π»Π΅Π½ΠΈΡ.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(ИндСкс);

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

Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Π£Π΄Π°Π»ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ(ΠœΠ°ΡΡΠΈΠ²Π”Π»ΡΠ£Π΄Π°Π»Π΅Π½ΠΈΡ);

Или ΠΏΡ€ΠΎΡ‰Π΅:

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

Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Π£Π΄Π°Π»ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ(Новый Массив(1, 2, ..., Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() - 1));

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

МоТно Π»ΠΈ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ строк?

НСт, послС Π²Ρ‹Π·ΠΎΠ²Π° Π£Π΄Π°Π»ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ() Π΄Π°Π½Π½Ρ‹Π΅ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ Π±Π΅Π·Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π½ΠΎ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΊΠ°Ρ‚Π°, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сохранитС копию Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹:

Π Π΅Π·Π΅Ρ€Π²Π½Π°ΡΠšΠΎΠΏΠΈΡ = Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ();

Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Π£Π΄Π°Π»ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ(МассивИндСксов);

// Если Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ:

Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ = Π Π΅Π·Π΅Ρ€Π²Π½Π°ΡΠšΠΎΠΏΠΈΡ.Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ();

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Ρ‹ строк?

Для удалСния Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ:

Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅Π‘Ρ‚Ρ€ΠΎΠΊΠΈ = Новый Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ;

Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅Π‘Ρ‚Ρ€ΠΎΠΊΠΈ.Колонки.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("ΠšΠ»ΡŽΡ‡", Новый ОписаниСВипов("Π‘Ρ‚Ρ€ΠΎΠΊΠ°"));

Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅Π‘Ρ‚Ρ€ΠΎΠΊΠΈ.Колонки.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π”Π°Π½Π½Ρ‹Π΅");

Для ΠšΠ°ΠΆΠ΄Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ° Из Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π¦ΠΈΠΊΠ»

ΠšΠ»ΡŽΡ‡ = Π‘Ρ‚Ρ€ΠΎΠΊΠ°(ΠšΠ°ΠΆΠ΄Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°.Бсылка) + "_" + ΠšΠ°ΠΆΠ΄Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°.Π”Π°Ρ‚Π°;

Если НЕ Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅Π‘Ρ‚Ρ€ΠΎΠΊΠΈ.Найти(ΠšΠ»ΡŽΡ‡, "ΠšΠ»ΡŽΡ‡") Π’ΠΎΠ³Π΄Π°

НоваяБтрока = Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅Π‘Ρ‚Ρ€ΠΎΠΊΠΈ.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ();

НоваяБтрока.ΠšΠ»ΡŽΡ‡ = ΠšΠ»ΡŽΡ‡;

НоваяБтрока.Π”Π°Π½Π½Ρ‹Π΅ = ΠšΠ°ΠΆΠ΄Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°;

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

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

Π—Π°Ρ‚Π΅ΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π½Π° Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅Π‘Ρ‚Ρ€ΠΎΠΊΠΈ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ послС удалСния строк нумСрация сбиваСтся?

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ индСксы строк всСгда ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с 0. ПослС удалСния строки индСксы автоматичСски ΠΏΠ΅Ρ€Π΅ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ. НапримСр, Ссли ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ строку с индСксом 2 ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с 5 строками, новая строка с индСксом 2 Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π±Ρ‹Π²ΡˆΠ΅ΠΉ строки 3. Π­Ρ‚ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΈ Π΅Π³ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ "ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ".

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ строки ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ Π² управляСмой Ρ„ΠΎΡ€ΠΌΠ΅?

Π’ управляСмой Ρ„ΠΎΡ€ΠΌΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ привязана ΠΊ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρƒ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ сСрвСрныС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹:

&НаБСрвСрС

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π£Π΄Π°Π»ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈΠŸΠΎΠ£ΡΠ»ΠΎΠ²ΠΈΡŽ()

ΠœΠ°ΡΡΠΈΠ²Π”Π»ΡΠ£Π΄Π°Π»Π΅Π½ΠΈΡ = Новый Массив;

Для ИндСкс = ΠžΠ±ΡŠΠ΅ΠΊΡ‚.Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() - 1 По 0 Π¦ΠΈΠΊΠ»

Если ΠžΠ±ΡŠΠ΅ΠΊΡ‚.Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ[ИндСкс].Π‘ΡƒΠΌΠΌΠ° < 0 Π’ΠΎΠ³Π΄Π°

ΠœΠ°ΡΡΠΈΠ²Π”Π»ΡΠ£Π΄Π°Π»Π΅Π½ΠΈΡ.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(ИндСкс);

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

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

ΠžΠ±ΡŠΠ΅ΠΊΡ‚.Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Π£Π΄Π°Π»ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ(ΠœΠ°ΡΡΠΈΠ²Π”Π»ΡΠ£Π΄Π°Π»Π΅Π½ΠΈΡ);

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

НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄ массовым ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ:

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

Π£Π΄Π°Π»ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈΠŸΠΎΠ£ΡΠ»ΠΎΠ²ΠΈΡŽ();

Π­Ρ‚Π°Π€ΠΎΡ€ΠΌΠ°.ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ();