СписокДомов (БСП)

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

Список домов. Возвращает список домов по идентификатору адресного объекта, поиск по подобию.

// Возвращает список домов по идентификатору адресного объекта, поиск по подобию.
//
// Параметры:
//     ИдентификаторАдресногоОбъекта                - УникальныйИдентификатор     - Родительский объект.
//     СтрокаПоиска                  - Строка                      - Текст, отбора в списке домов.
//
// Возвращаемое значение:
//     ТаблицаЗначений  -  найденные варианты.
//
Функция СписокДомов(ИдентификаторАдресногоОбъекта, Знач СтрокаПоиска, ПорцияПриПоиске = 20) Экспорт
	
	ВариантыДомов = КонструкторСпискаДомов();
	
	Если СтрЗаканчиваетсяНа(СтрокаПоиска, "%") Тогда
		ТочноеСовпадение = Ложь;
		СтрокаПоиска     = Лев(СтрокаПоиска, СтрДлина(СтрокаПоиска) - 1);
	Иначе
		ТочноеСовпадение = Истина;
	КонецЕсли;
	
	ЗагруженныеАдресныеСведения = АдресныйКлассификаторПовтИсп.СведенияОЗагрузкеСубъектовРФ();
	Если ЗагруженныеАдресныеСведения["ИспользоватьЗагруженные"] Тогда
		
		СписокДомовИзЗагруженныхСведений(ВариантыДомов, ИдентификаторАдресногоОбъекта, СтрокаПоиска, ТочноеСовпадение);
		
	КонецЕсли;
	
	Если ВариантыДомов.Количество() = 0 И ЗагруженныеАдресныеСведения["КлассификаторДоступен"] = Истина Тогда
		
		ТекстGETЗапроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("selectHouse?parentId=%1&limit=%2",
			Строка(ИдентификаторАдресногоОбъекта), Формат(ПорцияПриПоиске, "ЧГ=0"));
		Если ЗначениеЗаполнено(СтрокаПоиска) Тогда
			ТекстGETЗапроса = ТекстGETЗапроса + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("&text=%1",
				СокрЛП(СтрокаПоиска));
		КонецЕсли;
		
		РезультатВебСервис = ВыполнитьЗапросЧерезВебСервис(ТекстGETЗапроса);
		
		Если РезультатВебСервис.Отказ Тогда
			Возврат ВариантыДомов;
		КонецЕсли;
		
		НаименованиеЗданийИСтроений = НаименованиеВладенийИСтроений();
		
		Для каждого СведенияОДоме Из РезультатВебСервис.Данные Цикл
			
			ОписаниеДома = ОписаниеДомаИЗемельногоУчастка();
			Если СведенияОДоме.buildings.Количество() > 0 Тогда
				Для каждого СведенияОСтроении Из СведенияОДоме.buildings Цикл
					Если СтрСравнить(СведенияОСтроении.Type, "Корпус") = 0 Тогда
						ОписаниеДома.Корпус= СведенияОСтроении.Number;
					Иначе
						ОписаниеДома.НазваниеСтроения = СведенияОСтроении.Type;
						ОписаниеДома.Строение = СведенияОСтроении.Number;
					КонецЕсли;
				КонецЦикла;
			КонецЕсли;
			
			ОписаниеДома.Идентификатор    = СведенияОДоме.id;
			ОписаниеДома.Дом              = СведенияОДоме.number;
			ОписаниеДома.НазваниеВладения = СведенияОДоме.type;
			ОписаниеДома.Индекс           = Формат(СведенияОДоме.ZipCode, "ЧГ=0");
			ОписаниеДома.ОКТМО            = Формат(СведенияОДоме.oktmo, "ЧГ=0");
			ОписаниеДома.ОКАТО            = Формат(СведенияОДоме.okato, "ЧГ=0");
			ОписаниеДома.КодИФНСФЛ        = Формат(СведенияОДоме.ifnsFlCode, "ЧГ=0");
			ОписаниеДома.КодИФНСЮЛ        = Формат(СведенияОДоме.ifnsUlCode, "ЧГ=0");
			ОписаниеДома.КодУчасткаИФНСФЛ = Формат(СведенияОДоме.ifnsFlAreaCode, "ЧГ=0");
			ОписаниеДома.КодУчасткаИФНСЮЛ = Формат(СведенияОДоме.ifnsUlAreaCode, "ЧГ=0");
			
			ДобавитьИнформациюОДоме(ВариантыДомов, ОписаниеДома, НаименованиеЗданийИСтроений, СтрокаПоиска);
		КонецЦикла;
		
	КонецЕсли;
	
	ВариантыДомов.Индексы.Добавить("ДомЧислом, Дом, Корпус, Строение");
	ВариантыДомов.Сортировать("ДомЧислом, Дом, Строение, Корпус");
	
	Возврат ВариантыДомов;
	
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

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

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

ЕстьСписокДомов (БСП)

ДоменРасположенияСерверовИПП (БСП)

ПодставитьДомен (БСП)

ДоменАдресаКонтактнойИнформации (БСП)

ИдентификаторыАдреса (БСП)

АктуальныеАдресныеСведения (БСП)

ЗапросСписок (БСП)

СписокСтатусов (БСП)

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

TurboConf - расширение Конфигуратора 1С