Данные различаются. Выполняет сравнение версий двух однотипных объектов.
// Выполняет сравнение версий двух однотипных объектов.
//
// Параметры:
// Данные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
///////////////////////////////////////////////////////////////////////////////////////////////////////