Логирование в скриптах
- Пример вызова в скрипте через Imports и Namespace.action
- Пример вызова в скрипте
- Логирование данных в обработчике событий
Пример вызова в скрипте через Imports и Namespace.action
Доступно с версии 2024.2
Вариант с использованием Imports:
async function action(): Promise<void> {
const message = `${Context.data.__item!.namespace}.${Context.data.__item!.code}.${Context.data.__item!.id}`;
const details = JSON.stringify((<any>Context).json(), null, 2);
Imports?.devtools?.action?.save_to_log?.call({message: message, details: details});
}
Нужно подключить зависимость и определить псевдоним, в данном примере это devtools:
Пример вызова в скрипте
Логирование поддерживается как в клиентских, так и серверных скриптах.
На текущий момент нами был обнаружен единственный способ для решения данной задачи. Он не является изящным, но "на безрыбье и рак щука". Отдельное спасибо за идею Раису.
Для того, чтобы в лог (приложение в разделе системных справочников) попала информация, в скрипте необходимо вызнать следующий код:
const message = 'Сообщение из серверного скрипта';
const details = 'Проверка вызова логирования из серверного скрипта в ' + Date().toString();
await System.templater.generateText(Context, `{ExtText('82fe0bc6-0564-4b8a-a7d4-4c136cf8a949', 'logger', '${message}', '${details}')}`);
Результатом выполнения будет следующее:
Логирование данных в обработчике событий
Для того, чтобы понять, какие данные приходят в обработчик событий в модуле, можно использовать следующий код:
async function action(): Promise<void> {
const message = 'Сообщение о записи входящего разговора';
const details = JSON.stringify((<any>Context).json(), null, 2);
await System.templater.generateText(Context, `{ExtText('82fe0bc6-0564-4b8a-a7d4-4c136cf8a949', 'logger', '${message}', ${details}')}`);
}
В результате, в логе будет следующая информация: