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

Опубликовал Михаил Семенов (Shaman100M) в раздел Обработки - Обработка документов

Развитие идеи статьи 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 отключает сохранение интервала журнала вообще.

Успехов.

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

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

См. также

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



Shaman100M; +1 Ответить 2
3. Сhe Burashka (CheBurator) 19.12.07 23:03 Сейчас в теме
еще бы вместо штатного списка значений прикрутить формочку, где можно почистить историю отборов если их будет много....
4. Сhe Burashka (CheBurator) 19.12.07 23:27 Сейчас в теме
е! прикручу к своему монитору!!!
+10, однозначно!!!!
5. Сhe Burashka (CheBurator) 20.12.07 00:00 Сейчас в теме
+ сохранеямое значение настроек хорошо бы именовать не просто "_ГИБКИКЕ_..." а с неким уник.префиксом (имя списка журнала или еще что...)
Shaman100M; +1 Ответить 1
6. Сhe Burashka (CheBurator) 20.12.07 00:11 Сейчас в теме
+ еще бы хорошо - выбрал я например закладку с отбором Контрагент - отбор установился - а почему бы не сделать невидимой колонку "контрагент"...? это в порядке дежурного бреда...
7. Сhe Burashka (CheBurator) 20.12.07 05:02 Сейчас в теме
мелкая фича все же нашлась - иногда по логике "Полный" должен вставать в первую позицию - а не встает!
8. Михаил Семенов (Shaman100M) 1176 20.12.07 09:18 Сейчас в теме
(1) + (2) действительно, пустую лучше не оставлять, - вылезает значение-номер закладки
(3) есть недоделанная формочка, с кучей кнопок, возможно будет позднее. Пока ее оставил, соблазнившись на простоту этого варианта.... А вот чистка сделана автоматом... Как только количество отборов превышает _ЗАКЛАДОК_ВСЕГО, последний отбор удаляется. Т.е. можно этот параметр уменьшить.
(5) Уникальный идентификатор для сохранения - можно, тем более, что это уже делал http://infostart.ru/profile/8196/projects/861/

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

Спасибо, кладезь!
9. Михаил Семенов (Shaman100M) 1176 20.12.07 10:13 Сейчас в теме
Обновление.
1. Для состояния "Отбор отсутствует" закладка без названия --> закладка "*". Попутно решены проблемы с доступностью кнопки "Значение".
2. Имя сохранения закладок между сеансами открытия формы завязано на ее уникальный идентификатор.
10. cs25 (cs25) 80 20.12.07 10:22 Сейчас в теме
11. Сhe Burashka (CheBurator) 20.12.07 18:51 Сейчас в теме
Если ПустоеЗначение(СокрЛП(ТЗпоЗакладкам.Отбор_Представление)) = 1 Тогда
ТЗпоЗакладкам.Отбор_Представление = "*";
КонецЕсли;

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

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

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

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