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

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ зависит ΠΎΡ‚ контСкста: Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ Π²Π°ΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅ модуля, Π² Π΄Π°Π½Π½Ρ‹Ρ… справочника, ΠΏΡ€ΠΈ экспортС Π² XML/JSON ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΈΠ· внСшнСго Ρ„Π°ΠΉΠ»Π°. ΠœΡ‹ рассмотрим всС сцСнарии с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ, прСдупрСТдСниями ΠΎ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΈ рСкомСндациями ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… программистов 1Π‘ ΡΡ‚Π°Ρ‚ΡŒΡ станСт практичСским руководством, Π° ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π°ΠΉΠ΄ΡƒΡ‚ здСсь Ρ€Π΅Π΄ΠΊΠΈΠ΅ ΠΏΡ€ΠΈΡ‘ΠΌΡ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π½Π΅ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌΡ‹ΠΌΠΈ символами ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠΎΠ²ΡƒΡŽ Π·Π°ΠΌΠ΅Π½Ρƒ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π±Π°Π·Π°Ρ….

1. Π—Π°Ρ‡Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π·Π°ΠΌΠ΅Π½Π° ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π² 1Π‘?

На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, Π·Π°ΠΌΠ΅Π½Π° ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π½Π° ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ каТСтся бСссмыслСнной. Однако Π² ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ 1Π‘ это вострСбовано Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… случаях:

  • πŸ“œ Экспорт/ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ…: Π€ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ JSON, XML ΠΈΠ»ΠΈ CSV Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ строгого экранирования ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ. НапримСр, Π² JSON Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π½Π° \".
  • πŸ’» ΠžΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°: ΠŸΡ€ΠΈ пСрСносС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρƒ конфигурациями ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ динамичСских запросов часто приходится Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π½Π° Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ (ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚) для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ().
  • πŸ”„ ОбмСн Π΄Π°Π½Π½Ρ‹ΠΌΠΈ: ΠŸΡ€ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с внСшними систСмами (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Битрикс24, МойБклад) ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² полях ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ API.
  • πŸ“„ ΠŸΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹: Π’ ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… Π‘ΠšΠ” ΠΈΠ»ΠΈ ВСкстовыйДокумСнт ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΊΠ°ΠΆΠ°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄, Ссли ΠΈΡ… Π½Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° HTML-сущности (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ").

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² унаслСдованных Π±Π°Π·Π°Ρ… ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ «грязныС» Π΄Π°Π½Π½Ρ‹Π΅ с нСстандартными ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, β€ž β€œ ΠΈΠ»ΠΈ «»), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅ΡˆΠ°ΡŽΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Π˜Ρ… Ρ‚ΠΎΠΆΠ΅ приходится ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠΌΡƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ.

πŸ“Š Π‘ ΠΊΠ°ΠΊΠΎΠΉ Ρ†Π΅Π»ΡŒΡŽ Π²Π°ΠΌ Ρ‡Π°Ρ‰Π΅ всСго приходится Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² 1Π‘?
Экспорт/ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ…
Π Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΠ΄ΠΎΠΌ
ОбмСн с внСшними систСмами
ΠžΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ
Π”Ρ€ΡƒΠ³ΠΎΠ΅

2. Ручная Π·Π°ΠΌΠ΅Π½Π° ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ: ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ

Если Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ Ρ€Π°Π·ΠΎΠ²ΠΎΠΌ исправлСнии Π² нСбольшом ΠΎΠ±ΡŠΡ‘ΠΌΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€ΠΎΡ‰Π΅ всСго ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Ρ€ΡƒΡ‡Π½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ. Π­Ρ‚ΠΎ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ для:

  • πŸ“ Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΎΠΊ Π² справочниках ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² наимСнованиях Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²).
  • πŸ“‹ РСдактирования ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ, Π³Π΄Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΌΠ΅ΡˆΠ°ΡŽΡ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΌΡƒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ.
  • πŸ”§ Быстрого тСстирования запросов ΠΈΠ»ΠΈ ΠΊΠΎΠ΄Π° Π² консоли.

Для Ρ€ΡƒΡ‡Π½ΠΎΠΉ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅:

  1. Поиск ΠΈ Π·Π°ΠΌΠ΅Π½Π° Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅:
    • ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ….
    • НаТмитС Ctrl + H (ΠΈΠ»ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠŸΡ€Π°Π²ΠΊΠ° β†’ Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ).
    • Π’ ΠΏΠΎΠ»Π΅ «Найти» Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ для Π·Π°ΠΌΠ΅Π½Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "), Π² ΠΏΠΎΠ»Π΅ Β«Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π°Β» β€” Ρ†Π΅Π»Π΅Π²ΠΎΠΉ символ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ').
    • УстановитС Ρ„Π»Π°ΠΆΠΎΠΊ Β«Π£Ρ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ рСгистр», Ссли Π½ΡƒΠΆΠ½ΠΎ.
  • Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… полях:
    • Π’ Ρ„ΠΎΡ€ΠΌΠ°Ρ… списков ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ ячСйку с тСкстом.
    • НаТмитС F2 для рСдактирования ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.
    • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ctrl + C/Ctrl + V для копирования символов ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°.
  • β˜‘οΈ ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ Ρ€ΡƒΡ‡Π½ΠΎΠΉ Π·Π°ΠΌΠ΅Π½Π΅

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

    ⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠΉ Π·Π°ΠΌΠ΅Π½Π΅ Π² ΠΊΠΎΠ΄Π΅ Π»Π΅Π³ΠΊΠΎ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ синтаксис. НапримСр, Ссли Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π½Π° ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Π² строковом Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π΅ "ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ""тСкста"" с ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ", получится Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ 'ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ''тСкста'' с ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ'. ВсСгда провСряйтС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ компиляциСй (F7).

    3. Π—Π°ΠΌΠ΅Π½Π° ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнного языка 1Π‘

    Для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°ΠΌΠ΅Π½Ρ‹ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΡ‘ΠΌΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π² динамичСски Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… строках ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ встроСнного языка. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

    3.1. Ѐункция Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ()

    Π‘Π°ΠΌΡ‹ΠΉ простой способ β€” встроСнная функция Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ():

    Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°, """, "'");

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования для Π·Π°ΠΌΠ΅Π½Ρ‹ Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π½Π° ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Π²ΠΎ всСх наимСнованиях справочника НомСнклатура:

    Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° = Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ.НомСнклатура.Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ();
    

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

    НовоСНаимСнованиС = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.НаимСнованиС, """", "'");

    Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.НаимСнованиС = НовоСНаимСнованиС;

    Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ();

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

    3.2. РСгулярныС выраТСния (для слоТных Π·Π°ΠΌΠ΅Π½)

    Если Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΏΠΎ слоТному ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… подстрок), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ РСгулярноСВыраТСниС:

    Π Π΅Π³Π’Ρ‹Ρ€ = Новый РСгулярноСВыраТСниС("""([^""]*)""");
    

    Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Π Π΅Π³Π’Ρ‹Ρ€.Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°, "'$1'");

    Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ всС Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π½Π° ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅, сохранив содСрТимоС ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. ПолСзно для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ JSON-строк.

    3.3. Π—Π°ΠΌΠ΅Π½Π° Π² запросах SQL

    ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с внСшними Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· ADODB ΠΈΠ»ΠΈ HTTPБСрвис ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ экранированиС ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ для SQL-запросов:

    ЗапросВСкст = "SELECT * FROM Π’Π°Π±Π»ΠΈΡ†Π° WHERE ПолС = '" + Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠŸΠΎΠ»Ρ, "'", "''") + "'";
    πŸ’‘

    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок ΠΏΡ€ΠΈ экранировании, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ запросы вмСсто ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ строк. НапримСр, Π² Запрос.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€() ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ автоматичСски.

    ΠœΠ΅Ρ‚ΠΎΠ΄ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ
    Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ() Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, """", "'") ΠŸΡ€ΠΎΡΡ‚Π°Ρ Π·Π°ΠΌΠ΅Π½Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ
    РСгулярноСВыраТСниС Π Π΅Π³Π’Ρ‹Ρ€.Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, """", "'") Π‘Π»ΠΎΠΆΠ½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π·Π°ΠΌΠ΅Π½Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ контСкста)
    ΠšΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡ строк "ВСкст " + ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠ° + " ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅" ДинамичСскоС Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ строк с ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ
    Π€ΠΎΡ€ΠΌΠ°Ρ‚() Π€ΠΎΡ€ΠΌΠ°Ρ‚(Число, "Π§Π”Π¦=2 Π§Π Π”=""Ρ€.""") Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ чисСл с ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ Π² ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ…

    4. Массовая Π·Π°ΠΌΠ΅Π½Π° ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π² Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘

    Если ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²ΠΎ всСх записях справочника, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈΠ»ΠΈ рСгистра, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для справочника ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Ρ‹:

    Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° = Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ.ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Ρ‹.Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ();
    

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

    ВСкущССНаимСнованиС = Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.НаимСнованиС;

    НовоСНаимСнованиС = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкущССНаимСнованиС, """", "Β«");

    НовоСНаимСнованиС = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(НовоСНаимСнованиС, "'", "Β»");

    Если НовоСНаимСнованиС <> ВСкущССНаимСнованиС Π’ΠΎΠ³Π΄Π°

    Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.НаимСнованиС = НовоСНаимСнованиС;

    Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ();

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

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

    Для ускорСния ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π±Π°Π·:

    • πŸ”Ή Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠžΡ‚Π±ΠΎΡ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΡƒΠΆΠ½Ρ‹Π΅ записи:
    • Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° = Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ.ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Ρ‹.Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ();
      

      Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.ΠžΡ‚Π±ΠΎΡ€.НаимСнованиС.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅("%""%", ВипБравнСния.ΠšΠ°ΠΊΠ‘Ρ‚Ρ€ΠΎΠΊΠ°);

    • πŸ”Ή Π Π°Π·Π±ΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΏΠΎ 100–200 записСй, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ:
    • Если Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ() % 100 = 0 Π’ΠΎΠ³Π΄Π°
      

      Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ " + Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ() + " записСй");

      ΠŸΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ(1); // ΠŸΠ°ΡƒΠ·Π° для Ρ€Π°Π·Π³Ρ€ΡƒΠ·ΠΊΠΈ сСрвСра

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

    Как ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ ΠΌΠ°ΡΡΠΎΠ²ΡƒΡŽ Π·Π°ΠΌΠ΅Π½Ρƒ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π±Π°Π·Π°Ρ…?

    Для Π±Π°Π· с ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ записСй Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ»ΠΈ прямыС SQL-запросы (Ссли Π‘Π£Π‘Π” это позволяСт). НапримСр, Π² PostgreSQL ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:

    UPDATE справочник_ΠΊΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Ρ‹ SET Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ = REPLACE(Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅, '"', 'Β«') WHERE Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ LIKE '%"%';
    Но Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΡ€Π°Π² доступа ΠΊ Π‘Π£Π‘Π” ΠΈ остороТности β€” всСгда Π΄Π΅Π»Π°ΠΉΡ‚Π΅ бэкап ΠΏΠ΅Ρ€Π΅Π΄ прямыми измСнСниями!

    ⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Массовая Π·Π°ΠΌΠ΅Π½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Ρ‚ΡŒ систСмныС поля (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠŸΠΎΠΌΠ΅Ρ‚ΠΊΠ°Π£Π΄Π°Π»Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π­Ρ‚ΠΎΠ“Ρ€ΡƒΠΏΠΏΠ°), Ссли Π² ΠΈΡ… значСниях случайно ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. ВсСгда провСряйтС, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ поля Π²Ρ‹ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚Π΅, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π’ΠΎΠ»ΡŒΠΊΠΎΠ”Π»ΡΠ§Ρ‚Π΅Π½ΠΈΡ для Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ².

    5. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ…

    Π’ зависимости ΠΎΡ‚ Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Π·Π°ΠΌΠ΅Π½Π΅ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ отличаСтся:

    5.1. JSON

    Π’ JSON всС строки Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…, Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΡΠΊΡ€Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌ слСшСм:

    ВСкстJSON = "{"""Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅""" : """" + Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(НаимСнованиС, """", "\""") + """"}";

    Для упрощСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π§Ρ‚Π΅Π½ΠΈΠ΅JSON/Π—Π°ΠΏΠΈΡΡŒJSON:

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

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

    Π—Π°ΠΏΠΈΡΡŒJSON.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠΠ°Ρ‡Π°Π»ΠΎΠžΠ±ΡŠΠ΅ΠΊΡ‚Π°();

    Π—Π°ΠΏΠΈΡΡŒJSON.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅("Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅", НаимСнованиС); // АвтоматичСскоС экранированиС

    Π—Π°ΠΏΠΈΡΡŒJSON.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠšΠΎΠ½Π΅Ρ†ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π°();

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

    5.2. XML

    Π’ XML ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°Ρ… Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ":

    ВСкстXML = "<Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Атрибут="" + Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, """", """) + """/>";

    5.3. CSV

    Π’ CSV поля с ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ:

    ВСкстCSV = """" + Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ПолС, """", """""") + """,";
    Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ экранирования ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° 1Π‘
    JSON Π”Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΡΠΊΡ€Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ \" Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, """", "\""")
    XML Π”Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π° " Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, """", """)
    CSV Π”Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, """", """""")
    SQL ΠžΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, "'", "''")
    πŸ’‘

    Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с JSON ΠΈ XML Π² 1Π‘ 8.3.14+ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС классы Π§Ρ‚Π΅Π½ΠΈΠ΅JSON/Π—Π°ΠΏΠΈΡΡŒJSON ΠΈ Π§Ρ‚Π΅Π½ΠΈΠ΅XML/Π—Π°ΠΏΠΈΡΡŒXML β€” ΠΎΠ½ΠΈ автоматичСски ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ экранированиС ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½ΡŽΠ°Π½ΡΡ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ².

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

    ΠŸΡ€ΠΈ Π·Π°ΠΌΠ΅Π½Π΅ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π² 1Π‘ Ρ‡Π°Ρ‰Π΅ всСго Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ошибки:

    • 🚫 Π—Π°Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΎ экранированиС:

      Если Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² строковом Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π΅ Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° экранирования, ΠΊΠΎΠ΄ пСрСстанСт ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ. НапримСр:

      // Ошибка: послС Π·Π°ΠΌΠ΅Π½Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ синтаксичСская ошибка
      

      ВСкст = "Ошибка ""здСсь"""; // β†’ ВСкст = 'Ошибка ''здСсь''';

      βœ… РСшСниС: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠ° для явного указания символа:

      ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠ° = Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠ°; // ""
      

      НоваяБтрока = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°, ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠ°, "'");

    • 🚫 НС ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ:

      ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈΠ»ΠΈ внСшними систСмами ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Ò€œ ΠΈΠ»ΠΈ Γ―ΒΏΒ½ ΠΈΠ·-Π·Π° Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, UTF-8 vs Windows-1251).

      βœ… РСшСниС: Π―Π²Π½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ/записи:

      ВСкст = Новый ЧтСниСВСкста(ИмяЀайла, ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Π’Π΅ΠΊΡΡ‚Π°.UTF8).ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ();
    • 🚫 Π—Π°ΠΌΠ΅Π½ΡΡŽΡ‚ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² слуТСбных полях:

      Массовая Π·Π°ΠΌΠ΅Π½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π΄Π΅Ρ‚ΡŒ систСмныС Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Бсылка.Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€()), Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ошибкам.

      βœ… РСшСниС: ВсСгда провСряйтС, ΠΊΠ°ΠΊΠΈΠ΅ поля ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚Π΅, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π’ΠΎΠ»ΡŒΠΊΠΎΠ”Π»ΡΠ§Ρ‚Π΅Π½ΠΈΡ для Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

    ⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ конфигурациях с управляСмыми Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ Π·Π°ΠΌΠ΅Π½Π° ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π² клиСнтском ΠΊΠΎΠ΄Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ ΠŸΡ€ΠΈΠ˜Π·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ) ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ рСкурсивныС ошибки, Ссли Π½Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ событиС Π½Π° врСмя измСнСния:

    ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠŸΡ€ΠΈΠ˜Π·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚)
    

    Если НЕ ЗначСниСЗаполняСтся(НаимСнованиС) Π’ΠΎΠ³Π΄Π°

    НаимСнованиСВСкст = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(НаимСнованиС, """", "'");

    Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°("НаимСнованиС", НаимСнованиСВСкст);

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

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

    7. Автоматизация Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ: ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ

    Для рСгулярной Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ внСшнюю ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ с Π³ΠΈΠ±ΠΊΠΈΠΌΠΈ настройками:

    Π¨Π°Π³ 1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ с Ρ„ΠΎΡ€ΠΌΠΎΠΉ:

    • πŸ“Œ ПолС Π²Π²ΠΎΠ΄Π° Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉΠ’Π΅ΠΊΡΡ‚ (Ρ‚ΠΈΠΏ Π‘Ρ‚Ρ€ΠΎΠΊΠ°).
    • πŸ“Œ ПолС Π²Π²ΠΎΠ΄Π° ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠ°Π”Π»ΡΠ—Π°ΠΌΠ΅Π½Ρ‹ (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ").
    • πŸ“Œ ПолС Π²Π²ΠΎΠ΄Π° ΠΠΎΠ²Π°ΡΠšΠ°Π²Ρ‹Ρ‡ΠΊΠ° (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ').
    • πŸ“Œ Кнопка Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ:
    ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Команда)
    

    Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉΠ’Π΅ΠΊΡΡ‚, ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠ°Π”Π»ΡΠ—Π°ΠΌΠ΅Π½Ρ‹, ΠΠΎΠ²Π°ΡΠšΠ°Π²Ρ‹Ρ‡ΠΊΠ°);

    Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚);

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

    Π¨Π°Π³ 2. Для массовой ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π° справочника ΠΈ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°:

    ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒΠ’Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠ΅(Команда)
    

    Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° = Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ[Π’Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉΠ‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ].Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ();

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

    Π’Π΅ΠΊΡƒΡ‰Π΅Π΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°[Π’Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉΠ Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚];

    НовоСЗначСниС = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π’Π΅ΠΊΡƒΡ‰Π΅Π΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠ°Π”Π»ΡΠ—Π°ΠΌΠ΅Π½Ρ‹, ΠΠΎΠ²Π°ΡΠšΠ°Π²Ρ‹Ρ‡ΠΊΠ°);

    Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°[Π’Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉΠ Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚] = НовоСЗначСниС;

    Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ();

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

    Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π—Π°ΠΌΠ΅Π½Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°!");

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

    Π¨Π°Π³ 3. Для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с ΠΎΠ±ΠΌΠ΅Π½Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ создайтС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ-ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΡƒ:

    Ѐункция ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒΠ”Π»ΡJSON(Π‘Ρ‚Ρ€ΠΎΠΊΠ°)
    

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, """", "\""");

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

    Ѐункция ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒΠ”Π»ΡXML(Π‘Ρ‚Ρ€ΠΎΠΊΠ°)

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, """", """);

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

    ⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ создании Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ для Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 1Π‘:БухгалтСрия 3.0) ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ систСмных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π›ΡƒΡ‡ΡˆΠ΅ добавляйтС Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² подсистСму БСрвис ΠΈΠ»ΠΈ АдминистрированиС.

    8. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹: ΠΊΠΎΠ³Π΄Π° стандартныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚

    Π’ Ρ€Π΅Π΄ΠΊΠΈΡ… случаях стандартныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ 1Π‘ Π½Π΅ ΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ с Π·Π°ΠΌΠ΅Π½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ. НапримСр:

    • πŸ”Ή НСпСчатаСмыС символы: Π’ тСкстовых полях ΠΌΠΎΠ³ΡƒΡ‚ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒΡΡ Β«Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹Π΅Β» ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, U+201C ΠΈΠ»ΠΈ U+201D), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ().
    • πŸ”Ή Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅: Если ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ хранятся Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π₯ранилищСЗначСния), ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ сначала Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.
    • πŸ”Ή ΠœΠ½ΠΎΠ³ΠΎΡΠ·Ρ‹Ρ‡Π½Ρ‹Π΅ Π±Π°Π·Ρ‹: Π’ Ρ€Π°Π·Π½Ρ‹Ρ… языковых вСрсиях 1Π‘ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π·Π½Ρ‹Π΅ символы ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «» Π² русской Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ vs β€žβ€œ Π² Π½Π΅ΠΌΠ΅Ρ†ΠΊΠΎΠΉ).

    Для Ρ‚Π°ΠΊΠΈΡ… случаСв ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅:

    8.1. Π Π°Π±ΠΎΡ‚Π° с Unicode-символами

    Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ «нСстандартныС» ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡ… Unicode-ΠΊΠΎΠ΄Ρ‹:

    // Π—Π°ΠΌΠ΅Π½Π° "Ρ‘Π»ΠΎΡ‡Π΅ΠΊ" («») Π½Π° Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ
    

    ВСкст = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, Π‘ΠΈΠΌΠ²ΠΎΠ»(8220), """");

    ВСкст = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, Π‘ΠΈΠΌΠ²ΠΎΠ»(8221), """");

    // Π—Π°ΠΌΠ΅Π½Π° "Π½Π΅ΠΌΠ΅Ρ†ΠΊΠΈΡ…" ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ (β€žβ€œ) Π½Π° ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅

    ВСкст = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, Π‘ΠΈΠΌΠ²ΠΎΠ»(8222), "'");

    ВСкст = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, Π‘ΠΈΠΌΠ²ΠΎΠ»(8223), "'");

    8.2. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…

    Если ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ хранятся Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π₯ранилищСЗначСния), сначала ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠΉΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² строку:

    Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅ = ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅Π˜Π·Π‘Π°Π·Ρ‹();
    

    ВСкст = Новый Π§Ρ‚Π΅Π½ΠΈΠ΅Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ…Π”Π°Π½Π½Ρ‹Ρ…(Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅).ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ(ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Π’Π΅ΠΊΡΡ‚Π°.UTF8);

    ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉΠ’Π΅ΠΊΡΡ‚ = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, """", "'");

    НовыСДвоичныСДанныС = Новый Π—Π°ΠΏΠΈΡΡŒΠ”Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ…Π”Π°Π½Π½Ρ‹Ρ…();

    НовыСДвоичныСДанныС.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ(ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉΠ’Π΅ΠΊΡΡ‚, ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Π’Π΅ΠΊΡΡ‚Π°.UTF8);

    8.3. ИспользованиС Π²Π½Π΅ΡˆΠ½ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ

    Для слоТных Π·Π°ΠΌΠ΅Π½ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ контСкста) ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ внСшниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹:

    • πŸ“– Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° StringUtils ΠΈΠ· 1Script (для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками).
    • πŸ“– COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ VBScript.RegExp (для рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Unicode).
    // ΠŸΡ€ΠΈΠΌΠ΅Ρ€ с VBScript.RegExp
    

    Π Π΅Π³Π’Ρ‹Ρ€ = Новый COMΠžΠ±ΡŠΠ΅ΠΊΡ‚("VBScript.RegExp");

    Π Π΅Π³Π’Ρ‹Ρ€.Pattern = "[\""]"; // Π¨Π°Π±Π»ΠΎΠ½ для всСх Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ

    Π Π΅Π³Π’Ρ‹Ρ€.Global = Π˜ΡΡ‚ΠΈΠ½Π°;

    Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Π Π΅Π³Π’Ρ‹Ρ€.Replace(Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°, "'");

    Как Π½Π°ΠΉΡ‚ΠΈ всС нСстандартныС ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² Π±Π°Π·Π΅?

    Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ запрос с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ КодБимвола(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ всС символы ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π² Π΄Π°Π½Π½Ρ‹Ρ…:

    ВЫБРАВЬ
    

    Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ КодБимвола(Π‘ΠΈΠΌΠ²ΠΎΠ») КАК Код,

    Π‘ΠΈΠΌΠ²ΠΎΠ» КАК Π‘ΠΈΠΌΠ²ΠΎΠ»ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠΈ

    Π˜Π—

    (ВЫБРАВЬ """" КАК Π‘ΠΈΠΌΠ²ΠΎΠ»

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

    ВЫБРАВЬ "'" КАК Π‘ΠΈΠΌΠ²ΠΎΠ»

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

    ВЫБРАВЬ "Β«" КАК Π‘ΠΈΠΌΠ²ΠΎΠ»

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

    ВЫБРАВЬ Π‘ΠΈΠΌΠ²ΠΎΠ»(8220) КАК Π‘ΠΈΠΌΠ²ΠΎΠ»)

    Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ список символов для Π·Π°ΠΌΠ΅Π½Ρ‹.

    FAQ: ЧастыС вопросы ΠΏΠΎ Π·Π°ΠΌΠ΅Π½Π΅ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π² 1Π‘

    Как Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² запросС 1Π‘, Ссли ΠΎΠ½ΠΈ ΠΌΠ΅ΡˆΠ°ΡŽΡ‚ синтаксису?

    Π’ тСкстС запроса ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΡΠΊΡ€Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΡƒΠ΄Π²ΠΎΠ΅Π½ΠΈΠ΅ΠΌ. НапримСр:

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

    "ВЫБРАВЬ

    | НаимСнованиС КАК ПолС

    |Π˜Π—

    | Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура

    |Π“Π”Π•

    | НаимСнованиС ΠŸΠžΠ”ΠžΠ‘ΠΠž '%""%''%''%""%'"; // Π­ΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для поиска ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π² Π΄Π°Π½Π½Ρ‹Ρ…

    Для динамичСского формирования запросов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

    Запрос.ВСкст = "ВЫБРАВЬ НаимСнованиС Π˜Π— Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура Π“Π”Π• НаимСнованиС = &ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€";
    

    Запрос.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€("ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€", Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ΠŸΠΎΠΈΡΠΊΠΎΠ²Ρ‹ΠΉΠ’Π΅ΠΊΡΡ‚, "'", "''"));

    ΠŸΠΎΡ‡Π΅ΠΌΡƒ послС Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π² ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ ΠΎΠ½ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Ð ΠΈΠ»ΠΈ Ò€œ?

    Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ:

    • πŸ”Ή ΠŸΠ΅Ρ‡Π°Ρ‚Π½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° сохранСна Π² UTF-8 (Π±Π΅Π· BOM).
    • πŸ”Ή ΠŸΡ€ΠΈ записи Π² Ρ„Π°ΠΉΠ» явно ΡƒΠΊΠ°Π·Π°Π½Π° ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°:
    • Π—Π°ΠΏΠΈΡΡŒΠ’Π΅ΠΊΡΡ‚Π° = Новый Π—Π°ΠΏΠΈΡΡŒΠ’Π΅ΠΊΡΡ‚Π°(ИмяЀайла, ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Π’Π΅ΠΊΡΡ‚Π°.UTF8);
    • πŸ”Ή Π’ шаблонС Π‘ΠšΠ” ΠΈΠ»ΠΈ ВСкстовыйДокумСнт Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ forced ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° Windows-1251.
    Как Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² большом Ρ„Π°ΠΉΠ»Π΅ (10+ Π“Π‘) Π±Π΅Π· зависания 1Π‘?

    Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²:

    1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΡΡ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ:
    2. Π§Ρ‚Π΅Π½ΠΈΠ΅ = Новый ЧтСниСВСкста(ИмяЀайла, ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Π’Π΅ΠΊΡΡ‚Π°.UTF8);
      

      Π—Π°ΠΏΠΈΡΡŒ = Новый Π—Π°ΠΏΠΈΡΡŒΠ’Π΅ΠΊΡΡ‚Π°(НовоСИмяЀайла, ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Π’Π΅ΠΊΡΡ‚Π°.UTF8);

      Пока НЕ Π§Ρ‚Π΅Π½ΠΈΠ΅.ΠšΠΎΠ½Π΅Ρ†Π€Π°ΠΉΠ»Π°() Π¦ΠΈΠΊΠ»

      Π‘Ρ‚Ρ€ΠΎΠΊΠ° = Π§Ρ‚Π΅Π½ΠΈΠ΅.ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ();

      НоваяБтрока = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, """", "'");

      Π—Π°ΠΏΠΈΡΡŒ.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ(НоваяБтрока);

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

    3. Для ускорСния Ρ€Π°Π·Π±ΠΈΠ²Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» Π½Π° части (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ 100 ΠœΠ‘) ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΈΡ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Π² Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… заданиях.
    4. Если Ρ„Π°ΠΉΠ» CSV/XML, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ спСциализированныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ADODB.Stream для Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ).
    МоТно Π»ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² ΠΌΠ΅Ρ‚ΠΊΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅?

    НСт! ΠœΠ΅Ρ‚ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€()) ΠΈ систСмныС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Бсылка.Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€()) содСрТат Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ. Π—Π°ΠΌΠ΅Π½Π° ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π² Π½ΠΈΡ… ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ:

    • 🚨 ΠŸΠΎΡ‚Π΅Ρ€Π΅ ссылочной цСлостности.
    • 🚨 Ошибкам ΠΏΡ€ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.
    • 🚨 НСвозмоТности восстановлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

    Если Π²Π°ΠΌ каТСтся, Ρ‡Ρ‚ΠΎ Π² ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅ Π΅ΡΡ‚ΡŒ «лишниС» ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, скорСС всСго, это Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ отобраТСния. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Бсылка.Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€().ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅Π’Π‘Ρ‚Ρ€ΠΎΠΊΠ΅Π’Π½ΡƒΡ‚Ρ€() для ΠΊΠΎΡ€