СведенияОВерсииОбъекта (БСП)

Автор: 1С
ОбщийМодуль.ВерсионированиеОбъектов
БСП

Сведения версии объекта. Возвращает структуру, содержащую версию объекта и дополнительную информацию.

// Возвращает структуру, содержащую версию объекта и дополнительную информацию.
//
// Параметры:
//  Ссылка      - Ссылка - ссылка версионируемый объект;
//  НомерВерсии - Число  - номер версии объекта.
//
// Возвращаемое значение - Структура:
//                          ВерсияОбъекта - ДвоичныеДанные - сохраненная версия объекта информационной базы;
//                          АвторВерсии   - Справочник.Пользователи, Справочник.ВнешниеПользователи - 
//                                          пользователь, записавший версию объекта.
//                          ДатаВерсии    - Дата - дата записи версии объекта.
// 
// Примечание:
//  Функция может вызвать исключение, если запись не содержит данных.
//  Функцию требуется вызвать в привилегированном режиме.
//
Функция СведенияОВерсииОбъекта(Знач Ссылка, Знач НомерВерсии) Экспорт
	СообщениеНеУдалосьПолучитьВерсию = НСтр("ru = 'Не удалось получить предыдущую версию объекта.'");
	Если Не ЕстьПравоЧтенияДанныхВерсийОбъектов() Тогда
		ВызватьИсключение СообщениеНеУдалосьПолучитьВерсию;
	КонецЕсли;
	
	УстановитьПривилегированныйРежим(Истина);
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ВерсииОбъектов.АвторВерсии КАК АвторВерсии,
	|	ВерсииОбъектов.ДатаВерсии КАК ДатаВерсии,
	|	ВерсииОбъектов.Комментарий КАК Комментарий,
	|	ВерсииОбъектов.ВерсияОбъекта,
	|	ВерсииОбъектов.КонтрольнаяСумма
	|ИЗ
	|	РегистрСведений.ВерсииОбъектов КАК ВерсииОбъектов
	|ГДЕ
	|	ВерсииОбъектов.Объект = &Ссылка
	|	И ВерсииОбъектов.НомерВерсии = &НомерВерсии";
	
	Запрос.УстановитьПараметр("Ссылка", Ссылка);
	Запрос.УстановитьПараметр("НомерВерсии", Число(НомерВерсии));
	
	Результат = Новый Структура("ВерсияОбъекта, АвторВерсии, ДатаВерсии, Комментарий");
	
	Выборка = Запрос.Выполнить().Выбрать();
	Если Выборка.Следующий() Тогда
		ЗаполнитьЗначенияСвойств(Результат, Выборка);
		Результат.ВерсияОбъекта = Результат.ВерсияОбъекта.Получить();
		Если Результат.ВерсияОбъекта = Неопределено Тогда
			Результат.ВерсияОбъекта = ДанныеВерсииОбъекта(Ссылка, НомерВерсии, Выборка.КонтрольнаяСумма);
		КонецЕсли;
		
	КонецЕсли;
	
	Если Результат.ВерсияОбъекта = Неопределено Тогда
		ВызватьИсключение НСтр("ru = 'Выбранная версия объекта отсутствует в программе.'");
	КонецЕсли;
	
	Возврат Результат;
		
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

СведенияОБлокируемыхОбъектах (БСП)

ИспользоватьДопСведения (БСП)

СвойстваОбъекта (БСП)

ЗаписатьВерсиюОбъекта (БСП)

ИгнорироватьВерсиюОбъекта (БСП)

ПриПереходеНаВерсиюОбъекта (БСП)

ОткрытьОтчетПоВерсииОбъекта (БСП)

ЭтоРегистрСведений (БСП)

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз