Записать два собственных события и выгрузить только их в таблицу

Учебные задачи

Одна случайная метка связывает две стадии учебного расчёта. Выгружаем максимум 10 записей только этого события и только четыре диагностические колонки.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Создайте НОВУЮ отдельную пустую файловую базу на 8.5.1.1343. Корневое имя конфигурации УчебныйЖурнал85. Рабочий журнал УТ/КА2/УНФ/БП не используйте.

  2. Запускайте серверный ВыполнитьПример() Экспорт собственного учебного модуля с правом просмотра журнала. Для уроков записи в настройках журнала собственной базы должен быть разрешён уровень Информация.

  3. Фрагмент вставьте в тело процедуры; каждый урок запускайте отдельно. Код НЕ включает регистрацию автоматически и НЕ меняет настройки журнала.

  4. Уроки с ЗаписьЖурналаРегистрации оставляют собственные события в журнале учебной базы. Это реальная диагностическая запись, не запись прикладного документа. Очистка/сокращение журнала не выполняются.

  5. В тексты/Данные не добавляйте токены, пароли, персональные сведения или полные ответы сервисов. Выгрузка ограничена собственным случайным именем события и безопасными колонками, XML-файл не создаётся.

Уровни = ПолучитьИспользованиеЖурналаРегистрации();
Если Уровни.Найти(УровеньЖурналаРегистрации.Информация) = Неопределено Тогда
    ВызватьИсключение "В собственной учебной базе уровень Информация не разрешён. Настройки кодом не менялись";
КонецЕсли;
ИмяСобытия = "УчебныйЖурнал85.Расчет." + Строка(Новый УникальныйИдентификатор);
ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Информация, , ,
    "Старт: собственные количество 3 и цена 200");
Сумма = 3 * 200;
ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Информация, , ,
    "Завершение: учебная сумма " + Строка(Сумма));
Отбор = Новый Структура("Событие", ИмяСобытия);
События = Новый ТаблицаЗначений;
ВыгрузитьЖурналРегистрации(События, Отбор, "Дата,Уровень,Событие,Комментарий", , 10);
Сообщить(События.Количество() = 2);
Сообщить(События.Колонки.Количество() = 4);
ЕстьСтарт = Ложь;
ЕстьЗавершение = Ложь;
Для Каждого Событие Из События Цикл
    Если Событие.Событие <> ИмяСобытия Тогда
        ВызватьИсключение "В выборку попало не собственное событие";
    КонецЕсли;
    Если Событие.Комментарий = "Старт: собственные количество 3 и цена 200" Тогда
        ЕстьСтарт = Истина;
    КонецЕсли;
    Если Событие.Комментарий = "Завершение: учебная сумма 600" Тогда
        ЕстьЗавершение = Истина;
    КонецЕсли;
    Сообщить(Событие.Комментарий);
КонецЦикла;
Сообщить(ЕстьСтарт И ЕстьЗавершение);

Разбор по шагам

  1. Проверяем разрешённый уровень. Если Информация выключена, урок останавливается без автоматического включения.

  2. Имя содержит собственный префикс и новый UUID; запрещённые системные сочетания _$ и $_ не используются.

  3. Две записи диагностируют только вычисление 3 × 200. Документ, ссылка на рабочие данные и пользовательские секреты не передаются.

  4. Приёмник — таблица значений. Отбор ограничивает конкретное имя события, список колонок исключает пользователей/компьютеры/данные/порты.

  5. Пятый параметр 10 ограничивает число событий. 0 означал бы отсутствие ограничения.

  6. Проверяем наличие двух комментариев без зависимости от порядка событий с одинаковой секундой.

Как проверить результат

  1. Три логические проверки дают Истина при разрешённом уровне и доступном журнале.

  2. В таблице только собственные комментарии «Старт…» и «Завершение…600». В журнале учебной базы эти две записи останутся.

Ожидаемый результат

Получена ограниченная диагностическая цепочка собственного расчёта без полной выгрузки журнала.

На что обратить внимание

  1. Если события не видны, проверьте настройки/права/доступность журнала; не заменяйте проверку количества выдуманным результатом.

  2. Это не лог настоящего платежа и не доказательство записи документа.

  3. Даже ограниченный вывод журнала может содержать чувствительные сведения в другой задаче; используйте минимальные колонки и отбор.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.