Общие интервалы открытия списка документов

Публикация № 66180

Управление - Не имеет значения

10
В 7.7 в настройках был вкладыш где настраивалось как открывать журналы документов, в 8 я этого не нашол :-(

В тех конфигурациях которые я видел пользователь должен настраивать каждый список документов (журнал) отдельно. Иначе открывается список без ограничения во времени. Мне показалось, что это не удобно. И появилось следующее решение:

В плане видов характеристик "Настройки пользователя" добавляем два элемента (можно в отдельной папочке):

ЗначениеПериодаЖурналов -тип строка 300 //здесь будим хранить значение периода для открываемого журнала

ИспользоватьИнтервалВремениПриОткрытииЖурналов - булево - определяет следует ли использовать "общий" период при открытии

В справочнике "Пользователи" в форме элемента в конец двух процедур добавляем:

ПРОЦЕДУРА ДеревоНастроекНачалоВыбора ****

 

Если ЭлементыФормы.ДеревоНастроек.ТекущаяСтрока.Настройка = ПланыВидовХарактеристик.НастройкиПользователей.ЗначениеПериодаЖурналов Тогда

СтандартнаяОбработка = Ложь;
НастройкаПериода=НОВЫЙ НастройкаПериода;

Если НЕ СокрЛП(ЭлементыФормы.ДеревоНастроек.ТекущаяСтрока.Значение)="" тогда
НастройкаПериода=ЗначениеИзСтрокиВнутр(СокрЛП(ЭлементыФормы.ДеревоНастроек.ТекущаяСтрока.Значение));
КонецЕсли;

Если НастройкаПериода.Редактировать() Тогда
ЭлементыФормы.ДеревоНастроек.ТекущаяСтрока.Значение=ЗначениеВСтрокуВнутр(НастройкаПериода);
Иначе
ЭлементыФормы.ДеревоНастроек.ТекущаяСтрока.Значение="";
КонецЕсли;
КонецЕсли;

 Процедура ДеревоНастроекПриВыводеСтроки ****

 

Если ДанныеСтроки.Настройка = ПланыВидовХарактеристик.НастройкиПользователей.ЗначениеПериодаЖурналов Тогда
 Элемент.Колонки.Значение.ЭлементУправления.РедактированиеТекста=Ложь;
 КонецЕсли;

 ОБЩИЕ МОДУЛИ - Работа с диалогами - ПРОЦЕДУРА УстановитьОтборПоОрганизации ((тоже в конец): ****

 

 Мой.УстановитьИнтервалПросмотра(Форма);

Данная процедура использована потому что присутствует наверное во всех процедурах ПриОткрытии ФормСписковДокументов

Общий модуль "Мой":

 Процедура УстановитьИнтервалПросмотра(Форма) Экспорт

Если УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ИспользоватьИнтервалВремениПриОткрытииЖурналов")=Истина Тогда
Попытка
Если Найти(СокрЛП(Форма.ДокументСписок),"ДокументСписок.")>0 Тогда

СохраненнаяНастройкаПериода=СокрЛП(УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ЗначениеПериодаЖурналов"));
Если СохраненнаяНастройкаПериода="" Тогда
Сообщить("Нет сохраненной настройки периода для открытия Журналов",СтатусСообщения.Внимание);
Иначе

СП=Форма.ЭлементыФормы.ДокументСписок.СтандартныйПериод;

Если НЕ (СП.ДатаНачала=Дата(1,1,1) И
СП.ДатаОкончания=Дата(1,1,1) И
СП.ЗначениеПериода=Дата(1,1,1) И
СП.ВариантНачала=ВариантГраницыИнтервала.БезОграничения И
СП.ВариантОкончания=ВариантГраницыИнтервала.БезОграничения И
(СП.ВариантПериода=Неопределено или
СП.ВариантПериода=ВариантПериода.ПроизвольныйИнтервал)) Тогда
//Оставим индивидуальную настройку
Возврат;
КонецЕсли;

ЗначениеДляОтбора=ЗначениеИзСтрокиВнутр(СокрЛП(УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ЗначениеПериодаЖурналов")));
ПолеОтбора = Форма.ДокументСписок.Отбор.Дата;
ПолеОтбора.ВидСравнения = ВидСравнения.ИнтервалВключаяГраницы;
ПолеОтбора.ЗначениеС = ЗначениеДляОтбора.ДатаНачала;
ПолеОтбора.ЗначениеПо = ЗначениеДляОтбора.ДатаОкончания;
ПолеОтбора.Использование = Истина;
Форма.ЭлементыФормы.ДокументСписок.СтандартныйПериод.НастройкаПериода.УстановитьПериод(ЗначениеДляОтбора.ДатаНачала,ЗначениеДляОтбора.ДатаОкончания);

КонецЕсли;
КонецЕсли;
Исключение
КонецПопытки;
КонецЕсли;

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

 Теперь пользователь  может сохранить в своих настройках «свой интервал» и включать/отключать режим открытия списка в интервале.

При этом, для каждого списка (журнала) можно установить «свой» интервал, и тогда будет действовать он. Т.Е. «общий интервал» из настроек пользователя будет применяться только к тем спискам (журналам) у которых период промотра – без ограничения.

 

Делалось для "Бухгалтерия для Украины", но наверно будет работать во всех типовых от 1С

Всё.

New layer...
New layer...
10

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. Saint 15 23.02.10 18:26 Сейчас в теме
Ну и зачем это нужно? :?: Открытие списка документов без ограничения по времени - это штатный и предпочтительный режим поведения платформы. Если ты для каждого списка документов будеш при открытии устанавливать период, то это создаст дополнительную нагрузку на информационную базу. А в тех случаях, когда пользователю нужен интервал по умолчанию, он может их сам себе настроить и запомнить эту настройку.
2. AnryMc 720 23.02.10 18:39 Сейчас в теме
Как писали братья Стругацкие: "Лифт должен быть расчитан на поподание в кабину самого необученного академика"

Мне зачастую трудно объяснить всем бухгалтерам, что надо настроить каждый "журнал" отдельно, а выслушивать "как они за...сь (возможны варианты) искать документы в списке за несколько лет" приходиться очень часто.
И только не надо говорить, что нужно их научить и объяснить. Во-первых - не все вменяемые и обучаемые. Во-вторых - это и в самом деле неудобно. В-третьих - что там технологично и производительно не должно "трогать" пользователя (программа создается для него и ЕГО удобства, а остальное проблемы программистов, программы, платформы, системы...)
3. Saint 15 23.02.10 18:59 Сейчас в теме
(2)
искать документы в списке за несколько лет" приходиться очень часто

Отборы вроде никто не отменял. У меня пользователи далеко не самые продвинутые, но и то я их заставил научиться хотя бы азам. :D
что там технологично и производительно не должно "трогать" пользователя

Думаю, пользователя это начнёт трогать, когда система начнёт уходить в аут.

Короче говоря, на мой взгляд такой функционал лишний и даже вредный - не нужно подстраивать платформу 8 под ограничения платформы 7.7. Но тут уже личное дело каждого на какие ему грабли наступать. ;)
Душелов; +1 Ответить
4. AnryMc 720 24.02.10 19:56 Сейчас в теме
(3) А чем отбор который я устанавливаю принудительно отличается от того что установит себе пользователь?
6. Saint 15 25.02.10 00:02 Сейчас в теме
(4) Тем, что пользователь устанавливает отбор только по необходимости, а ты их устанавливаешь принудительно и безусловно. Т.е. система ВСЕГДА будет иметь дополнительную нагрузку.
5. AnryMc 720 24.02.10 20:12 Сейчас в теме
Может кто поможет. У элемента формы Список Документов есть СтандартныйПериод - тип Настройка периода. Я могу передать в него сохраненную пользователем настройку, но при открытии она не срабатывает. Если закрыть и открыть форму повторно - все нормально. Наверно это связано с тем что настройки формы сохраняются ТОЛЬКО при ее закрытии. Как можно это обойти?
7. Dnki 06.03.10 09:52 Сейчас в теме
Я - За! Нужно программно задавать интервал. 1) Мне как пользователю приятнее видеть свой рабочий период (к началу/ концу списка). 2) Предохраняет от криворукости и порчи старых документов.
А непродвинутые пользователи сами менять не будут.
8. rustemg 8 21.04.10 09:37 Сейчас в теме
я тоже за.
Специально искал.
текущая неделя достаточно при 90%.
11. Gorr 39 07.02.14 06:47 Сейчас в теме
Однозначно - программа ради человека, а не как не иначе!)))
12. AnryMc 720 07.02.14 08:23 Сейчас в теме
(11) Gorr, Если "за", то можно поддержать "+"
13. Gorr 39 30.07.14 17:33 Сейчас в теме
(12) конечно). Скажу больше - я своих пользователей разбил на категории. При открытии журналов, в зависимости от категории используются соответствующие интервалы.
Оставьте свое сообщение