ВариантыАвтоподбора (БСП)

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

Варианты автоподбора. Возвращает список для автоподбора элемента адреса, поиск по подобию.

// Возвращает список для автоподбора элемента адреса, поиск по подобию.
//
// Параметры:
//     Текст                   - Строка                      - Текст, введенный в поле.
//     Родитель                - УникальныйИдентификатор     - Родительский объект.
//     Уровни                  - Массив, ФиксированныйМассив - Набор требуемых уровней данных. 1-7, 90, 91 - адресные
//                               объекты, -1 - ориентиры.
//     ДополнительныеПараметры - Структура                   - Описание настройке поиска. Поля:
//         * ТолькоВебСервис - Булево - Автоподбор только через веб-сервис.
//         * ТипАдреса       - Строка - Тип используемого классификатора.
//
// Возвращаемое значение:
//     Структура -  найденные варианты. Содержит поля:
//       * Отказ                        - Булево - Поставщик не доступен.
//       * ПодробноеПредставлениеОшибки - Строка - Описание ошибки, если поставщик недоступен. Неопределено, если Отказ
//                                                 = Ложь.
//       * КраткоеПредставлениеОшибки   - Строка - Описание ошибки, если поставщик недоступен. Неопределено, если Отказ
//                                                 = Ложь.
//       * Данные                       - СписокЗначение - Содержит данные для выбора. Колонки:
//             ** Представление  - Строка - Представление варианта.
//             ** Значение       - Структура - с полями Идентификатор, Муниципальный, ЗагруженныеДанные.
//
Функция ВариантыАвтоподбора(Текст, ДополнительныеПараметры) Экспорт
	
	Результат        = Новый СписокЗначений;
	КешПредставлений = Новый Соответствие;
	
	ТолькоВебСервис = ДополнительныеПараметры.Свойство("ТолькоВебСервис") И ДополнительныеПараметры.ТолькоВебСервис;
	
	ЗагруженныеАдресныеСведения = АдресныйКлассификаторПовтИсп.СведенияОЗагрузкеСубъектовРФ();
	Если Не ТолькоВебСервис Тогда
		ЗаполнитьСписокАвтоподбораЧастиАдресаВнутр(Результат, КешПредставлений, Текст, ДополнительныеПараметры, ЗагруженныеАдресныеСведения);
		Если Результат.Количество() >= 20 Тогда
			Возврат Результат;
		КонецЕсли;
	КонецЕсли;
	
	// Веб сервис 1С
	Если ЗагруженныеАдресныеСведения["КлассификаторДоступен"] = Истина Тогда
		
		Родитель = Неопределено;
		Если ДополнительныеПараметры.Свойство("Уровень") Тогда
			Если ДополнительныеПараметры.Уровень > 1 Тогда
				Родитель = ДополнительныеПараметры.Идентификатор;
			КонецЕсли;
		КонецЕсли;
		
		// Адаптация текста под поиск
		ЧастиАдреса = СтрРазделить(Текст, ",");
		Если ЧастиАдреса.Количество() > 0 Тогда
			Если СтроковыеФункцииКлиентСервер.ТолькоЦифрыВСтроке(СокрЛП(ЧастиАдреса[0])) Тогда
				ЧастиАдреса.Удалить(0);
			КонецЕсли;
			
			ТекстПоиска = СокрЛП(СтрСоединить(ЧастиАдреса, ","));
			
			ЗаполнитьСписокАвтоподбораЧастиАдресаСервис1С(Результат, КешПредставлений, ТекстПоиска, Родитель, 20, ДополнительныеПараметры);
		КонецЕсли;
	КонецЕсли;
	
	Возврат Результат;
	
КонецФункции

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

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

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

АвтоподборАдреса (БСП)

АвтоПодборАдреса (БСП)

ФорматированиеРезультатовАвтоподбора (БСП)

ЗаполнитьДанныеВыбораАвтоподбораПоСтранам (БСП)

АвтоПодбор (БСП)

ОбработкаПолученияДанныхВыбора (БСП)

УдалитьПользовательскийВариантОтчета (БСП)

ПриУдаленииПользовательскихВариантовОтчета (БСП)

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз