ДополнитьСписок (БСП)

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

Дополнить список.

Функция ДополнитьСписок(СписокПриемник, СписокИсточник, КонтролироватьТип = Неопределено, ДобавлятьНовые = Истина) Экспорт
	Если СписокПриемник = Неопределено Или СписокИсточник = Неопределено Тогда
		Возврат Неопределено;
	КонецЕсли;
	
	ЗаменятьСуществующие = Истина;
	ЗаменятьПредставление = ЗаменятьСуществующие И ДобавлятьНовые;
	
	Результат = Новый Структура;
	Результат.Вставить("Всего", 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
///////////////////////////////////////////////////////////////////////////////////////////////////////

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

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

ДополнитьПриоритетныеДанныеОбмена (БСП)

ДополнитьПолучателей (БСП)

ДополнитьТелоПисьмаПодваломВложения (БСП)

ДополнитьТаблицу (БСП)

ДополнитьСвязиОбъектовМетаданных (БСП)

ДополнитьНастройкиПроверкиАдреса (БСП)

ДополнитьОтборыИзСтруктуры (БСП)

ДополнитьСтруктуруКлючом (БСП)

ДополнитьМассив (БСП)

1С Менеджер конфигураций