Π Π°Π±ΠΎΡ‚Π° с систСмой управлСния сайтом 1Π‘-Битрикс часто ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ слоТных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ пСрСсмотра. Π‘ΡƒΠ΄ΡŒ Ρ‚ΠΎ случайноС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ настроСк, ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Π°Ρ публикация ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° ΠΈΠ»ΠΈ сбой Π² Ρ€Π°Π±ΠΎΡ‚Π΅ модуля, администраторы ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ рСгулярно ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ систСму Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ состояниС. Однако ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ дСйствий Π² этой CMS Π½Π΅ всСгда ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½ ΠΈ зависит ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ контСкста выполнСния Π·Π°Π΄Π°Ρ‡ΠΈ.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ тСкстовых Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², Π³Π΄Π΅ комбинация клавиш Ctrl+Z ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ измСнСния, Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Битрикс понятиС "ΠΎΡ‚ΠΌΠ΅Π½Ρ‹" рСализуСтся Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ инструмСнты: ΠΎΡ‚ встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π΄ΠΎ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…. ПониманиС Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡ‚ΠΌΠ΅Π½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ записи Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ событий ΠΈ восстановлСниСм ΠΈΠ· Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ критичСски Π²Π°ΠΆΠ½ΠΎ для поддСрТания цСлостности Π΄Π°Π½Π½Ρ‹Ρ….

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ всС доступныС способы ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ дСйствий. ΠœΡ‹ рассмотрим ΠΊΠ°ΠΊ стандартныС возмоТности административной ΠΏΠ°Π½Π΅Π»ΠΈ для рядовых ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‚Π°ΠΊ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… API ядра. ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π΅ с транзакциями, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ бСзопасно ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

ΠžΡ‚ΠΌΠ΅Π½Π° дСйствий Ρ‡Π΅Ρ€Π΅Π· интСрфСйс административной ΠΏΠ°Π½Π΅Π»ΠΈ

Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ администратору Π½Π΅ трСбуСтся ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄. БистСма прСдоставляСт инструмСнты для управлСния ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ ΠΈ настройками нСпосрСдствСнно Ρ‡Π΅Ρ€Π΅Π· графичСский интСрфСйс. Если Π²Ρ‹ случайно ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ свойства ΠΈΠ½Ρ„ΠΎΠ±Π»ΠΎΠΊΠ° ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ элСмСнт, ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ стоит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ встроСнных ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² восстановлСния.

НапримСр, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ Π˜Π½Ρ„ΠΎΠ±Π»ΠΎΠΊΠΈ, ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ элСмСнты часто ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² ΠΊΠΎΡ€Π·ΠΈΠ½Ρƒ, ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’Π°ΠΊΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ рСдактирования ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ "ΠžΡ‚ΠΌΠ΅Π½Π°", которая сбрасываСт измСнСния, Ссли страница Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»Π° ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π°. Однако, Ссли Ρ„ΠΎΡ€ΠΌΠ° ΡƒΠΆΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π°, ситуация услоТняСтся.

Π’Π°ΠΆΠ½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ ΠΎΡ‚ΠΌΠ΅Π½Ρƒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΠΎΡ‚ΠΌΠ΅Π½Ρƒ систСмных событий. Если Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ шаблон ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Ρ‚ΠΎ для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊ старой вСрсии достаточно ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ Ρ€Π΅Π²ΠΈΠ·ΠΈΡŽ Ρ„Π°ΠΉΠ»Π° Ρ‡Π΅Ρ€Π΅Π· встроСнный Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ΄Π°. Но Ссли ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Π»Π΅ΠΊΠ»ΠΎ Π·Π° собой пСрСсчСт ΠΈΡ‚ΠΎΠ³ΠΎΠ² Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅, простого Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСдостаточно.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ административной ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ глобальной ΠΊΠ½ΠΎΠΏΠΊΠΈ "ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСднСС дСйствиС" для всСй систСмы. КаТдоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² настройках Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ модуля ΠΈΠ»ΠΈ структуры Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² примСняСтся ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

  • πŸ” ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΊΠΎΡ€Π·ΠΈΠ½Ρƒ модуля, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ, ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ записСй ΠΈΠ· Π±Π°Π·Ρ‹.
  • πŸ“ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΡ€Π°Π²ΠΊΠΈ ΠΊΠΎΠ΄Π° для ΠΎΡ‚ΠΊΠ°Ρ‚Π° шаблонов.
  • βš™οΈ Π‘Π²Π΅Ρ€ΡŒΡ‚Π΅ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ настройки с сохранСнными ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π°ΠΌΠΈ ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠ΅Ρ€Π΅Π΄ массовым Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
πŸ“Š Как Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго отмСняСтС ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹Π΅ дСйствия Π² Битрикс?
Π§Π΅Ρ€Π΅Π· восстановлСниС ΠΈΠ· бэкапа
Π’Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· Π°Π΄ΠΌΠΈΠ½ΠΊΡƒ
ΠŸΠΈΡˆΡƒ скрипт ΠΎΡ‚ΠΊΠ°Ρ‚Π°
НичСго Π½Π΅ дСлаю, ΠΈΡΠΏΡ€Π°Π²Π»ΡΡŽ послСдствия

Π Π°Π±ΠΎΡ‚Π° с транзакциями Π² ядрС D7

Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΡ… собствСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈΠ»ΠΈ слоТныС скрипты ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ инструмСнтом контроля являСтся ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. Π’ соврСмСнном ядрС D7 (начиная с вСрсии 17.0) Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° полноцСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ позволяСт Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько запросов Π² ΠΎΠ΄ΠΈΠ½ логичСский Π±Π»ΠΎΠΊ.

Π‘ΡƒΡ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ всС измСнСния Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Ρ‘ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° явной фиксации. Если Π² процСссС выполнСния ΠΊΠΎΠ΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка ΠΈΠ»ΠΈ логичСскоС условиС Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ прСрывания, вся Π³Ρ€ΡƒΠΏΠΏΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½Π° ΠΎΠ΄Π½ΠΈΠΌ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° rollback. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ останСтся Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΌ, Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΌ состоянии.

ИспользованиС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈ финансовых опСрациях, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ остатков Π½Π° складС ΠΈΠ»ΠΈ слоТных миграциях Π΄Π°Π½Π½Ρ‹Ρ…. Π‘Π΅Π· Π½ΠΈΡ… ΠΎΡ‚ΠΌΠ΅Π½Π° дСйствия ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ написания ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π² исходноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½ΠΎ ΠΈ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΎ.

\Bitrix\Main\DB\Connection::getInstance()->startTransaction();

try {

// Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ сСрии ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

$element->update($data);

$catalog->updatePrice($productId, $newPrice);

// Ѐиксация ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

\Bitrix\Main\DB\Connection::getInstance()->commitTransaction();

} catch (\Exception $e) {

// ΠžΡ‚ΠΌΠ΅Π½Π° всСх дСйствий ΠΏΡ€ΠΈ ошибкС

\Bitrix\Main\DB\Connection::getInstance()->rollbackTransaction();

}

πŸ’‘

ВсСгда ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ критичСскиС измСнСния Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±Π»ΠΎΠΊΠΈ try-catch. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ автоматичСски ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ любого ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, прСдотвращая ΠΏΠΎΡ€Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ….

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ этот ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, InnoDB Π² MySQL). Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ‚ΠΈΠΏΠ° MyISAM, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΎΡ‚ΠΊΠ°Ρ‚Π° Ρ‡Π΅Ρ€Π΅Π· rollback Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, ΠΈ измСнСния примСнятся Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, нСзависимо ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° выполнСния скрипта.

ΠžΡ‚ΠΊΠ°Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· Π–ΡƒΡ€Π½Π°Π» событий

Одним ΠΈΠ· ΠΌΠΎΡ‰Π½Π΅ΠΉΡˆΠΈΡ… инструмСнтов администратора являСтся Π–ΡƒΡ€Π½Π°Π» событий (Event Log). Он фиксируСт практичСски всС Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ дСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π² систСмС: Π²Ρ…ΠΎΠ΄ Π² панСль, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ настроСк, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ. Π₯отя ΠΆΡƒΡ€Π½Π°Π» сам ΠΏΠΎ сСбС Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ "ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ", ΠΎΠ½ слуТит Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΌ источником ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ для Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ ΠΎΡ‚ΠΊΠ°Ρ‚Π°.

Π’ ΠΆΡƒΡ€Π½Π°Π»Π΅ событий хранится Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π°ΠΊΡ‚ дСйствия, Π½ΠΎ ΠΈ часто β€” старыС значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². НапримСр, ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ настроСк Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ модуля, систСма ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΠΈ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ½ΠΎ являлось Ρ€Π°Π½Π΅Π΅. Π­Ρ‚ΠΎ позволяСт администратору быстро Π½Π°ΠΉΡ‚ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ настройку ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΅Ρ‘ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

Для доступа ΠΊ ΠΆΡƒΡ€Π½Π°Π»Ρƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Ρ€Π°Π·Π΄Π΅Π» Настройки β†’ Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ β†’ Π–ΡƒΡ€Π½Π°Π» событий. Π—Π΄Π΅ΡΡŒ ΠΌΠΎΠΆΠ½ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ записи ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ события, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΈ Π΄Π°Ρ‚Π΅. ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ слСдуСт ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ событиям с Ρ‚ΠΈΠΏΠΎΠΌ security ΠΈ main, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ часто содСрТат критичСскиС измСнСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Π’ΠΈΠΏ события ОписаниС дСйствия Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Π²Ρ‚ΠΎ-ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π“Π΄Π΅ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈ
LOGIN_SUCCESS Π£ΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΉ Π²Ρ…ΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ НСт Π’ΠΊΠ»Π°Π΄ΠΊΠ° "Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ"
MODULE_INSTALL Установка модуля Частично (Ρ‡Π΅Ρ€Π΅Π· ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅) Π’ΠΊΠ»Π°Π΄ΠΊΠ° "БистСмныС"
USER_UPDATE ИзмСнСниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ НСт (Ρ€ΡƒΡ‡Π½ΠΎΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚) Π’ΠΊΠ»Π°Π΄ΠΊΠ° "ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ"
IBLOCK_ELEMENT_DELETE Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнта ΠΈΠ½Ρ„ΠΎΠ±Π»ΠΎΠΊΠ° Π”Π° (Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ€Π·ΠΈΠ½Ρƒ) Π’ΠΊΠ»Π°Π΄ΠΊΠ° "Π˜Π½Ρ„ΠΎΠ±Π»ΠΎΠΊΠΈ"
Как Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ΅ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅?

Для Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ отслСТивания ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² настройках ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Настройки β†’ ΠŸΡ€ΠΎΠ°ΠΊΡ‚ΠΈΠ²Π½Π°Ρ Π·Π°Ρ‰ΠΈΡ‚Π° β†’ Π–ΡƒΡ€Π½Π°Π» событий ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Ρ‹ Π³Π°Π»ΠΎΡ‡ΠΊΠΈ Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ² всСх Ρ‚ΠΈΠΏΠΎΠ² событий. Π­Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π»ΠΎΠ³ΠΎΠ², Π½ΠΎ даст ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ ΠΏΡ€ΠΎΠΈΡΡˆΠ΅Π΄ΡˆΠ΅Π³ΠΎ.

К соТалСнию, ΠΆΡƒΡ€Π½Π°Π» Π½Π΅ сохраняСт состояниС всСй Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… "Π΄ΠΎ" ΠΈ "послС". Он фиксируСт лишь Ρ„Π°ΠΊΡ‚ измСнСния. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ слоТноС дСйствиС, Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‰Π΅Π΅ мноТСство связанных Ρ‚Π°Π±Π»ΠΈΡ†, восстановлСниС ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π°Π½Π°Π»ΠΈΠ·Π° всСх записСй ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ внСсСния ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΎΠΊ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ ΠΎΡ‚ΠΌΠ΅Π½Π° Ρ‡Π΅Ρ€Π΅Π· API ΠΈ Π°Π³Π΅Π½Ρ‚Ρ‹

Π’ ситуациях, ΠΊΠΎΠ³Π΄Π° стандартныС инструмСнты Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΈΠ±Π΅Π³Π°ΡŽΡ‚ ΠΊ написанию спСциализированных скриптов. Π―Π΄Ρ€ΠΎ 1Π‘-Битрикс прСдоставляСт Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ API для управлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ систСмы. Зная ID ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ состояниС, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСсс Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°.

Частой Π·Π°Π΄Π°Ρ‡Π΅ΠΉ являСтся ΠΎΡ‚ΠΌΠ΅Π½Π° дСйствия, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ³ΠΎ Π°Π³Π΅Π½Ρ‚ΠΎΠΌ. АгСнты Π² Битрикс β€” это Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, выполняСмыС ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ. Если Π°Π³Π΅Π½Ρ‚ ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π» Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, начислил бонусы Π΄Π²Π°ΠΆΠ΄Ρ‹), Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π½ΠΎ ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ самого Π°Π³Π΅Π½Ρ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ ошибки Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

Для поиска ΠΈ управлСния Π°Π³Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ класс \Bitrix\Main\Agent. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π°Π³Π΅Π½Ρ‚Π° ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, Ссли ΠΎΠ½ большС Π½Π΅ Π½ΡƒΠΆΠ΅Π½, ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ врСмя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ запуска. Π­Ρ‚ΠΎ эффСктивный способ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ процСсс.

// ΠŸΡ€ΠΈΠΌΠ΅Ρ€ удалСния Π°Π³Π΅Π½Ρ‚Π° ΠΏΠΎ названию Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

\Bitrix\Main\Agent::deleteByModule("main", "MyModule::WrongFunction()");

// ΠŸΡ€ΠΈΠΌΠ΅Ρ€ поиска Π°Π³Π΅Π½Ρ‚Π°

$agentList = \Bitrix\Main\Agent::getList([

'filter' => ['NAME' => 'MyModule::WrongFunction()']

]);

while($agent = $agentList->fetch()) {

// Π›ΠΎΠ³ΠΈΠΊΠ° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ»ΠΈ удалСния

\Bitrix\Main\Agent::delete($agent['ID']);

}

β˜‘οΈ Алгоритм ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ Ρ‡Π΅Ρ€Π΅Π· API

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

ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ систСмС ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. Π”Π°ΠΆΠ΅ Ссли Π²Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π±Π°Π·Π΅, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡΡ‚Π°Ρ€ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Ссли кСш ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π½Π΅ Π±Ρ‹Π» ΡΠ±Ρ€ΠΎΡˆΠ΅Π½. ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ \Bitrix\Main\Data\Cache::cleanAll() ΠΈΠ»ΠΈ очистку ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ‚Π΅Π³Π° послС массовых ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

ВосстановлСниС ΠΈΠ· Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ ΠΈ Π±Π΅ΠΊΠ°ΠΏΠΎΠ²

Когда Ρ€Π΅Ρ‡ΡŒ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… сбоях ΠΈΠ»ΠΈ массовых ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΠΎ, СдинствСнным Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ способом остаСтся восстановлСниС ΠΈΠ· Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ. Π’ экосистСмС Битрикс сущСствуСт нСсколько ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ бэкапирования: Ρ„Π°ΠΉΠ»Ρ‹ сайта, Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ полная копия систСмы Ρ‡Π΅Ρ€Π΅Π· панСль управлСния.

Π¨Ρ‚Π°Ρ‚Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹Π΅ снимки систСмы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Π½Π° локальном сСрвСрС, Ρ‚Π°ΠΊ ΠΈ Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°Ρ… (Google Drive, Dropbox, S3). ВосстановлСниС ΠΈΠ· Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ β€” это Ρ€Π°Π΄ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ ΠΌΠ΅Ρ€Π°, которая отмСняСт всС дСйствия, ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Π΅ послС Π΄Π°Ρ‚Ρ‹ создания бэкапа.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΠ΅Ρ€Π΅Π΄ восстановлСниСм ΠΈΠ· ΠΏΠΎΠ»Π½ΠΎΠΉ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ сдСлайтС свСТий бэкап Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π² ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΠΌΠ΅ΠΆΠ΄Ρƒ послСдним Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ бэкапом ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠΌ сбоя.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ восстановлСния ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выполняСтся Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°Π·Π΄Π΅Π» Настройки β†’ Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ β†’ Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. БистСма ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π°Ρ€Ρ…ΠΈΠ²Π° ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ распаковки ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ зависимости ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° сайта, этот процСсс ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ ΠΎΡ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠΈΠ½ΡƒΡ‚ Π΄ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… часов.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для экономии мСста, Π½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ для ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΎΡ‚ΠΊΠ°Ρ‚Π° систСмы Π²Π°ΠΌ потрСбуСтся Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° всСх бэкапов с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° создания ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ.

Для разработчСских срСд ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ автоматичСскоС созданиС бэкапов ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠΉ вСрсии ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎ создаСт Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΎΡ‚ΠΊΠ°Ρ‚Π°, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² случаС, Ссли ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ критичСским ошибкам Π² Ρ€Π°Π±ΠΎΡ‚Π΅ сайта.

Анализ Π»ΠΎΠ³ΠΎΠ² ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° ошибок

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ дСйствия ΠΏΠΎ ΠΎΡ‚ΠΌΠ΅Π½Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ Π΄ΠΈΠ°Π³Π½ΠΎΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π€Π°ΠΉΠ»Ρ‹ Π»ΠΎΠ³ΠΎΠ² сСрвСра ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈ Битрикс содСрТат Ρ†Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ. Анализ этих Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ восстановлСния.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π»ΠΎΠ³ΠΈ находятся Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ /bitrix/php_interface/dbconnect.php (настройки ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ) ΠΈ Ρ„Π°ΠΉΠ»Π°Ρ… error_log Π² ΠΊΠΎΡ€Π½Π΅ сайта ΠΈΠ»ΠΈ ΠΏΠ°ΠΏΠΊΠ΅ /bitrix/. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² Ρ„Π°ΠΉΠ»Π΅ php_interface/dbconnect.php, установив константу DBDebug Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ошибки Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° экранС.

Π’Π°ΠΊΠΆΠ΅ стоит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΆΡƒΡ€Π½Π°Π» Π²Π΅Π±-сСрвСра (Apache ΠΈΠ»ΠΈ Nginx). Ошибки уровня 500 (Internal Server Error) часто ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ сбои Π² ΠΊΠΎΠ΄Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³Π»ΠΈ привСсти ΠΊ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΌΡƒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ скриптов ΠΈ частичному ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Ρ€ΡƒΡ‡Π½ΠΎΠΉ Π°Π½Π°Π»ΠΈΠ· SQL-запросов Π² Π»ΠΎΠ³Π°Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Ρ‹Π»ΠΈ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹.

  • πŸ“„ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ„Π°ΠΉΠ» /bitrix/modules/main/include/version.php Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ вСрсии ядра.
  • πŸ› Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ "ΠŸΡ€ΠΎΠ°ΠΊΡ‚ΠΈΠ²Π½Π°Ρ Π·Π°Ρ‰ΠΈΡ‚Π°" для Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ Π²Π·Π»ΠΎΠΌΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³Π»ΠΈ привСсти ΠΊ измСнСниям.
  • πŸ“Š АнализируйтС ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅ запросы Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ зависшиС процСссы.

Если ошибка связана с ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ систСмы, часто ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΡ‚ΠΊΠ°Ρ‚ вСрсии ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Π’ маркСтплСйсС Битрикс ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ установлСнных ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΈ, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях, Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ модуля, Ссли ΠΎΠ½Π° ΡΠΎΡ…Ρ€Π°Π½ΠΈΠ»Π°ΡΡŒ Π² Π°Ρ€Ρ…ΠΈΠ²Π°Ρ… ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ.

МоТно Π»ΠΈ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² 1Π‘-Битрикс?

ΠŸΡ€ΡΠΌΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ "ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅" Π½Π΅Ρ‚. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π±Ρ‹Π» ΡƒΠ΄Π°Π»Π΅Π½, Π΅Π³ΠΎ запись исчСзаСт ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ b_user. ВосстановлСниС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· восстановлСниС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· бэкапа ΠΈΠ»ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠ΅ созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Ссли ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ сохранСны Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ событий ΠΈΠ»ΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΡ… Π»ΠΎΠ³Π°Ρ….

Как ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ систСмы Π΄ΠΎ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ вСрсии?

Π¨Ρ‚Π°Ρ‚Π½Ρ‹ΠΌΠΈ срСдствами ΠΎΡ‚ΠΊΠ°Ρ‚ обновлСния ядра Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½. ЕдинствСнный способ β€” восстановлСниС Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ, сдСланной Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ обновлСния. ВсСгда Π΄Π΅Π»Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ бэкап ΠΏΠ΅Ρ€Π΅Π΄ запуском обновлСния систСмы.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли транзакция Π½Π΅ откатываСтся?

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ (InnoDB для MySQL). ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π½Π΅ Π±Ρ‹Π»Π° Π»ΠΈ транзакция зафиксирована (commit) Π΄ΠΎ возникновСния ошибки. Π’Π°ΠΊΠΆΠ΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ DDL (созданиС Ρ‚Π°Π±Π»ΠΈΡ†), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π‘Π£Π‘Π” Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π΅ΡΠ²Π½ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ.

Π“Π΄Π΅ хранятся ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² Битрикс?

Π£Π΄Π°Π»Π΅Π½Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· Π°Π΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ панСль Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΏΠ°Π΄Π°Ρ‚ΡŒ Π² "ΠšΠΎΡ€Π·ΠΈΠ½Ρƒ" Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, Ссли эта функция Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² настройках Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ модуля. ЀизичСски ΠΎΠ½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ, ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.