В большинстве российских типовых конфигураций для 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 //infostart.ru/community/profile/114356/, я включил и его текстовый файл.
зы: Прошу заметить, что мы изменяем только отчет (который может быть сохранен как внешний), и не затрагиваем другие объекты конфигурации, что упрощает процес обновления последней.
Благодарю за внимание.