Рубрики
Bitrix

Зацикливание обновления

class myClass
{
protected static $handlerDisallow = false;

public static function iblockElementUpdateHandler(&$fields)
{
/* проверяем, что обработчик уже запущен / if (self::$handlerDisallow) return; / взводим флаг запуска / self::$handlerDisallow = true; / наш код, приводящий к вызову CIBlockElement::Update */
…
CIBlockElement :: Update (…, …);

  /* вновь разрешаем запускать обработчик */ 
  self::$handlerDisallow = false;

}
}

Источник:

https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=1978

Рубрики
Bitrix user entity

Операции с сущностью User

Рубрики
Bitrix Permission

Наименование Ролей CRM в БД

Все = X

Все открытые = O

Таблица: b_crm_role_perms 

Рубрики
nginx

Ошибка 502 и как с ней бороться

Поискав информацию в интернете, я выяснил, что ошибка 502 (502 Bad Gateway) это ошибка на стороне сервера и никак не связана с браузером пользователя, как пишут на многих ресурсах.

Ошибка возникает на серверах, на которых в качестве бэкенда установлен HTTP-сервер nginx. Дословно переводится как «плохой шлюз» и означает, что HTTP-сервер на фронтенде не смог обработать ответ от nginx.

Проблема обычно возникает из-за лимитов ресурсов сервера, например HTTP-сервер на фронтенде возвращает очень длинные заголовки, которые не помещаются в кеш nginx. Для того, чтобы решить эту проблему, необходимо увеличить число и размер буферов для одного соединения, в которые будет читаться ответ, а также размер буфера, в который будет читаться первая часть ответа, получаемого от проксируемого сервера:

proxy_buffer_size 16k;
proxy_buffers 16 16k;

Делается это в блоке server конфига для вашего доменного имени.

источник:

https://1devblog.ru/bitrixvm/error-502-and-how-to-fight-it/

502 Bad Gateway, это отсутствие ответа nginx от httpd(apache, читай php) за положенное время, может быть множество причин приводящих к сему — и проблемы сервера/хостинга(нехватка ресурсов, недостаточное выделение оных, список может быть длинным) и ошибки разработки сайтов, например одновременно срабатывает несколько агентов с запуском ресурсоемких задач, или есть страницы создающиеся по 10-30 сек, которые нашел робот и рассказал друзьям. В анализе могут помочь google, команда top или htop, просмотр логов httpd с уровнем логирования debug, просмотр состояния httpd в /server-status(нужно разрешить), отключение агентов, общение с разработчиками сайтов с применением сильных мотиваторов пр.

Если нет опыта/времени/желания разобраться, а денег нанять админа нет или нуу все равно нет, то можно купировать проблему(чревато):
— Как только висяк — в консоли service httpd restart, рестарт апача приведет к завершению работы всех его процессов и скорее всего прибьет проблемный.
— Попробовать уменьшить MaxRequestsPerChild на один нолик, текущее значение можно посмотреть в /etc/httpd/bx/conf/prefork.conf а новое задать в /etc/httpd/bx/custom/z_bx_custom.conf, это позволит завершать процессы апача и стартовать новые чаще, в итоге все процессы будут потреблять меньше памяти, но периоде время отклика сайтов увеличится.

источник:

https://dev.1c-bitrix.ru/support/forum/forum32/topic66190/

Upstream prematurely closed connection while reading response header from upstream

У меня установлено битрикс окружение. Частенько начала вылетать ошибка bitrix 502 bad gateway. Посмотрел логи nginx(/var/log/nginx/site_error.log). Там фигурирует одна и таже ошибка upstream prematurely closed connection while reading response header from upstream. Эта ошибка появляется тогда, когда страница генерируется больше времени, чем установленный timeout front-end’a. Обычно она возникает когда nginx отправляет запросы дальше на apache По умолчанию эти таймауты — 60 секунд. Поставим 180 (эти параметры прописываются в \etc\nginx\nginx.conf):

proxy_send_timeout 180s;
proxy_read_timeout 180s;
  • На Centos конфиг nginx хранится здесь \etc\nginx\nginx.conf
  • Логи nginx храниятся здесь /var/log/nginx/site_error.log

Мне помогло это избавиться от 502 ошибки в bitrix

ЗЫ: Буква ‘s’ — обязательна. Без неё ошибок не будет, но и значения не будут учитываться.

источник:

https://pashkof.pro/articles/502-bad-gateway/

Рубрики
Bitrix

Метод обновления открытого лида, сделки, слайдера и т.п.

BX.SidePanel.Instance.reload()

Рубрики
Bitrix JS

Получить ID пользователя открывшего страницу на JS

BX.message(‘USER_ID’);