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

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

Сведения загрузке субъектов. Возвращает информацию о состоянии загруженности регионов.

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

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

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

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

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

ДействующееСогласиеНаОбработкуПерсональныхДанных (БСП)

ПослеЗагрузкиДанных (БСП)

ТипыСубъектов (БСП)

ПредставлениеСубъекта (БСП)

ДоступнаЗагрузкаАдресныхСведенийИзИнтернет (БСП)

ОписаниеДанныхСубъекта (БСП)

МетаданныеПоТипамСубъекта (БСП)

Синтакс-помощник БСП