Системная форма истории изменений истории данных.Данные

Темы платформы · Data

Тип: Произвольный. Объект данных, для которого отображаются версии. Допустимые типы значения: СправочникСсылка.<Имя справочника>, ДокументСсылка.<Имя документа>, РегистрСведенийКлючЗаписи.<Имя регистра сведений>, БизнесПроцесcСсылка, ЗадачаСсылка.<Имя задачи>, ПланСчетовСсылка.<Имя плана счетов>, ПланВидовХарактеристикСсылка.<Имя плана видов характеристик>.

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

Системная форма истории изменений истории данных.Данные (System form for the Data history modification history.Data)

Системная форма истории изменений истории данных (System form for the Data history modification history)

Данные (Data)

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

Описание:
Тип: Произвольный.
Объект данных, для которого отображаются версии.
Допустимые типы значения: СправочникСсылка.<Имя справочника>, ДокументСсылка.<Имя документа>, РегистрСведенийКлючЗаписи.<Имя регистра сведений>, БизнесПроцесcСсылка, ЗадачаСсылка.<Имя задачи>, ПланСчетовСсылка.<Имя плана счетов>, ПланВидовХарактеристикСсылка.<Имя плана видов характеристик>.
Использование в версии:

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

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

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

Открыть список истории своей книги

Реальные идентификаторы истории получают на сервере; клиент передаёт их документированной форме без записи / удаления версий.

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

Своя управляемая обработка: основной обработчик &НаКлиенте, источник истории &НаСервереБезКонтекста.

Подготовка

  1. Только собственная отдельная учебная база. Создайте Справочники → УчебныеКарточкиИстории. Справочник: код Строка 10, наименование 100, реквизит КомментарийИстории Строка 100. Вручную создайте Книгу, затем измените собственный комментарий.

  2. У этого своего объекта включите ИсторияДанных; у дополнительного поля КомментарийИстории, если оно используется, также включите участие в истории. Подготовьте две версии только собственных данных; включение флага само не создаёт задним числом версии.

  3. Дождитесь штатного обновления своей истории. Для ручного обновления выбирайте конкретные свои данные / свои метаданные и не вызывайте бесконтрольное ОбновитьИсторию() без отбора в рабочей базе.

  4. Создайте свою управляемую обработку с командой ОткрытьУчебнуюИсторию. Основной обработчик и дополнительная серверная функция — в модуле именно этой обработки.

  5. Источник сначала выбирает данные только своих метаданных, затем две версии одного и того же объекта по отбору Данные. Номера не назначаются числами 1 / 2 наугад и не берутся от разных книг.

  6. Пользователю нужны чтение своих данных и истории. Если история ещё не сформирована или прав недостаточно, опыт должен остановиться с ошибкой; не подменяйте отсутствующие версии нулями.

  7. Пример только открывает формы. Не нажимайте Записать / восстановление версии; закройте опыт без сохранения. BSL, запись объектов и обновление истории при сборке HTML не выполнялись.

  8. Используется точное системное имя из описания ОткрытьФорму: ФормаИсторииИзмененийИсторииДанных. Такую общую форму в конфигурации создавать не нужно.

&НаКлиенте
Процедура ОткрытьУчебнуюИсторию(Команда)
    ДанныеИстории = ПолучитьПаруУчебныхВерсий();
    Параметры = Новый Структура("Данные", ДанныеИстории.Данные);
    ОткрытьФорму("ФормаИсторииИзмененийИсторииДанных", Параметры);
    Сообщить("Открыта только собственная учебная история");
КонецПроцедуры
Тот же модуль: выбрать две настоящие версии одного своего объекта
&НаСервереБезКонтекста
Функция ПолучитьПаруУчебныхВерсий()
    Отбор = Новый Структура("Метаданные", Метаданные.Справочники.УчебныеКарточкиИстории);
    ПерваяВыборка = ИсторияДанных.ВыбратьВерсии(Отбор, "Данные,НомерВерсии", "НомерВерсии Возр", 1);
    Если ПерваяВыборка.Количество() = 0 Тогда
        ВызватьИсключение "Подготовьте историю собственных данных по инструкции";
    КонецЕсли;
    Данные = ПерваяВыборка[0].Данные;
    ОтборДанных = Новый Структура("Данные", Данные);
    Версии = ИсторияДанных.ВыбратьВерсии(ОтборДанных, "НомерВерсии", "НомерВерсии Возр", 2);
    Если Версии.Количество() < 2 Тогда
        ВызватьИсключение "Для одного своего объекта нужны две реальные версии";
    КонецЕсли;
    Возврат Новый Структура("Данные,ДоИзменения,ПослеИзменения", Данные, Версии[0].НомерВерсии, Версии[1].НомерВерсии);
КонецФункции

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

  1. Подготовьте два состояния одного собственного объекта и дождитесь обновления истории.

  2. Сервер выбирает конкретные данные и две существующие версии.

  3. Клиент открывает нужную форму с точными именами параметров.

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

  1. Данные — настоящая собственная ссылка, а не текстовое представление книги. Номер / пара номеров действительно выбраны для этой же ссылки.

  2. История показывает список версий; Данные версии — состояние одной версии; Различия — сравнение двух состояний. Эти три формы не взаимозаменяемы.

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

У каждого параметра есть реальный источник, точная системная / собственная форма и понятная граница между просмотром и восстановлением.

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

  1. Ключ и номер версии нельзя безопасно подставлять от другого объекта.

  2. ОбновитьИсторию без отбора и УдалитьВерсии этим кодом не вызываются.

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

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

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

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

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