ОписаниеПоследнейЗагрузки (БСП)

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

Описание последней загрузки. Возвращает описание последней загрузки классификатора.

// Возвращает описание последней загрузки классификатора.
//
// Возвращаемое значение:
//     Структура - содержит поля:
//         * ДатаПоследнейЗагрузки              - Дата   - Дата последней загрузки (часовой пояс сеанса).
//         * УниверсальнаяДатаПоследнейЗагрузки - Дата   - Дата последней загрузки (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
///////////////////////////////////////////////////////////////////////////////////////////////////////

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

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

НеотображавшиесяРазделыОписанияИзменений (БСП)

ОписаниеКолонкиМакета (БСП)

ПараметрыЗагрузкиКлассификатораАдресов (БСП)

ПослеЗагрузкиТипа (БСП)

ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки (БСП)

ПоследняяВерсияОтображенияИзмененийСистемы (БСП)

ПоследнееОбновлениеДоступа (БСП)

ПоследняяПроверкаВерсииРазрешенныхНаборов (БСП)

TurboConf - расширение Конфигуратора 1С