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

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

1. Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π² памяти (Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ списки)

Π‘Π°ΠΌΡ‹ΠΉ простой ΠΈ быстрый способ β€” Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ БписокЗначСний нСпосрСдствСнно Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти Π²ΠΎ врСмя выполнСния ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ΄Π΅Π°Π»Π΅Π½ для краткосрочных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Π΅ Π½ΡƒΠΆΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСанса ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹.

ОсновноС прСимущСство β€” ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½Ρ‹ΠΉ доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π±Π΅Π· ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ Π±Π°Π·Π΅. Однако Π΅ΡΡ‚ΡŒ ΠΈ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹Π΅ ограничСния:

  • πŸ”Ή Π”Π°Π½Π½Ρ‹Π΅ Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ сСанса ΠΈΠ»ΠΈ пСрСзапускС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°
  • πŸ”Ή НС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… сцСнариСв (ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ со своСй ΠΊΠΎΠΏΠΈΠ΅ΠΉ)
  • πŸ”Ή ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΡƒΡ‚Π΅Ρ‡ΠΊΠ°ΠΌ памяти ΠΏΡ€ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ очисткС

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования β€” ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π΅ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ списка для Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:

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

БписокВоваров.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Ноутбук", "00000001");

БписокВоваров.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€", "00000002");

// ИспользованиС Π² Ρ„ΠΎΡ€ΠΌΠ΅ Π²Ρ‹Π±ΠΎΡ€Π°

Π€ΠΎΡ€ΠΌΠ°.Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹.Бписок.БписокВыбора = БписокВоваров;

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими списками (>10 000 элСмСнтов) Π² памяти ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ Ошибка Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠΈ памяти (MemoryLimitExceeded). Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΡΡ‚Ρ€Π°Π½ΠΈΡ‡Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈΠ»ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ хранСния.

2. БСриализация Π² Π₯ранилищСЗначСния

Π₯ранилищСЗначСния β€” встроСнный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ 1Π‘ для Π΄ΠΎΠ»Π³ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ хранСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ БписокЗначСний. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ позволяСт ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ сСансами, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ явной сСриализации/дСсСриализации.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

  • πŸ”Ή Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ пСрСзапусками систСмы
  • πŸ”Ή Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΈ сСрвСром
  • πŸ”Ή ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° вСрсионности (ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° для сохранСния ΠΈ восстановлСния:

// Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅

Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ = Новый Π₯ранилищСЗначСния();

Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ(БписокЗначСний);

Π—Π°ΠΏΠΈΡΡŒ = Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠšΠ°ΠΊΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ();

// ВосстановлСниС

Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ = Новый Π₯ранилищСЗначСния();

Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΠ˜Π·Π‘Ρ‚Ρ€ΠΎΠΊΠΈ(Π—Π°ΠΏΠΈΡΡŒ);

ВосстановлСнныйБписок = Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ();

Π€ΠΎΡ€ΠΌΠ°Ρ‚ хранСния Π Π°Π·ΠΌΠ΅Ρ€ ограничСния Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ чтСния ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для
Π₯ранилищСЗначСния (строка) ~100 ΠœΠ‘ БрСдняя Бписки Π΄ΠΎ 50 000 элСмСнтов
Π₯ранилищСЗначСния (Ρ„Π°ΠΉΠ») ~2 Π“Π‘ Низкая АрхивныС Π΄Π°Π½Π½Ρ‹Π΅
XML-сСриализация ~500 ΠœΠ‘ Низкая ОбмСн Π΄Π°Π½Π½Ρ‹ΠΌΠΈ
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ сСриализации БписокЗначСний с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ 1Π‘ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ссылками Π½Π° справочники) Π² Π₯ранилищСЗначСния ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Ρ‘Π½ ΠΈΠ· Π±Π°Π·Ρ‹, восстановлСниС списка ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ошибкС ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ (ObjectNotFound).
πŸ“Š Какой ΠΌΠ΅Ρ‚ΠΎΠ΄ хранСния списков Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
Π’ памяти (Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅)
Π₯ранилищСЗначСния
Π Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ справочников
Π’Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…
Π”Ρ€ΡƒΠ³ΠΎΠ΅

3. Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π² Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°Ρ… справочников ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

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

ΠŸΠ»ΡŽΡΡ‹ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°:

  • πŸ”Ή Π”Π°Π½Π½Ρ‹Π΅ привязаны ΠΊ бизнСс-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ вмСстС с Π½ΠΈΠΌ
  • πŸ”Ή ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΡ€Π°Π²Π° доступа 1Π‘
  • πŸ”Ή Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π² ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π°Ρ… ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ…

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ:

// Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° справочника "ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Ρ‹"

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠŸΡ€ΠΈΠ—Π°ΠΏΠΈΡΠΈ(ΠžΡ‚ΠΊΠ°Π·)

Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ = ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ДопустимыСНомСнклатуры;

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

Для КаТдого Π‘Ρ‚Ρ€ΠΎΠΊΠ° Из Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ Π¦ΠΈΠΊΠ»

БписокЗначСний.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°.НомСнклатура.НаимСнованиС, Π‘Ρ‚Ρ€ΠΎΠΊΠ°.НомСнклатура.Бсылка);

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

// Π”Π°Π»Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ БписокЗначСний Π² Π»ΠΎΠ³ΠΈΠΊΠ΅

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

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ списка

Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π° (строка/Ρ‚Π°Π±Π»ΠΈΡ†Π°)

ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²Π° доступа ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ

ΠŸΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ очистки ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ для автоматичСского обновлСния-->

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

4. ИспользованиС Ρ‚Π°Π±Π»ΠΈΡ† Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Для ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с интСнсивной Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ со списками Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ становится вынос Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π°Π·Ρ‹. Π­Ρ‚ΠΎ позволяСт:

  • πŸ”Ή ΠžΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ записСй Π±Π΅Π· зависаний
  • πŸ”Ή Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SQL-запросы для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈ сортировки
  • πŸ”Ή ΠžΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ слоТныС связи ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ

РСализация Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ создания РСгистра свСдСний ΠΈΠ»ΠΈ Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ структурой. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹:

// Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ рСгистра свСдСний "Π₯ранилищСБписков"

Π˜ΠΌΡΠ Π΅Π³ΠΈΡΡ‚Ρ€Π° = "Π₯ранилищСБписков";

Если НЕ ΠœΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅.РСгистрыБвСдСний.Найти(Π˜ΠΌΡΠ Π΅Π³ΠΈΡΡ‚Ρ€Π°) Π’ΠΎΠ³Π΄Π°

РСгистр = ΠœΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅.РСгистрыБвСдСний.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ();

РСгистр.Имя = Π˜ΠΌΡΠ Π΅Π³ΠΈΡΡ‚Ρ€Π°;

РСгистр.ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ = ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒΠ Π΅Π³ΠΈΡΡ‚Ρ€Π°.НСпСриодичСский;

Π˜Π·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅1 = РСгистр.Π˜Π·ΠΌΠ΅Ρ€Π΅Π½ΠΈΡ.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ();

Π˜Π·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅1.Имя = "Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π‘ΠΏΠΈΡΠΊΠ°";

Π˜Π·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅1.Π’ΠΈΠΏ = Новый ОписаниСВипов("Π‘Ρ‚Ρ€ΠΎΠΊΠ°");

РСсурс1 = РСгистр.РСсурсы.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ();

РСсурс1.Имя = "Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅";

РСсурс1.Π’ΠΈΠΏ = Новый ОписаниСВипов("Π‘Ρ‚Ρ€ΠΎΠΊΠ°");

РСсурс2 = РСгистр.РСсурсы.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ();

РСсурс2.Имя = "ΠŸΠΎΠΌΠ΅Ρ‚ΠΊΠ°Π£Π΄Π°Π»Π΅Π½ΠΈΡ";

РСсурс2.Π’ΠΈΠΏ = Новый ОписаниСВипов("Π‘ΡƒΠ»Π΅Π²ΠΎ");

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

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со списками Ρ‡Π΅Ρ€Π΅Π· рСгистр ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌΠΈ чтСния/записи. Π­Ρ‚ΠΎ абстрагируСт Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΊΠΎΠ΄Π°.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ использовании рСгистров свСдСний для хранСния списков Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ настройтС индСксы ΠΏΠΎ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΡŽ Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π‘ΠΏΠΈΡΠΊΠ°. Π‘Π΅Π· индСксов Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΠΎΠ»Π½Ρ‹ΠΌ сканированиСм Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ρ‡Ρ‚ΠΎ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΈ ростС ΠΎΠ±ΡŠΡ‘ΠΌΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

5. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹: JSON ΠΈ XML

Для ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ систСмами ΠΈΠ»ΠΈ хранСния слоТных структур ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ JSON ΠΈΠ»ΠΈ XML. Π’ 1Π‘ 8.3.14+ появилась встроСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° JSON, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ упростило Ρ€Π°Π±ΠΎΡ‚Ρƒ с этими Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ²:

ΠšΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ JSON XML
Π§ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ Высокая БрСдняя
Π Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° ΠšΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ Π‘ΠΎΠ»ΡŒΡˆΠ΅ Π½Π° 30-50%
Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ парсинга Высокая Низкая
ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π² 1Π‘ Нативно с 8.3.14 Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ XDTO

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с JSON:

// БСриализация списка Π² JSON

Π—Π°ΠΏΠΈΡΡŒJSON = Новый Π—Π°ΠΏΠΈΡΡŒJSON;

Π—Π°ΠΏΠΈΡΡŒJSON.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ();

БписокЗначСний.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒJSON(Π—Π°ΠΏΠΈΡΡŒJSON);

Π‘Ρ‚Ρ€ΠΎΠΊΠ°JSON = Π—Π°ΠΏΠΈΡΡŒJSON.Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ();

// ВосстановлСниС ΠΈΠ· JSON

Π§Ρ‚Π΅Π½ΠΈΠ΅JSON = Новый Π§Ρ‚Π΅Π½ΠΈΠ΅JSON;

Π§Ρ‚Π΅Π½ΠΈΠ΅JSON.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°JSON);

ВосстановлСнныйБписок = Новый БписокЗначСний();

ВосстановлСнныйБписок.ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒJSON(Π§Ρ‚Π΅Π½ΠΈΠ΅JSON);

πŸ’‘

Для хранСния Π±ΠΎΠ»ΡŒΡˆΠΈΡ… JSON-структур (>1 ΠœΠ‘) Π² Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΈΠΏ "Π₯ранилищСЗначСния" вмСсто "Π‘Ρ‚Ρ€ΠΎΠΊΠ°". Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° Π΄Π»ΠΈΠ½Ρƒ строки ΠΈ ускорит ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ.

XML ΡƒΠ΄ΠΎΠ±Π΅Π½ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ со старыми систСмами ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° трСбуСтся валидация ΠΏΠΎ XSD-схСмам. Однако для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ хранСния списков Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² 1Π‘ JSON ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ ΠΈΠ·-Π·Π° простоты ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

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

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

  • 🚫 Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ссылок Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² сСриализованном Π²ΠΈΠ΄Π΅

    ΠŸΡ€ΠΈ восстановлСнии Ρ‚Π°ΠΊΠΈΠ΅ ссылки ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. РСшСниС: Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ (GUID) ΠΈ Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎ Π½ΠΈΠΌ с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ сущСствования.

  • 🚫 Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ

    ΠŸΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ записи Π² ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ справочников) ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹. РСшСниС: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°Π”Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ оптимистичныС Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ.

  • 🚫 ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ контроля вСрсий

    ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ структуры списка старыС сСриализованныС Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Ρ‚ΡŒ Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌΠΈ. РСшСниС: Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ вСрсии Π² Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ.

  • 🚫 Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² строках

    Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, изобраТСния Π² списках) ΠΏΡ€ΠΈ сСриализации Π² строку ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ Π½Π° 30%. РСшСниС: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π₯ранилищСЗначСния ΠΈΠ»ΠΈ Π²Ρ‹Π½ΠΎΡΠΈΡ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

Для диагностики ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ΠΌ списков Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΆΡƒΡ€Π½Π°Π» рСгистрации 1Π‘. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ событий Π₯ранилищСЗначСния ΠΈ Π Π°Π±ΠΎΡ‚Π°Π‘Π€Π°ΠΉΠ»Π°ΠΌΠΈ для отслСТивания ошибок сСриализации:

РСгистратор = Новый ЖурналРСгистрации(,,Π˜ΡΡ‚ΠΈΠ½Π°);

РСгистратор.Π£Ρ€ΠΎΠ²Π΅Π½ΡŒΠ”Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ = Π£Ρ€ΠΎΠ²Π΅Π½ΡŒΠ”Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈΠ–ΡƒΡ€Π½Π°Π»Π°.ΠžΡ‚Π»Π°Π΄ΠΊΠ°;

Как Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Ρ‘Π½Π½ΠΎΠ΅ Π₯ранилищСЗначСния?

Если ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Π₯ранилищСЗначСния Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка "ΠŸΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅", ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅:

1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ() вмСсто ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ()

2. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΡƒΡŽ сумму (ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΡƒΡŽΠ‘ΡƒΠΌΠΌΡƒ())

3. Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ chdbfl.exe ΠΈΠ· ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° 1Π‘ для восстановлСния физичСской цСлостности Π±Π°Π·Ρ‹

4. Π’ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΌ случаС β€” Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² хранСния: Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ?

Π’Ρ‹Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° хранСния зависит ΠΎΡ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ²:

  • πŸ“Œ ΠžΠ±ΡŠΡ‘ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…:

    Π”ΠΎ 1 000 элСмСнтов β€” ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π₯ранилищСЗначСния

    1 000–50 000 элСмСнтов β€” Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ справочников ΠΈΠ»ΠΈ рСгистры

    Π‘Π²Ρ‹ΡˆΠ΅ 50 000 элСмСнтов β€” ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

  • πŸ“Œ ВрСбования ΠΊ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ:

    Π”Π°Π½Π½Ρ‹Π΅ Π½ΡƒΠΆΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ сСансС β€” ΠΏΠ°ΠΌΡΡ‚ΡŒ

    Π”Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ сСансами β€” Π₯ранилищСЗначСния ΠΈΠ»ΠΈ Π±Π°Π·Π°

  • πŸ“Œ ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ доступ:

    Π˜Π½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ настройки ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ β€” Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ справочника "ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ"

    ΠžΠ±Ρ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ для всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ β€” рСгистры свСдСний

  • πŸ“Œ Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ структуры:

    ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ ΠΏΠ°Ρ€Ρ‹ "Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅-прСдставлСниС" β€” БписокЗначСний

    Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΈΠ»ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ структуры β€” JSON/XML

Для наглядности ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘ΠΌ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹:

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ
Π’Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π° ΠŸΠ°ΠΌΡΡ‚ΡŒ (БписокЗначСний) Π₯ранилищСЗначСния ВСряСтся ΠΏΡ€ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΡ‹
Настройки ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Π Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ справочника "ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ" Π₯ранилищСЗначСния Π² настройках сСанса Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΡ€Π°Π² Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ справочника
ОбмСн Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с внСшнСй систСмой JSON Π² Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° XML с XDTO-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ строки
Кэш часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… РСгистр свСдСний Π’Π½Π΅ΡˆΠ½ΡΡ Π‘Π£Π‘Π” (PostgreSQL) Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ настройки индСксов
АрхивныС Π΄Π°Π½Π½Ρ‹Π΅ (история ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ) Π₯ранилищСЗначСния Π² Ρ„Π°ΠΉΠ»Π΅ ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° Π² Π±Π°Π·Π΅ МСдлСнноС Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²
πŸ’‘

Для критичСских Π΄Π°Π½Π½Ρ‹Ρ… всСгда Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰. Π”Π°ΠΆΠ΅ Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ рСгистров свСдСний, Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ сбои ΠΈΠ»ΠΈ ошибки администратора ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

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

МоТно Π»ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ БписокЗначСний с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ (ссылками Π½Π° справочники) Π² Π₯ранилищСЗначСния?

ВСхничСски ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ ΠΏΡ€ΠΈ восстановлСнии 1Π‘ попытаСтся Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎ ΠΈΡ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌ. Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π±Ρ‹Π» ΡƒΠ΄Π°Π»Ρ‘Π½ ΠΈΠ»ΠΈ Π΅Π³ΠΎ UID измСнился, Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка. РСкомСндуСтся Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ (GUID) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ сущСствования Ρ‡Π΅Ρ€Π΅Π· Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ.Имя.ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡŽ() ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

Как Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ большиС списки (>100 000 элСмСнтов) Π±Π΅Π· Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΎΠ²?

Для Ρ‚Π°ΠΊΠΈΡ… ΠΎΠ±ΡŠΡ‘ΠΌΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…:

  1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΡΡ‚Ρ€Π°Π½ΠΈΡ‡Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ (Ρ€Π°Π·Π±ΠΈΠ²Π°ΠΉΡ‚Π΅ список Π½Π° части ΠΏΠΎ 1 000–5 000 элСмСнтов)
  2. Π₯Ρ€Π°Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π±Π°Π·Ρ‹ (рСгистр свСдСний ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚)
  3. Для чтСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ прямыС SQL-запросы Ρ‡Π΅Ρ€Π΅Π· Запрос.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ() с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ
  4. Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ всСго списка Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ β€” Ρ€Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ порциями

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ запроса:

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

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

"ВЫБРАВЬ ΠŸΠ•Π Π’Π«Π• 1000

| Π₯ранилищСБписков.Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ КАК Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

|Π˜Π—

| РСгистрБвСдСний.Π₯ранилищСБписков КАК Π₯ранилищСБписков

|Π“Π”Π•

| Π₯ранилищСБписков.Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π‘ΠΏΠΈΡΠΊΠ° = &ИдБписка

|Π£ΠŸΠžΠ Π―Π”ΠžΠ§Π˜Π’Π¬ ПО

| Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅";

Запрос.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€("ИдБписка", Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π‘ΠΏΠΈΡΠΊΠ°);

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

Как ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ доступ ΠΊ ΠΎΠ±Ρ‰Π΅ΠΌΡƒ списку Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ?

Для совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ с ΠΎΠ΄Π½ΠΈΠΌ списком:

  • Π₯Ρ€Π°Π½ΠΈΡ‚Π΅ список Π² рСгистрС свСдСний с установлСнной ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ "Π‘Π΅ΠΊΡƒΠ½Π΄Π°" (для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…) ΠΈΠ»ΠΈ "НСпСриодичСский"
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΏΡ€ΠΈ записи:
    Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° = Новый Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°Π”Π°Π½Π½Ρ‹Ρ…;
    

    Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("РСгистрБвСдСний.Π₯ранилищСБписков");

    ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°

    Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°.Π—Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ();

    // Код записи Π΄Π°Π½Π½Ρ‹Ρ…

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

    Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π”Π°Π½Π½Ρ‹Π΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ!");

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

  • Π Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ оптимистичных Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ (Π²Π΅Ρ€ΡΠΈΠΎΠ½Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…) для ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²
Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли сСриализованный БписокЗначСний ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Ρ‘Π½?

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ дСйствий:

  1. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ() вмСсто ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ()
  2. Если Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π² Ρ„Π°ΠΉΠ»Π΅ β€” ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΡƒΡŽ сумму:
    Если Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΡƒΡŽΠ‘ΡƒΠΌΠΌΡƒ() <> Π‘ΠΎΡ…Ρ€Π°Π½Ρ‘Π½Π½Π°ΡΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°ΡΠ‘ΡƒΠΌΠΌΠ° Π’ΠΎΠ³Π΄Π°
    

    Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π”Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½Ρ‹!");

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

  3. Для ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… восстановитС послСднюю Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΈΠ· Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ
  4. Если поврСТдСния частыС β€” ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π±Π°Π·Ρ‹ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ chdbfl.exe

Для ΠΏΡ€ΠΎΡ„ΠΈΠ»Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ:

  • Π₯Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ суммы (CRC32) вмСстС с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈ записи
  • РСгулярно Π΄Π΅Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…
Как ΠΌΠΈΠ³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ структуры БпискаЗначСний?

ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ структуры (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ² ΠΊ элСмСнтам списка):

  1. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² сСриализуСмыС Π΄Π°Π½Π½Ρ‹Π΅ Π½ΠΎΠΌΠ΅Ρ€ вСрсии:
    ДанныСДляБохранСния = Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°();
    

    ДанныСДляБохранСния.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("ВСрсия", 2);

    ДанныСДляБохранСния.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("Бписок", БписокЗначСний);

    ДанныСДляБохранСния.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("Π”Π°Ρ‚Π°", ВСкущаяДата());

  2. Π Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ вСрсии:
    ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΠ”Π°Π½Π½Ρ‹Π΅(Π”Π°Π½Π½Ρ‹Π΅, ВСкущаяВСрсия)
    

    Если ВСкущаяВСрсия = 1 Π’ΠΎΠ³Π΄Π°

    // ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΡ ΠΈΠ· вСрсии 1 Π² Π²Π΅Ρ€ΡΠΈΡŽ 2

    Для КаТдого Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Из Π”Π°Π½Π½Ρ‹Π΅.Бписок Π¦ΠΈΠΊΠ»

    Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.НовыйРСквизит = НСопрСдСлён;

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

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ 2;

    Π˜Π½Π°Ρ‡Π΅

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ВСкущаяВСрсия;

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

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

  3. ΠŸΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ провСряйтС Π²Π΅Ρ€ΡΠΈΡŽ ΠΈ ΠΏΡ€ΠΈ нСобходимости выполняйтС ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΡŽ

Для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΡ‘ΠΌΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ поэтапно, обрабатывая ΠΏΠΎ 1 000–5 000 записСй Π·Π° Ρ€Π°Π·, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ Π±Π°Π·Ρ‹.