[SH] Учёт проблем

0

Разработчик: ИП Шевчик И.С.

Установлено: 50 - 99

Обновлено: 15.11.2023

Адаптирован под мобильные устройства

Совместим с редакциями Битрикс: «Первый сайт» / «Старт» / «Стандарт» / «Малый бизнес» / «Бизнес» / «Энтерпрайз» / «Корпоративный портал» / «Интернет-магазин + CRM» /

Работает с php 8.1 и выше.

Для работы требуется:
Отвечает за учёт проблем в Битрикс24|БУС.

Модуль содержит в себе только программную часть, которую можно использовать в других модулях.

Документация по модулю находится в папке bitrix/modules/shef.problems/docs/*.md

Тут описаны только некоторые возможности:
  • Подключает библиотеку Monolog для создания своих логгеров
  • Содержит настроенные логгеры для вывода на экран, печати в файл, записи в таблицу событий \CEventLog
  • Организует ротацию логов через logrotate
  • Позволяет исключения \Throwable конвертировать в \Bitrix\Main\Error
  • В Битрикс24 администраторам добавляет в пункт меню Расширения ссылки на логи
Для работы требуется:
Модуль устанавливается обычным способом.

В настройках указываем сотрудников на каждую роль:
  • Сотрудник по умолчанию
    Ему будут поступать проблемы если не понятно на кого они адресованы.
  • Администратор Б24
    Пользователь с правами администратора. Ему будут поступать проблемы связанные с работой Б24.
  • Директор
    Ему будут поступать очень важные проблемы.
  • Отвечает за синхронизации
    Ему будут поступать проблемы связанные с синхронизациями.
  • Отвечает за номенклатуру и ценообразование
    Ему будут поступать проблемы связанные с товарами и ценами.
  • Отвечает за продажи и CRM
    Ему будут поступать проблемы связанные с продажами и CRM.
Опционально настраиваем ротацию логов, согласно документации поставляемой в модуле.

Пример настройки собственного логгера
В примере указан логгер `test` с обработчиками:
  • запись событий уровня `\Monolog\Level::Debug` в файл `/local/log/test.log`
  • запись событий уровня `\Monolog\Level::Info` в файл Telegram (apiKey и channel нужно свои подставить)
Вначале определяем в `\bitrix\.settings.php` или в `\bitrix\.settings_extra.php` ключ `'loggers'`
<?php
return [
  "loggers" => [
    "value" => [
      "test" => [
        "constructor" => static function () {
          if(in_array(
            \Bitrix\Main\Loader::includeSharewareModule("shef.problems"),
            [
              \Bitrix\Main\Loader::MODULE_INSTALLED,
              \Bitrix\Main\Loader::MODULE_DEMO,
            ]
          ))
          {
            return (new \Shef\Problems\Integration\Monolog\Logger("test"))
              ->pushHandler(
                (new \Monolog\Handler\StreamHandler(
                  stream: \Bitrix\Main\Application::getDocumentRoot()."/local/log/test.log",
                  level: \Monolog\Level::Debug
                ))
              )
              ->pushHandler(
                (new \Monolog\Handler\TelegramBotHandler(
                  apiKey: "1848526049:UNasdasd_DEMO",
                  channel: "-300000001",
                  level: \Monolog\Level::Info
                ))
              )
            ;
          }
          
          return null;
        },
      ],
    ],
    "readonly" => true
  ]
];
?>
Теперь можем вызывать через `\Bitrix\Main\Diag\Logger::create`
Пример:
<?php
  $logger = \Bitrix\Main\Diag\Logger::create("test");
  $logger?->debug("Запишет в файл", ["в телеграм НЕ ОТПРАВИТ"]);
  $logger?->info("Запишет в файл", ["в телеграм ОТПРАВИТ"]);
?>