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

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

Страна мира по коду или наименованию. Возвращает ссылку на элемент справочника страны мира по коду или наименованию.

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

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

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

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

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

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

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

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

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

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

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

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

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

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