ДанныеСтраныМира (БСП)

Автор: 1С
ОбщийМодуль.УправлениеКонтактнойИнформацией
БСП

Данные страны мира. Возвращает данные о стране по справочнику стран мира или классификатору ОКСМ.

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

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

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

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

ДанныеКлассификатораСтранМираПоНаименованию (БСП)

ДанныеКлассификатораСтранМираПоКоду (БСП)

СтранаМираПоДаннымКлассификатора (БСП)

КоллекцияСтранМираПоДаннымКлассификатора (БСП)

СтранаМираОбработкаВыбора (БСП)

ОбновитьСуществующиеСтраныМира (БСП)

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

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

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

Синтакс-помощник БСП с нейросетевым ассистентом