Данные страны мира. Возвращает данные о стране по справочнику стран мира или классификатору ОКСМ.
// Возвращает данные о стране по справочнику стран мира или классификатору ОКСМ.
//
// Параметры:
// КодСтраны - Строка, Число - Код страны по классификатору ОКСМ. Если не указано, то поиск по коду не производится.
// Наименование - Строка - Наименование страны. Если не указано, то поиск по наименованию не производится.
//
// Возвращаемое значение:
// Структура - описание страны. Содержит поля:
// * Ссылка - СправочникСсылка.СтраныМира, Неопределено - Соответствующий элемент справочника Страны мира.
// * Наименование - Строка - Наименование страны.
// * Код - Строка - Код страны.
// * НаименованиеПолное - Строка - Полное наименование страны.
// * КодАльфа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
///////////////////////////////////////////////////////////////////////////////////////////////////////
ДанныеКлассификатораСтранМираПоНаименованию (БСП)
ДанныеКлассификатораСтранМираПоКоду (БСП)
СтранаМираПоДаннымКлассификатора (БСП)
КоллекцияСтранМираПоДаннымКлассификатора (БСП)
СтранаМираОбработкаВыбора (БСП)
ОбновитьСуществующиеСтраныМира (БСП)
СтранаМираПоКодуИлиНаименованию (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)