25 882 документа
← К списку

МенеджерИсторииДанных.ПолучитьРазличияВерсий (DataHistoryManager.GetVersionDiff)

страница

МенеджерИсторииДанных (DataHistoryManager)

ПолучитьРазличияВерсий (GetVersionDiff)

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

Синтаксис:

ПолучитьРазличияВерсий(<Данные>, <НомерВерсииПослеИзменения>, <НомерВерсииДоИзменения>)

Параметры:

<Данные> (обязательный)

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

<НомерВерсииПослеИзменения> (обязательный)

Тип: Число.
Номер версии после изменения.

<НомерВерсииДоИзменения> (необязательный)

Тип: Число, Неопределено.
Номер версии до изменения. Если указано значение Неопределено, сравнение выполняется с предыдущей версией.
Значение по умолчанию: Неопределено.

Возвращаемое значение:

Тип: Структура, Неопределено.
Неопределено - если версия создана по удалению данных.
Структура - если версия создана по изменению или добавлению данных. Содержит измененные поля версии после изменения. Ключ структуры - имя реквизита. Значение содержит структуру со значениями полей до и после изменения. Данная структура не содержит независимые разделители и их значения. Если объект содержит табличные части, то ключом является имя табличной части, а значением - массив, каждый элемент которого представляет собой фиксированную структуру информации об измененной записи табличной части.
Структура изменения поля:

  • ЗначениеПослеИзменения (AfterChangeValue) - тип Число, Строка, Дата, Булево, УникальныйИдентификатор, Ссылка на объект информационной базы. Значение в версии после изменения. Ссылки предоставляются в виде структуры.
  • ЗначениеДоИзменения (BeforeChangeValue) - тип Число, Строка, Дата, Булево, УникальныйИдентификатор, Ссылка на объект информационной базы. Значение в версии до изменения. Значение не заполняется если не существует версии до изменения (версия после изменения с номером 1), или поле в версии до изменения не учитывается в истории. Ссылки предоставляются в виде структуры.

Структура изменения для табличной части:

  • НомерСтрокиВВерсииПослеИзменения (RowNumberInAfterChangeVersion) – тип Число. Номер строки в версии после изменения. Изменение строк с меньшим номером приводит к тому, что номер строки меняется между версиями. Может потребоваться отобразить отчет по изменению относительно новой версии. Установка номера строки в новой версии для удаленной строки облегчает определение позиции строки относительно других строк в новой версии.
  • НомерСтрокиВВерсииДоИзменения (RowNumberInBeforeChangeVersion) – тип Число. Номер строки в версии до изменения. Изменение строк с меньшим номером приводит к тому, что номер строки меняется между версиями. Может потребоваться отобразить отчет по изменению относительно старой версии. Установка номера строки в старой версии для добавленной строки облегчает определение позиции строки относительно других строк в старой версии.
  • КоличествоИзмененныхСтрок (ChangedRowCount) – тип Число. Количество измененных строк, для создания записи с номером "1".
  • ВидИзмененияСтрокиДанных (DataRowChangeType) – тип ВидИзмененияСтрокиДанных. Тип изменения записи табличной части.
  • В зависимости от типа изменения строки структура полей содержит:
  • Создание – Для каждого реквизита табличной части добавляется элемент. Ключ - имя реквизита табличной части. Значение содержит значение реквизита табличной части, установленное в строке после изменения.
  • Изменение – Для каждого реквизита табличной части добавляется элемент. Ключ - имя реквизита табличной части. Значение содержит структуру "Изменение реквизита". Структура аналогична для изменения реквизита объекта.
  • Удаление – Для каждого реквизита табличной части, добавляется элемент. Ключ - имя реквизита табличной части. Значение содержит значение реквизита табличной части, установленное в строке, после изменения.
  • Перемещение – Свойство не устанавливается.

Структура для ссылок:

  • Ссылка (Ref) - тип Ссылка на объект информационной базы. Ссылка на объект.
  • Представление (Presentation) - тип Строка. Представление ссылки.

Описание:

Получает набор изменений между версиями.

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

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

Пример:

// Вывод в консоль названий добавленных, 

// удаленных позиций, изменений цены позиции


РазличиеЗаказов = ИсторияДанных.ПолучитьРазличияВерсий(
    Документы.Заказ.НайтиПоНомеру("0000001"), 2, 1);
Для Каждого Позиция Из РазличиеЗаказов.ПозицииЗаказа Цикл
     Если Позиция.ВидИзмененияСтрокиДанных
         = ВидИзмененияСтрокиДанных.Добавление Тогда
        Сообщить("Добавлена позиция " + Позиция.Продукция);
     Иначе Если Позиция.ВидИзмененияСтрокиДанных 
        = ВидИзмененияСтрокиДанных.Удаление Тогда
        Сообщить("Удалена позиция " + Позиция.Продукция);
     Иначе Если Позиция.ВидИзмененияСтрокиДанных 
        = ВидИзмененияСтрокиДанных.Изменение Тогда
        Сообщить("Изменена позиция."
            +  " Старая цена = " + Позиция.Цена.СтароеЗначение 
            +  " Новая цена = " + Позиция.Цена.НовоеЗначение);
     КонецЕсли;
КонецЦикла;

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

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


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