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

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ 5 ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈΠ· строк Π² 1Π‘ 8.3, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, криптографичСскиС Ρ…ΡΡˆΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹. ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»ΠΈΠΌ нюансам Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π΅ΠΉ, рСгистром символов ΠΈ ограничСниям Π΄Π»ΠΈΠ½Ρ‹. ВсС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… вСрсий ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… сцСнариСв использования Π² конфигурациях Π£Π’ 11, Π‘ΠŸ 3.0 ΠΈ Π—Π£ΠŸ 3.1.

1. ВстроСнная функция Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€()

Π‘Π°ΠΌΡ‹ΠΉ простой способ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€(). Она ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ строку Π² GUID (Globally Unique Identifier) Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° UUID, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»Π΅Π½ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… систСмы ΠΈ совмСстим с Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ Π²Π½Π΅ΡˆΠ½ΠΈΡ… API.

Ѐункция Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ MD5, Π½ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ UUID (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 6ba7b810-9dad-11d1-80b4-00c04fd430c8). Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с REST-сСрвисами, SQL-Π±Π°Π·Π°ΠΌΠΈ ΠΈΠ»ΠΈ систСмами Ρ‚ΠΈΠΏΠ° Bitrix24, Π³Π΄Π΅ трСбуСтся ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ.

  • βœ… ΠŸΠ»ΡŽΡΡ‹: встроСнная функция, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, высокая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния.
  • ⚠️ ΠœΠΈΠ½ΡƒΡΡ‹: ограничСнная Π΄Π»ΠΈΠ½Π° Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ строки (Π΄ΠΎ 255 символов), Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊ рСгистру.
  • πŸ”„ ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ: ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ строки всСгда Π΄Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ GUID (Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚).
// ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования

Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π”Π»ΡΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡ = "Π’ΠΎΠ²Π°Ρ€_А001_ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ";

Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉID = Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€(Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π”Π»ΡΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡ);

// Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: {6ba7b810-9dad-11d1-80b4-00c04fd430c8} (ΠΏΡ€ΠΈΠΌΠ΅Ρ€)

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если строка содСрТит кирилличСскиС символы, функция автоматичСски ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΈΡ… Π² UTF-8 ΠΏΠ΅Ρ€Π΅Π΄ Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. Однако Π² старых вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (Π΄ΠΎ 8.3.10) Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Ρ‹ с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ Windows-1251.
πŸ“Š Какой Ρ‚ΠΈΠΏ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π² 1Π‘?
GUID
ЧисловыС ΠΊΠΎΠ΄Ρ‹
Π₯эш-суммы (MD5/SHA)
Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Π΅ прСфиксы
Π”Ρ€ΡƒΠ³ΠΎΠΉ

2. ГСнСрация Ρ…ΡΡˆ-сумм (MD5, SHA1, SHA256)

Для Π·Π°Π΄Π°Ρ‡, Π³Π΄Π΅ трСбуСтся Π½Π΅ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ строки (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ цСлостности Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ создания ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… сумм), подходят криптографичСскиС Ρ…ΡΡˆ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ 1Π‘ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π·:

  • πŸ”Ή ВстроСнный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π₯ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅Π”Π°Π½Π½Ρ‹Ρ… (доступСн с вСрсии 8.3.14).
  • πŸ”Ή Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, CryptoPro ΠΈΠ»ΠΈ 1C:Enterprise Development Tools).
  • πŸ”Ή COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (CAPICOM для Windows).

Π₯эш-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ строку фиксированной Π΄Π»ΠΈΠ½Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, MD5 β€” 32 символа, SHA256 β€” 64 символа), Ρ‡Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для сравнСния Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… строк. Однако ΠΎΠ½ΠΈ Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ (тСорСтичСски Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ), поэтому Π½Π΅ подходят для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ.

// ΠŸΡ€ΠΈΠΌΠ΅Ρ€ с использованиСм Π₯ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅Π”Π°Π½Π½Ρ‹Ρ… (1Π‘ 8.3.14+)

Π₯ΡΡˆΠ΅Ρ€ = Новый Π₯ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅Π”Π°Π½Π½Ρ‹Ρ…;

Π₯ΡΡˆΠ΅Ρ€.Алгоритм = АлгоритмΠ₯ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ.SHA256;

Π₯ΡΡˆΠ΅Ρ€.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ("ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚_ООО_Ромашка");

Π₯эш = Π₯ΡΡˆΠ΅Ρ€.ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ₯ΡΡˆΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ();

// Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: "a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e"

Алгоритм Π”Π»ΠΈΠ½Π° Ρ…ΡΡˆΠ° (символов) ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π² 1Π‘ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования
MD5 32 Π§Π΅Ρ€Π΅Π· COM ΠΈΠ»ΠΈ внСшниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° цСлостности Ρ„Π°ΠΉΠ»ΠΎΠ²
SHA1 40 ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π₯ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅Π”Π°Π½Π½Ρ‹Ρ… ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ суммы для Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²
SHA256 64 ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π₯ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅Π”Π°Π½Π½Ρ‹Ρ… (8.3.14+) БСзопасноС Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π₯эш-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ рСгистру ΠΈ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌ/ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌ. НапримСр, строки "Иванов" ΠΈ " ΠΈΠ²Π°Π½ΠΎΠ² " Π΄Π°Π΄ΡƒΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ…ΡΡˆΠΈ.

3. ЧисловыС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π½Π° основС строк

Если трСбуСтся ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ строку Π² числовой ΠΊΠΎΠ΄ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для использования Π² качСствС Кода справочника ΠΈΠ»ΠΈ НомСра Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°), ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

  • πŸ“Œ Π€ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π¦ΠΈΠΊΠ»ΠΈΡ‡Π΅ΡΠΊΠΈΠΉΠšΠΎΠ΄() β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 32-Π±ΠΈΡ‚Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число.
  • πŸ“Œ ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… чисСл ΠΈΠ· символов.
  • πŸ“Œ ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Base64 с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠΌ Π² число.

ЧисловыС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ для индСксирования, Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. НапримСр, Π¦ΠΈΠΊΠ»ΠΈΡ‡Π΅ΡΠΊΠΈΠΉΠšΠΎΠ΄() ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ для Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… строк ΠΈΠ»ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "Π’ΠΎΠ²Π°Ρ€1" ΠΈ "Π’ΠΎΠ²Π°Ρ€1 ").

// ΠŸΡ€ΠΈΠΌΠ΅Ρ€ с Π¦ΠΈΠΊΠ»ΠΈΡ‡Π΅ΡΠΊΠΈΠΉΠšΠΎΠ΄()

Π‘Ρ‚Ρ€ΠΎΠΊΠ° = "Π”ΠΎΠ³ΠΎΠ²ΠΎΡ€_2026_001";

ЧисловойID = Π¦ΠΈΠΊΠ»ΠΈΡ‡Π΅ΡΠΊΠΈΠΉΠšΠΎΠ΄(Π‘Ρ‚Ρ€ΠΎΠΊΠ°);

// Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: 123456789 (ΠΏΡ€ΠΈΠΌΠ΅Ρ€)

// ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°: ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

ЧисловойID = 0;

Для ИндСкс = 1 По Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π‘Ρ‚Ρ€ΠΎΠΊΠ°) Π¦ΠΈΠΊΠ»

Π‘ΠΈΠΌΠ²ΠΎΠ» = Π‘Ρ€Π΅Π΄(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, ИндСкс, 1);

ЧисловойID = ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅Π˜Π»ΠΈ(ЧисловойID, ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉΠ‘Π΄Π²ΠΈΠ³Π’Π»Π΅Π²ΠΎ(КодБимвола(Π‘ΠΈΠΌΠ²ΠΎΠ»), (ИндСкс-1)*8));

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

Π£Π±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ чисСл Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Π»ΠΈΠΌΠΈΡ‚ Ρ‚ΠΈΠΏΠ° (Int32/Int64)

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ отсутствиС ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ для ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… строк

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ для пустых строк ΠΈΠ»ΠΈ NULL

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ-->

4. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ID

Когда стандартныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π΅ подходят (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, трСбуСтся Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠ»ΠΈ сохранСниС части ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ строки), ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ собствСнный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ. ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹:

  • πŸ”  ΠŸΡ€Π΅Ρ„ΠΈΠΊΡΡ‹ + Ρ…ΡΡˆ: сочСтаниС сокращённого наимСнования ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ суммы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "TOV_A001_5f4d").
  • πŸ”’ ЧисловыС ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ: ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ послСднСй Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ части строки (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "Π”ΠΎΠ³ΠΎΠ²ΠΎΡ€-001" β†’ "Π”ΠΎΠ³ΠΎΠ²ΠΎΡ€-002").
  • πŸ€„ ВранслитСрация + Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅: Π·Π°ΠΌΠ΅Π½Π° ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹ Π½Π° Π»Π°Ρ‚ΠΈΠ½ΠΈΡ†Ρƒ с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "Π‘Ρ‡Π΅Ρ‚_ООО_Ромашка" β†’ "Schet_OOO_Romashka").

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π³ΠΈΠ±ΠΊΠΈΠ΅, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π΄ΡƒΠ±Π»Π΅ΠΉ. НапримСр, ΠΏΡ€ΠΈ транслитСрации Π²Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ Π·Π°ΠΌΠ΅Π½Ρ‹ символов (Π±ΡƒΠΊΠ²Π° "Ρ‘" ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² "yo" ΠΈΠ»ΠΈ "e").

// ΠŸΡ€ΠΈΠΌΠ΅Ρ€: гСнСрация ID с прСфиксом ΠΈ Ρ…ΡΡˆΠΎΠΌ

Ѐункция Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒID(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ = "")

Π₯ΡΡˆΠ΅Ρ€ = Новый Π₯ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅Π”Π°Π½Π½Ρ‹Ρ…;

Π₯ΡΡˆΠ΅Ρ€.Алгоритм = АлгоритмΠ₯ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ.SHA1;

Π₯ΡΡˆΠ΅Ρ€.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°);

Π₯эш = Π›Π΅Π²(Π₯ΡΡˆΠ΅Ρ€.ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ₯ΡΡˆΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ(), 6); // Π‘Π΅Ρ€Π΅ΠΌ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 6 символов

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ + "_" + Π₯эш;

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

// ИспользованиС:

ID = Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒID("ΠšΠ»ΠΈΠ΅Π½Ρ‚_ΠŸΠ΅Ρ‚Ρ€ΠΎΠ²_Иван", "CLIENT");

// Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: "CLIENT_a1b2c3"

πŸ’‘

Для тСстирования ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ массив ΠΈΠ· 10 000 случайных строк β€” это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ Π½Π° Ρ€Π°Π½Π½Π΅ΠΌ этапС.

5. Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с внСшними систСмами

ΠŸΡ€ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с 1Π‘ ΠΈ внСшними систСмами (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, CRM, ERP, маркСтплСйсами) часто трСбуСтся сопоставлСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡Π°ΠΌ. Π—Π΄Π΅ΡΡŒ Π²Π°ΠΆΠ½ΠΎ:

  • πŸ”— Π‘ΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ связь ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ Бсылка ΠΈ внСшним ID.
  • πŸ”„ ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ (ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΉ ΠΎΠ±ΠΌΠ΅Π½ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹).
  • πŸ›‘ Π£Ρ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ограничСния внСшнСй систСмы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, максимальная Π΄Π»ΠΈΠ½Π° ID Π² Ozon β€” 64 символа).

Для Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ комбинация GUID ΠΈ прСфиксов, Π»ΠΈΠ±ΠΎ Ρ…ΡΡˆ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с постфиксами. НапримСр, для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Wildberries ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ шаблон:

[ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ_Ρ‚ΠΈΠΏΠ°_ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°]_[GUID_ΠΈΠ»ΠΈ_Ρ…ΡΡˆ]_[Код_Π²_1Π‘]

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

"PRODUCT_6ba7b810-9dad-11d1-80b4-00c04fd430c8_А001"

Π’Π½Π΅ΡˆΠ½ΡΡ систСма Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ID ΠŸΡ€ΠΈΠΌΠ΅Ρ€
Wildberries WB_[Π₯эшSHA1]_[Артикул] WB_a1b2c3d4e5_ART001
Ozon OZ_[GUID] OZ_6ba7b810-9dad-11d1-80b4-00c04fd430c8
Bitrix24 BX_[Π’ΠΈΠΏΠžΠ±ΡŠΠ΅ΠΊΡ‚Π°]_[ЧисловойID] BX_DEAL_12345
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с маркСтплСйсами провСряйтС Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ трСбования ΠΊ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ ID Π² ΠΈΡ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ β€” Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π·Π°ΠΏΡ€Π΅Ρ‰Π°ΡŽΡ‚ использованиС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, #, /) ΠΈΠ»ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ Π½Π°Π±ΠΎΡ€ допустимых прСфиксов.

6. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ массовой Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ID

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ для тысяч строк (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ справочника ΠΈΠ»ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…), Π²Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ:

  • ⚑ Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния: Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€() Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС, Ρ‡Π΅ΠΌ SHA256.
  • 🧹 ΠŸΠ°ΠΌΡΡ‚ΡŒ: ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠŸΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Π΅Π—Π°ΠΏΡ€ΠΎΡΡ‹ ΠΈΠ»ΠΈ ЀоновыСЗадания.
  • πŸ”„ ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅: Ссли ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ строки ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ΡΡ, Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π² БоотвСтствии.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° для массовой Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠœΠ°ΡΡΠΎΠ²Π°ΡΠ“Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡID(ΠœΠ°ΡΡΠΈΠ²Π‘Ρ‚Ρ€ΠΎΠΊ)

БоотвСтствиСID = Новый БоотвСтствиС;

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

Если НЕ БоотвСтствиСID.Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ΠšΠ»ΡŽΡ‡(Π‘Ρ‚Ρ€ΠΎΠΊΠ°) Π’ΠΎΠ³Π΄Π°

БоотвСтствиСID.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€(Π‘Ρ‚Ρ€ΠΎΠΊΠ°));

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

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

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ БоотвСтствиСID;

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

πŸ’‘

Для ускорСния массовой Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ 1000 строк Π·Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ) ΠΈ ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ частых ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ диску (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ записи Π² рСгистры свСдСний).

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

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ строк Π² ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ программисты 1Π‘ часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ:

  • πŸ”΄ Коллизии: Ρ€Π°Π·Π½Ρ‹Π΅ строки Π΄Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ ID (особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ для Π¦ΠΈΠΊΠ»ΠΈΡ‡Π΅ΡΠΊΠΈΠΉΠšΠΎΠ΄()).
  • πŸ”΄ ΠŸΠΎΡ‚Π΅Ρ€Ρ Π΄Π°Π½Π½Ρ‹Ρ…: ΠΎΠ±Ρ€Π΅Π·ΠΊΠ° Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… строк ΠΏΠ΅Ρ€Π΅Π΄ Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
  • πŸ”΄ ΠΠ΅ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ: ошибки ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π΅ΠΉ Π² старых вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.
  • πŸ”΄ ΠŸΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ Π»ΠΈΠΌΠΈΡ‚ΠΎΠ²: гСнСрация ID, Π½Π΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π² ΠΏΠΎΠ»Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок:

  1. ВсСгда тСстируйтС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ строки с ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ, спСцсимволами, ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π΅ΠΉ).
  2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒΠ—Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΡΡ‚ΠΈ() для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ пустых строк.
  3. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ID ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π΅Π³ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ.
Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Ссли коллизия ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π°?

Если Π² Π±Π°Π·Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Ρ‹ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ΡΡ ID, ΠΌΠΎΠΆΠ½ΠΎ:

1. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ строкС ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ постфикс (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, порядковый Π½ΠΎΠΌΠ΅Ρ€).

2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ с MD5 Π½Π° SHA256).

3. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΠ΅Ρ€Π΅Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ID с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ Π½Π° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² Π±Π°Π·Π΅.

FAQ: ЧастыС вопросы ΠΏΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Π² 1Π‘

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€() для создания ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Π² справочниках?

ВСхничСски ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π½Π΅ рСкомСндуСтся. GUID Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 36 символов, Ρ‡Ρ‚ΠΎ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ для Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ восприятия. Π›ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ числовыС ΠΊΠΎΠ΄Ρ‹ ΠΈΠ»ΠΈ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ строковыС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»Ρ‹).

Как ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ строку Π² ID, Ссли Π² Π½Π΅ΠΉ Π΅ΡΡ‚ΡŒ Π·Π°ΠΏΡ€Π΅Ρ‰Ρ‘Π½Π½Ρ‹Π΅ символы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, / ΠΈΠ»ΠΈ #)?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ() для очистки строки ΠΏΠ΅Ρ€Π΅Π΄ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ:

ΠžΡ‡ΠΈΡ‰Π΅Π½Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ° = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°, "/", "_");

ΠžΡ‡ΠΈΡ‰Π΅Π½Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ° = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ΠžΡ‡ΠΈΡ‰Π΅Π½Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°, "#", "");

Или ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ рСгулярныС выраТСния Ρ‡Π΅Ρ€Π΅Π· Π‘Ρ‚Ρ€ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ Π΅Π³Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅().

Π§Π΅ΠΌ SHA256 Π»ΡƒΡ‡ΡˆΠ΅ MD5 для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ²?

SHA256 Π΄Π°Ρ‘Ρ‚ Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Ρ…ΡΡˆ (64 символа ΠΏΡ€ΠΎΡ‚ΠΈΠ² 32 Ρƒ MD5), Ρ‡Ρ‚ΠΎ сниТаСт Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ. Однако ΠΎΠ½ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ вычисляСтся ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ большС мСста Π² Π±Π°Π·Π΅. Π’Ρ‹Π±ΠΎΡ€ зависит ΠΎΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ: для ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… сумм ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚ MD5, для криптографичСских Π·Π°Π΄Π°Ρ‡ β€” SHA256.

Как ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ID для Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Ссли Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅Ρ€ Π΅Ρ‰Ρ‘ Π½Π΅ извСстСн?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ ΠΈΠ·:

  • Π’ΠΈΠΏΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "Π—Π°ΠΊΠ°Π·ΠšΠ»ΠΈΠ΅Π½Ρ‚Π°"),
  • Π”Π°Ρ‚Ρ‹ создания (Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π“Π“Π“Π“ΠœΠœΠ”Π”Π§Π§ΠœΠœΠ‘Π‘),
  • Π‘Π»ΡƒΡ‡Π°ΠΉΠ½ΠΎΠ³ΠΎ числа ΠΈΠ»ΠΈ GUID.

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

ID = "Π—Π°ΠΊΠ°Π·ΠšΠ»ΠΈΠ΅Π½Ρ‚Π°_20260515143022_" + Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€(ВСкущаяДата());

МоТно Π»ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Ρ…ΡΡˆ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΡƒΡŽ строку?

НСт, Ρ…ΡΡˆ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Π²Ρ€ΠΎΠ΄Π΅ MD5 ΠΈΠ»ΠΈ SHA1) ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для одностороннСго прСобразования. Если Π½ΡƒΠΆΠ½Π° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΠΎΡΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· CryptoPro) ΠΈΠ»ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΡƒΡŽ строку ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.