Проверки объекта на изменения

AlexFisher 10 1

Функция для проверки объекта на изменения

Функция ОбъектМодифицирован(Объект, ПроверятьТабличныеЧасти = Истина, ПроверятьСтандартные = Истина) 
    
	Ссылка = Объект.Ссылка;
	Метаданное = Ссылка.Метаданные();
    
	Для каждого Реквизит из Метаданное.Реквизиты Цикл
		Если Объект[Реквизит.Имя] <> Ссылка[Реквизит.Имя] Тогда
			Возврат Истина;
		КонецЕсли;
	КонецЦикла;
    
	Если ПроверятьСтандартные Тогда
		Для каждого Реквизит из Метаданное.СтандартныеРеквизиты Цикл
			Если Объект[Реквизит.Имя] <> Ссылка[Реквизит.Имя] Тогда
				Возврат Истина;
			КонецЕсли;
		КонецЦикла;
	КонецЕсли;
    
    
    Если ПроверятьТабличныеЧасти Тогда
        Для каждого ТЧ из Метаданное.ТабличныеЧасти Цикл
            
            Если Объект[ТЧ.Имя].Количество() <> Ссылка[ТЧ.Имя].Количество() Тогда
                Возврат Истина;
            КонецЕсли;
                        
            Для Индекс = 0 по Объект[ТЧ.Имя].Количество()-1 Цикл
                ОбъектСтрокаТЧ = Объект[ТЧ.Имя][Индекс];
                СсылкаСтрокаТЧ = Ссылка[ТЧ.Имя][Индекс];
                Для каждого РеквизитТЧ из ТЧ.Реквизиты Цикл
                    Если ОбъектСтрокаТЧ[РеквизитТЧ.Имя] <> СсылкаСтрокаТЧ[РеквизитТЧ.Имя] Тогда
                        Возврат Истина;
                    КонецЕсли;
                КонецЦикла;
            КонецЦикла;
            
        КонецЦикла;        
    КонецЕсли;
    
    Возврат Ложь;
    
КонецФункции
0
{1} Высокая цикломатическая сложность: 20

См. также

ЗаполнитьИсточникиДанныхДляПроверкиЗапретаИзменения (БСП)

ПропуститьПроверкуЗапретаИзменения (БСП)

Проверка даты запрета изменения данных

Документ Регистратор При Проверке Записи

ПередПроверкойЗапретаИзменения (БСП)

ПропуститьПроверкуДатЗапрета (БСП)

ЗапретИзмененияПроверяется (БСП)

ПриИзмененииНомера (БСП)

Модератору