С удивлением обнаружил, что а) объект НастройкаПериода в тонком клиенте не существует, б) на ИС именно идейной копии старого привычного варианта нету, в) не всем клиентам нравится "Произвольный период", штатно заложенный в платформу. Ну вот не радуют их этим нынешние типовые конфы. Поэтому быстренько сляпал своё, для модального и немодального вызовов, ну и почему бы не выложить? Публикация представляет собой обработку, реализующую функционал окна выбора, и описания её вызова. Параметры вызова предусматривают исходное указание периода и регулировку видимости закладок "Интервал" и "Период". Для желающих встроен также "Стандартный период".
С некоторой степенью вероятности это баян, а я, возможно, просто не умею искать. Так что, можно пинать и необязательно плюсить.
Найденные коллегами примеры похожих решений: //infostart.ru/public/77517/ //infostart.ru/public/194190/ //infostart.ru/public/175213/
Примеры вызова (сами вызывающие процедуры, в которые обёрнута форма, и собственно их инициация). Естественно, при немодальном вызове не забывайте вставить код, указанный в "ОбработкаОповещения". Наверняка есть ещё несколько способов вызова, пользуйтесь, как кому удобнее, я предлагаю лишь два из многих вариантов.
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
// ...другой код...
Если ИмяСобытия="OnPeriodSelect" Тогда
Предупреждение("Получен период "+ПредставлениеПериода(Параметр.НачалоПериода,Параметр.КонецПериода));
КонецЕсли;
// ...другой код...
КонецПроцедуры
&НаКлиенте
Функция ВвестиПериодМодально(рПараметры="") Экспорт
Попытка
Если ТипЗнч(рПараметры)<>Тип("Структура") Тогда
рПараметры=Новый Структура;
КонецЕсли;
пар=Новый Структура;
пар.Вставить("НачалоПериода",?(рПараметры.Свойство("НачалоПериода"),рПараметры.НачалоПериода,Дата(1,1,1)));
пар.Вставить("КонецПериода",?(рПараметры.Свойство("КонецПериода"),рПараметры.КонецПериода,Дата(3999,12,31)));
пар.Вставить("ДоступенИнтервал",?(рПараметры.Свойство("ДоступенИнтервал"),рПараметры.ДоступенИнтервал,Истина));
пар.Вставить("ДоступенПериод",?(рПараметры.Свойство("ДоступенПериод"),рПараметры.ДоступенПериод,Истина));
пар.Вставить("ВызывающаяФорма",?(рПараметры.Свойство("ВызывающаяФорма"),рПараметры.ВызывающаяФорма,Неопределено));
пар.Вставить("ЭтоМодальныйРежим",Истина);
рез=ОткрытьФормуМодально("Обработка.ВыборПроизвольногоПериода.Форма.ВыборПериода",пар);
Если ТипЗнч(рез)<>Тип("Структура") Тогда // выбрана отмена
Возврат Новый Структура("НачалоПериода,КонецПериода",пар.НачалоПериода,пар.КонецПериода);
Иначе
Возврат Новый Структура("НачалоПериода,КонецПериода",рез.Начало,рез.Конец);
КонецЕсли;
Исключение
Сообщить("ВвестиПериодМодально, ошибка: "+ОписаниеОшибки(),СтатусСообщения.ОченьВажное);
Возврат Новый Структура("НачалоПериода,КонецПериода",Дата(1,1,1),Дата(3999,12,31));
КонецПопытки;
КонецФункции
&НаКлиенте
Процедура ВвестиПериод(рПараметры="") Экспорт
Попытка
Если ТипЗнч(рПараметры)<>Тип("Структура") Тогда
рПараметры=Новый Структура;
КонецЕсли;
пар=Новый Структура;
пар.Вставить("НачалоПериода",?(рПараметры.Свойство("НачалоПериода"),рПараметры.НачалоПериода,Дата(1,1,1)));
пар.Вставить("КонецПериода",?(рПараметры.Свойство("КонецПериода"),рПараметры.КонецПериода,Дата(3999,12,31)));
пар.Вставить("ДоступенИнтервал",?(рПараметры.Свойство("ДоступенИнтервал"),рПараметры.ДоступенИнтервал,Истина));
пар.Вставить("ДоступенПериод",?(рПараметры.Свойство("ДоступенПериод"),рПараметры.ДоступенПериод,Истина));
пар.Вставить("ВызывающаяФорма",?(рПараметры.Свойство("ВызывающаяФорма"),рПараметры.ВызывающаяФорма,Неопределено));
пар.Вставить("ЭтоМодальныйРежим",Ложь);
ОткрытьФорму("Обработка.ВыборПроизвольногоПериода.Форма.ВыборПериода",пар);
Исключение
Сообщить("ВвестиПериод, ошибка: "+ОписаниеОшибки(),СтатусСообщения.ОченьВажное);
КонецПопытки;
КонецПроцедуры
&НаКлиенте
Процедура КомандаВызоваМодально(Команда)
// например, может применяться где-то посередине кода, где надо запросить период
рез=ВвестиПериодМодально();
Предупреждение("Получен период "+ПредставлениеПериода(рез.НачалоПериода,рез.КонецПериода));
КонецПроцедуры
&НаКлиенте
Процедура КомандаВызоваНемодально(Команда)
// например, может применяться из другой формы, когда на ней надо указать период
пар=Новый Структура("ВызывающаяФорма",ЭтаФорма.УникальныйИдентификатор);
ВвестиПериод(пар);
КонецПроцедуры