Прочитать историю своего учебного пользователя, не очищая её

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

Получить возвращает массив элементов истории. Дата и НавигационнаяСсылка принадлежат элементу, а не менеджеру.

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

Полный серверный общий модуль УчебнаяИстория отдельной собственной учебной конфигурации.

Подготовка

  1. Работайте только в отдельной собственной конфигурации УчебнаяКонфигурацияСинтаксиса, не в УТ, КА, УНФ или БП. Создайте справочник УчебныеТовары с кодом типа Строка длиной 32, вручную сохраните товар Книга с кодом guide-book.

  2. Создайте серверный общий модуль УчебнаяИстория с флагом Сервер. Вставьте полный код выбранного урока. Из серверного обработчика команды своей обработки вызовите УчебнаяИстория.ВыполнитьПример().

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

  4. Уроки удаления необратимо удаляют историю. Для них заранее создайте в этой отдельной базе единственного пользователя УчебныйПользовательСинтаксиса, войдите под ним монопольно, не открывайте другие сеансы. Для первого запуска оставьте подтверждение пустым.

  5. Код не удаляет товары и не проводит документы. Добавление и очистка истории — настоящая запись пользовательских данных, а не изменение локального массива. Эти BSL-образцы в 1С автоматически не выполнялись.

Процедура ВыполнитьПример() Экспорт
    История = ИсторияРаботыПользователя.Получить();
    Сообщить(ТипЗнч(История) = Тип("Массив"));
    Сообщить("Количество записей: " + Строка(История.Количество()));
    Для Каждого ЗаписьИстории Из История Цикл
        Сообщить(ТипЗнч(ЗаписьИстории) = Тип("ЭлементИсторииРаботыПользователя"));
        Сообщить(ТипЗнч(ЗаписьИстории.Дата) = Тип("Дата"));
        Сообщить(ТипЗнч(ЗаписьИстории.НавигационнаяСсылка) = Тип("Строка"));
        Сообщить(Формат(ЗаписьИстории.Дата, "ДФ=dd.MM.yyyy HH:mm:ss") + " | " + ЗаписьИстории.НавигационнаяСсылка);
    КонецЦикла;
КонецПроцедуры

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

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

  2. Проверить тип массива и обойти реальные элементы. Вывести дату и строковую ссылку, не переходя по ней.

  3. Пустой массив является корректным результатом. Не пытаться прочитать первый элемент без проверки количества.

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

  1. Первая проверка Истина. Для каждой имеющейся записи ещё три проверки Истина, затем дата и ссылка.

  2. При пустой истории выводится количество 0 без исключения. Никакая конкретная дата или сортировка не выдумывается.

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

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

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

  1. Элемент истории не имеет конструктора. Оба его свойства только для чтения.

  2. Ссылки истории могут раскрывать сведения базы: не публикуйте сообщения из рабочей базы.

  3. Наличие ссылки не гарантирует существование объекта и право его открыть. Урок ничего не открывает.

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

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

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

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

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