КодРегионаПоНаименованию (БСП)

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

Код региона по наименованию. Возвращает код региона по наименованию.

// Возвращает код региона по наименованию.
//
// Параметры:
//    Название - Строка - наименование или полное наименование (с сокращением) региона.
//                        Например, "Московская" или Московская обл".
//
// Возвращаемое значение:
//    Число        - код региона, например, 50.
//    Неопределено - если данные не найдены.
//
Функция КодРегионаПоНаименованию(Название) Экспорт
	
	Запрос = Новый Запрос("
		|ВЫБРАТЬ 
		|	Варианты.КодСубъектаРФ
		|ИЗ (
		|	ВЫБРАТЬ ПЕРВЫЕ 1
		|		1             КАК Порядок,
		|		КодСубъектаРФ КАК КодСубъектаРФ
		|	ИЗ
		|		РегистрСведений.АдресныеОбъекты
		|	ГДЕ
		|		Уровень = 1 
		|		И Наименование = &Название
		|
		|	ОБЪЕДИНИТЬ ВСЕ
		|
		|	ВЫБРАТЬ ПЕРВЫЕ 1
		|		2             КАК Порядок,
		|		КодСубъектаРФ КАК КодСубъектаРФ
		|	ИЗ
		|		РегистрСведений.АдресныеОбъекты
		|	ГДЕ
		|		Уровень = 1 
		|		И Наименование = &Наименование
		|		И Сокращение   = &Сокращение
		|) КАК Варианты
		|
		|УПОРЯДОЧИТЬ ПО
		|	Варианты.Порядок
		|");
		
	ЧастиСлова = АдресныйКлассификаторСлужебный.НаименованиеИСокращение(Название);
	Запрос.УстановитьПараметр("Наименование", ЧастиСлова.Наименование);
	Запрос.УстановитьПараметр("Сокращение",   ЧастиСлова.Сокращение);
	Запрос.УстановитьПараметр("Название",     Название);
	
	Выборка = Запрос.Выполнить().Выбрать();
	Если Выборка.Следующий() Тогда 
		Возврат Выборка.КодСубъектаРФ;
	КонецЕсли;

	// Если не нашли, то подсмотрим еще и в классификаторе - макете.
	Классификатор = РегистрыСведений.АдресныеОбъекты.КлассификаторСубъектовРФ();
	
	Фильтр = Новый Структура("Наименование", Название);
	Варианты = Классификатор.НайтиСтроки(Фильтр);
	Если Варианты.Количество() = 0 Тогда
		Фильтр.Вставить("Наименование", ЧастиСлова.Наименование);
		Фильтр.Вставить("Сокращение",   ЧастиСлова.Сокращение);
		Варианты = Классификатор.НайтиСтроки(Фильтр);
	КонецЕсли;
	
	Если Варианты.Количество() > 0 Тогда
		Возврат Варианты[0].КодСубъектаРФ;
	КонецЕсли;
	
	Возврат Неопределено;
КонецФункции

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

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

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

НаименованиеРегионаПоКоду (БСП)

КодРегиона (БСП)

СведенияОРегионе (БСП)

СведенияОбАдресах (БСП)

СведенияОбАдресе (БСП)

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

СтранаМираПоКодуИлиНаименованию (БСП)

ОпределитьРегионПоИндексу (БСП)

СведенияОЗагрузкеСубъектовРФ (БСП)

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