Проверить адреса. Проверяет адреса на соответствие адресному классификатору
// Проверяет адреса на соответствие адресному классификатору
// и возвращает подходящие варианты, содержащие сведения об адресе.
//
// Параметры:
// Адреса - Массив - проверяемые адреса. Содержит структуры с полями:
// * Адрес - проверяемый адрес во внутреннем формате JSON или в XML,
// соответствующем XDTO-пакету Адрес (http://www.v8.1c.ru/ssl/contactinfo),
// или его XML-сериализация, соответствующая структуре XDTO-пакета.
// * ФорматАдреса - Строка - устарело. Формат адреса. Варианты:
// * ФИАС адрес проверяется по всем уровням адреса;
// * КЛАДР - у адреса не проверяются на соответствие номера домов, округа,
// внутригородские районы, доп. территории и элементы доп. территорий.
//
// Возвращаемое значение:
// Массив - результаты анализа. Каждый элемент массива содержит структуры с полями:
// * Ошибки - Массив - описание ошибок поиска в классификаторе. Состоит из массива структур с полями:
// ** Ключ - Строка - служебный идентификатор места ошибки (путь XPath в объекте XDTO).
// ** Текст - Строка - текст ошибки.
// ** Подсказка - Строка - текст возможного исправления ошибки.
// * Варианты - Массив - устарело. Содержит описание найденных вариантов в виде массива структур с полями:
// ** Идентификатор - УникальныйИдентификатор - уникальный идентификационный код адресного объекта ФИАС.
// ** Индекс - Число - почтовый индекс адресного объекта.
// ** КодКЛАДР - Число - код КЛАДР ближайшего объекта.
// ** OKATO - Число - код общероссийского классификатора объектов административно-территориального деления.
// ** ОКТМО - Число - код общероссийского классификатора территорий муниципальных образований.
// ** КодИФНСФЛ - Строка - код инспекции ФНС обслуживающей физических лиц.
// ** КодИФНСЮЛ - Строка - код инспекции ФНС обслуживающей юридические лица.
// ** КодУчасткаИФНСФЛ - Строка - код территориального участка инспекции ФНС обслуживающей физических лиц.
// ** КодУчасткаИФНСЮЛ - Строка - код территориального участка инспекции ФНС обслуживающей юридические лица.
//
// Пример:
// СтруктураПроверки = Новый Структура("Адрес, ФорматАдреса", Адрес, "ФИАС");
// РезультатыПроверки = АдресныйКлассификатор.ПроверитьАдреса(ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(СтруктураПроверки));
//
// Если РезультатыПроверки.Количество() > 0 И РезультатыПроверки.Варианты.Количество() > 0 Тогда
// КодКЛАДР = РезультатыПроверки.Варианты[0].КодКЛАДР;
// КонецЕсли;
//
Функция ПроверитьАдреса(Адреса) Экспорт
АдресаСтруктурой = Новый Массив;
Для каждого ПроверяемыйАдрес Из Адреса Цикл
Если ТипЗнч(ПроверяемыйАдрес) = Тип("Структура") Тогда
Если ПроверяемыйАдрес.Свойство("Адрес") Тогда
Адрес = Новый Структура("Адрес", АдресныйКлассификаторСлужебный.КонтактнаяИнформацияВСтруктуруJSON(ПроверяемыйАдрес.Адрес, ""))
Иначе
Адрес = "";
КонецЕсли;
Иначе
Адрес = Новый Структура("Адрес", АдресныйКлассификаторСлужебный.КонтактнаяИнформацияВСтруктуруJSON(ПроверяемыйАдрес, ""))
КонецЕсли;
АдресаСтруктурой.Добавить(Адрес);
КонецЦикла;
Результат = АдресныйКлассификаторСлужебный.РезультатПроверкиАдресовПоКлассификатору(АдресаСтруктурой);
Возврат Результат.Данные;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////