Описание последней загрузки. Возвращает описание последней загрузки классификатора.
// Возвращает описание последней загрузки классификатора.
//
// Возвращаемое значение:
// Структура - содержит поля:
// * ДатаПоследнейЗагрузки - Дата - Дата последней загрузки (часовой пояс сеанса).
// * УниверсальнаяДатаПоследнейЗагрузки - Дата - Дата последней загрузки (UTC).
// * ДнейНазад - Число - Количество дней от последней загрузки.
// * Представление - Строка - Описание, например "Адресный классификатор был загружен
// сегодня.";
// * НеобходимоОбновление - Булево - Истина, если количество дней от последней загрузки превышает
// период актуальности.
//
Функция ОписаниеПоследнейЗагрузки(ИдентификаторРегиона = Неопределено) Экспорт
Результат = Новый Структура("ДнейНазад, ДатаПоследнейЗагрузки, УниверсальнаяДатаПоследнейЗагрузки, Представление, НеобходимоОбновление");
Запрос = Новый Запрос();
// Определяем дату последней загрузки.
Если ЗначениеЗаполнено(ИдентификаторРегиона) Тогда
ТекстЗапроса = "ВЫБРАТЬ ПЕРВЫЕ 1
| ЕСТЬNULL(ЗагруженныеВерсииАдресныхСведений.ДатаВерсии, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) КАК ДатаЗагрузки
|ИЗ
| РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты
| ПРАВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗагруженныеВерсииАдресныхСведений КАК ЗагруженныеВерсииАдресныхСведений
| ПО АдресныеОбъекты.КодСубъектаРФ = ЗагруженныеВерсииАдресныхСведений.КодСубъектаРФ
| ГДЕ АдресныеОбъекты.Идентификатор = &ИдентификаторРегиона
|
|УПОРЯДОЧИТЬ ПО
| ДатаВерсии";
Запрос.УстановитьПараметр("ИдентификаторРегиона", Новый УникальныйИдентификатор(ИдентификаторРегиона));
Иначе
ТекстЗапроса = "ВЫБРАТЬ ПЕРВЫЕ 1
| ЕСТЬNULL(ЗагруженныеВерсииАдресныхСведений.ДатаВерсии, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) КАК ДатаЗагрузки
|ИЗ
| РегистрСведений.ЗагруженныеВерсииАдресныхСведений КАК ЗагруженныеВерсииАдресныхСведений
|УПОРЯДОЧИТЬ ПО
| ДатаЗагрузки УБЫВ";
КонецЕсли;
Запрос.Текст = ТекстЗапроса;
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
ДатаПоследнейЗагрузки = Выборка.ДатаЗагрузки;
Иначе
Результат.НеобходимоОбновление = Ложь;
Результат.Представление = НСтр("ru = 'Адресный классификатор еще не загружался.'");
Возврат Результат;
КонецЕсли;
Результат.УниверсальнаяДатаПоследнейЗагрузки = ДатаПоследнейЗагрузки;
Результат.ДатаПоследнейЗагрузки = МестноеВремя(ДатаПоследнейЗагрузки, ЧасовойПоясСеанса());
НачалоПериода = НачалоДня(ТекущаяУниверсальнаяДата());
КонецПериода = НачалоДня(ДатаПоследнейЗагрузки);
ДнейРазницы = Цел((НачалоПериода - КонецПериода) / 86400);
Представление = "";
Если ДнейРазницы = 0 Тогда
Представление = НСтр("ru = 'Адресный классификатор был загружен сегодня.'");
ИначеЕсли ДнейРазницы = 1 Тогда
Представление = НСтр("ru = 'Адресный классификатор был загружен вчера.'");
ИначеЕсли ДнейРазницы = 2 Тогда
Представление = НСтр("ru = 'Адресный классификатор был загружен позавчера.'");
ИначеЕсли ДнейРазницы > 2 Тогда
Представление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Адресный классификатор был загружен %1 назад.'"),
ОбщегоНазначения.ИнтервалВремениСтрокой(КонецПериода, НачалоПериода));
КонецЕсли;
Результат.НеобходимоОбновление = ДнейРазницы > 30; // 1 месяц
Результат.ДнейНазад = ДнейРазницы;
Результат.Представление = Представление;
Возврат Результат;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
НеотображавшиесяРазделыОписанияИзменений (БСП)
ПараметрыЗагрузкиКлассификатораАдресов (БСП)
ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки (БСП)
ПоследняяВерсияОтображенияИзмененийСистемы (БСП)