gifts2017

1Cv77. Исправление поведения множественного фильтра (МФ) типовых отчетов в части сохранения/восстановления настроек.

Опубликовал Максим Кречетов (piloturs) в раздел Программирование - Практика программирования

В большинстве российских типовых конфигураций для 1Сv7.7 (ТиС, ПУБ, Комплекс и др.) в отчетах используется множественный фильтр (МФ). Впервые он появился, более 10 лет назад, еще в ТиС 8.7, придя на смену МФ ТиС 8.6. С тех пор, аж до сего дня (24.03.2013) типовой механизм МФ содержит глюк связанный с восстановлением сохраненных настроек, хотя разработчики поют нам об обратном.

В большинстве российских типовых конфигураций для 1Сv7.7 (ТиС, ПУБ, Комплекс и др.) в отчетах используется множественный фильтр (МФ), такой как показан на 1 скрине. Впервые он появился, более 10 лет назад, еще в ТиС 8.7, придя на смену МФ ТиС 8.6 (скрин 2). С тех пор, аж до сего дня (24.03.2013) типовый механизм МФ содержит глюк связанный с восстановлением сохраненных настроек, хотя разработчики поют нам об обратном (скрин 3).


Переодически, на форумах посвященных 1С, поднимался вопрос: как полечить МФ?
Практически во всех этих ветках засветился один человек, выступавший под никами Tomba, Злопчинский, Чучундер. После его предложения, добавить в процедуру ВводНового() строчку:
глПриСменеСтрокиТаблицыМФ( 1, 0, Контекст);
вопрос сразу снимался.
Чтобы не постить постоянно, это "длинную" рекомендацию, CheBurator оформил ее в виде статьи, за которую ему плюсанули на данный момент 43 благодарных пользователя у которых все заработало.


К сожалению, у меня не заработало и я озаботившись проблемой, родил рекомендацию, как решить проблему востановления настроек МФ. В процесе тестирования работы МФ я обнаружил, что не всегда выбранные значения сохраняются в настройке. Подлечил и эту фичу.
Результаты лечения, были мной опубликованы 14.01.2007 на инфостарте в статье "ТиС: Не восстанавливается МФ в отчете - что делать? Часть 2".

Недавно обнаружил, что ещё один человек изобрел лисапед на эту тему, который опубликовал в виде разработки. Так как моей статьи уже на портале нет, то я накрапал эту "статью", как ответ на вопрос andrewks: "куда-уж проще-то?" в комментарий №2.


Вкратце, не вдаваясь в подробности "от чего, и почему", повторю свои рекомендации.
Исправления вносятся на примере отчета "ОстаткиТМЦ" из типовой конфигурации "Торговля и Склад", редакция 9.2, релиз 74.
Итак:
1. Чтобы сохраненные настройки МФ всегда востанавливались, необходимо в процедуру ВводНового() добавить строчку:
ТекСтрокаВТаблице = "";
2. Чтобы выбранные в МФ значения всегда сохранялись:
2.1. Добавляем в процедуру ОбработкаПодбора() после строки:
ТаблицаМФ.ФлВкл = 2;
строку:
глПриСменеСтрокиТаблицыМФ(1,ТекСтрокаВТаблице,Контекст);
(Внимание!!! Так как в ТиС 974 в конце процедуры ОбработкаПодбора() есть строка:
СписокЭлементовМФ.Выгрузить(ТаблицаМФ.СписокЭлементов);
то пункт 2.1 можно пропустить)
2.2. В процедуре ВыбратьПоФильтру() в самом конце, строку:
ОткрытьФорму("Обработка.ПодборОбъектов#",СписокПараметров);
заменяем на 2 строки:
ОткрытьФормуМодально("Обработка.ПодборОбъектов#",СписокПараметров);

глПриСменеСтрокиТаблицыМФ(1,ТекСтрокаВТаблице,Контекст);
2.3. В кнопки «Удалить» и «УдалитьВсе» (см. скрин №4), в поле формула, после вызова процедуры глРаботаСТаблицейМФ();
добавить
глПриСменеСтрокиТаблицыМФ(1,ТекСтрокаВТаблице,Контекст);
(Внимание!!! Для несведущих в конфигурировании. Эти две функции должны быть обязательно разделены знаком ";" - точка с запятой)


Итого в результате 4 простых правок мы имеем рабочий МФ в отчете "ОстаткиТМЦ", который можно скачать (хотя и необязательно) в прилагаемом к статье файле. Файл также содержит мою первоначальную статью "ТиС: Не восстанавливается МФ в отчете - что делать? Часть 2" в которой подробно расписано почему нужно вносить те или иные изменения. Также, чтобы интересующиеся могли сравнить мои рекомендации с "куда-уж проще-то?" рекомендациями andrewks http://infostart.ru/community/profile/114356/, я включил и его текстовый файл.


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

Благодарю за внимание.

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

Наименование Файл Версия Размер Кол. Скачив.
piloturs_fixesMF
.rar 173,55Kb
25.03.13
6
.rar 173,55Kb 6 Скачать

См. также

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

Комментарии

1. Сергей Ожерельев (Поручик) 26.03.13 11:49
(0) Оно уже мало кому надо. Лет шесть назад, когда я ещё работал с ТиС, было актуально.
2. Максим Кречетов (piloturs) 26.03.13 12:00
(1) если Вы персонально не работаете в ТиС, то это еще не значит, что это не актуально.
фирма 1С поддерживает конфиги, пользователи на них еще работают.
А фирмы переходят на "УТ", в том числе и из-за этого глюка, который "Нуралиев С.Г. и Ко" не удосужились исправить за лет этак 13.
3. Сергей (Che) Коцюра (CheBurator) 26.03.13 15:51
При открытии подбора модально - как будут вызываться и отображаться другие окна, вызываемые из модального подбора?
4. Максим Кречетов (piloturs) 26.03.13 20:52
(3) я использовал обработку "ПодборОбъектов" для отбора по значениям реквизитов. Эти значения имели простой тип.
Потому на фичу с подбором из модального режима не наступал.
Действительно мой совет № 2.2. лучше не делать.

тогда предлагаю самый "ленивый" вариант лечения МФ:
1. В процедуру ВводНового() добавить обязательно
ТекСтрокаВТаблице = "";
без этого никак.
2. В процедуру ПриВыбореЗакладки(Номер,Значение) добавить
_Панель = ?(Номер=1,Форма.ПанельИнструментов(1),Форма.ПанельИнструментов(0));
сохранение будет возможно только с закладки "Основная".
зы: если форма отчета максимизирована, то будет наблюдаться еще один визуальный глюк: в виде дырки между нижним краем отчета и панелью состояния, размером с пропавшую панель инструментов. Но это некритично. Легко забороть.
5. Максим Кречетов (piloturs) 27.03.13 19:32
Кстати проблему сохранения/восстановления настроек типовых отчетов, в которых используется для расшифровки таблиц, список значений, решает также обработка Мелёшина Дмитрия aka md "Мастер отчетов" (Выставьте кодировку Юникод в броузере, что бы не было кракозябров)
Обработка позволяет аккумулировать часто используемые конфигурации отчетов в одном списке значений, тем более, что туда можно добавить все отчеты, имеющие кнопку "обновить".
Внедрение: два чиха в глобальном модуле типовой конфигурации.

зы: обработку можно немного переделать и тогда тот кому по службе положено, сможет пользоваться не только своими настройками, но и настройками других пользователей. А это стандартными средствами невозможно.
Очень интересное решение. Рекомендую.
6. Максим Кречетов (piloturs) 18.04.13 00:48
в дополнение к (4)

есть измененная обработка "ПодборОбъектов". Подборы будут в ней работать и в модальном режиме.
7. Александр Раевский (ray-xp) 13.11.13 13:12
Спасибо, работает! Давно пользователи домогали с этим вопросом, но руки, как обычно, не доходили, были дела по-серьезнее. На счет актуальности - народу на 7-ке уйма работает, и говорить, что все съехали на 8.x преждевременно. У многих просто ресурсов не хватает на миграцию самописного специфического функционала на восьмерочные решения. Респект за открытость решения, человек Вы, как видно, не жадный до $m :-)
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа