gifts2017

ГИБКИЕ ЗАКЛАДКИ ОТБОРА 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 отключает сохранение интервала журнала вообще.

Успехов.

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

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

См. также

Подписаться Добавить вознаграждение

Комментарии

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

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

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

...заимствование до степени схожести!!! где мой копирайт????? ;-)
12. Михаил Семенов (Shaman100M) 21.12.07 09:17
:) там в (2) в нижнем левом углу переданы права.
13. Михаил Семенов (Shaman100M) 21.12.07 11:55
Обновление, касается оформления кода: обращение к реквизитам формы вынесено в отдельные процедуры.
14. Сhe Burashka (CheBurator) 22.12.07 01:16
Отмечаю исключительную полезность разработки. Все мои менеджеры отметили повышение удобства (оперативности!) работы. Несколько раз задавали вопрос "как удалить закладку" - просьба автору подумать над этим, но имхо, это не особо актуально
15. Михаил Семенов (Shaman100M) 24.12.07 13:45
(14) Сделаем, возможно, через закладку "Другие" или через внешнюю обработку.
16. Михаил Семенов (Shaman100M) 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) 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) 26.12.07 12:04
(22) Имхо, сделаю так: по-умолчанию сохранение интервала будет отключено, он устанавливается в соответствии с настройками 1с. При смене интервала на текущей закладке (через панель инструментов или через "Действия") пользователю будет предложен режим сохранения интервала только для текущей закладки.
24. Михаил Семенов (Shaman100M) 26.12.07 18:23
Обновление.
- Доработка правильной фичи, - сохранения интервала журнала (см описание)
- Текущие значения (интервал, документ, колонка) не сохранялись при смене отбора и закрытии журнала, - только при смене закладки. Багофича исправлена.
25. Иннокентий (delete009) 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) 13.02.09 17:55
Ну, не плюсом, так добрым комментом. Спасибо.
29. Епрст (Ёпрст) 18.03.09 16:08
Имхо, первой закладкой нужно сделать вызов меню для управления всеми остальными... чтоб удалить их и т.д..
30. Михаил Семенов (Shaman100M) 18.03.09 17:10
(29) В смысле, добавить закладку без действия установки отбора с меню? так всё меню-то по идее из одной команды - удаление закладок. Можно ее так и назвать - удаление.

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

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