ДанныеРазличаются (БСП)

Автор: 1С
ОбщийМодуль.ОбменДаннымиСобытия
БСП

Данные различаются. Выполняет сравнение версий двух однотипных объектов.

// Выполняет сравнение версий двух однотипных объектов.
//
// Параметры:
//  Данные1 - СправочникОбъект,
//            ДокументОбъект,
//            ПланВидовХарактеристикОбъект,
//            ПланВидовРасчетаОбъект,
//            ПланСчетовОбъект,
//            ПланОбменаОбъект,
//            БизнесПроцессОбъект,
//            ЗадачаОбъект - Первая версия данных для сравнения.
//  Данные2 - СправочникОбъект,
//            ДокументОбъект,
//            ПланВидовХарактеристикОбъект,
//            ПланВидовРасчетаОбъект,
//            ПланСчетовОбъект,
//            ПланОбменаОбъект,
//            БизнесПроцессОбъект,
//            ЗадачаОбъект - Вторая версия данных для сравнения.
//  СписокСвойств - Строка - Список свойств объекта и табличных частей, разделенных запятыми.
//                           Если параметр задан, то заполнение свойств объекта будет
//                           выполняться согласно заданным свойствам, при этом параметр.
//                           ИсключаяСвойства будет проигнорирован.
//  ИсключаяСвойства - Строка -  Список свойств объекта и табличных частей, разделенных запятыми.
//                           Если параметр задан, то заполнение свойств объекта будет выполняться
//                           для всех свойств и табличных частей, исключая заданные свойства.
//
// Возвращаемое значение:
//  Истина - если версии данных различаются, иначе Ложь.
//
Функция ДанныеРазличаются(Данные1, Данные2, СписокСвойств = Неопределено, ИсключаяСвойства = Неопределено) Экспорт
	
	Если ТипЗнч(Данные1) <> ТипЗнч(Данные2) Тогда
		Возврат Истина;
	КонецЕсли;
	
	ОбъектМетаданных = Данные1.Метаданные();
	
	Если ОбщегоНазначения.ЭтоСправочник(ОбъектМетаданных) Тогда
		
		Если Данные1.ЭтоГруппа Тогда
			Объект1 = Справочники[ОбъектМетаданных.Имя].СоздатьГруппу();
		Иначе
			Объект1 = Справочники[ОбъектМетаданных.Имя].СоздатьЭлемент();
		КонецЕсли;
		
		Если Данные2.ЭтоГруппа Тогда
			Объект2 = Справочники[ОбъектМетаданных.Имя].СоздатьГруппу();
		Иначе
			Объект2 = Справочники[ОбъектМетаданных.Имя].СоздатьЭлемент();
		КонецЕсли;
		
	ИначеЕсли ОбщегоНазначения.ЭтоДокумент(ОбъектМетаданных) Тогда
		
		Объект1 = Документы[ОбъектМетаданных.Имя].СоздатьДокумент();
		Объект2 = Документы[ОбъектМетаданных.Имя].СоздатьДокумент();
		
	ИначеЕсли ОбщегоНазначения.ЭтоПланВидовХарактеристик(ОбъектМетаданных) Тогда
		
		Если Данные1.ЭтоГруппа Тогда
			Объект1 = ПланыВидовХарактеристик[ОбъектМетаданных.Имя].СоздатьГруппу();
		Иначе
			Объект1 = ПланыВидовХарактеристик[ОбъектМетаданных.Имя].СоздатьЭлемент();
		КонецЕсли;
		
		Если Данные2.ЭтоГруппа Тогда
			Объект2 = ПланыВидовХарактеристик[ОбъектМетаданных.Имя].СоздатьГруппу();
		Иначе
			Объект2 = ПланыВидовХарактеристик[ОбъектМетаданных.Имя].СоздатьЭлемент();
		КонецЕсли;
		
	ИначеЕсли ОбщегоНазначения.ЭтоПланВидовРасчета(ОбъектМетаданных) Тогда
		
		Объект1 = ПланыВидовРасчета[ОбъектМетаданных.Имя].СоздатьВидРасчета();
		Объект2 = ПланыВидовРасчета[ОбъектМетаданных.Имя].СоздатьВидРасчета();
		
	ИначеЕсли ОбщегоНазначения.ЭтоПланСчетов(ОбъектМетаданных) Тогда
		
		Объект1 = ПланыСчетов[ОбъектМетаданных.Имя].СоздатьСчет();
		Объект2 = ПланыСчетов[ОбъектМетаданных.Имя].СоздатьСчет();
		
	ИначеЕсли ОбщегоНазначения.ЭтоПланОбмена(ОбъектМетаданных) Тогда
		
		Объект1 = ПланыОбмена[ОбъектМетаданных.Имя].СоздатьУзел();
		Объект2 = ПланыОбмена[ОбъектМетаданных.Имя].СоздатьУзел();
		
	ИначеЕсли ОбщегоНазначения.ЭтоБизнесПроцесс(ОбъектМетаданных) Тогда
		
		Объект1 = БизнесПроцессы[ОбъектМетаданных.Имя].СоздатьБизнесПроцесс();
		Объект2 = БизнесПроцессы[ОбъектМетаданных.Имя].СоздатьБизнесПроцесс();
		
	ИначеЕсли ОбщегоНазначения.ЭтоЗадача(ОбъектМетаданных) Тогда
		
		Объект1 = Задачи[ОбъектМетаданных.Имя].СоздатьЗадачу();
		Объект2 = Задачи[ОбъектМетаданных.Имя].СоздатьЗадачу();
		
	Иначе
		
		ВызватьИсключение НСтр("ru = 'Задано недопустимое значение параметра [1] метода ОбщегоНазначения.ЗначенияСвойствИзменены.'");
		
	КонецЕсли;
	
	ЗаполнитьЗначенияСвойствОбъекта(Объект1, Данные1, СписокСвойств, ИсключаяСвойства);
	ЗаполнитьЗначенияСвойствОбъекта(Объект2, Данные2, СписокСвойств, ИсключаяСвойства);
	
	Возврат ДанныеИнформационнойБазыСтрокой(Объект1) <> ДанныеИнформационнойБазыСтрокой(Объект2);
	
КонецФункции

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

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

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

МакетыРазличаются (БСП)

РазличаютсяВерсииКорреспондента (БСП)

Данные (БСП)

ПриВыгрузкеДанных (БСП)

TurboConf 6 - расширение Конфигуратора 1С