Устранение ошибок Битрикс после обновления PHP до 8.2

Выпала задача обновить на одном из сайтов PHP с 7.3 до 8.2. на операционной системе RedOS. Далее что делал.

Обновление PHP

Обновление БД

Далее необходимо из панели администратора обновить ядро и сторонние решения до актуальных версий.

После чего лично у меня стала вылезать ошибка вида:

На строки в коде вида:

А всё просто. Если в PHP 7.3 допустимо было так обращаться к переменным не являющимися массивами, то в PHP 8.2, где введено более строгое отношение к типизации, так уже нельзя. Поэтому все подобные конструкции нужно заменить на вида:

Ну или я просто поискал все подобные конструкции которые встречаются в файле и в шапку добавил:

RedOS: обновление ядра Linux

Узнать текущую. версию ядра:

Обновить текущее ядро:

Удалить старые не используемые ядра, оставив последнее на всякий случай:

Уведомления пользователю в Astra Linux

Накопал несколько способов уведомить пользователя о чём-либо.

1) notify-send

2) fly-dialog

3) qdbus

На основе этого знания сейчас буду изобретать велосипед, который будет уведомлять сотрудников о не закрытых задачах. Ибо на почту получать всё это не удобно..

JavaScript: улучшаем понимание работы функций

Классически функция объявляется используется примерно так:

Однако её можно объявить и так:

Кроме того! Можно еще короче, используя не явный return:

Такие сокращения мне не очень нравятся (дело привычки больше), но тем не менее их удобно применять в некоторых случаях. Например если необходимо вернуть объект, как результат функции выйдет даже несколько понятнее:

Или например добавить событие onClick к кнопке на странице при помощи стрелочных функций:

Выглядит гораздо проще, чем если бы мы использовали «классическую» запись:

Но! только если код внутри функции не сильно длинный. Иначе всё превращается в кашу.

1С: Поиск элемента справочника с одинаковыми кодами.

1С позволяет создавать элементы справочника (да и документа) с одинаковыми кодами (номерами), в этом случае поиск элемента по типичному:

Становится невозможным. Есть несколько вариантов решения данной проблемы:

1) Можно поискать по заведомо уникальному реквизиту (если есть):

2) Можно поискать по уникальному идентификатору (если известен):

3) Можно поискать по сочетанию факторов, которые сделают элемент уникальным (в данном случае по владельцу):

1 2 3 4 296