Каталог решений - Процедура выбора периода с установкой стандартных интервалов

Процедура выбора периода с установкой стандартных интервалов

Процедура выбора периода с установкой стандартных интервалов

В наличии

Иногда стоит задача выбора стандартного интервала (год, квартал, год…)…

Категория:

Описание

Процедура выбора интервала дат. Которая анализирует уже заполненые реквизиты ДатаНач и ДатаКон и если они соответствуют стандартному интервалу (год, месяц, квартал, с начала года, с начала квартала,…) устанавливают их при вызове диалога «Настройка периода»

 

Процедура УстановитьПериодОбработки()

ДеньВСекундах=24*60*60;
//Дата начала по умолчению, если не указана
ДатаН_Умолчание=НачалоДня(ТекущаяДата())-ДеньВСекундах;
//Дата окончания по умолчанию, если не указана
ДатаК_Умолчание=НачалоДня(ТекущаяДата());

НастройкаПериода = Новый НастройкаПериода;
НастройкаПериода.УстановитьПериод(?(ДатаНач=ПустаяДата, ДатаН_Умолчание, ДатаНач), ?(ДатаКон=ПустаяДата, ДатаК_Умолчание, ДатаКон));
НастройкаПериода.РедактироватьКакИнтервал=Истина;
НастройкаПериода.РедактироватьКакПериод=Истина;
НастройкаПериода.ВариантНастройки=ВариантНастройкиПериода.Период;

Если ДатаНач=ДатаКон Тогда
НастройкаПериода.ВариантПериода=ВариантПериода.День;
НастройкаПериода.ЗначениеПериода=ДатаНач;
ИначеЕсли
КонецМесяца(ДатаНач)=КонецДня(ДатаКон) И ДатаНач=НачалоМесяца(ДатаКон) Тогда
НастройкаПериода.ВариантПериода=ВариантПериода.Месяц;
НастройкаПериода.ЗначениеПериода=ДатаНач;
ИначеЕсли
КонецГода(ДатаНач)=КонецДня(ДатаКон) И ДатаНач=НачалоГода(ДатаКон) Тогда
НастройкаПериода.ВариантПериода=ВариантПериода.Год;
НастройкаПериода.ЗначениеПериода=ДатаНач;
ИначеЕсли
КонецКвартала(ДатаНач)=КонецДня(ДатаКон) И ДатаНач=НачалоКвартала(ДатаКон) Тогда
НастройкаПериода.ВариантПериода=ВариантПериода.Квартал;
НастройкаПериода.ЗначениеПериода=ДатаНач;
ИначеЕсли
ДатаНач=НачалоГода(ДатаНач) И КонецДня(ДатаКон)=КонецКвартала(ДатаКон) И Год(ДатаНач)=Год(ДатаКон) Тогда
НастройкаПериода.ВариантПериода=ВариантПериода.КварталСНачалаГода;
НастройкаПериода.ЗначениеПериода=ДатаКон;
ИначеЕсли
ДатаНач=НачалоКвартала(ДатаКон) И КонецДня(ДатаКон)=КонецМесяца(ДатаКон) Тогда
НастройкаПериода.ВариантПериода=ВариантПериода.МесяцСНачалаКвартала;
НастройкаПериода.ЗначениеПериода=ДатаКон;
ИначеЕсли
ДатаНач=НачалоГода(ДатаКон) И КонецДня(ДатаКон)=КонецМесяца(ДатаКон) Тогда
НастройкаПериода.ВариантПериода=ВариантПериода.МесяцСНачалаГода;
НастройкаПериода.ЗначениеПериода=ДатаКон;
ИначеЕсли
ДатаНач=НачалоМесяца(ДатаКон) И Месяц(ДатаНач)=Месяц(ДатаКон) И Год(ДатаНач)=Год(ДатаКон) Тогда
НастройкаПериода.ВариантПериода=ВариантПериода.ДеньСНачалаМесяца;
НастройкаПериода.ЗначениеПериода=ДатаКон;
ИначеЕсли
ДатаНач=НачалоКвартала(ДатаНач) И КонецКвартала(ДатаНач)=КонецКвартала(ДатаКон) Тогда
НастройкаПериода.ВариантПериода=ВариантПериода.ДеньСНачалаКвартала;
НастройкаПериода.ЗначениеПериода=ДатаКон;
ИначеЕсли
ДатаНач=НачалоГода(ДатаКон) И Год(ДатаНач)=Год(ДатаКон) Тогда
НастройкаПериода.ВариантПериода=ВариантПериода.ДеньСНачалаГода;
НастройкаПериода.ЗначениеПериода=ДатаКон;
Иначе
НастройкаПериода.ВариантПериода=ВариантПериода.ПроизвольныйИнтервал;
КонецЕсли;

Если НастройкаПериода.Редактировать() Тогда
ДатаНач=НастройкаПериода.ПолучитьДатуНачала();
ДатаКон=НастройкаПериода.ПолучитьДатуОкончания();
КонецЕсли;

КонецПроцедуры

 

has been added to your cart:
Оформление заказа