Много общих журналов + гибкие закладки

22.10.07

Задачи пользователя - Журналы и реестры данных

Общий журнал в ТиС имеет удобный механизм отбора, однако, жальба, что из меню можно открыть только один его экземпляр. Исправляем... А также добавляем "гибкие" закладки.
I. Много общих журналов.

Ничего нового и оригинального не предлагаю, минимум изменений в форму списка общего журнала. Зато пользователям очень удобно: можно открыть общий журнал с отбором по контрагенту, через стандартное меню - второй по складу, третий - по приходным накладным...

Идея такова: Журнал (или любая другая форма) первично открывается из меню. При повторном выборе в меню активизируется уже открытая форма с выполнением процедура модуля формы ПриПовторномОткрытии(). Вот здесь и поработаем...
Процедура ПриПовторномОткрытии()
    Если ПустоеЗначение(Форма.Параметр)=1 Тогда // это вызов из меню
        СтатусВозврата(0); // отменяем его
        ОткрытьФорму("Журнал.ЖурналОбщий.ФормаСписка#"); // и открываем новую форму сами - #
        Возврат;
    КонецЕсли;	
    // прочие операторы ПриПовторномОткрытии()
КонецПроцедуры


Можно не изменять модуль, изменить настройку меню, см. комментарий 11 от poppy. Кратче и талантливее.

II. "Гибкие" закладки.

Идея, навеянная подсказкой VasilyKushnir и Фокусником: закладки. Можно, не задумываясь, использовать метод "ЗакладкиОтбора()", однако, повторю свое скромное мнение, он не совсем удобен из-за большого количества значений отбора и, соответственно, появляющихся закладок.

В чем заключается идея:
1. Закладки создавать программно.
2. Использовать историю отборов, и, по мере того, как пользователь будет менять вид и значение отбора, создавать закладки.

Собственно, код в форме списка общего журнала ТиС

Перем ЛокЗакладки; // добавленная нами переменная модуля

//... далее функции и процедуры общего журнала

Процедура ПриУстановкеБыстрогоОтбора() // встроенная процедура, вызывается при смене вида отбора
    Перем ТекущДок;                           
	
    // добавляем в нее наши новые переменные
    Перем ТекИмяОтбора; 
    Перем ТекЗначОтбора;
    Перем ТекЗакладка;
    Перем ЧтоИщем;
 
    // ... операторы процедуры

    // ... добавляем наши строки кода в конец процедуры
    ПолучитьОтбор(ТекИмяОтбора,ТекЗначОтбора); // получили отбор

    Если Форма.ИспользоватьЗакладки()	= 0 Тогда // если первое обращение тогда создаем закладки
        Форма.ИспользоватьЗакладки(1);
        ЛокЗакладки	= СоздатьОбъект("СписокЗначений");
    КонецЕсли;    
    ЧтоИщем	= ""	+ ТекИмяОтбора	+ РазделительСтрок	+ ЗначениеВСтрокуВнутр(ТекЗначОтбора);

    ТекЗакладка	= ЛокЗакладки.НайтиЗначение(ЧтоИщем); // а может закладка уже создана?
    Если ТекЗакладка	= 0 Тогда      
        // нет, не создана, добавляем новую
        Форма.Закладки.ДобавитьЗначение(ЗначениеВВидеСтроки);                                                     
        ЛокЗакладки.ДобавитьЗначение(ЧтоИщем,""	+ ВидОтбора.ТекущаяСтрока());
        ТекЗакладка	= Форма.Закладки.РазмерСписка();
    КонецЕсли;                                      
    Форма.Закладки.ТекущаяСтрока(ТекЗакладка); // визуально делаем закладку активной
	
КонецПроцедуры // ПриУстановкеБыстрогоОтбора()



Далее нам нужно обработать выбор закладки с помощью предопределенной процедуры ПриВыбореЗакладки()
Допишем ее в модуль.

Процедура ПриВыбореЗакладки(НомЗакладки,ЗначЗакладки)
	Перем ТекИмяОтбора;
	Перем ТекЗначОтбора;
	Перем ТекВидОтбора;
	
	ТекИмяОтбора	= ЛокЗакладки.ПолучитьЗначение(НомЗакладки,ТекВидОтбора);
	ТекЗначОтбора	= ЗначениеИзСтрокиВнутр(СтрПолучитьСтроку(ТекИмяОтбора,2)); // получили значение отбора
	ТекИмяОтбора	= СтрПолучитьСтроку(ТекИмяОтбора,1); // получили имя отбора
	ТекВидОтбора	= Число(ТекВидОтбора); // получили номер текущей строки вида отбора
	
	ВидОтбора.ТекущаяСтрока(ТекВидОтбора); // устанавливаем вид отбора на форме
	ЗначениеВВидеСтроки	= ЗначЗакладки; // устанавливаем текст отбора на форме
	
// устанавливаем отбор
	Если ПустоеЗначение(ТекИмяОтбора)	= 1 Тогда
		УстановитьОтбор("");
	ИначеЕсли ТипЗначенияСтр(ТекЗначОтбора)	= "" Тогда
		УстановитьОтбор(ТекИмяОтбора,);
	Иначе	
		УстановитьОтбор(ТекИмяОтбора,ТекЗначОтбора);
	КонецЕсли;
КонецПроцедуры


И наслаждаемся дальше.

См. также

Журналы и реестры данных Программист Пользователь Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Обработка пригодится специалисту в обслуживании любых конфигураций на платформе 1С:Предприятие 7.7, особенно нетиповых конфигураций. Поможет в анализе данных реквизитов и движений документов, написании правил обмена на Конвертации ред. 2,.пригодится для обработки документов (проведения, удаления и т.д.).

2 стартмани

29.05.2020    7976    15    rusmil    4    

4

Журналы и реестры данных Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Внешний отчет позволяет отобразить реестр по любому виду документов для любой конфигурации 7.7.

1 стартмани

18.05.2015    23550    65    vv-adm    4    

2

Журналы и реестры данных Платформа 1С v7.7 Украина Абонемент ($m)

Универсальный журнал документов. 1сv7. Иногда хочется чтобы в журнале можно было отобрать документы по нескольким параметрам одновременно. Эта обработка позволяет это сделать.

1 стартмани

17.02.2014    14855    31    SER_UA_BARD    2    

3

Журналы и реестры данных Платформа 1С v7.7 OpenConf Оперативный учет 7.7 Бухгалтерский учет 7.7 Расчет 7.7 Конфигурации 1cv7 Россия Абонемент ($m)

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

1 стартмани

15.11.2013    16556    72    McSeem    4    

6
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. karaw 128 22.10.07 10:14 Сейчас в теме
2. Abadonna 3969 22.10.07 10:55 Сейчас в теме
4. Shaman100M 1151 22.10.07 11:15 Сейчас в теме
(2) Похвала от мэтра дорогого стоит :)
(3) 1. Позволяет открывать форму повторно.
2. Ну, статусвозврата(0) думаю, означает отказ в активизации первой формы,
а возврат - отмена выполнения лишних "телодвижений" в ней же.
3. karaw 128 22.10.07 11:06 Сейчас в теме
Есть 2 вопроса:
1. Что за параметр "#" в модуле при открытии формы?
2. За что в данном случае отвечают СтатусВозврата(0) и Возврат, вроде и без них нормально работает
5. vasilykushnir 63 22.10.07 11:23 Сейчас в теме
Ну что сказать? Отлично!
6. фокусник 25 22.10.07 13:17 Сейчас в теме
7. Shaman100M 1151 22.10.07 14:18 Сейчас в теме
8. vasilykushnir 63 22.10.07 15:11 Сейчас в теме
(6) Ну и что он там увидит? Лучше посмотри это
http://infostart.ru/forum/read.php?31,12637,ref=440
9. Shaman100M 1151 22.10.07 17:24 Сейчас в теме
(8) Посмотрел. Как и предполагал, - куча закладок, уходящая за горизонт. ;) Дело вкуса, конечно.
15. vasilykushnir 63 23.10.07 09:03 Сейчас в теме
(9) >Как и предполагал, - куча закладок, уходящая за горизонт

Это один вариант и редко используемый. Но там есть и второй рисунок с дополнительным полем выбора для отбора. В основном мои пользуются вторым вариантом, хотя, конечно, попадаются и мазохисты...
10. Shaman100M 1151 22.10.07 17:54 Сейчас в теме
(8) Кстати, проблема решаема. Можно сделать закладки отбора не по всем значениям отбора, а обособлено, по группе элементов / списку значений например.
11. poppy 22.10.07 18:29 Сейчас в теме
> минимум изменений в форму списка общего журнала.

Можно обойтись без изменений конфигурации, только в интерфейсе.

Пример можно посмотреть здесь http://infostart.ru/file.php?0,file=488
zaic; svsrus; lenapar; Shaman100M; +4 Ответить
12. Shaman100M 1151 22.10.07 20:14 Сейчас в теме
(11) Супер. Думал так нельзя. Оказывается, через Задача - Выполнить. В команду открытия решетку не вставишь. :)
13. Shaman100M 1151 22.10.07 20:33 Сейчас в теме
Сделал "Гибкие закладки"
14. poppy 22.10.07 20:53 Сейчас в теме
> 2. Использовать историю отборов, и, по мере того, как пользователь будет менять вид и значение отбора, создавать закладки.

Можно не только создавать закладки, но и менять их последовательность. Первые закладки желательно иметь наиболее часто и (или) недавно используемые отборы.
16. Shaman100M 1151 23.10.07 09:24 Сейчас в теме
(14) Согласен. Но это уже развитие идеи. Кнопка на форму "Управление закладками" - а там все что угодно:
- кол-во показываемых закладок;
- порядок и сортировка
- удаление
- сохранение / восстановление
- статистика обращений
- условия замещения новыми закладками
и т.д.
Отдельная тема, в общем.

(15) от них обычно больше всего заявок :)
17. karaw 128 23.10.07 09:27 Сейчас в теме
Прикольно. Еще бы довавить удаление закладок
18. svsrus 179 25.10.07 10:35 Сейчас в теме
Здорово!

Poppy плюс! Не знал тоже... Хотя пока этого и не требовалось )
19. wwizard 7 01.03.12 00:00 Сейчас в теме
Оставьте свое сообщение