КонстантаМенеджерЗначения.<Имя константы>.ОбработкаФормированияПоВерсииИсторииДанных

События · GenerateFromDataHistoryVersionProcessing

Возникает при формировании объекта по версии истории данных.

Синтаксис

ОбработкаФормированияПоВерсииИсторииДанных()
Полное описание, параметры и ограничения

КонстантаМенеджерЗначения.<Имя константы>.ОбработкаФормированияПоВерсииИсторииДанных (ConstantValueManager.<Constant name>.GenerateFromDataHistoryVersionProcessing)

КонстантаМенеджерЗначения.<Имя константы> (ConstantValueManager.<Constant name>)

ОбработкаФормированияПоВерсииИсторииДанных (GenerateFromDataHistoryVersionProcessing)

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

Синтаксис:
ОбработкаФормированияПоВерсииИсторииДанных()
Описание:

Возникает при формировании объекта по версии истории данных.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

См. также:
МенеджерИсторииДанных, метод СформироватьПоВерсии

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

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

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

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

Пометить сформированную по истории копию: УчебнаяПамяткаИстории

Точный контракт события истории данных и конкретный собственный объект, без ручного вызова процедуры вместо события платформы.

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

Собственный модуль менеджера / объекта / набора записей согласно подготовке; сервер / толстый клиент.

Подготовка

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

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

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

  4. Обработчик разместите в указанном модуле объекта / менеджера; директивы управляемой формы и первый параметр Элемент здесь не нужны. BSL, запись собственных данных и обновление истории при сборке HTML не выполнялись.

  5. Модуль объекта своего объекта, а для регистра — модуль набора записей, для константы — модуль менеджера значения. Процедуру назначьте соответствующему событию.

  6. Дополнительный блок выполняйте в собственной обработке отдельно: он читает первую реально существующую версию только своих метаданных. Не добавляйте Копия.Записать(): предварительный просмотр и восстановление с записью — разные действия.

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

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

  1. Подготовьте собственный объект и настоящие версии его истории.

  2. Назначьте обработчик в точном модуле.

  3. Выполните показанное штатное действие / дополнительный код и проверьте фактический журнал или маркер копии.

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

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

  2. У события константы, плана обмена и плана видов расчёта сигнатура без параметров. У задачи СтандартнаяОбработка находится перед ИсключитьДанные; у регистра есть КлючЗаписи.

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

Показана прикладная реакция на реальную фазу истории данных, а не выдуманный номер версии.

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

  1. Не вызывайте обновление истории рекурсивно из её обработчиков.

  2. Свойства безопасности разделения и права истории не обходятся.

  3. BSL, обработка истории и запись журнала при сборке HTML не выполнялись.

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

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

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

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

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