Сведения загрузке субъектов. Возвращает информацию о состоянии загруженности регионов.
// Возвращает информацию о состоянии загруженности регионов.
//
// Возвращаемое значение:
// ТаблицаЗначений - описание состояния. Содержит колонки.
// * КодСубъектаРФ - Число - Код региона.
// * Идентификатор - УникальныйИдентификатор - Идентификатор региона.
// * Представление - Строка - Наименование и сокращение региона.
// * Загружено - Булево - Истина, если классификатор по данному региону сейчас загружен.
// * ДатаВерсии - Дата - 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
///////////////////////////////////////////////////////////////////////////////////////////////////////
СведенияОЗагрузкеСубъектовРФ (БСП)
ДействующееСогласиеНаОбработкуПерсональныхДанных (БСП)