Описывает параметры истории данных, используемые при записи версии.
Полное описание, параметры и ограничения
ПараметрыЗаписиИсторииДанных (WriteDataHistoryParameters)
ПараметрыЗаписиИсторииДанных (WriteDataHistoryParameters)
Доступен, начиная с версии 8.3.15.
Свойства:
ВыполнятьОбработкуПослеЗаписиВерсии (ExecuteAfterWriteVersionProcessing)
ДополнительныеДанные (AdditionalData)
КомментарийВерсии (VersionComment)
ОбновлятьИсториюСразуПослеЗаписи (UpdateHistoryImmediatelyAfterWrite)
Отказ (Cancel)
ПредставленияПолейДополнительныхДанных (AdditionalDataFieldsPresentations)
Методы:
ДобавитьДополнительныеДанные (AddAdditionalData)
ДобавитьПредставлениеПоляДополнительныхДанных (AddAdditionalDataFieldPresentation)
Описание:
Описывает параметры истории данных, используемые при записи версии.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Использование в версии:
Доступен, начиная с версии 8.3.15.
Методическая информация
Практические примеры
Подготовить дополнительные данные истории без создания версии
ПараметрыЗаписиИсторииДанных — настройки будущей записи, не уже созданная версия. Добавляем собственную цену и таблицу штрихкодов с подписями, оставляя объект незаписанным.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Создайте НОВУЮ пустую файловую учебную базу, не копию рабочего каталога. В Конфигураторе задайте корню имя Учебная85. Не добавляйте эти объекты в рабочую УТ/КА2/УНФ/БП.
Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.
Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.
Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.
Создайте серверный общий модуль УчебныеЗадачи и команду учебной обработки, вызывающую ВыполнитьПример() Экспорт. Каждый фрагмент выполняйте отдельно, не склеивайте их в одну процедуру.
Если Метаданные.Справочники.Найти("УчебныеТовары") = Неопределено Тогда
ВызватьИсключение "Сначала создайте учебный справочник по подготовке";
КонецЕсли;
Товар = Справочники.УчебныеТовары.СоздатьЭлемент();
Товар.Наименование = "Учебная книга";
Товар.Артикул = "A-01";
Товар.Цена = 250;
СтрокаШтрихкода = Товар.Штрихкоды.Добавить();
СтрокаШтрихкода.Штрихкод = "TRAINING-A-01";
СтрокаШтрихкода.Основной = Истина;
История = Товар.ЗаписьИсторииДанных;
История.КомментарийВерсии = "Учебная подготовка цены и штрихкода";
История.Отказ = Ложь;
История.ОбновлятьИсториюСразуПослеЗаписи = Ложь;
История.ВыполнятьОбработкуПослеЗаписиВерсии = Ложь;
История.ДобавитьДополнительныеДанные("УчебнаяЦена", Товар.Цена, "Цена учебного товара");
История.ДобавитьДополнительныеДанные("УчебныеШтрихкоды", Товар.Штрихкоды.Выгрузить(), "Штрихкоды учебного товара");
История.ДобавитьПредставлениеПоляДополнительныхДанных("УчебнаяЦена", "ru", "Учебная цена");
История.ДобавитьПредставлениеПоляДополнительныхДанных("УчебнаяЦена", "Цена для упражнения");
Сообщить(История.КомментарийВерсии = "Учебная подготовка цены и штрихкода");
Сообщить(Не История.Отказ);
Сообщить(Не История.ОбновлятьИсториюСразуПослеЗаписи);
Сообщить(Не История.ВыполнятьОбработкуПослеЗаписиВерсии);
Сообщить(История.ДополнительныеДанные.УчебнаяЦена = 250);
Сообщить(История.ДополнительныеДанные.УчебныеШтрихкоды.Количество() = 1);
Сообщить(История.ПредставленияПолейДополнительныхДанных.Получить("УчебнаяЦена:ru") = "Учебная цена");
Сообщить(Товар.ЭтоНовый());Разбор по шагам
Контейнер получаем из свойства нового товара. Само свойство только для чтения, но его параметры можно изменять.
Дополнительное поле УчебнаяЦена и таблица УчебныеШтрихкоды относятся к дополнительным данным версии, а не создают реквизиты метаданных.
Первый метод добавляет данные вместе с подписью; второй задаёт подпись на ru и отдельным вариантом подпись по умолчанию.
Флаги будущего обновления/обработки оставляем Ложь. Записать не вызывается: эти настройки не доказывают появления версии истории.
Запись истории также зависит от её использования в конфигурации; Отказ=Ложь сам по себе историю не включает.
Как проверить результат
Восемь сообщений Истина; цена дополнительных данных 250, в дополнительной таблице одна собственная строка.
В объекте всё ещё ЭтоНовый=Истина и рабочие версии истории не изменились этим фрагментом.
Ожидаемый результат
Подготовлен понятный проект параметров истории с данными и подписями без записи объекта.
На что обратить внимание
Комментарий версии ограничен 1024 символами; длинные строки будут обрезаны.
Если дополнительная таблица содержит НомерСтроки/LineNumber, действуют требования сортировки и последовательных номеров.
Не используйте Отказ=Истина для обхода требований аудита рабочей системы.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Разобрать устаревший метод комментария истории
Старый метод без параметров не рекомендуется с 8.3.15. У собственного черновика показываем отдельный диагностический вызов и затем современное свойство без записи версии.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Создайте НОВУЮ пустую файловую учебную базу, не копию рабочего каталога. В Конфигураторе задайте корню имя Учебная85. Не добавляйте эти объекты в рабочую УТ/КА2/УНФ/БП.
Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.
Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.
Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.
Создайте серверный общий модуль УчебныеЗадачи и команду учебной обработки, вызывающую ВыполнитьПример() Экспорт. Каждый фрагмент выполняйте отдельно, не склеивайте их в одну процедуру.
В отдельной пустой конфигурации Учебная85 создайте Планы обмена → УчебныйОбмен: длина кода 9, тип Строка, наименование длиной 100. Распределённая информационная база выключена; состав плана пустой.
Добавьте реквизит АдресУчебногоУзла: Строка длиной 100, Проверка заполнения = Показывать ошибку. Модуль объекта и подписки должны быть пустыми; не добавляйте отправку сообщений или внешние действия.
Добавьте макет УчебнаяПамятка типа Текстовый документ, одна строка: Этот узел используется только для учебных примеров. История данных для плана не включена. Обновите конфигурацию базы данных.
Каждый фрагмент запускайте отдельно на сервере в ВыполнитьПример() Экспорт общего модуля УчебныеЗадачи. УчебныйОбмен не является существующим рабочим обменом КА2 или УТ.
Узел каждый раз новый и периферийный. Существующие узлы и текущий узел базы не меняются. Запись, блокировка и удаление далее выполняются только над своим новым UUID в собственной отменяемой транзакции.
Если Метаданные.ПланыОбмена.Найти("УчебныйОбмен") = Неопределено Тогда
ВызватьИсключение "Сначала создайте собственный учебный план обмена";
КонецЕсли;
Узел = ПланыОбмена.УчебныйОбмен.СоздатьУзел();
Если Узел.ЭтотУзел Тогда
ВызватьИсключение "Нельзя изменять текущий узел информационной базы";
КонецЕсли;
Попытка
Узел.УстановитьКомментарийВерсииИсторииДанных();
Сообщить("Диагностический вызов старого метода завершён; это не запись версии истории");
Исключение
Сообщить("Старый метод неприменим к этому учебному черновику: " + ОписаниеОшибки());
КонецПопытки;
Узел.ЗаписьИсторииДанных.КомментарийВерсии = "Комментарий будущей учебной версии";
Сообщить(Узел.ЗаписьИсторииДанных.КомментарийВерсии = "Комментарий будущей учебной версии");
Сообщить(Узел.ЭтоНовый());
Сообщить(Узел.Ссылка.Пустая());Разбор по шагам
В локальной справке старый метод имеет синтаксис без аргументов и помечен Не рекомендуется с 8.3.15.
Для знакомства с наследуемым кодом вызываем его только на своём новом черновике. Возможная ошибка показана пользователю, а не скрыта.
В новом коде используется ЗаписьИсторииДанных.КомментарийВерсии — явная строка у параметров будущей записи.
История в учебном плане выключена и Записать не вызывается. Поэтому не объявляем созданную версию или сохранённый комментарий.
Как проверить результат
Три итоговые проверки Истина; диагностическое сообщение старого вызова может быть успешным или содержать явную ошибку.
Объект остаётся новым с пустой ссылкой. Никакая версия истории не проверяется как записанная.
Ожидаемый результат
Разобраны граница устаревшего API и рекомендуемое современное свойство.
На что обратить внимание
Этот диагностический вызов не рекомендуется переносить в новую бизнес-логику.
Не добавляйте выдуманный строковый параметр старому методу: локальная справка его не объявляет.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.