Рубрики
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’);

Рубрики
PHP

Сгенерировать последовательность символов от A до … (ZZ)

function createColumnsArray($end_column, $first_letters = »)
{
$columns = array();
$length = strlen($end_column);
$letters = range(‘A’, ‘Z’);

// Iterate over 26 letters.
foreach ($letters as $letter) {
// Paste the $first_letters before the next.
$column = $first_letters . $letter;

  // Add the column to the final array.
  $columns[] = $column;

  // If it was the end column that was added, return the columns.
  if ($column == $end_column)
      return $columns;

}

// Add the column children.
foreach ($columns as $column) {
// Don’t itterate if the $end_column was already set in a previous itteration.
// Stop iterating if you’ve reached the maximum character length.
if (!in_array($end_column, $columns) && strlen($column) < $length) {
$new_columns = createColumnsArray($end_column, $column);
// Merge the new columns which were created with the final columns array.
$columns = array_merge($columns, $new_columns);
}
}

return $columns;
}

print_r( createColumnsArray('BZ'));

https://stackoverflow.com/questions/14278603/php-range-from-a-to-zz

Рубрики
Bitrix

Получить ID списка пользовательского свойства по VALUE списка

$IDUserField = CUserTypeEntity::GetList([], [
«FIELD_NAME» => «UF_CRM_1_1669630759717»
])->Fetch()[«ID»];

var_dump( \CUserFieldEnum::GetList(array(), array(«USER_FIELD_ID» => $IDUserField, «VALUE» => «Белорусская»))->arResult[0][«ID»]);

Рубрики
Bitrix

Получить USER_FIELD_ID по названию пользовательского свойства

$userFieldResult = CUserTypeEntity::GetList([], [

    "FIELD_NAME" => "UF_CRM_1_1669630759717"
]);

if ($userField = $userFieldResult->Fetch()) {
$userFieldId = $userField[«ID»];
echo «USER_FIELD_ID: » . $userFieldId;
}

Рубрики
ngrok

ngrok — прокидование локала в интернет

https://mkdev.me/ru/posts/ngrok-kogda-nuzhno-prokinut-vash-servis-v-internet

Рубрики
Bitrix

Наблюдатели и их права

b_crm_entity_perms