Дополнить список.
Функция ДополнитьСписок(СписокПриемник, СписокИсточник, КонтролироватьТип = Неопределено, ДобавлятьНовые = Истина) Экспорт
Если СписокПриемник = Неопределено Или СписокИсточник = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
ЗаменятьСуществующие = Истина;
ЗаменятьПредставление = ЗаменятьСуществующие И ДобавлятьНовые;
Результат = Новый Структура;
Результат.Вставить("Всего", 0);
Результат.Вставить("Добавлено", 0);
Результат.Вставить("Обновлено", 0);
Результат.Вставить("Пропущено", 0);
Если КонтролироватьТип = Неопределено Тогда
КонтролироватьТип = (СписокПриемник.ТипЗначения <> СписокИсточник.ТипЗначения);
КонецЕсли;
Если КонтролироватьТип Тогда
ОписаниеТиповПриемника = СписокПриемник.ТипЗначения;
КонецЕсли;
Для Каждого ЭлементИсточник Из СписокИсточник Цикл
Результат.Всего = Результат.Всего + 1;
Значение = ЭлементИсточник.Значение;
Если КонтролироватьТип И Не ОписаниеТиповПриемника.СодержитТип(ТипЗнч(Значение)) Тогда
Результат.Пропущено = Результат.Пропущено + 1;
Продолжить;
КонецЕсли;
ЭлементПриемник = СписокПриемник.НайтиПоЗначению(Значение);
Если ЭлементПриемник = Неопределено Тогда
Если ДобавлятьНовые Тогда
Результат.Добавлено = Результат.Добавлено + 1;
ЗаполнитьЗначенияСвойств(СписокПриемник.Добавить(), ЭлементИсточник);
Иначе
Результат.Пропущено = Результат.Пропущено + 1;
КонецЕсли;
Иначе
Если ЗаменятьСуществующие Тогда
Результат.Обновлено = Результат.Обновлено + 1;
ЗаполнитьЗначенияСвойств(ЭлементПриемник, ЭлементИсточник, , ?(ЗаменятьПредставление, "", "Представление"));
Иначе
Результат.Пропущено = Результат.Пропущено + 1;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ДополнитьПриоритетныеДанныеОбмена (БСП)
ДополнитьТелоПисьмаПодваломВложения (БСП)
ДополнитьСвязиОбъектовМетаданных (БСП)
ДополнитьНастройкиПроверкиАдреса (БСП)
ДополнитьОтборыИзСтруктуры (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)