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

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ 5 основных способов добавлСния строк Π² массивы 1Π‘ β€” ΠΎΡ‚ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π΄ΠΎ спСциализированных Ρ‚Π΅Ρ…Π½ΠΈΠΊ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ динамичСскими массивами. ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»ΠΈΠΌ нюансам ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 8.3, Π³Π΄Π΅ появились Π½ΠΎΠ²Ρ‹Π΅ возмоТности ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с 8.2. ВсС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° протСстированы Π½Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅Π»ΠΈΠ·Π°Ρ… ΠΈ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‚ΡΡ пояснСниями ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ цСлСсообразно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

1. Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄: Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнтов Π² фиксированный массив

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ добавлСния Π² фиксированный массив:

ΠœΠ°ΡΡΠΈΠ²Π’ΠΎΠ²Π°Ρ€ΠΎΠ² = Новый Массив(3); // Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ массив Π½Π° 3 элСмСнта

ΠœΠ°ΡΡΠΈΠ²Π’ΠΎΠ²Π°Ρ€ΠΎΠ²[0] = "ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€";

ΠœΠ°ΡΡΠΈΠ²Π’ΠΎΠ²Π°Ρ€ΠΎΠ²[1] = "ΠšΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°";

ΠœΠ°ΡΡΠΈΠ²Π’ΠΎΠ²Π°Ρ€ΠΎΠ²[2] = "ΠœΡ‹ΡˆΡŒ";

// ΠœΠ°ΡΡΠΈΠ²Π’ΠΎΠ²Π°Ρ€ΠΎΠ²[3] = "ΠΠ°ΡƒΡˆΠ½ΠΈΠΊΠΈ"; // Π­Ρ‚Π° строка Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ!

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

2. ДинамичСскиС массивы: ΠΌΠ΅Ρ‚ΠΎΠ΄ Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅()

Для массивов, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°Ρ€Π°Π½Π΅Π΅ нСизвСстСн, Π² 1Π‘ прСдусмотрСн ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅(). Он автоматичСски ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива ΠΈ добавляСт Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт Π² ΠΊΠΎΠ½Π΅Ρ†. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π² 8.2, Ρ‚Π°ΠΊ ΠΈ Π² 8.3, Π½ΠΎ Π² Π½ΠΎΠ²ΠΎΠΉ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π΅Π³ΠΎ рСализация ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования:

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

Π”ΠΈΠ½ΠœΠ°ΡΡΠΈΠ².Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅("ΠŸΡ€ΠΈΠ½Ρ‚Π΅Ρ€"); // Π Π°Π·ΠΌΠ΅Ρ€ массива стал 1

Π”ΠΈΠ½ΠœΠ°ΡΡΠΈΠ².Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅("Π‘ΠΊΠ°Π½Π΅Ρ€"); // Π Π°Π·ΠΌΠ΅Ρ€ массива стал 2

Π”ΠΈΠ½ΠœΠ°ΡΡΠΈΠ².Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅("ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ€"); // Π Π°Π·ΠΌΠ΅Ρ€ массива стал 3

ВаТная ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ: ΠΌΠ΅Ρ‚ΠΎΠ΄ Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта, Ρ‡Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌ:

ИндСксНового = Π”ΠΈΠ½ΠœΠ°ΡΡΠΈΠ².Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅("МЀУ");

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π”ΠΎΠ±Π°Π²Π»Π΅Π½ элСмСнт с индСксом: " + ИндСксНового);

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ Π»ΠΈ массив ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ Новый?

Достаточно Π»ΠΈ памяти для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ массива?

НуТно Π»ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ порядок элСмСнтов?

ΠŸΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Π»ΠΈ частоС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов (Π² этом случаС Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ БписокЗначСний)-->

3. Π Π°Π±ΠΎΡ‚Π° с Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: ΠΌΠ΅Ρ‚ΠΎΠ΄ Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅() vs Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ()

Π’Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (Π’Π—) β€” это особый Ρ‚ΠΈΠΏ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ Π² 1Π‘, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌΠΈ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π—Π΄Π΅ΡΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ строк Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΈΠ½Π°Ρ‡Π΅, Ρ‡Π΅ΠΌ Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… массивах. Π’Π°ΠΆΠ½ΠΎ Π½Π΅ ΠΏΡƒΡ‚Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅() ΠΈ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ() β€” ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½ΠΎΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅!

ΠœΠ΅Ρ‚ΠΎΠ΄ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ() создаСт Π½ΠΎΠ²ΡƒΡŽ строку ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π΅ для заполнСния:

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

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

Π’Π—.Колонки.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π¦Π΅Π½Π°");

НоваяБтрока = Π’Π—.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(); // Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡƒΡŽ строку

НоваяБтрока.НаимСнованиС = "Ноутбук";

НоваяБтрока.Π¦Π΅Π½Π° = 45000;

А ΠΌΠ΅Ρ‚ΠΎΠ΄ Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅() Π² контСкстС Π’Π— ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для вставки ΡƒΠΆΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ строки:

БтрокаДляВставки = Π’Π—.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ();

БтрокаДляВставки.НаимСнованиС = "ΠŸΠ»Π°Π½ΡˆΠ΅Ρ‚";

Π’Π—.Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅(БтрокаДляВставки); // ВставляСм Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡƒΡŽ строку

ΠœΠ΅Ρ‚ΠΎΠ΄ НазначСниС Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ
Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ() Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ пустой строки Бсылка Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ заполнСния ΠΏΠΎΠ»Π΅ΠΉ
Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅() Вставка ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ строки ИндСкс Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΉ строки ΠœΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для копирования строк
Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ() Вставка строки ΠΏΠΎ индСксу ИндСкс вставлСнной строки ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ()|Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅()|Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ()|Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΠΎΠ±Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°-->

4. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅: ΠΌΠ΅Ρ‚ΠΎΠ΄ Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ()

Когда трСбуСтся Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнт Π½Π΅ Π² ΠΊΠΎΠ½Π΅Ρ† массива, Π° Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ(). Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… массивов, Ρ‚Π°ΠΊ ΠΈ для Ρ‚Π°Π±Π»ΠΈΡ† Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π²Π°ΠΆΠ½Ρ‹Π΅ особСнности ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ: ΠΏΡ€ΠΈ вставкС Π² Π½Π°Ρ‡Π°Π»ΠΎ ΠΈΠ»ΠΈ сСрСдину большого массива происходит пСрСиндСксация всСх ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ вставки Π² массив:

Π¦Π²Π΅Ρ‚Π° = Новый Массив;

Π¦Π²Π΅Ρ‚Π°.Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅("ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ");

Π¦Π²Π΅Ρ‚Π°.Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅("Π—Π΅Π»Π΅Π½Ρ‹ΠΉ");

Π¦Π²Π΅Ρ‚Π°.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ(1, "Π‘ΠΈΠ½ΠΈΠΉ"); // ВставляСм ΠΌΠ΅ΠΆΠ΄Ρƒ красным ΠΈ Π·Π΅Π»Π΅Π½Ρ‹ΠΌ

// Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: ["ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ", "Π‘ΠΈΠ½ΠΈΠΉ", "Π—Π΅Π»Π΅Π½Ρ‹ΠΉ"]

Для Ρ‚Π°Π±Π»ΠΈΡ† Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ, Π½ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ строку Π² качСствС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°:

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

НоваяБтрока.НаимСнованиС = "ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€";

Π’Π—.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ(0, НоваяБтрока); // ВставляСм Π² Π½Π°Ρ‡Π°Π»ΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ЧастыС вставки Π² Π½Π°Ρ‡Π°Π»ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов (Π±ΠΎΠ»Π΅Π΅ 1000 элСмСнтов) ΠΌΠΎΠ³ΡƒΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях рассмотритС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ порядка добавлСния с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Ρ€Π°Π·Π²ΠΎΡ€ΠΎΡ‚ΠΎΠΌ массива ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Массив.ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ().
πŸ’‘

Для массовой вставки Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ эффСктивнСС сначала Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ всС строки ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(), Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ(). Π­Ρ‚ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠΉ пСрСиндСксации.

5. ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ: объСдинСниС массивов ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с коллСкциями

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

ОбъСдинСниС массивов ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСсколькими способами:

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

Массив1.Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅("А");

Массив1.Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅("Π‘");

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

Массив2.Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅("Π’");

Массив2.Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅("Π“");

// Бпособ 1: Ρ‡Π΅Ρ€Π΅Π· Ρ†ΠΈΠΊΠ»

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

Массив1.Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚);

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

// Бпособ 2: Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ() для ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ (8.3.10+)

Массив1.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Массив2); // ДобавляСт всС элСмСнты Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ массива

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ:

// Массив β†’ БписокЗначСний

Бписок = Новый БписокЗначСний;

Бписок.Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡ(Массив1);

// Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ β†’ Массив

ΠœΠ°ΡΡΠΈΠ²Π˜Π·Π’Π— = Π’Π—.Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΠšΠΎΠ»ΠΎΠ½ΠΊΡƒ("НаимСнованиС");

  • πŸ”„ Когда ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ массивы: ΠΏΡ€ΠΈ слиянии Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… источников
  • πŸ”„ Когда ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ: ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½Ρ‹ спСцифичныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, поиск Π² БпискСЗначСний)
  • ⚑ ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: ΠΌΠ΅Ρ‚ΠΎΠ΄ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ() для массивов Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС Ρ†ΠΈΠΊΠ»Π° Π² 8.3.10+
Как ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΎΡ‡Π΅Π½ΡŒ большими массивами (10000+ элСмСнтов)

Для массивов Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π±ΠΎΠ»Π΅Π΅ 10000 элСмСнтов рассмотритС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… вмСсто ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ Π² памяти. Π­Ρ‚ΠΎ особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ для Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΈ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

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

Запрос.ВСкст = "ВЫБРАВЬ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ КАК Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ ΠŸΠžΠœΠ•Π‘Π’Π˜Π’Π¬ Π’Π’Π”Π°Π½Π½Ρ‹Π΅";

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

Для КаТдого Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Из Π‘ΠΎΠ»ΡŒΡˆΠΎΠΉΠœΠ°ΡΡΠΈΠ² Π¦ΠΈΠΊΠ»

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

Запрос.ВСкст = "Π’Π‘Π’ΠΠ’Π˜Π’Π¬ Π’ Π’Π’Π”Π°Π½Π½Ρ‹Π΅ (Π­Π»Π΅ΠΌΠ΅Π½Ρ‚) Π—ΠΠΠ§Π•ΠΠ˜Π― (&Π­Π»Π΅ΠΌΠ΅Π½Ρ‚)";

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

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

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

ПослС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² массив ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

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

Π”Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ошибки ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с массивами Π² 1Π‘. Π’ΠΎΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈ способы ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ:

  1. Ошибка индСксации: ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ индСксу

    РСшСниС: всСгда провСряйтС Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ массива Ρ‡Π΅Ρ€Π΅Π· Массив.Π’Π“Ρ€Π°Π½ΠΈΡ†Π°() ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Если Массив.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() > ИндСкс Π’ΠΎΠ³Π΄Π°

  2. ΠŸΠΎΡ‚Π΅Ρ€Ρ ссылок: ΠΏΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ массивов Ρ‡Π΅Ρ€Π΅Π· присваиваниС (=) ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ссылки

    РСшСниС: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Массив.Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ() для создания Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ

  3. Π£Ρ‚Π΅Ρ‡ΠΊΠΈ памяти: созданиС большого количСства Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… массивов Π±Π΅Π· очистки

    РСшСниС: явно ΠΎΡ‡ΠΈΡ‰Π°ΠΉΡ‚Π΅ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ массивы ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ Массив.ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ()

ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ ошибка: Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 8.2 ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ элСмСнтов Π² массив Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅() Π½Π΅ происходит автоматичСскоС ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ памяти ΠΏΠΎΠ΄ массив, Ссли ΠΎΠ½ Π±Ρ‹Π» ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ создан с фиксированным Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Ρ‡Π΅Ρ€Π΅Π· конструктор Новый Массив(Π Π°Π·ΠΌΠ΅Ρ€). Π’ 8.3 это исправлСно, Π½ΠΎ Π² старых конфигурациях ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ падСниям.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с массивами Π² управляСмых Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ Π² клиСнтский контСкст, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ всС сСрвСрныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. НапримСр, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅() Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π° Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ() β€” Π½Π΅Ρ‚. Для сортировки Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Массив.Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ() с ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сравнСния.

7. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ строк Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡Π°Ρ…

Рассмотрим нСсколько практичСских сцСнариСв, Π³Π΄Π΅ трСбуСтся Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнтов Π² массивы:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1. Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ списка Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² для Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π‘Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΠ‘ΠΏΠΈΡΠΎΠΊΠ’ΠΎΠ²Π°Ρ€ΠΎΠ²(БписокНомСнклатуры)

ВоварыДляДокумСнта = Новый Массив;

Для КаТдого Π’ΠΎΠ²Π°Ρ€ Из БписокНомСнклатуры Π¦ΠΈΠΊΠ»

Если Π’ΠΎΠ²Π°Ρ€.ΠžΡΡ‚Π°Ρ‚ΠΎΠΊ > 0 Π’ΠΎΠ³Π΄Π°

ВоварыДляДокумСнта.Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅(Π’ΠΎΠ²Π°Ρ€.Бсылка);

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

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

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ВоварыДляДокумСнта;

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2. ДинамичСскоС Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Π° с Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒΠ”Π°Π½Π½Ρ‹Π΅ΠžΡ‚Ρ‡Π΅Ρ‚Π°(Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹Π—Π°ΠΏΡ€ΠΎΡΠ°)

Π“Ρ€ΡƒΠΏΠΏΡ‹Π”Π°Π½Π½Ρ‹Ρ… = Новый Массив;

ВСкущаяГруппа = "";

Для КаТдого Π‘Ρ‚Ρ€ΠΎΠΊΠ° Из Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹Π—Π°ΠΏΡ€ΠΎΡΠ° Π¦ΠΈΠΊΠ»

Если Π‘Ρ‚Ρ€ΠΎΠΊΠ°.Π“Ρ€ΡƒΠΏΠΏΠ° <> ВСкущаяГруппа Π’ΠΎΠ³Π΄Π°

Π“Ρ€ΡƒΠΏΠΏΡ‹Π”Π°Π½Π½Ρ‹Ρ….Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅(Π‘Ρ‚Ρ€ΠΎΠΊΠ°.Π“Ρ€ΡƒΠΏΠΏΠ°);

ВСкущаяГруппа = Π‘Ρ‚Ρ€ΠΎΠΊΠ°.Π“Ρ€ΡƒΠΏΠΏΠ°;

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

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

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π“Ρ€ΡƒΠΏΠΏΡ‹Π”Π°Π½Π½Ρ‹Ρ…;

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3. ОбъСдинСниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… источников

Ѐункция ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΠ‘ΠΏΠΈΡΠΊΠΈ(Массив1, Массив2, Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ = Π›ΠΎΠΆΡŒ)

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Новый Массив;

// ДобавляСм элСмСнты ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ массива

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

Если НЕ Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π˜Π›Π˜ НЕ Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.Найти(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚) Π’ΠΎΠ³Π΄Π°

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚);

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

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

// ДобавляСм элСмСнты ΠΈΠ· Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ массива

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

Если НЕ Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π˜Π›Π˜ НЕ Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.Найти(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚) Π’ΠΎΠ³Π΄Π°

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚);

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

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

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚;

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

πŸ’‘

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими объСмами Π΄Π°Π½Π½Ρ‹Ρ… всСгда ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΠΉΡ‚Π΅ Ρ†Π΅Π»Π΅ΡΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ использования массивов. Для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 10 000 элСмСнтов рассмотритС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ примСнСния Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ спСциализированных структур Π΄Π°Π½Π½Ρ‹Ρ….

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы

МоТно Π»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнт Π² Π½Π°Ρ‡Π°Π»ΠΎ массива Π±Π΅Π· пСрСиндСксации?

НСт, ΠΏΡ€ΠΈ вставкС элСмСнта Π² Π½Π°Ρ‡Π°Π»ΠΎ массива ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ(0, Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) всСгда происходит пСрСиндСксация всСх ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов. Π­Ρ‚ΠΎ связано с Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ массивов Π² 1Π‘. Если Π²Π°ΠΌ часто трСбуСтся Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ элСмСнты Π² Π½Π°Ρ‡Π°Π»ΠΎ, рассмотритС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹:

  1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π‘Ρ‚Π΅ΠΊ (Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· БписокЗначСний с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒΠ’ΠΠ°Ρ‡Π°Π»ΠΎ())
  2. Π”ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ элСмСнты Π² ΠΊΠΎΠ½Π΅Ρ†, Π° Π·Π°Ρ‚Π΅ΠΌ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ массив ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ()
  3. Для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с Π°Π²Ρ‚ΠΎΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π½Ρ‹ΠΌ ΠΏΠΎΠ»Π΅ΠΌ
Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ строку Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ Π½Π° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ?

Для добавлСния строки Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ полю (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»Ρƒ) ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒΠ£Π½ΠΈΠΊΠ°Π»ΡŒΠ½ΡƒΡŽΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ(Π’Π—, Артикул, НаимСнованиС)

// Π˜Ρ‰Π΅ΠΌ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ строку с Ρ‚Π°ΠΊΠΈΠΌ Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»ΠΎΠΌ

НайдСнныСБтроки = Π’Π—.НайтиБтроки(Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°("Артикул", Артикул));

Если НайдСнныСБтроки.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() = 0 Π’ΠΎΠ³Π΄Π°

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

НоваяБтрока.Артикул = Артикул;

НоваяБтрока.НаимСнованиС = НаимСнованиС;

Π˜Π½Π°Ρ‡Π΅

ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅("Π’ΠΎΠ²Π°Ρ€ с Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»ΠΎΠΌ " + Артикул + " ΡƒΠΆΠ΅ сущСствуСт!");

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

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

Для ускорСния поиска Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ отсортируйтС Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΏΠΎ полю, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ провСряСтС ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ индСксированныС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅() ΠΈ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ() для Ρ‚Π°Π±Π»ΠΈΡ† Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ?

Π­Ρ‚ΠΎ Π΄Π²Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

  • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ() β€” создаСт Π½ΠΎΠ²ΡƒΡŽ ΠΏΡƒΡΡ‚ΡƒΡŽ строку Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π° Π½Π΅Π΅ ссылку. ПослС Π²Ρ‹Π·ΠΎΠ²Π° этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ поля созданной строки.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅() β€” добавляСт Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ строку (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹) ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΉ строки.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€, Π³Π΄Π΅ Π²Π°ΠΆΠ΅Π½ Π²Ρ‹Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

// ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ: сначала Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(), Π·Π°Ρ‚Π΅ΠΌ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅

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

НоваяБтрока.НаимСнованиС = "Π’ΠΎΠ²Π°Ρ€ 1";

// Ошибка: ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅()

ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ = Π’Π—.Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅(Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π˜Π·Π”Ρ€ΡƒΠ³ΠΎΠΉΠ’Π—);

ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.НаимСнованиС = "Π’ΠΎΠ²Π°Ρ€ 2"; // Π­Ρ‚ΠΎ Π½Π΅ сработаСт!

Как ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ 100 000 строк Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ?

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ‚Π°ΠΊΠΈΠΌΠΈ объСмами Π΄Π°Π½Π½Ρ‹Ρ… слСдуСт:

  1. ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ автоматичСскоС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ прогрСсса: Π’Π—.ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΠŸΡ€ΠΎΠ³Ρ€Π΅ΡΡ = Π›ΠΎΠΆΡŒ;
  2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· Π’Π—.Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΠšΠΎΠ»ΠΎΠ½ΠΊΡƒ() Ссли Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Π΅
  3. Π Π°Π·Π±ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π½Π° ΠΏΠΎΡ€Ρ†ΠΈΠΈ ΠΏΠΎ 1000-5000 строк с ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΌ сохранСниСм Ρ‡Π΅Ρ€Π΅Π· Π’Π—.Π‘ΠΆΠ°Ρ‚ΡŒ()
  4. Для ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ использованиС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† Π‘Π” вмСсто Π’Π—

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:

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

Π’Π—.ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΠŸΡ€ΠΎΠ³Ρ€Π΅ΡΡ = Π›ΠΎΠΆΡŒ;

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

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

Для Π‘Ρ‡ = 1 По 100000 Π¦ΠΈΠΊΠ»

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

НоваяБтрока.ПолС1 = Π‘Ρ‡;

НоваяБтрока.ПолС2 = "Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ " + Π‘Ρ‡;

// ΠšΠ°ΠΆΠ΄Ρ‹Π΅ 5000 строк сТимаСм Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ

Если Π‘Ρ‡ % 5000 = 0 Π’ΠΎΠ³Π΄Π°

Π’Π—.Π‘ΠΆΠ°Ρ‚ΡŒ();

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

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

МоТно Π»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² массив ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅Ρ‰Π΅ Π½Π΅ сохранСн Π² Π±Π°Π·Π΅?

Π”Π°, Π² массивы 1Π‘ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠ°ΠΊ ссылки Π½Π° сохранСнныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (элСмСнты справочников, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹), Ρ‚Π°ΠΊ ΠΈ нСсохранСнныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² памяти. Однако Π΅ΡΡ‚ΡŒ Π²Π°ΠΆΠ½Ρ‹Π΅ Π½ΡŽΠ°Π½ΡΡ‹:

  • Для нСсохранСнных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (созданных Ρ‡Π΅Ρ€Π΅Π· Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠžΠ±ΡŠΠ΅ΠΊΡ‚.Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΠ”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚() ΠΈΠ»ΠΈ Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠžΠ±ΡŠΠ΅ΠΊΡ‚.Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚()) массив Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² памяти. Если Π²Ρ‹ Π½Π΅ сохранитС этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² Π±Π°Π·Ρƒ, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ потСрян послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ сСанса.
  • ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ сохранСнных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² массив сохраняСтся ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² Π±Π°Π·Π΅, которая останСтся Π²Π°Π»ΠΈΠ΄Π½ΠΎΠΉ Π΄Π°ΠΆΠ΅ послС пСрСзапуска систСмы.
  • Если Π²Ρ‹ добавляСтС Π² массив структуры ΠΈΠ»ΠΈ значСния, ΠΎΠ½ΠΈ всСгда хранятся Π² памяти Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ сСанса.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с нСсохранСнным ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ:

НовыйДокумСнт = Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹.Π—Π°ΠΊΠ°Π·ΠŸΠΎΠΊΡƒΠΏΠ°Ρ‚Π΅Π»Ρ.Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΠ”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚();

НовыйДокумСнт.ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚ = Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ.ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Ρ‹.ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡŽ("ООО Π ΠΎΠ·Π½ΠΈΡ†Π°");

ΠœΠ°ΡΡΠΈΠ²Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² = Новый Массив;

ΠœΠ°ΡΡΠΈΠ²Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅(НовыйДокумСнт); // ДобавляСм нСсохранСнный Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚

// ПослС сохранСния ссылка Π² массивС останСтся Π²Π°Π»ΠΈΠ΄Π½ΠΎΠΉ

НовыйДокумСнт.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ();