HelpF.pro

Сравнение двух структур

Код 1C v 8.х
 // Сравнение 2-х стурктур
// Возвращает структуру с полями которые отличаются и значением из сравниваемой
// Если в стСравнимое нет нужного поля,то в результат добавляется поля = Неопределенно
// стОсновная, стСравнимое - сравниваемые структуры
// ДоПервойРазницы - ищет только одно отличие
Функция СравнитьСтруктуры(стОсновная, стСравнимое,ДоПервойРазницы = Ложь) Экспорт
Результат = Новый Структура;

Для каждого текПоле из стОсновная цикл
ЗначениеСравнение = ?(стСравнимое.Свойство(текПоле.Ключ), стСравнимое[текПоле.Ключ], Неопределено);
Если текПоле.Значение ЗначениеСравнение тогда
Результат .Вставить(текПоле.Ключ,ЗначениеСравнение);
Если ДоПервойРазницы тогда
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;

Возврат Результат;
КонецФункции

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq8/view/1372.html