Диалог выбора периода в "Такси" показался мне очень удобным и наглядным, поэтому возникло желание использовать нечто подобное на платформе 8.2, с которой я работаю в данный момент. Возможно, кто-то еще сочтет ее удобной и полезной.
Обработка содержит основную форму, форму выбора и макет с календарем.
Чтобы использовать эту форму в своей конфигурации перенесите форму "ФормаВыбораПериодаКакВТакси" в список общих форм, а "Макет" - в список общих макетов. При необходимосте - переименуйте их. Также в модуле формы "ФормаВыбораПериодаКакВТакси" необходимо провести замену:
РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет")
нужно заменить на
ПолучитьОбщийМакет("ИмяВашегоОбщегоМакета")
На форме, откуда вы хотите вызвать этот диалог расположите код, напимер такой:
&НаКлиенте
Процедура ПериодНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Форма = ПолучитьОбщуюФорму("ФормаВыбораПериодаКакВТакси",ЭтаФорма);
Форма.РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца;
Форма.Период.ДатаНачала = Период.ДатаНачала;
Форма.Период.ДатаОкончания = Период.ДатаОкончания;
Форма.ЗакрыватьПриЗакрытииВладельца = Истина;
Форма.ЗакрыватьПриВыборе = Истина;
Форма.Открыть();
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
Если ТипЗнч(ВыбранноеЗначение) = Тип("СтандартныйПериод") Тогда
Период = ВыбранноеЗначение;
ПериодПриИзменении(Элементы.Период);
КонецЕсли;
КонецПроцедуры
Надеюсь, форма будет кому-то полезна.
Обо всех ошибках и проблемных ситуациях сообщайте в комментариях.
Код открытый, можете использовать на свое усмотрение. буду благодарен предложениям по улучшению.
Тестировалось на 1С:Предприятие 8.2 (8.2.19.130) в различных конфигурациях: типовых и самописных.