ГИБКИЕ ЗАКЛАДКИ ОТБОРА II

Обработки - Обработка документов

48
Развитие идеи статьи http://infostart.ru/profile/8196/articles/245/
Доработка механизма отбора общего журнала документов, позволяющая наглядно хранить историю отборов на закладках формы.
Для ТиС 9.2 и не только.
Эта доработка общего журнала документов ("ЖурналОбщий.ФормаСписка") ТиС 9.2 позволяет использовать закладки формы для механизма отбора документов отличным от ЗакладкиОтбора() способом: закладки хранят историю отборов, разных по виду и значениям.

Как они работают:
- При установке нового отбора добавляется и перемещается на первую позицию новая закладка с заголовком-значением отбора.
- В случае если отбор ранее использовался и на форме есть его закладка, она становится текущей.
- При достижении определенного количества закладок, новые закладки добавляются за счет "выбываемых", которые "сворачиваются". Их можно открыть через последнюю закладку "Другие..."
- При переключении на выбранную закладку соответствующий отбор устанавливается автоматически.
- Для удаления закладок щелкнуть на закладку "Другие" и выбрать действие "Удалить закладки..."

Реализовано сохранение и установка текущих значений для каждой закладки о:
- текущем документе
- текущем интервале журнала
- текущей колонке (кроме колонок "Текст" без идентификатора)

Порядок использования в ТиС 9.2:
1. Текст файла вставить в модуль формы "ЖурналОбщий.ФормаСписка" между описаниями переменных модуля и блоком процедур и функций (или перед строкой "// ПРОЦЕДУРЫ И ФУНКЦИИ МОДУЛЯ")
2. Переименовать штатные процедуры модуля:
ПриУстановкеБыстрогоОтбора() в ПриУстановкеБыстрогоОтбораТиС()
ПриЗакрытии() в ПриЗакрытииТиС()
3. По желанию. Задать количество видимых закладок и закладок всего (видимых и скрываемых)
здесь сделано:
_ЗАКЛАДОК_ВСЕГО	 	= 20;
_ЗАКЛАДОК_ВИДИМЫХ	= 7;



Доработка ориентирована на общий журнал ТиС 9.2, однако также может применяться и в любой другой конфигурации, т.к. вся обработка закладок идет уже после установки отбора, который в ТиС 9.2 отрабатывается в процедуре ПриУстановкеБыстрогоОтбора()

То есть, чтобы "заточить" закладки под свою конфигурацию, нужно немного изменить в ней эту аналогичную процедуру
Процедура ВашаПроцедураОбработкиОтбора()
 	// строку в начало:
	УстановитьПараметрыЗакладки();

	// далее операторы процедуры, установка отбора...

	// строки в конец:
	ДобавитьЗакладку();
	ПолучитьПараметрыЗакладки();
КонецПроцедуры


Остались реквизиты формы, отвечающие за отбор. Для удобства обращение к ним и установка их свойств и значений вынесено в отдельные ПолучитьРеквизитФормы() и УстановитьРеквизитФормы()

Изменения от 26.12.2007
Сохранение текущего интервала журнала для каждой из закладок по умолчанию отключено.
При смене интервала журнала (меню "Действия" - "Интервал") пользователю предлагается сохранить выбранный интервал:
"ДА" - текущий интервал сохраняется и восстанавливается при повторном выборе закладки,
"НЕТ" - при выборе закладки интервал устанавливается в соответствии с настройками, действующими на момент открытия журнала
"Отмена" - оставить настройки сохранения интервала без изменения.
Настройку реагирования на смену границ интервала можно сделать, изменив в модуле инициализацию переменных:
_МОНИК_НАЧ_ИНТЕРВАЛА	= 1;		// 0 или 1 мониторим смену пользователем начала интервала
_МОНИК_КОН_ИНТЕРВАЛА	= 0;		// 0 или 1 мониторим смену пользователем конца интервала

По умолчанию вопрос о сохранении интервала выдается только при смене начала интервала журнала.
Установка обеих переменных в 0 отключает сохранение интервала журнала вообще.

Успехов.
48

Скачать файлы

Наименование Файл Версия Размер
-
.1198086333 22,25Kb
25.09.09
238
.1198086333 22,25Kb 238 Скачать

См. также

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

Комментарии
Избранное Подписка Сортировка: Древо
1. CheBurator 19.12.07 22:02 Сейчас в теме
Зачетно!!! +5
есть неувязочка маленькая.
внедрил код (колво закладок видимых = 5)
открываю ПЕРВЫЙ РАЗ ЖУРНАЛ - вижу одну закладку с наименованием "1"
потом, когда закладки множатся - она сдвигается но остается "1"
после того, как уходит в "другие" - в списке других фигурирует как "6".
При выборе ее ("6") из списка других - образуется закладка без наименования.
сие имхо навскидку связано с тем, что первый раз открывалось со штатным "бscnhsq отбор = отсутсвует"
2. CheBurator 19.12.07 23:02 Сейчас в теме
Оперативно полечил вот так:
Код
   ИначеЕсли ТЗпоЗакладкам.НайтиЗначение(ЧтоИщем,ТекНомерСтроки,"Индекс")   = 0 Тогда
      // новая закладка 
      
      ТЗпоЗакладкам.НоваяСтрока(1);
      ТЗпоЗакладкам.Отбор_Значение      = ТекЗначОтбора;
      ТЗпоЗакладкам.Отбор_Имя            = ТекИмяОтбора;
      Попытка
         ТЗпоЗакладкам.Отбор_НомерСтроки      = ВидОтбора.ТекущаяСтрока();
      Исключение
      КонецПопытки;
      Попытка
         ТЗпоЗакладкам.Отбор_Представление   = ЗначениеВВидеСтроки;
//ВСТАВКА НАЧАЛО
         Если  ПустоеЗначение(СокрЛП(ТЗпоЗакладкам.Отбор_Представление))=1
         Тогда ТЗпоЗакладкам.Отбор_Представление = "Полный";
         КонецЕсли;   
//ВСТАВКА КОНЕЦ
      Исключение
         ТЗпоЗакладкам.Отбор_Представление   = Строка(ТекЗначОтбора);
      КонецПопытки;   
Показать полностью



Shaman100M; +1 Ответить
12. Shaman100M 1187 21.12.07 09:17 Сейчас в теме
:) там в (2) в нижнем левом углу переданы права.
8. Shaman100M 1187 20.12.07 09:18 Сейчас в теме
(1) + (2) действительно, пустую лучше не оставлять, - вылезает значение-номер закладки
(3) есть недоделанная формочка, с кучей кнопок, возможно будет позднее. Пока ее оставил, соблазнившись на простоту этого варианта.... А вот чистка сделана автоматом... Как только количество отборов превышает _ЗАКЛАДОК_ВСЕГО, последний отбор удаляется. Т.е. можно этот параметр уменьшить.
(5) Уникальный идентификатор для сохранения - можно, тем более, что это уже делал http://infostart.ru/profile/8196/projects/861/

(6) Временно скрывать колонку отбора, - прикольно. :)
(7) будем проверять.

Спасибо, кладезь!
3. CheBurator 19.12.07 23:03 Сейчас в теме
еще бы вместо штатного списка значений прикрутить формочку, где можно почистить историю отборов если их будет много....
4. CheBurator 19.12.07 23:27 Сейчас в теме
е! прикручу к своему монитору!!!
+10, однозначно!!!!
5. CheBurator 20.12.07 00:00 Сейчас в теме
+ сохранеямое значение настроек хорошо бы именовать не просто "_ГИБКИКЕ_..." а с неким уник.префиксом (имя списка журнала или еще что...)
Shaman100M; +1 Ответить
6. CheBurator 20.12.07 00:11 Сейчас в теме
+ еще бы хорошо - выбрал я например закладку с отбором Контрагент - отбор установился - а почему бы не сделать невидимой колонку "контрагент"...? это в порядке дежурного бреда...
7. CheBurator 20.12.07 05:02 Сейчас в теме
мелкая фича все же нашлась - иногда по логике "Полный" должен вставать в первую позицию - а не встает!
9. Shaman100M 1187 20.12.07 10:13 Сейчас в теме
Обновление.
1. Для состояния "Отбор отсутствует" закладка без названия --> закладка "*". Попутно решены проблемы с доступностью кнопки "Значение".
2. Имя сохранения закладок между сеансами открытия формы завязано на ее уникальный идентификатор.
10. cs25 80 20.12.07 10:22 Сейчас в теме
11. CheBurator 20.12.07 18:51 Сейчас в теме
Если ПустоеЗначение(СокрЛП(ТЗпоЗакладкам.Отбор_Представление)) = 1 Тогда
ТЗпоЗакладкам.Отбор_Представление = "*";
КонецЕсли;

...заимствование до степени схожести!!! где мой копирайт????? ;-)
13. Shaman100M 1187 21.12.07 11:55 Сейчас в теме
Обновление, касается оформления кода: обращение к реквизитам формы вынесено в отдельные процедуры.
17. CheBurator 25.12.07 16:45 Сейчас в теме
Найдена офигенная багофича к релизу (13)
имеем открытый журнал, активная закладка - третья.
Закрываем журнал.
Открываем журнал.
Какая закладка активная?
19. Shaman100M 1187 25.12.07 18:01 Сейчас в теме
(17) В (16) релизе третяя.
(18) А не запутаются с одновременным выбором и пометками? Сомневающиеся не только выберут, но и пометят вдобавок...
20. CheBurator 25.12.07 18:29 Сейчас в теме
(19) согласен.. это ж обизянки... ;-)
14. CheBurator 22.12.07 01:16 Сейчас в теме
Отмечаю исключительную полезность разработки. Все мои менеджеры отметили повышение удобства (оперативности!) работы. Несколько раз задавали вопрос "как удалить закладку" - просьба автору подумать над этим, но имхо, это не особо актуально
15. Shaman100M 1187 24.12.07 13:45 Сейчас в теме
(14) Сделаем, возможно, через закладку "Другие" или через внешнюю обработку.
16. Shaman100M 1187 24.12.07 16:31 Сейчас в теме
Обновление.
- добавлена функция удаления закладок
- исправлена вторичная ошибка от 21.12, - при отборе по видам документов некорректно отображалось название закладки.
18. CheBurator 25.12.07 16:48 Сейчас в теме
Да, все таки есть, есть шоры на глазах! ;-)
что мешает на кнопку ОК повесить двойную функцию?
1. показываем СЗ с пометками
2. если есть ВКЛ пометки и нажата ОК - удаляем те, что ВКЛ, иначе - штатно...
21. CheBurator 25.12.07 18:31 Сейчас в теме
Ваще-то у меня манагеры просили удалять видимые закладки... типа как я себе представляю: удаляем текущую закладку - старые из стека не подтягиваются... а ну их в зпс!!! ПУСТЬ БУДЕТ КАК ЕСТЬ СЕЙЧАС
22. CheBurator 25.12.07 22:20 Сейчас в теме
А вот какая фича действительно нужна - где тов СЗ для закладок хранить интервал видимости журнала (по крайней мере его верхнюю границу) - а то надоело переключаясь по закладкам все время еще период перевыбирать... - это будет ПРАВИЛЬНАЯ ФИЧА!!!
23. Shaman100M 1187 26.12.07 12:04 Сейчас в теме
(22) Имхо, сделаю так: по-умолчанию сохранение интервала будет отключено, он устанавливается в соответствии с настройками 1с. При смене интервала на текущей закладке (через панель инструментов или через "Действия") пользователю будет предложен режим сохранения интервала только для текущей закладки.
24. Shaman100M 1187 26.12.07 18:23 Сейчас в теме
Обновление.
- Доработка правильной фичи, - сохранения интервала журнала (см описание)
- Текущие значения (интервал, документ, колонка) не сохранялись при смене отбора и закрытии журнала, - только при смене закладки. Багофича исправлена.
25. delete009 5 29.05.08 12:40 Сейчас в теме
Спасибо всё получилось и даже с тем что у меня есть отбор по автору на документ т.е. могу поставить дакумент и отсортировать его по автору
26. CheBurator 20.10.08 11:51 Сейчас в теме
Еще раз отмечу ОФИГЕННО-НЕСОМНЕНУЮ ПОЛЕЗНОСТЬ данной разработки. И мои манагеры и я уже не мыслим себе жизни без данного дивайса.
MUST HAVE!
27. gator 10.02.09 18:19 Сейчас в теме
Рулез, прикрутил себе, давно, еще до редизайна инфостарта,
не мыслю без этих закладок...
вот тут в усн 77 поработал, так там даже отбора штатного нет - обплевался...

искал перенумераторы, и тут заметил... раньше учетки небыло и и комменты
не принимали... и сейчас плюсануть не могу )
Немогу не плюсануть, но не могу )
28. Shaman100M 1187 13.02.09 17:55 Сейчас в теме
Ну, не плюсом, так добрым комментом. Спасибо.
29. Ёпрст 1027 18.03.09 16:08 Сейчас в теме
Имхо, первой закладкой нужно сделать вызов меню для управления всеми остальными... чтоб удалить их и т.д..
30. Shaman100M 1187 18.03.09 17:10 Сейчас в теме
(29) В смысле, добавить закладку без действия установки отбора с меню? так всё меню-то по идее из одной команды - удаление закладок. Можно ее так и назвать - удаление.

Ну, еще какие действия можно придумать:
поменять порядок закладок; сделать сохранение наборов закладок... Только... будет ли это востребовано? Менеджерам не "лениво" будет пользоваться таким большим ))) инструментом?
31. Ёпрст 1027 18.03.09 17:30 Сейчас в теме
(30) ну да..управление всеми закладками вынести первой, чтоб была всегда...
По-уму, нужно еще обработку впихнуть, с более гибкими настройками закладок..
кнопочки там и т.д и т.п...
:)

32. Shaman100M 1187 18.03.09 18:10 Сейчас в теме
(31) так да, такой функционал только обработкой.
33. CheBurator 3569 13.08.13 13:12 Сейчас в теме
Неудобство: работает отвратно при открытии общего журнала с позиционированием на нужный документ из отчета сруктуры подчиненности...
Оставьте свое сообщение