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

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

1. ΠœΠ΅Ρ‚ΠΎΠ΄ ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ(): быстроС слияниС Π±Π΅Π· Π΄ΡƒΠ±Π»Π΅ΠΉ

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

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ особСнности ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

  • πŸ”Ή АвтоматичСская ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄ΡƒΠ±Π»Π΅ΠΉ β€” Ссли Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ строка с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°Ρ…, ΠΎΠ½Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ.
  • πŸ”Ή Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ структуры β€” ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² исходных Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ ΠΏΠΎ ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΈ Ρ‚ΠΈΠΏΠ°ΠΌ.
  • πŸ”Ή ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ β€” Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС Ρ€ΡƒΡ‡Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ², Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ΡŒ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… с ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ строк.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° для объСдинСния Ρ‚Π°Π±Π»ΠΈΡ† Π’Π°Π±Π»ΠΈΡ†Π°1 ΠΈ Π’Π°Π±Π»ΠΈΡ†Π°2 с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΠΏΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ "ΠšΠΎΠ΄Π’ΠΎΠ²Π°Ρ€Π°":

Π’Π°Π±Π»ΠΈΡ†Π°1.ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ(Π’Π°Π±Π»ΠΈΡ†Π°2, "ΠšΠΎΠ΄Π’ΠΎΠ²Π°Ρ€Π°");
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если Π½Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΡƒΡŽ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ() Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ всС строки ΠΈΠ· Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π΄ΡƒΠ±Π»ΠΈ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ Π² ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π°Ρ….
πŸ“Š Какой ΠΌΠ΅Ρ‚ΠΎΠ΄ объСдинСния Ρ‚Π°Π±Π»ΠΈΡ† Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ()
Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ()
Π¦ΠΈΠΊΠ» ΠΏΠΎ строкам
Π”Ρ€ΡƒΠ³ΠΈΠ΅ способы

2. ΠœΠ΅Ρ‚ΠΎΠ΄ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ(): ΠΊΠΎΠ³Π΄Π° структура Ρ‚Π°Π±Π»ΠΈΡ† разная

Если Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΈΠ»ΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ явно ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΊΡƒΠ΄Π° Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ, Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΠ΄Ρ‘Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ(). Он позволяСт:

  • πŸ“Œ ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ "Артикул" ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ "ΠšΠΎΠ΄Π’ΠΎΠ²Π°Ρ€Π°" Π²Ρ‚ΠΎΡ€ΠΎΠΉ.
  • πŸ“Œ ΠŸΡ€ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ β€” Ссли Π² исходной Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π΅ΡΡ‚ΡŒ лишниС Π΄Π°Π½Π½Ρ‹Π΅, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ.
  • πŸ“Œ Π”ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ строки Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° Π΄ΡƒΠ±Π»ΠΈ (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ()).

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ сцСнарий использования β€” ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· внСшнСго источника (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Excel ΠΈΠ»ΠΈ JSON) ΠΈ Π½ΡƒΠΆΠ½ΠΎ Β«Π²Π»ΠΈΡ‚ΡŒΒ» ΠΈΡ… Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ структурой.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° с ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ:

БоотвСтствиС = Новый Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ΠšΠΎΠ»ΠΎΠ½ΠΎΠΊΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ;

БоотвСтствиС.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Артикул", "ΠšΠΎΠ΄Π’ΠΎΠ²Π°Ρ€Π°"); // Из ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ "Артикул" Π² "ΠšΠΎΠ΄Π’ΠΎΠ²Π°Ρ€Π°"

БоотвСтствиС.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π¦Π΅Π½Π°", "Π‘Ρ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ"); // Из ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ "Π¦Π΅Π½Π°" Π² "Π‘Ρ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ"

Π’Π°Π±Π»ΠΈΡ†Π°1.Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ(Π’Π°Π±Π»ΠΈΡ†Π°2, БоотвСтствиС);

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄ΡƒΠ±Π»Π΅ΠΉ Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ структуру ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ() Π”Π° (ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ) Π”Π° Высокая
Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ() НСт НСт БрСдняя
Π¦ΠΈΠΊΠ» ΠΏΠΎ строкам НастраиваСтся Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ НСт Низкая

3. Π ΡƒΡ‡Π½ΠΎΠ΅ объСдинСниС Ρ‡Π΅Ρ€Π΅Π· Ρ†ΠΈΠΊΠ»: ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ

Когда стандартныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π΅ подходят β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄ объСдинСниСм ΠΈΠ»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ слияния β€” остаётся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚: ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° строк Π² Ρ†ΠΈΠΊΠ»Π΅.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°:

  • πŸ› οΈ Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ β€” ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ условия, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ значСния, ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ строки.
  • πŸ› οΈ ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π΄ΡƒΠ±Π»Π΅ΠΉ β€” Π²Ρ‹ сами Ρ€Π΅ΡˆΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠΌ ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ (ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ, Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ).
  • πŸ› οΈ ΠžΡ‚Π»Π°Π΄ΠΊΠ° β€” ΠΏΡ€ΠΎΡ‰Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠΉΠ΄Ρ‘Ρ‚ Π½Π΅ Ρ‚Π°ΠΊ.

НСдостаток ΠΎΠ΄ΠΈΠ½, Π½ΠΎ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹ΠΉ: ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. На Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… (100 000+ строк) Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ встроСнных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° с Ρ€ΡƒΡ‡Π½Ρ‹ΠΌ объСдинСниСм ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ Π½Π° Π΄ΡƒΠ±Π»ΠΈ ΠΏΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ "НомСнклатура":

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

НайдСнаБтрока = Π’Π°Π±Π»ΠΈΡ†Π°1.НайтиБтроки(Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°("НомСнклатура", Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π˜Π·Π’Π°Π±Π»ΠΈΡ†Ρ‹2.НомСнклатура)).ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() > 0;

Если НЕ НайдСнаБтрока Π’ΠΎΠ³Π΄Π°

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

НоваяБтрока.НомСнклатура = Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π˜Π·Π’Π°Π±Π»ΠΈΡ†Ρ‹2.НомСнклатура;

НоваяБтрока.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ = Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π˜Π·Π’Π°Π±Π»ΠΈΡ†Ρ‹2.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ;

Π˜Π½Π°Ρ‡Π΅

// ОбновляСм ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ строку (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, суммируСм количСство)

НайдСннаяБтрока = Π’Π°Π±Π»ΠΈΡ†Π°1.Найти(НомСнклатура, Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π˜Π·Π’Π°Π±Π»ΠΈΡ†Ρ‹2.НомСнклатура);

НайдСннаяБтрока.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ = НайдСннаяБтрока.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ + Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π˜Π·Π’Π°Π±Π»ΠΈΡ†Ρ‹2.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ;

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

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

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ для сравнСния Π½Π΅ содСрТат NULL|ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°Ρ…|ΠžΡ†Π΅Π½ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΡ‘ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… (для >50ΠΊ строк Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ)|Π—Π°Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π½Π° врСмя объСдинСния, Ссли Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅-->

4. ОбъСдинСниС с Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠ΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ…

Частая Π·Π°Π΄Π°Ρ‡Π° β€” Π½Π΅ просто ΡΠ»ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π° Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ значСния ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌ. НапримСр, ΠΏΡ€ΠΈ объСдинСнии остатков Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² с Ρ€Π°Π·Π½Ρ‹Ρ… складов ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΡΡƒΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ количСство ΠΈΠ»ΠΈ Π½Π°ΠΉΡ‚ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ†Π΅Π½Ρƒ.

Для этого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ комбинация ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:

  1. ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² ΠΎΠ΄Π½Ρƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ()).
  2. Π‘Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌ.
  3. ΠΠ³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ значСния (сумма, максимум, ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΈ Ρ‚.Π΄.).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° для суммирования количСства ΠΏΠΎ Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Π΅:

// 1. ОбъСдиняСм Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

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

ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Π°ΡΠ’Π°Π±Π»ΠΈΡ†Π°.Колонки.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("НомСнклатура", Новый ОписаниСВипов("БправочникБсылка.НомСнклатура"));

ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Π°ΡΠ’Π°Π±Π»ΠΈΡ†Π°.Колонки.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ", Новый ОписаниСВипов("Число"));

ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Π°ΡΠ’Π°Π±Π»ΠΈΡ†Π°.Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ(Π’Π°Π±Π»ΠΈΡ†Π°1);

ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Π°ΡΠ’Π°Π±Π»ΠΈΡ†Π°.Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ(Π’Π°Π±Π»ΠΈΡ†Π°2);

// 2. Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΠ΅ΠΌ ΠΈ суммируСм

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

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.Колонки.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("НомСнклатура");

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.Колонки.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π˜Ρ‚ΠΎΠ³ΠΎΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ");

Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° = ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Π°ΡΠ’Π°Π±Π»ΠΈΡ†Π°.Π‘Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ("НомСнклатура", "ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ");

Для КаТдого Π“Ρ€ΡƒΠΏΠΏΠ° Из Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° Π¦ΠΈΠΊΠ»

Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° = Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ();

Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.НомСнклатура = Π“Ρ€ΡƒΠΏΠΏΠ°.ΠšΠ»ΡŽΡ‡.НомСнклатура;

Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.Π˜Ρ‚ΠΎΠ³ΠΎΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ = Π“Ρ€ΡƒΠΏΠΏΠ°.Π˜Ρ‚ΠΎΠ³ΠΈ.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ.Π˜Ρ‚ΠΎΠ³ΠΎ();

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

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

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

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

1. НСсовпадСниС Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°Ρ…

Если Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ "Число", Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ β€” "Π‘Ρ‚Ρ€ΠΎΠΊΠ°", ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ() ΠΈΠ»ΠΈ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ() Π²Ρ‹Π·ΠΎΠ²ΡƒΡ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ. ВсСгда провСряйтС Ρ‚ΠΈΠΏΡ‹ ΠΏΠ΅Ρ€Π΅Π΄ объСдинСниСм:

Если Π’Π°Π±Π»ΠΈΡ†Π°1.Колонки.Найти("Π¦Π΅Π½Π°").ВипЗначСния <> Π’Π°Π±Π»ΠΈΡ†Π°2.Колонки.Найти("Π¦Π΅Π½Π°").ВипЗначСния Π’ΠΎΠ³Π΄Π°

Π’Ρ‹Π·Π²Π°Ρ‚ΡŒΠ˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ "Π’ΠΈΠΏΡ‹ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ 'Π¦Π΅Π½Π°' Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚!";

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

2. ΠŸΠΎΡ‚Π΅Ρ€Ρ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ нСявном ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ²

НапримСр, Ссли Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ "Π”Π°Ρ‚Π°" ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ хранится Π”Π°Ρ‚Π°(2023,12,31), Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ β€” строка "31.12.2023", ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ автоматичСски ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π½ΠΎ Π½Π΅ всСгда ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. Π›ΡƒΡ‡ΡˆΠ΅ явно ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏΡ‹:

Π’Π°Π±Π»ΠΈΡ†Π°2.Колонки.Найти("Π”Π°Ρ‚Π°").ВипЗначСния = Новый ОписаниСВипов("Π”Π°Ρ‚Π°");

3. Π—Π°Π±Ρ‹Π»ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΡƒΡŽ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ Π² ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ()

Если Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ имя ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΌΠ΅Ρ‚ΠΎΠ΄ просто Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ всС строки ΠΈΠ· Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ дублям. ВсСгда явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΊΠ»ΡŽΡ‡:

Π’Π°Π±Π»ΠΈΡ†Π°1.ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ(Π’Π°Π±Π»ΠΈΡ†Π°2, "ΠšΠΎΠ΄Π’ΠΎΠ²Π°Ρ€Π°,Π‘ΠΊΠ»Π°Π΄"); // ΠšΠ»ΡŽΡ‡ ΠΏΠΎ Π΄Π²ΡƒΠΌ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌ
πŸ’‘

ΠŸΠ΅Ρ€Π΅Π΄ объСдинСниСм Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ† (>100ΠΊ строк) Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ индСксы ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π’Π°Π±Π»ΠΈΡ†Π°.Π˜Π½Π΄Π΅ΠΊΡΡ‹.ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ(). Π­Ρ‚ΠΎ ускорит процСсс, Π½ΠΎ Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ индСксы послС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ!

6. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

Π Π°Π±ΠΎΡ‚Π° с большими Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (дСсятки тысяч строк) ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. Π’ΠΎΡ‚ нСсколько ΠΏΡ€ΠΈΡ‘ΠΌΠΎΠ² для ускорСния:

1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Если Π΄Π°Π½Π½Ρ‹Π΅ хранятся Π² SQL-Π±Π°Π·Π΅, пСрСнСситС объСдинСниС Π½Π° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ запроса:

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

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

"ВЫБРАВЬ

| Π’Π°Π±Π»ΠΈΡ†Π°1.НомСнклатура КАК НомСнклатура,

| БУММА(Π’Π°Π±Π»ΠΈΡ†Π°1.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ) КАК ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ

|Π˜Π—

| &Π’Π°Π±Π»ΠΈΡ†Π°1 КАК Π’Π°Π±Π»ΠΈΡ†Π°1

|ΠžΠ‘ΠͺΠ•Π”Π˜ΠΠ˜Π’Π¬ Π’Π‘Π•

|ВЫБРАВЬ

| Π’Π°Π±Π»ΠΈΡ†Π°2.НомСнклатура,

| Π’Π°Π±Π»ΠΈΡ†Π°2.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ

|Π˜Π—

| &Π’Π°Π±Π»ΠΈΡ†Π°2 КАК Π’Π°Π±Π»ΠΈΡ†Π°2

|Π‘Π“Π Π£ΠŸΠŸΠ˜Π ΠžΠ’ΠΠ’Π¬ ПО

| НомСнклатура";

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

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

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

2. ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ

Если Π² объСдинСнии ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π΅ всС ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ лишниС Π·Π°Ρ€Π°Π½Π΅Π΅:

Π’Π°Π±Π»ΠΈΡ†Π°1.Колонки.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ("Π›ΠΈΡˆΠ½ΡΡΠšΠΎΠ»ΠΎΠ½ΠΊΠ°");

Π’Π°Π±Π»ΠΈΡ†Π°2.Колонки.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ("Π•Ρ‰Ρ‘ΠžΠ΄Π½Π°Π›ΠΈΡˆΠ½ΡΡΠšΠΎΠ»ΠΎΠ½ΠΊΠ°");

3. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ

ΠŸΡ€ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠΌ объСдинСнии Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ ΠΏΠΎ 1000-5000 строк, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ интСрфСйса:

Π¨Π°Π³ = 1000;

Для Инд = 0 По Π’Π°Π±Π»ΠΈΡ†Π°2.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() - 1 Π¨Π°Π³ Π¨Π°Π³ Π¦ΠΈΠΊΠ»

Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉΠŸΠ°ΠΊΠ΅Ρ‚ = Π’Π°Π±Π»ΠΈΡ†Π°2.Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ(Инд, Π¨Π°Π³);

// ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠ°ΠΊΠ΅Ρ‚Π°

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

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ() Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ…?

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ() Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ провСряСт ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ строки Π²ΠΎ всСй Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅. ΠŸΡ€ΠΈ 100ΠΊ строк это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ 100ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ строки, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΡ‡Π½ΠΎΠΉ слоТности O(nΒ²). Для ускорСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π°Π·Ρ‹ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ сортировку.

7. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: объСдинСниС остатков ΠΏΠΎ складам

Рассмотрим Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ: Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с остатками Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… складах, ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡΠ²ΠΎΠ΄Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ с ΠΈΡ‚ΠΎΠ³Π°ΠΌΠΈ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Π΅.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

  • πŸ“¦ ΠžΡΡ‚Π°Ρ‚ΠΊΠΈΠ‘ΠΊΠ»Π°Π΄1 β€” Ρ‚Π°Π±Π»ΠΈΡ†Π° с ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ: НомСнклатура, ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ.
  • πŸ“¦ ΠžΡΡ‚Π°Ρ‚ΠΊΠΈΠ‘ΠΊΠ»Π°Π΄2 β€” аналогичная Ρ‚Π°Π±Π»ΠΈΡ†Π° для Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ склада.

Π’Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: ΠΎΠ΄Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° с ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ НомСнклатура, Π˜Ρ‚ΠΎΠ³ΠΎΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ (сумма ΠΏΠΎ ΠΎΠ±ΠΎΠΈΠΌ складам).

РСшСниС Ρ‡Π΅Ρ€Π΅Π· Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΡŽ:

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

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

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.Колонки.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("НомСнклатура", Новый ОписаниСВипов("БправочникБсылка.НомСнклатура"));

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.Колонки.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π˜Ρ‚ΠΎΠ³ΠΎΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ", Новый ОписаниСВипов("Число"));

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

Для КаТдого Π‘Ρ‚Ρ€ΠΎΠΊΠ° Из ΠžΡΡ‚Π°Ρ‚ΠΊΠΈΠ‘ΠΊΠ»Π°Π΄1 Π¦ΠΈΠΊΠ»

Π‘Ρ‚Ρ€ΠΎΠΊΠΈΠ Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° = Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.НайтиБтроки(Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°("НомСнклатура", Π‘Ρ‚Ρ€ΠΎΠΊΠ°.НомСнклатура));

Если Π‘Ρ‚Ρ€ΠΎΠΊΠΈΠ Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() = 0 Π’ΠΎΠ³Π΄Π°

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

НоваяБтрока.НомСнклатура = Π‘Ρ‚Ρ€ΠΎΠΊΠ°.НомСнклатура;

НоваяБтрока.Π˜Ρ‚ΠΎΠ³ΠΎΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ = Π‘Ρ‚Ρ€ΠΎΠΊΠ°.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ;

Π˜Π½Π°Ρ‡Π΅

Π‘Ρ‚Ρ€ΠΎΠΊΠΈΠ Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°[0].Π˜Ρ‚ΠΎΠ³ΠΎΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ = Π‘Ρ‚Ρ€ΠΎΠΊΠΈΠ Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°[0].Π˜Ρ‚ΠΎΠ³ΠΎΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ + Π‘Ρ‚Ρ€ΠΎΠΊΠ°.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ;

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

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

// 3. ДобавляСм Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ)

Для КаТдого Π‘Ρ‚Ρ€ΠΎΠΊΠ° Из ΠžΡΡ‚Π°Ρ‚ΠΊΠΈΠ‘ΠΊΠ»Π°Π΄2 Π¦ΠΈΠΊΠ»

Π‘Ρ‚Ρ€ΠΎΠΊΠΈΠ Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° = Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.НайтиБтроки(Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°("НомСнклатура", Π‘Ρ‚Ρ€ΠΎΠΊΠ°.НомСнклатура));

Если Π‘Ρ‚Ρ€ΠΎΠΊΠΈΠ Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() = 0 Π’ΠΎΠ³Π΄Π°

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

НоваяБтрока.НомСнклатура = Π‘Ρ‚Ρ€ΠΎΠΊΠ°.НомСнклатура;

НоваяБтрока.Π˜Ρ‚ΠΎΠ³ΠΎΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ = Π‘Ρ‚Ρ€ΠΎΠΊΠ°.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ;

Π˜Π½Π°Ρ‡Π΅

Π‘Ρ‚Ρ€ΠΎΠΊΠΈΠ Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°[0].Π˜Ρ‚ΠΎΠ³ΠΎΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ = Π‘Ρ‚Ρ€ΠΎΠΊΠΈΠ Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°[0].Π˜Ρ‚ΠΎΠ³ΠΎΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ + Π‘Ρ‚Ρ€ΠΎΠΊΠ°.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ;

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

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

πŸ’‘

ΠŸΡ€ΠΈ объСдинСнии Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ нСскольким ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, НомСнклатура + Π‘ΠΊΠ»Π°Π΄) всСгда провСряйтС, Ρ‡Ρ‚ΠΎ комбинация Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Π°. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС агрСгация ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹.

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

МоТно Π»ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с Ρ€Π°Π·Π½Ρ‹ΠΌ количСством ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ?

Π”Π°, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ() с явным ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ соотвСтствия ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ. ΠœΠ΅Ρ‚ΠΎΠ΄ ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ() Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ структуры. Если ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ Ρ€Π°Π·Π½ΠΎΠ΅ количСство, Π½ΠΎ ΠΈΠΌΠ΅Π½Π° ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ лишниС ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†:

Π’Π°Π±Π»ΠΈΡ†Π°1.Колонки.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ("Π›ΠΈΡˆΠ½ΡΡΠšΠΎΠ»ΠΎΠ½ΠΊΠ°1");

Π’Π°Π±Π»ΠΈΡ†Π°1.ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ(Π’Π°Π±Π»ΠΈΡ†Π°2);

Как ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ссли ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ() с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ΠšΠΎΠ»ΠΎΠ½ΠΎΠΊΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π³Π΄Π΅ явно ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΈΠ· источника ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌ ΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΈΠΊΠ°:

БоотвСтствиС = Новый Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ΠšΠΎΠ»ΠΎΠ½ΠΎΠΊΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ;

БоотвСтствиС.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("ΠšΠΎΠ΄Π’ΠΎΠ²Π°Ρ€Π°_Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ", "ΠšΠΎΠ΄Π’ΠΎΠ²Π°Ρ€Π°_ΠŸΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ");

Π’Π°Π±Π»ΠΈΡ†Π°1.Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ(Π’Π°Π±Π»ΠΈΡ†Π°2, БоотвСтствиС);

ΠŸΠΎΡ‡Π΅ΠΌΡƒ послС объСдинСния ΠΏΡ€ΠΎΠΏΠ°Π»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ строки?

Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Π²Ρ‹ использовали ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ() с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, ΠΈ строки с ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΌΠΈΡΡ значСниями Π² этой ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΊΠ°ΠΊ Π΄ΡƒΠ±Π»ΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС строки, Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°ΠΉΡ‚Π΅ имя ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ:

Π’Π°Π±Π»ΠΈΡ†Π°1.ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ(Π’Π°Π±Π»ΠΈΡ†Π°2); // Π‘Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° - Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ всС строки

Или ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ провСряСт ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

Как ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с сохранСниСм порядка строк?

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ() ΠΈ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ() Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ строки Π² ΠΊΠΎΠ½Π΅Ρ† Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Если Π²Π°ΠΆΠ΅Π½ порядок, послС объСдинСния отсортируйтС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ:

Π’Π°Π±Π»ΠΈΡ†Π°1.ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ(Π’Π°Π±Π»ΠΈΡ†Π°2);

Π’Π°Π±Π»ΠΈΡ†Π°1.Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ("Π”Π°Ρ‚Π° Π£Π±Ρ‹Π², НомСнклатура Π’ΠΎΠ·Ρ€");

Для слоТных сцСнариСв (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ строк) придётся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€ΡƒΡ‡Π½ΠΎΠ΅ объСдинСниС Π² Ρ†ΠΈΠΊΠ»Π΅ с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ индСксов.

МоТно Π»ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…?

ΠŸΡ€ΡΠΌΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π΅Ρ‚, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ:

  1. Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π°Π·Ρ‹ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Запрос.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ().Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ().
  2. ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π²Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ стандартными ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ.
  3. ΠŸΡ€ΠΈ нСобходимости Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Π±Π°Π·Ρƒ Ρ‡Π΅Ρ€Π΅Π· Запрос с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΈΠ»ΠΈ ΠžΠ±ΡŠΠ΅ΠΊΡ‚.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ().

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

Запрос = Новый Запрос("ВЫБРАВЬ * Π˜Π— Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.ΠŸΠΎΡΡ‚ΡƒΠΏΠ»Π΅Π½ΠΈΠ΅Π’ΠΎΠ²Π°Ρ€ΠΎΠ²");

Π’Π°Π±Π»ΠΈΡ†Π°Π˜Π·Π‘Π°Π·Ρ‹ = Запрос.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ().Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ();

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°ΡΠ’Π°Π±Π»ΠΈΡ†Π°.ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ(Π’Π°Π±Π»ΠΈΡ†Π°Π˜Π·Π‘Π°Π·Ρ‹);