В тех конфигурациях которые я видел пользователь должен настраивать каждый список документов (журнал) отдельно. Иначе открывается список без ограничения во времени. Мне показалось, что это не удобно. И появилось следующее решение:
В плане видов характеристик "Настройки пользователя" добавляем два элемента (можно в отдельной папочке):
ЗначениеПериодаЖурналов -тип строка 300 //здесь будим хранить значение периода для открываемого журнала
ИспользоватьИнтервалВремениПриОткрытииЖурналов - булево - определяет следует ли использовать "общий" период при открытии
В справочнике "Пользователи" в форме элемента в конец двух процедур добавляем:
ПРОЦЕДУРА ДеревоНастроекНачалоВыбора ****
Если ЭлементыФормы.ДеревоНастроек.ТекущаяСтрока.Настройка = ПланыВидовХарактеристик.НастройкиПользователей.ЗначениеПериодаЖурналов Тогда
СтандартнаяОбработка = Ложь;
НастройкаПериода=НОВЫЙ НастройкаПериода;
Если НЕ СокрЛП(ЭлементыФормы.ДеревоНастроек.ТекущаяСтрока.Значение)="" тогда
НастройкаПериода=ЗначениеИзСтрокиВнутр(СокрЛП(ЭлементыФормы.ДеревоНастроек.ТекущаяСтрока.Значение));
КонецЕсли;
Если НастройкаПериода.Редактировать() Тогда
ЭлементыФормы.ДеревоНастроек.ТекущаяСтрока.Значение=ЗначениеВСтрокуВнутр(НастройкаПериода);
Иначе
ЭлементыФормы.ДеревоНастроек.ТекущаяСтрока.Значение="";
КонецЕсли;
КонецЕсли;
Процедура ДеревоНастроекПриВыводеСтроки ****
Если ДанныеСтроки.Настройка = ПланыВидовХарактеристик.НастройкиПользователей.ЗначениеПериодаЖурналов Тогда Элемент.Колонки.Значение.ЭлементУправления.РедактированиеТекста=Ложь; КонецЕсли;
ОБЩИЕ МОДУЛИ - Работа с диалогами - ПРОЦЕДУРА УстановитьОтборПоОрганизации ((тоже в конец): ****
Мой.УстановитьИнтервалПросмотра(Форма);
Данная процедура использована потому что присутствует наверное во всех процедурах ПриОткрытии ФормСписковДокументов
Общий модуль "Мой":
Процедура УстановитьИнтервалПросмотра(Форма) Экспорт
Если УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ИспользоватьИнтервалВремениПриОткрытииЖурналов")=Истина Тогда
Попытка
Если Найти(СокрЛП(Форма.ДокументСписок),"ДокументСписок.")>0 Тогда
СохраненнаяНастройкаПериода=СокрЛП(УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ЗначениеПериодаЖурналов"));
Если СохраненнаяНастройкаПериода="" Тогда
Сообщить("Нет сохраненной настройки периода для открытия Журналов",СтатусСообщения.Внимание);
Иначе
СП=Форма.ЭлементыФормы.ДокументСписок.СтандартныйПериод;
Если НЕ (СП.ДатаНачала=Дата(1,1,1) И
СП.ДатаОкончания=Дата(1,1,1) И
СП.ЗначениеПериода=Дата(1,1,1) И
СП.ВариантНачала=ВариантГраницыИнтервала.БезОграничения И
СП.ВариантОкончания=ВариантГраницыИнтервала.БезОграничения И
(СП.ВариантПериода=Неопределено или
СП.ВариантПериода=ВариантПериода.ПроизвольныйИнтервал)) Тогда
//Оставим индивидуальную настройку
Возврат;
КонецЕсли;
ЗначениеДляОтбора=ЗначениеИзСтрокиВнутр(СокрЛП(УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ЗначениеПериодаЖурналов")));
ПолеОтбора = Форма.ДокументСписок.Отбор.Дата;
ПолеОтбора.ВидСравнения = ВидСравнения.ИнтервалВключаяГраницы;
ПолеОтбора.ЗначениеС = ЗначениеДляОтбора.ДатаНачала;
ПолеОтбора.ЗначениеПо = ЗначениеДляОтбора.ДатаОкончания;
ПолеОтбора.Использование = Истина;
Форма.ЭлементыФормы.ДокументСписок.СтандартныйПериод.НастройкаПериода.УстановитьПериод(ЗначениеДляОтбора.ДатаНачала,ЗначениеДляОтбора.ДатаОкончания);
КонецЕсли;
КонецЕсли;
Исключение
КонецПопытки;
КонецЕсли;
КонецПроцедуры
Теперь пользователь может сохранить в своих настройках «свой интервал» и включать/отключать режим открытия списка в интервале.
При этом, для каждого списка (журнала) можно установить «свой» интервал, и тогда будет действовать он. Т.Е. «общий интервал» из настроек пользователя будет применяться только к тем спискам (журналам) у которых период промотра – без ограничения.
Делалось для "Бухгалтерия для Украины", но наверно будет работать во всех типовых от 1С
Всё.