ΠžΡ‚Π½ΠΎΡΠ½ΠΎ 1C ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚

Π•Π΄Π½Π° ΠΎΡ‚ Ρ…ΡƒΠ±Π°Π²ΠΈΡ‚Π΅ характСристики Π½Π° тСхнологията 1C:Enterprise Π΅, Ρ‡Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ½ΠΎΡ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° тСхнологията Π·Π° управлявани формуляри, ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС стартирано ΠΊΠ°ΠΊΡ‚ΠΎ Π² Ρ‚ΡŠΠ½ΡŠΠΊ (изпълним) ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π° Windows, Linux, MacOS X, Ρ‚Π°ΠΊΠ° ΠΈ ΠΊΠ°Ρ‚ΠΎ ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π° 5 Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π° - Chrome, Internet Explorer, Firefox, Safari, Edge ΠΈ всичко Ρ‚ΠΎΠ²Π° Π±Π΅Π· промяна Π½Π° изходния ΠΊΠΎΠ΄ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ. ОсвСн Ρ‚ΠΎΠ²Π° външно ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π² Ρ‚ΡŠΠ½ΠΊΠΈΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π° ΠΈ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎ.
НамСрСтС 10 Ρ€Π°Π·Π»ΠΈΠΊΠΈ (2 ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΏΠΎΠ΄ Ρ€Π°Π·Ρ€Π΅Π·Π°):

ΠŸΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ† Π½Π° Ρ‚ΡŠΠ½ΡŠΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π½Π° Linux:

ΠžΡ‚Π½ΠΎΡΠ½ΠΎ 1C ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚

Π‘ΡŠΡ‰ΠΈΡΡ‚ ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ† Π² ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π° Chrome):

ΠžΡ‚Π½ΠΎΡΠ½ΠΎ 1C ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚

Π—Π°Ρ‰ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ…ΠΌΠ΅ ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚? Малко ΠΏΠ°Ρ‚Π΅Ρ‚ΠΈΡ‡Π½ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½ΠΈ постави Ρ‚Π°ΠΊΠ°Π²Π° Π·Π°Π΄Π°Ρ‡Π°. Π Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΏΡ€Π΅Π· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΎΡ‚Π΄Π°Π²Π½Π° Π΅ прСдпоставка Π·Π° бизнСс прилоТСния. ΠŸΡŠΡ€Π²ΠΎ, Π΄ΠΎΠ±Π°Π²ΠΈΡ…ΠΌΠ΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΡ€Π΅Π· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π·Π° нашия Ρ‚ΡŠΠ½ΡŠΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ (някои ΠΎΡ‚ Π½Π°ΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΈ, ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, спряха Π΄ΠΎΡ‚ΡƒΠΊ; Π΄Ρ€ΡƒΠ³ΠΈ, Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², изоставиха Ρ‚ΡŠΠ½ΠΊΠΈΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ сС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ…Π° Π΄ΠΎ внСдряванС Π½Π° ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚). Π Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° Π΄Π°Π΄Π΅ΠΌ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π°Ρ‚ клиСнтската опция, която ΠΈΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠΆΠ΄Π° Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€Π΅.

ΠžΡ‚Π½ΠΎΡΠ½ΠΎ 1C ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚

ДобавянСто Π½Π° ΡƒΠ΅Π± Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ към Ρ‚ΡŠΠ½ΠΊΠΈΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ бСшС голям ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с пълна промяна Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚-ΡΡŠΡ€Π²ΡŠΡ€. Π‘ΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π΅ изцяло Π½ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π²Π° ΠΎΡ‚ Π½ΡƒΠ»Π°Ρ‚Π°.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌ изявлСниС

И Ρ‚Π°ΠΊΠ°, изискванията Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°: ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ трябва Π΄Π° ΠΏΡ€Π°Π²ΠΈ ΡΡŠΡ‰ΠΎΡ‚ΠΎ ΠΊΠ°Ρ‚ΠΎ Ρ‚ΡŠΠ½ΠΊΠΈΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:

  1. ПоказванС Π½Π° потрСбитСлски интСрфСйс
  2. Π˜Π·ΠΏΡŠΠ»Π½Π΅Ρ‚Π΅ клиСнтски ΠΊΠΎΠ΄, написан Π½Π° Π΅Π·ΠΈΠΊΠ° 1C

ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡΠΊΠΈΡΡ‚ интСрфСйс Π² 1C Π΅ описан във Π²ΠΈΠ·ΡƒΠ°Π»Π΅Π½ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, Π½ΠΎ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ, Π±Π΅Π· ΠΏΠΎΠ΄Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ пиксСл ΠΏΠΎ пиксСл; Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ сС ΠΎΠΊΠΎΠ»ΠΎ Ρ‚Ρ€ΠΈ Π΄ΡƒΠ·ΠΈΠ½ΠΈ Π²ΠΈΠ΄Π° интСрфСйсни Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ - Π±ΡƒΡ‚ΠΎΠ½ΠΈ, ΠΏΠΎΠ»Π΅Ρ‚Π° Π·Π° въвСТданС (тСкст, число, Π΄Π°Ρ‚Π°/час), ΡΠΏΠΈΡΡŠΡ†ΠΈ, Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΈ Π΄Ρ€.

ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΡΡ‚ ΠΊΠΎΠ΄ Π½Π° Π΅Π·ΠΈΠΊΠ° 1C ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° извиквания Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°, Ρ€Π°Π±ΠΎΡ‚Π° с Π»ΠΎΠΊΠ°Π»Π½ΠΈ рСсурси (Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Ρ‚.Π½.), ΠΏΠ΅Ρ‡Π°Ρ‚ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ.

ΠšΠ°ΠΊΡ‚ΠΎ Ρ‚ΡŠΠ½ΠΊΠΈΡΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ (ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Ρ‡Ρ€Π΅Π· ΡƒΠ΅Π±), Ρ‚Π°ΠΊΠ° ΠΈ ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΡƒΠ΅Π± услуги Π·Π° комуникация със ΡΡŠΡ€Π²ΡŠΡ€Π° Π½Π° прилоТСния 1C. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΡ‚Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, са Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ - Ρ‚ΡŠΠ½ΠΊΠΈΡΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π΅ написан Π½Π° C++, ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ Π΅ написан Π½Π° JavaScript.

Малко история

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ Π·Π° ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚ стартира ΠΏΡ€Π΅Π· 2006 Π³. с Π΅ΠΊΠΈΠΏ ΠΎΡ‚ (срСдно) 5 Π΄ΡƒΡˆΠΈ. На ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Π΅Ρ‚Π°ΠΏΠΈ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° бяха Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π·Π° внСдряванС Π½Π° спСцифична функционалност (Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ с Π΅Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°, Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΈ ΠΈ Π΄Ρ€.); ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Ρ‚ΠΎΠ²Π° бяха ΡΡŠΡ‰ΠΈΡ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ…Π° Ρ‚Π°Π·ΠΈ функционалност Π² Ρ‚ΡŠΠ½ΠΊΠΈΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚. Π’Π΅Π·ΠΈ. Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ прСнаписаха ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π² JavaScript, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° бяха създали Π² C++.

ΠžΡ‚ самото Π½Π°Ρ‡Π°Π»ΠΎ ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»ΠΈΡ…ΠΌΠ΅ идСята Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ (Π΄ΠΎΡ€ΠΈ частично) ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ Π½Π° C++ Ρ‚ΡŠΠ½ΡŠΠΊ клиСнтски ΠΊΠΎΠ΄ Π² JavaScript ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠΎΡ€Π°Π΄ΠΈ силнитС ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»Π½ΠΈ Ρ€Π°Π·Π»ΠΈΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π²Π°Ρ‚Π° Π΅Π·ΠΈΠΊΠ°; ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ Π΅ написан Π½Π° JavaScript ΠΎΡ‚ Π½ΡƒΠ»Π°Ρ‚Π°.

Π’ ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π° клиСнтския ΠΊΠΎΠ΄ Π½Π° вградСния 1C Π΅Π·ΠΈΠΊ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π² JavaScript. Π’ΡŠΠ½ΠΊΠΈΡΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ дСйства ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ - ΠΊΠΎΠ΄ΡŠΡ‚ Π½Π° вградСния 1C Π΅Π·ΠΈΠΊ сС ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π° Π² Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ ΠΈ слСд Ρ‚ΠΎΠ²Π° Ρ‚ΠΎΠ·ΠΈ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ сС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. ВпослСдствиС ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ Π·Π°ΠΏΠΎΡ‡Π½Π° Π΄Π° ΠΏΡ€Π°Π²ΠΈ ΡΡŠΡ‰ΠΎΡ‚ΠΎ - ΠΏΡŠΡ€Π²ΠΎ, Π΄Π°Π΄Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° производитСлността, ΠΈ Π²Ρ‚ΠΎΡ€ΠΎ, Π½Π°ΠΏΡ€Π°Π²ΠΈ възмоТно ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° Ρ‚ΡŠΠ½ΠΊΠΈΡ ΠΈ ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

ΠŸΡŠΡ€Π²Π°Ρ‚Π° вСрсия Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° 1C:Enterprise с ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚ бСшС пусната ΠΏΡ€Π΅Π· 2009 Π³. Π£Π΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ ΠΏΠΎ Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°ΡˆΠ΅ 2 Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π° - Internet Explorer ΠΈ Firefox. ΠŸΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΈΡ‚Π΅ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ…Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Opera, Π½ΠΎ ΠΏΠΎΡ€Π°Π΄ΠΈ Π½Π΅ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΠΎ Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅ с ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π·Π° затварянС Π½Π° прилоТСния Π² Opera (Π½Π΅ бСшС възмоТно Π΄Π° сС прослСди със 100% сигурност, Ρ‡Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ сС затваря, ΠΈ Π² Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΄Π° сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ‚Π° Π·Π° ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Π½Π΅ Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° ΠΎΡ‚ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π½Π° прилоТСния 1C) ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° бъдС изоставСн.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

ΠžΠ±Ρ‰ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° 1C:Enterprise ΠΈΠΌΠ° 4 ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, написани Π½Π° JavaScript:

  1. WebTools – сподСлСни Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ (Π½ΠΈΠ΅ ΡΡŠΡ‰ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π²Π°ΠΌΠ΅ Google Closure Library).
  2. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Π½ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ FormattedDocument (ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ Π² JavaScript ΠΊΠ°ΠΊΡ‚ΠΎ Π² Ρ‚ΡŠΠ½ΠΊΠΈΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚, Ρ‚Π°ΠΊΠ° ΠΈ Π² ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°)
  3. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Π½ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊ (ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ Π² JavaScript ΠΊΠ°ΠΊΡ‚ΠΎ Π² Ρ‚ΡŠΠ½ΠΊΠΈΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚, Ρ‚Π°ΠΊΠ° ΠΈ Π² ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°)
  4. Π£Π΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° всСки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ наподобява структурата Π½Π° Java ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ (ΠΈΠ»ΠΈ .NET ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ - ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ ΠΏΠΎ-Π±Π»ΠΈΠ·ΠΎ); ИмамС пространства ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π° ΠΈ всяко пространство ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π° Π΅ Π² ΠΎΡ‚Π΄Π΅Π»Π½Π° ΠΏΠ°ΠΏΠΊΠ°. Π’ΡŠΡ‚Ρ€Π΅ Π² ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° ΠΈΠΌΠ° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ класовС Π·Π° пространство ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π°. Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈΠΌΠ° ΠΎΠΊΠΎΠ»ΠΎ 1000 Ρ„Π°ΠΉΠ»Π°.

Π’ структурно ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ сС раздСля основно Π½Π° слСднитС подсистСми:

  • Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Π½Π° управлявано клиСнтско ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
    • ΠžΠ±Ρ‰ интСрфСйс Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ (систСмни ΠΌΠ΅Π½ΡŽΡ‚Π°, ΠΏΠ°Π½Π΅Π»ΠΈ)
    • Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Π½Π° управлявани Ρ„ΠΎΡ€ΠΌΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‰, ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, ΠΎΠΊΠΎΠ»ΠΎ 30 ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈ (Π±ΡƒΡ‚ΠΎΠ½ΠΈ, Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ ΠΏΠΎΠ»Π΅Ρ‚Π° Π·Π° въвСТданС - тСкстови, Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΈ, Π΄Π°Ρ‚Π°/час ΠΈ Π΄Ρ€., Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, ΡΠΏΠΈΡΡŠΡ†ΠΈ, Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΈ Π΄Ρ€.)

  • ΠžΠ±Π΅ΠΊΡ‚Π΅Π½ ΠΌΠΎΠ΄Π΅Π», Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (ΠΎΠ±Ρ‰ΠΎ Π½Π°Π΄ 400 Ρ‚ΠΈΠΏΠ°: ΠΎΠ±Π΅ΠΊΡ‚Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° управляван интСрфСйс, настройки Π·Π° ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ, условСн стил ΠΈ Π΄Ρ€.)
  • Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π½Π° вградСния Π΅Π·ΠΈΠΊ 1C
  • Π Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ Π½Π° Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π° (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° функционалност, която Π½Π΅ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Π² JavaScript)
    • Π Π°Π±ΠΎΡ‚Π° с криптография
    • Π Π°Π±ΠΎΡ‚Π΅Ρ‚Π΅ с Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅
    • ВСхнология Π½Π° външни ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ, позволяваща ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈΠΌ ΠΊΠ°ΠΊΡ‚ΠΎ Π² Ρ‚ΡŠΠ½ΠΊΠΈ, Ρ‚Π°ΠΊΠ° ΠΈ Π² ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ

Π₯арактСристики Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π°

Π˜ΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° всичко ΠΏΠΎ-Π³ΠΎΡ€Π΅ Π² JavaScript Π½Π΅ Π΅ лСсно. МоТС Π±ΠΈ ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ 1C Π΅ Π΅Π΄Π½ΠΎ ΠΎΡ‚ Π½Π°ΠΉ-Π³ΠΎΠ»Π΅ΠΌΠΈΡ‚Π΅ клиСнтски прилоТСния, написани Π½Π° JavaScript - ΠΎΠΊΠΎΠ»ΠΎ 450.000 XNUMX Ρ€Π΅Π΄Π°. НиС Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΎΠ±Π΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π² ΠΊΠΎΠ΄Π° Π½Π° ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ улСснява Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с Ρ‚Π°ΠΊΡŠΠ² голям ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π—Π° Π΄Π° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° клиСнтския ΠΊΠΎΠ΄, ΠΏΡŠΡ€Π²ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ нашия собствСн обфускатор ΠΈ Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΉΠΊΠΈ с ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° вСрсия 8.3.6 (ΠΎΠΊΡ‚ΠΎΠΌΠ²Ρ€ΠΈ 2014 Π³.) Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Google Closure Compiler. Π•Ρ„Π΅ΠΊΡ‚ΡŠΡ‚ ΠΎΡ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π² числа – Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° Ρ€Π°ΠΌΠΊΠ°Ρ‚Π° Π½Π° ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° слСд обфускация:

  • БобствСн обфускатор – 1556 kb
  • Google Closure Compiler – 1073 kb

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Google Closure Compiler Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π° Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈΠΌ производитСлността Π½Π° ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° с 30% Π² сравнСниС с нашия собствСн обфускатор. ОсвСн Ρ‚ΠΎΠ²Π° количСството ΠΏΠ°ΠΌΠ΅Ρ‚, консумирано ΠΎΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Π΅ намаляло с 15-25% (Π² зависимост ΠΎΡ‚ Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°).

Google Closure Compiler Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±Ρ€Π΅ с ΠΎΠ±Π΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ ΠΊΠΎΠ΄, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° СфСктивност Π·Π° ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π΅ възмоТно Π½Π°ΠΉ-висока. Closure Compiler ΠΏΡ€Π°Π²ΠΈ няколко Π΄ΠΎΠ±Ρ€ΠΈ Π½Π΅Ρ‰Π° Π·Π° нас:

  • Π‘Ρ‚Π°Ρ‚ΠΈΡ‡Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠ° Π½Π° Π΅Ρ‚Π°ΠΏΠ° Π½Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ ΠΏΠΎΠΊΡ€ΠΈΠ²Π°ΠΌΠ΅ ΠΊΠΎΠ΄Π° с JSDoc Π°Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ). Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ Π΅ статично писанС, ΠΌΠ½ΠΎΠ³ΠΎ Π±Π»ΠΈΠ·ΠΊΠΎ ΠΏΠΎ Π½ΠΈΠ²ΠΎ Π΄ΠΎ писанСто Π½Π° C++. Π’ΠΎΠ²Π° ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° сС уловят доста голям ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ Π³Ρ€Π΅ΡˆΠΊΠΈ Π½Π° Π΅Ρ‚Π°ΠΏΠ° Π½Π° компилация Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
  • НамаляванС Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° ΠΊΠΎΠ΄Π° Ρ‡Ρ€Π΅Π· обфускация
  • Π Π΅Π΄ΠΈΡ†Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° изпълнСния ΠΊΠΎΠ΄, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°Ρ‚ΠΎ:
    • замСствания Π½Π° Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π˜Π·Π²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° функция Π² JavaScript Π΅ доста скъпа опСрация ΠΈ Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈΡ‚Π΅ замСствания Π½Π° чСсто ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΠΌΠ°Π»ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ускоряват ΠΊΠΎΠ΄Π°.
    • ΠŸΡ€Π΅Π±Ρ€ΠΎΡΠ²Π°Π½Π΅ Π½Π° константи ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅. Ако Π΄Π°Π΄Π΅Π½ ΠΈΠ·Ρ€Π°Π· зависи ΠΎΡ‚ константа, дСйствитСлната стойност Π½Π° константата Ρ‰Π΅ бъдС Π·Π°ΠΌΠ΅Π½Π΅Π½Π° Π² Π½Π΅Π³ΠΎ

НиС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ WebStorm ΠΊΠ°Ρ‚ΠΎ наша срСда Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ.

Π—Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° ΠΊΠΎΠ΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ soundQube, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°ΠΌΠ΅ статични ΠΊΠΎΠ΄ΠΎΠ²ΠΈ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈ. Използвайки Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈ, Π½ΠΈΠ΅ наблюдавамС Π²Π»ΠΎΡˆΠ°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° качСството Π½Π° изходния ΠΊΠΎΠ΄ Π½Π° JavaScript ΠΈ сС ΠΎΠΏΠΈΡ‚Π²Π°ΠΌΠ΅ Π΄Π° Π³ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΠΌ.

ΠžΡ‚Π½ΠΎΡΠ½ΠΎ 1C ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚

Какви ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅/Ρ€Π΅ΡˆΠ°Π²Π°ΠΌΠ΅?

По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° сС Π½Π°Ρ‚ΡŠΠΊΠ½Π°Ρ…ΠΌΠ΅ Π½Π° Ρ€Π΅Π΄ΠΈΡ†Π° интСрСсни ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° Ρ€Π΅ΡˆΠΈΠΌ.

ОбмСн Π½Π° Π΄Π°Π½Π½ΠΈ със ΡΡŠΡ€Π²ΡŠΡ€Π° ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ windows

Има ситуации, ΠΏΡ€ΠΈ ΠΊΠΎΠΈΡ‚ΠΎ обфускацията Π½Π° изходния ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΏΡ€Π΅Ρ‡ΠΈ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° систСмата. ΠšΠΎΠ΄ΡŠΡ‚, външСн Π·Π° изпълнимия ΠΊΠΎΠ΄ Π½Π° ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΏΠΎΡ€Π°Π΄ΠΈ обфускация, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΈΠΌΠ΅Π½Π° Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π°Ρ‚ ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π°ΡˆΠΈΡΡ‚ изпълним ΠΊΠΎΠ΄ ΠΎΡ‡Π°ΠΊΠ²Π°. Π’ΡŠΠ½ΡˆΠ½ΠΈΡΡ‚ ΠΊΠΎΠ΄ Π·Π° нас Π΅:

  • Код, ΠΈΠ΄Π²Π°Ρ‰ ΠΎΡ‚ ΡΡŠΡ€Π²ΡŠΡ€Π° ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° структури ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ
  • Код Π·Π° ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ† Π½Π° Π΄Ρ€ΡƒΠ³ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π—Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΠΌ ΠΎΠ±ΡŠΡ€ΠΊΠ²Π°Π½Π΅ ΠΏΡ€ΠΈ взаимодСйствиС със ΡΡŠΡ€Π²ΡŠΡ€Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚Π° @expose:

/**
 * @constructor
 * @extends {Base.SrvObject}
 */
Srv.Core.GenericException = function ()
{
    /**
     * @type {string}
     * @expose
     */
    this.descr;

    /**
     * @type {Srv.Core.GenericException}
     * @expose
     */
    this.inner;

    /**
     * @type {string}
     * @expose
     */
    this.clsid;

    /**
     * @type {boolean}
     * @expose
     */
    this.encoded;
}

И Π·Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΠΌ обфускация ΠΏΡ€ΠΈ взаимодСйствиС с Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠ·ΠΎΡ€Ρ†ΠΈ, Π½ΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Ρ‚Π°ΠΊΠ° Π½Π°Ρ€Π΅Ρ‡Π΅Π½ΠΈΡ‚Π΅ Скспортирани интСрфСйси (интСрфСйси, Π² ΠΊΠΎΠΈΡ‚ΠΎ сС Скспортират всички ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ).

/**
 * ЭкспортируСмый интСрфСйс ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° DropDownWindow
 *
 * @interface
 * @struct
 */
WebUI.IDropDownWindowExp = function(){}

/**
 * ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° 1 Π²ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠ»ΠΈ Π½Π°Π·Π°Π΄
 *
 * @param {boolean} isForward
 * @param {boolean} checkOnly
 * @return {boolean}
 * @expose
 */
WebUI.IDropDownWindowExp.prototype.moveMarker = function (isForward, checkOnly){}

/**
 * ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π² Π½Π°Ρ‡Π°Π»ΠΎ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π΅Ρ†
 *
 * @param {boolean} isFirst
 * @param {boolean} checkOnly
 * @return {boolean}
 * @expose
 */
WebUI.IDropDownWindowExp.prototype.moveMarkerTo = function (isFirst, checkOnly){}

/**
 * @return {boolean}
 * @expose
 */
WebUI.IDropDownWindowExp.prototype.selectValue = function (){}

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ Virtual DOM, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° станС масов)

ΠšΠ°Ρ‚ΠΎ всички Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ със слоТни ΡƒΠ΅Π± интСрфСйси, Π½ΠΈΠ΅ Π±ΡŠΡ€Π·ΠΎ ΠΎΡΡŠΠ·Π½Π°Ρ…ΠΌΠ΅, Ρ‡Π΅ DOM Π½Π΅ Π΅ подходящ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ потрСбитСлски интСрфСйси. ΠŸΠΎΡ‡Ρ‚ΠΈ Π²Π΅Π΄Π½Π°Π³Π° бСшС Π²Π½Π΅Π΄Ρ€Π΅Π½ Π°Π½Π°Π»ΠΎΠ³ Π½Π° Virtual DOM Π·Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с потрСбитСлския интСрфСйс. По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ всички DOM ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΈ само ΠΊΠΎΠ³Π°Ρ‚ΠΎ всички ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ са Π·Π°Π²ΡŠΡ€ΡˆΠ΅Π½ΠΈ, Π½Π°Ρ‚Ρ€ΡƒΠΏΠ°Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ към DOM Π΄ΡŠΡ€Π²ΠΎΡ‚ΠΎ.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°

Π—Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ нашия ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ, Π½ΠΈΠ΅ сС ΠΎΠΏΠΈΡ‚Π²Π°ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ максимално стандартнитС Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π½Π° Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π° (CSS ΠΈ Π΄Ρ€.). По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ командният ΠΏΠ°Π½Π΅Π» Π½Π° формуляра (Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π² ΠΏΠΎΡ‡Ρ‚ΠΈ всяка Ρ„ΠΎΡ€ΠΌΠ° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ) сС изобразява ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° инструмСнти Π½Π° Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅, Π±Π°Π·ΠΈΡ€Π°Π½ΠΎ Π½Π° CSS.

ΠžΡ‚Π½ΠΎΡΠ½ΠΎ 1C ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚

ВСстванС

Π—Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ тСстванС ΠΈ тСстванС Π½Π° производитСлността Π½ΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΠ°Ρ‚Π΅Π½Ρ‚ΠΎΠ²Π°Π½ инструмСнт (написан Π½Π° Java ΠΈ C++), ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ тСстовС, ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ Π²ΡŠΡ€Ρ…Ρƒ Π‘Π΅Π»Π΅Π½.

ΠΠ°ΡˆΠΈΡΡ‚ инструмСнт Π΅ унивСрсалСн - позволява Π²ΠΈ Π΄Π° тСстватС ΠΏΠΎΡ‡Ρ‚ΠΈ всяка ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ‡Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° ΠΈ слСдоватСлно Π΅ подходящ Π·Π° тСстванС ΠΊΠ°ΠΊΡ‚ΠΎ Π½Π° Ρ‚ΡŠΠ½ΡŠΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚, Ρ‚Π°ΠΊΠ° ΠΈ Π½Π° ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΡŠΡ‚ записва дСйствията Π½Π° потрСбитСля, стартирал ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ½ΠΎΡ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ 1C, Π² скриптов Ρ„Π°ΠΉΠ». Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ сС записват изобраТСния Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½Π°Ρ‚Π° Π·ΠΎΠ½Π° Π½Π° Π΅ΠΊΡ€Π°Π½Π° - стандарти. ΠšΠΎΠ³Π°Ρ‚ΠΎ Π½Π°Π±Π»ΡŽΠ΄Π°Π²Π°Ρ‚Π΅ Π½ΠΎΠ²ΠΈ вСрсии Π½Π° ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, скриптовСтС сС Π²ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Ρ‚ Π±Π΅Π· участиС Π½Π° потрСбитСля. Π’ случаитС, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π΅ΠΊΡ€Π°Π½Π½Π°Ρ‚Π° снимка Π½Π΅ съвпада с Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π½Π°Ρ‚Π° Π½Π° Π½ΠΈΡ‚ΠΎ Π΅Π΄Π½Π° ΡΡ‚ΡŠΠΏΠΊΠ°, Ρ‚Π΅ΡΡ‚ΡŠΡ‚ сС счита Π·Π° Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ΅Π½, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ спСциалист ΠΏΠΎ качСството ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, Π·Π° Π΄Π° установи Π΄Π°Π»ΠΈ Ρ‚ΠΎΠ²Π° Π΅ Π³Ρ€Π΅ΡˆΠΊΠ° ΠΈΠ»ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½Π° промяна Π² ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° систСмата. Π’ случай Π½Π° ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, стандартитС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ сС замСнят с Π½ΠΎΠ²ΠΈ.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΡŠΡ‚ ΡΡŠΡ‰ΠΎ ΠΈΠ·ΠΌΠ΅Ρ€Π²Π° производитСлността Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ с точност Π΄ΠΎ 25 милисСкунди. Π’ някои случаи зациклямС Π½Π° части ΠΎΡ‚ скрипта (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, повтарямС Π²ΡŠΠ²Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΡ€ΡŠΡ‡ΠΊΠ°Ρ‚Π° няколко ΠΏΡŠΡ‚ΠΈ), Π·Π° Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Π²Π»ΠΎΡˆΠ°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° изпълнСниС с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ. Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ всички измСрвания сС записват Π² Π΄Π½Π΅Π²Π½ΠΈΠΊ Π·Π° Π°Π½Π°Π»ΠΈΠ·.

ΠžΡ‚Π½ΠΎΡΠ½ΠΎ 1C ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚
ΠΠ°ΡˆΠΈΡΡ‚ инструмСнт Π·Π° тСстванС ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ сС тСстват

ΠΠ°ΡˆΠΈΡΡ‚ инструмСнт ΠΈ Selenium сС Π΄ΠΎΠΏΡŠΠ»Π²Π°Ρ‚ Π²Π·Π°ΠΈΠΌΠ½ΠΎ; Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°ΠΊΠΎ някой Π±ΡƒΡ‚ΠΎΠ½ Π½Π° Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π΅ΠΊΡ€Π°Π½ΠΈΡ‚Π΅ Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠ» мСстополоТСниСто си, Selenium ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ прослСди Ρ‚ΠΎΠ²Π°, Π½ΠΎ Π½Π°ΡˆΠΈΡΡ‚ инструмСнт Ρ‰Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ сравнСниС пиксСл ΠΏΠΎ пиксСл Π½Π° Π΅ΠΊΡ€Π°Π½Π½Π°Ρ‚Π° снимка със стандарта. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΡŠΡ‚ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° прослСдява ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° въвСТданС ΠΎΡ‚ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°Ρ‚Π° ΠΈΠ»ΠΈ ΠΌΠΈΡˆΠΊΠ°Ρ‚Π°, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π²ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π° Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚ΠΎΠ²Π°.

ВСстовСтС Π½Π° Π΄Π²Π°Ρ‚Π° инструмСнта (нашия ΠΈ Selenium) ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ сцСнарии ΠΎΡ‚ Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. ВСстовСтС сС стартират Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ слСд Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎΡ‚ΠΎ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° 1C:Enterprise. Ако скриптовСтС са ΠΏΠΎ-Π±Π°Π²Π½ΠΈ (Π² сравнСниС с ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° компилация), Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡƒΡ‡Π²Π°ΠΌΠ΅ ΠΈ отстранявамС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π° Π·Π° забавянСто. ΠΠ°ΡˆΠΈΡΡ‚ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ Π΅ прост - Π½ΠΎΠ²Π°Ρ‚Π° вСрсия трябва Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π΅ ΠΏΠΎ-Π±Π°Π²Π½ΠΎ ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π°.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ инструмСнти Π·Π° разслСдванС Π½Π° ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ΠΈ със забавянС; основно ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Dynatrace AJAX Edition продуцСнтска компания DynaTrace. Записват сС рСгистрационни Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Π°Ρ‚Π° опСрация Π½Π° ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ‚Π΅ ΠΈ Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΠΈ, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ сС Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° изпълнСниС Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (Π² милисСкунди) ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π΅ Ρ€Π΅ΡˆΠ°Π²Π°Ρ‰ Ρ„Π°ΠΊΡ‚ΠΎΡ€ - сСрвизни процСси ΠΊΠ°Ρ‚ΠΎ ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎ сС стартират Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°, Ρ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΏΡ€ΠΈΠΏΠΎΠΊΡ€ΠΈΠ²Π°Ρ‚ с Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° изпълнСниС Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΈ Π΄Π° изкривят ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π°Ρ‚Π°. По-подходящи ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π² Ρ‚ΠΎΠ·ΠΈ случай Π±ΠΈΡ…Π° Π±ΠΈΠ»ΠΈ броят Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΡ‚Π΅ JavaScript инструкции, броят Π½Π° Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²ΡŠΡ€Ρ…Ρƒ DOM ΠΈ Ρ‚.Π½. Ако броят Π½Π° инструкциитС/ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π² Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ΠΈ скрипт сС Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ» Π² Π½ΠΎΠ²Π° вСрсия, Ρ‚ΠΎΠ²Π° ΠΏΠΎΡ‡Ρ‚ΠΈ Π²ΠΈΠ½Π°Π³ΠΈ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π° спад Π² производитСлността, ΠΊΠΎΠΉΡ‚ΠΎ трябва Π΄Π° бъдС ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½.

ОсвСн Ρ‚ΠΎΠ²Π° Π΅Π΄Π½Π° ΠΎΡ‚ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈΡ‚Π΅ Π·Π° спада Π² производитСлността ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅, Ρ‡Π΅ Google Closure Compiler ΠΏΠΎ някаква ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π½Π΅ Π΅ успял Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ Π²Π³Ρ€Π°Π΄Π΅Π½ΠΎ замСстванС Π½Π° функцията (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Ρ‰ΠΎΡ‚ΠΎ функцията Π΅ рСкурсивна ΠΈΠ»ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π°). Π’ Ρ‚ΠΎΠ·ΠΈ случай сС ΠΎΠΏΠΈΡ‚Π²Π°ΠΌΠ΅ Π΄Π° ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°ΠΌΠ΅ ситуацията, ΠΊΠ°Ρ‚ΠΎ прСнаписвамС изходния ΠΊΠΎΠ΄.

Π Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ Π½Π° Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°

ΠšΠΎΠ³Π°Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ сС Π½ΡƒΠΆΠ΄Π°Π΅ ΠΎΡ‚ функционалност, която Π½Π΅ Π΅ Π½Π°Π»ΠΈΡ‡Π½Π° Π² JavaScript, Π½ΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ Π½Π° Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°:

ΠΠ°ΡˆΠΈΡ‚Π΅ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ сС ΡΡŠΡΡ‚ΠΎΡΡ‚ ΠΎΡ‚ Π΄Π²Π΅ части. ΠŸΡŠΡ€Π²Π°Ρ‚Π° част Π΅ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ сС Π½Π°Ρ€ΠΈΡ‡Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π½Π° Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π° (ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ Π·Π° Chrome ΠΈ Firefox, написани Π½Π° JavaScript), ΠΊΠΎΠΈΡ‚ΠΎ взаимодСйстват с Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° част – Π΄Π²ΠΎΠΈΡ‡Π½ΠΎ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° функционалността, ΠΎΡ‚ която сС Π½ΡƒΠΆΠ΄Π°Π΅ΠΌ. Врябва Π΄Π° спомСнСм, Ρ‡Π΅ пишСм 3 вСрсии Π½Π° Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ - Π·Π° Windows, Linux ΠΈ MacOS. Π”Π²ΠΎΠΈΡ‡Π½ΠΎΡ‚ΠΎ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ сС доставя ΠΊΠ°Ρ‚ΠΎ част ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° 1C:Enterprise ΠΈ сС Π½Π°ΠΌΠΈΡ€Π° Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° Π½Π° прилоТСния 1C. ΠŸΡ€ΠΈ ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ ΠΎΡ‚ ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚ сС изтСгля Π½Π° клиСнтския ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ ΠΈ сС инсталира Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°.

ΠšΠΎΠ³Π°Ρ‚ΠΎ работят Π² Safari, Π½Π°ΡˆΠΈΡ‚Π΅ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ NPAPI; ΠΊΠΎΠ³Π°Ρ‚ΠΎ работят Π² Internet Explorer, Ρ‚Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ тСхнологията ActiveX. Microsoft Edge всС ΠΎΡ‰Π΅ Π½Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ Π² Π½Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ с ограничСния.

По-Π½Π°Ρ‚Π°Ρ‚ΡŠΡˆΠ½ΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅

Π•Π΄Π½Π° ΠΎΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ Π½Π° Π΅ΠΊΠΈΠΏΠ° Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ Π΅ ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΡˆΠ½ΠΎΡ‚ΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π½Π° функционалността. Ѐункционалността Π½Π° ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° трябва Π΄Π° бъдС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Π° с функционалността Π½Π° Ρ‚ΡŠΠ½ΠΊΠΈΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚; цялата Π½ΠΎΠ²Π° функционалност сС внСдрява Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ Π² Ρ‚ΡŠΠ½ΠΊΠΈΡ, ΠΈ Π² ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

Π”Ρ€ΡƒΠ³ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π°, Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³, подобряванС Π½Π° производитСлността ΠΈ надСТдността. НапримСр, Π΅Π΄Π½Π° ΠΎΡ‚ посокитС Π΅ ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΡˆΠ½ΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ към асинхронСн ΠΌΠΎΠ΄Π΅Π» Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°. Част ΠΎΡ‚ функционалността Π½Π° ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅ ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½Π° Π²ΡŠΡ€Ρ…Ρƒ синхронСн ΠΌΠΎΠ΄Π΅Π» Π½Π° взаимодСйствиС със ΡΡŠΡ€Π²ΡŠΡ€Π°. Асинхронният ΠΌΠΎΠ΄Π΅Π» Π²Π΅Ρ‡Π΅ става всС ΠΏΠΎ-умСстСн Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ΠΈΡ‚Π΅ (ΠΈ Π½Π΅ само Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ΠΈΡ‚Π΅) ΠΈ Ρ‚ΠΎΠ²Π° Π½ΠΈ ΠΏΡ€ΠΈΠ½ΡƒΠΆΠ΄Π°Π²Π° Π΄Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°ΠΌΠ΅ ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΊΠ°Ρ‚ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ синхроннитС извиквания с асинхронни (ΠΈ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΡ€Π°ΠΌΠ΅ ΠΊΠΎΠ΄Π°). ΠŸΠΎΡΡ‚Π΅ΠΏΠ΅Π½Π½ΠΈΡΡ‚ ΠΏΡ€Π΅Ρ…ΠΎΠ΄ към асинхронСн ΠΌΠΎΠ΄Π΅Π» сС обяснява с нСобходимостта ΠΎΡ‚ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° пуснати Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ тяхното постСпСнно Π°Π΄Π°ΠΏΡ‚ΠΈΡ€Π°Π½Π΅.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€