МенеджерИсторииДанных.ПолучитьРазличияВерсий (DataHistoryManager.GetVersionDiff)
МенеджерИсторииДанных (DataHistoryManager)
ПолучитьРазличияВерсий (GetVersionDiff)
Доступен, начиная с версии 8.3.11.
Синтаксис:
ПолучитьРазличияВерсий(<Данные>, <НомерВерсииПослеИзменения>, <НомерВерсииДоИзменения>)Параметры:
<Данные> (обязательный)
Ссылка на объект или ключ записи регистра сведений, по которым создана версия.
<НомерВерсииПослеИзменения> (обязательный)
Номер версии после изменения.
<НомерВерсииДоИзменения> (необязательный)
Номер версии до изменения. Если указано значение Неопределено, сравнение выполняется с предыдущей версией.
Значение по умолчанию: Неопределено.
Возвращаемое значение:
Тип: Структура, Неопределено.Неопределено - если версия создана по удалению данных.
Структура - если версия создана по изменению или добавлению данных. Содержит измененные поля версии после изменения. Ключ структуры - имя реквизита. Значение содержит структуру со значениями полей до и после изменения. Данная структура не содержит независимые разделители и их значения. Если объект содержит табличные части, то ключом является имя табличной части, а значением - массив, каждый элемент которого представляет собой фиксированную структуру информации об измененной записи табличной части.
Структура изменения поля:
- ЗначениеПослеИзменения (AfterChangeValue) - тип Число, Строка, Дата, Булево, УникальныйИдентификатор, Ссылка на объект информационной базы. Значение в версии после изменения. Ссылки предоставляются в виде структуры.
- ЗначениеДоИзменения (BeforeChangeValue) - тип Число, Строка, Дата, Булево, УникальныйИдентификатор, Ссылка на объект информационной базы. Значение в версии до изменения. Значение не заполняется если не существует версии до изменения (версия после изменения с номером 1), или поле в версии до изменения не учитывается в истории. Ссылки предоставляются в виде структуры.
- НомерСтрокиВВерсииПослеИзменения (RowNumberInAfterChangeVersion) – тип Число. Номер строки в версии после изменения. Изменение строк с меньшим номером приводит к тому, что номер строки меняется между версиями. Может потребоваться отобразить отчет по изменению относительно новой версии. Установка номера строки в новой версии для удаленной строки облегчает определение позиции строки относительно других строк в новой версии.
- НомерСтрокиВВерсииДоИзменения (RowNumberInBeforeChangeVersion) – тип Число. Номер строки в версии до изменения. Изменение строк с меньшим номером приводит к тому, что номер строки меняется между версиями. Может потребоваться отобразить отчет по изменению относительно старой версии. Установка номера строки в старой версии для добавленной строки облегчает определение позиции строки относительно других строк в старой версии.
- КоличествоИзмененныхСтрок (ChangedRowCount) – тип Число. Количество измененных строк, для создания записи с номером "1".
- ВидИзмененияСтрокиДанных (DataRowChangeType) – тип ВидИзмененияСтрокиДанных. Тип изменения записи табличной части.
- В зависимости от типа изменения строки структура полей содержит:
- Создание – Для каждого реквизита табличной части добавляется элемент. Ключ - имя реквизита табличной части. Значение содержит значение реквизита табличной части, установленное в строке после изменения.
- Изменение – Для каждого реквизита табличной части добавляется элемент. Ключ - имя реквизита табличной части. Значение содержит структуру "Изменение реквизита". Структура аналогична для изменения реквизита объекта.
- Удаление – Для каждого реквизита табличной части, добавляется элемент. Ключ - имя реквизита табличной части. Значение содержит значение реквизита табличной части, установленное в строке, после изменения.
- Перемещение – Свойство не устанавливается.
- Ссылка (Ref) - тип Ссылка на объект информационной базы. Ссылка на объект.
- Представление (Presentation) - тип Строка. Представление ссылки.
Описание:
Получает набор изменений между версиями.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Пример:
| // Вывод в консоль названий добавленных, // удаленных позиций, изменений цены позиции РазличиеЗаказов = ИсторияДанных.ПолучитьРазличияВерсий( Документы.Заказ.НайтиПоНомеру("0000001"), 2, 1); Для Каждого Позиция Из РазличиеЗаказов.ПозицииЗаказа Цикл Если Позиция.ВидИзмененияСтрокиДанных = ВидИзмененияСтрокиДанных.Добавление Тогда Сообщить("Добавлена позиция " + Позиция.Продукция); Иначе Если Позиция.ВидИзмененияСтрокиДанных = ВидИзмененияСтрокиДанных.Удаление Тогда Сообщить("Удалена позиция " + Позиция.Продукция); Иначе Если Позиция.ВидИзмененияСтрокиДанных = ВидИзмененияСтрокиДанных.Изменение Тогда Сообщить("Изменена позиция." + " Старая цена = " + Позиция.Цена.СтароеЗначение + " Новая цена = " + Позиция.Цена.НовоеЗначение); КонецЕсли; КонецЦикла; |
Использование в версии:
Доступен, начиная с версии 8.3.11.