ЭлементИсторииРаботыПользователя.НавигационнаяСсылка

Свойства · URL

Тип: Строка. Содержит ссылку на объект информационной базы, раздел или другой объект.

Полное описание, параметры и ограничения

ЭлементИсторииРаботыПользователя.НавигационнаяСсылка (UserWorkHistoryItem.URL)

ЭлементИсторииРаботыПользователя (UserWorkHistoryItem)

НавигационнаяСсылка (URL)

Доступен, начиная с версии 8.2.

Использование:
Только чтение.
Описание:
Тип: Строка.
Содержит ссылку на объект информационной базы, раздел или другой объект.
Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.

Использование в версии:

Доступен, начиная с версии 8.2.

Методическая информация

Практические примеры

Добавить свою Книгу в историю по ссылке и по навигационной строке

Оба варианта Добавить относятся к одному вручную созданному учебному товару. Метод не возвращает элемент истории.

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

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

Подготовка

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

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

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

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

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

Процедура ВыполнитьПример() Экспорт
    Книга = Справочники.УчебныеТовары.НайтиПоКоду("guide-book");
    Если Книга.Пустая() Тогда
        ВызватьИсключение "В своей учебной базе вручную создайте Книгу с кодом guide-book";
    КонецЕсли;
    СсылкаКниги = ПолучитьНавигационнуюСсылку(Книга);
    ИсторияРаботыПользователя.Добавить(Книга);
    ПервыйСнимок = ИсторияРаботыПользователя.Получить();
    НайденаПоОбъекту = Ложь;
    Для Каждого ЗаписьИстории Из ПервыйСнимок Цикл
        Если ЗаписьИстории.НавигационнаяСсылка = СсылкаКниги Тогда
            НайденаПоОбъекту = Истина;
        КонецЕсли;
    КонецЦикла;
    Сообщить(НайденаПоОбъекту);
    ИсторияРаботыПользователя.Добавить(СсылкаКниги);
    ВторойСнимок = ИсторияРаботыПользователя.Получить();
    НайденаПоСтроке = Ложь;
    Для Каждого ЗаписьИстории Из ВторойСнимок Цикл
        Если ЗаписьИстории.НавигационнаяСсылка = СсылкаКниги Тогда
            НайденаПоСтроке = Истина;
        КонецЕсли;
    КонецЦикла;
    Сообщить(НайденаПоСтроке);
    Сообщить("Товар не изменён, изменена только история текущего учебного пользователя");
КонецПроцедуры

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

  1. Найти заранее сохранённую Книгу по собственному коду. При пустой ссылке остановиться, не создавать и не записывать товар автоматически.

  2. Получить навигационную строку средствами платформы, не склеивать UUID и путь вручную.

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

  4. Не требовать прибавления ровно двух записей: повторное добавление одного объекта не доказывает наличие двух разных объектов.

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

  1. Обе проверки наличия ожидаются Истина при наличии необходимых прав.

  2. В истории есть ссылка именно на собственную Книгу. Количество, порядок и точное время повторного добавления не объявляются фиксированными.

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

Два настоящих варианта добавления разобраны на одном учебном объекте без изменения товара.

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

  1. Добавить не возвращает запись: не присваивайте его вызов переменной.

  2. История сохраняется платформой. Это не самостоятельный массив и не журнал регистрации.

  3. Повторное добавление не является тестом уникальности товарного кода и не заменяет сохранение самого товара.

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

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

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

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

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

Подготовка

  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С» и не аффилирован с ней.