Список домов. Возвращает список домов по идентификатору адресного объекта, поиск по подобию.
// Возвращает список домов по идентификатору адресного объекта, поиск по подобию.
//
// Параметры:
// ИдентификаторАдресногоОбъекта - УникальныйИдентификатор - Родительский объект.
// СтрокаПоиска - Строка - Текст, отбора в списке домов.
//
// Возвращаемое значение:
// ТаблицаЗначений - найденные варианты.
//
Функция СписокДомов(ИдентификаторАдресногоОбъекта, Знач СтрокаПоиска, ПорцияПриПоиске = 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
///////////////////////////////////////////////////////////////////////////////////////////////////////
ДоменРасположенияСерверовИПП (БСП)
ДоменАдресаКонтактнойИнформации (БСП)