Процедура выбора интервала дат. Которая анализирует уже заполненые реквизиты ДатаНач и ДатаКон и если они соответствуют стандартному интервалу (год, месяц, квартал, с начала года, с начала квартала,...) устанавливают их при вызове диалога "Настройка периода"
Процедура УстановитьПериодОбработки()
ДеньВСекундах=24*60*60;
//Дата начала по умолчению, если не указана
ДатаН_Умолчание=НачалоДня(ТекущаяДата())-ДеньВСекундах;
//Дата окончания по умолчанию, если не указана
ДатаК_Умолчание=НачалоДня(ТекущаяДата());
НастройкаПериода = Новый НастройкаПериода;
НастройкаПериода.УстановитьПериод(?(ДатаНач=ПустаяДата, ДатаН_Умолчание, ДатаНач), ?(ДатаКон=ПустаяДата, ДатаК_Умолчание, ДатаКон));
НастройкаПериода.РедактироватьКакИнтервал=Истина;
НастройкаПериода.РедактироватьКакПериод=Истина;
НастройкаПериода.ВариантНастройки=ВариантНастройкиПериода.Период;
Если ДатаНач=ДатаКон Тогда
НастройкаПериода.ВариантПериода=ВариантПериода.День;
НастройкаПериода.ЗначениеПериода=ДатаНач;
ИначеЕсли КонецМесяца(ДатаНач)=КонецДня(ДатаКон) И ДатаНач=НачалоМесяца(ДатаКон) Тогда
НастройкаПериода.ВариантПериода=ВариантПериода.Месяц;
НастройкаПериода.ЗначениеПериода=ДатаНач;
ИначеЕсли КонецГода(ДатаНач)=КонецДня(ДатаКон) И ДатаНач=НачалоГода(ДатаКон) Тогда
НастройкаПериода.ВариантПериода=ВариантПериода.Год;
НастройкаПериода.ЗначениеПериода=ДатаНач;
ИначеЕсли КонецКвартала(ДатаНач)=КонецДня(ДатаКон) И ДатаНач=НачалоКвартала(ДатаКон) Тогда
НастройкаПериода.ВариантПериода=ВариантПериода.Квартал;
НастройкаПериода.ЗначениеПериода=ДатаНач;
ИначеЕсли ДатаНач=НачалоГода(ДатаНач) И КонецДня(ДатаКон)=КонецКвартала(ДатаКон) И Год(ДатаНач)=Год(ДатаКон) Тогда
НастройкаПериода.ВариантПериода=ВариантПериода.КварталСНачалаГода;
НастройкаПериода.ЗначениеПериода=ДатаКон;
ИначеЕсли ДатаНач=НачалоКвартала(ДатаКон) И КонецДня(ДатаКон)=КонецМесяца(ДатаКон) Тогда
НастройкаПериода.ВариантПериода=ВариантПериода.МесяцСНачалаКвартала;
НастройкаПериода.ЗначениеПериода=ДатаКон;
ИначеЕсли ДатаНач=НачалоГода(ДатаКон) И КонецДня(ДатаКон)=КонецМесяца(ДатаКон) Тогда
НастройкаПериода.ВариантПериода=ВариантПериода.МесяцСНачалаГода;
НастройкаПериода.ЗначениеПериода=ДатаКон;
ИначеЕсли ДатаНач=НачалоМесяца(ДатаКон) И Месяц(ДатаНач)=Месяц(ДатаКон) И Год(ДатаНач)=Год(ДатаКон) Тогда
НастройкаПериода.ВариантПериода=ВариантПериода.ДеньСНачалаМесяца;
НастройкаПериода.ЗначениеПериода=ДатаКон;
ИначеЕсли ДатаНач=НачалоКвартала(ДатаНач) И КонецКвартала(ДатаНач)=КонецКвартала(ДатаКон) Тогда
НастройкаПериода.ВариантПериода=ВариантПериода.ДеньСНачалаКвартала;
НастройкаПериода.ЗначениеПериода=ДатаКон;
ИначеЕсли ДатаНач=НачалоГода(ДатаКон) И Год(ДатаНач)=Год(ДатаКон) Тогда
НастройкаПериода.ВариантПериода=ВариантПериода.ДеньСНачалаГода;
НастройкаПериода.ЗначениеПериода=ДатаКон;
Иначе
НастройкаПериода.ВариантПериода=ВариантПериода.ПроизвольныйИнтервал;
КонецЕсли;
Если НастройкаПериода.Редактировать() Тогда
ДатаНач=НастройкаПериода.ПолучитьДатуНачала();
ДатаКон=НастройкаПериода.ПолучитьДатуОкончания();
КонецЕсли;
КонецПроцедуры