Возвращение старого поиска в новых релизах Бухгалтерии предприятия 3.0


В последних релизах Бухгалтерии предприятия 3.0 почти во всех списках разработчики включили полнотекстовый поиск. Эта статья предназначена для тех, кто воспринимает «в штыки» такие нововведения, я расскажу, как вернуть старый поиск.

Несмотря на то, что полнотекстовый поиск на платформе 8.3 был анонсирован разработчиками достаточно давно (с платформы 8.3.5), в типовых конфигурациях активно он не применялся. В последних релизах Бухгалтерии предприятия 3.0 во многих списках разработчики включили полнотекстовый поиск. Для моих пользователей это оказалось шоком — программа перестала искать.

Конечно, полнотекстовый поиск работает, но пользователи, не видя окна «Найти» путаются. Обычный сценарий использования: Начинают ввод с клавиатуры, в процессе ввода появляется окно «Найти», где указано поле, в котором будет осуществлен поиск, искомый текст и режим поиска «По части строки».

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

Несколько дней мы жили с новым поиском. Пользователи мучались, жаловались, саботировали. Жалобы не прекращались, руководством было поставлено задание «сделать все как было».

С чего начать? Нужно понять, чем отличаются формы друг от друга. Выгрузил исходные коды конфигурации с новым поведением поиска и со старым и сравнил исходники форм.

За функциональность нового полнотекстового поиска отвечает дополнение элемента формы с типом «Строка поиска».  Стало понятно, что искать. Нашел статью на ИТС 7.3.1.5. Поиск в динамическом списке. Изучение этой статьи привело к выводу, что новый вариант работы поиска зависит от двух факторов: 1. У формы должно быть вышеуказанное дополнение элемента формы, 2. Динамический список на форме должен иметь свойство «ПоложениеСтрокиПоиска» не равное «Нет».

По идее, достаточно при создании на сервере формы присвоить свойству списка «ПоложениеСтрокиПоиска» значение «ПоложениеСтрокиПоиска.Нет», однако не со всеми формами это срабатывало, в некоторых случаях новый поиск продолжал работать. Программно удалить не созданные программно элементы формы мы не можем, однако можно управлять видимостью. Если у элемента формы «ДополнениеСтрокаПоиска» убрать видимость,  полнотекстовый новый поиск так же перестает работать. В ходе экспериментов родился следующий код, который я поместил в общем модуле:

Процедура ОтключениеНовогоПоискаВСписках(Форма) Экспорт

Список = Форма.Элементы.Найти("Список");
Если Список = Неопределено Тогда
Возврат;
КонецЕсли;

Список.ПоложениеСтрокиПоиска = ПоложениеСтрокиПоиска.Нет;

ДополнениеСтрокаПоиска = Форма.Элементы.Найти("ДополнениеСтрокаПоиска");
Если НЕ ДополнениеСтрокаПоиска = Неопределено Тогда
ДополнениеСтрокаПоиска.Видимость = Ложь;
КонецЕсли;

КонецПроцедуры

В процедуру «ОтключениеНовогоПоискаВСписках» нужно передать исправляемую форму.  Но как же это сделать для всех форм сразу?

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

Второе решение — при открытии формы вызывать процедуру, которая будет программно отключать новый поиск. Процедуру можно вызывать из какой-либо другой процедуры, запуск которой уже прописан во всех формах, в этом случае при дальнейших обновлениях нам нужно будет только следить за этой процедурой — чтобы она не изменилась. Я выбрал  ОбщийМодуль.УправлениеПечатью, в котором имеется:

ПриСозданииНаСервере(Форма, МестоРазмещенияКомандПоУмолчанию, ОбъектыПечати ) Экспорт

Эта процедура вызывается при создании на сервере формы для заполнения команд печати. В этой процедуре пишем код, вызывающий нашу функцию отключения нового поиска в списках:

МойОбщийМодуль.ОтключениеНовогоПоискаВСписках(Форма);

Бухгалтера наслаждаются старым поиском, а мы готовимся к тому моменту, когда режим совместимости «Бухгалтерии предприятия 3.0» позволит нам перенести этот функционал в расширение.

36 Comments

  1. dtripleh

    Почему не сделать через подписку на событие?

    Reply
  2. Famza

    Добрались и до нас управляемые формы в обычном приложении. И поначалу просто ужос у пользователей вызывал поиск по списку номенклатуры, несмотря на то, что поставщик прикрутил дюжину кнопок для поиска — поиск при наборе с клавиатуры не работал. Решилось по принципу «да там просто крыжик не взвели». А именно, у элемента формы, связанного с динамическим списком, реквизиту «ПоложениеСтрокиПоиска» присвоить «Авто», ну и конечно проиндексировать поиск. Инфа тут и тут. Надеюсь поможет кому-нибудь.

    Reply
  3. ardn

    (1)

    Смотрите. С формами связана только подписка на событие менеджера документа (или справочника) — «ОбработкаПолученияФормы». Но в ней можно переопределить форму до ее создания. Не очень понятно, как с помощью подписки внедриться в сам процесс создания формы.

    Reply
  4. stol6

    Новый поиск гораздо удобнее. Не знаю, что там с вашими пользователями не так…

    Reply
  5. glek

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

    Reply
  6. ardn

    (5) БП 3.0 нас таким не балует, все вызовы общих модулей строго по конкретному делу: печать, версионирование, доп отчеты и обработки и т.д. Но с «переопределяемый» полностью согласен — это лучший вариант для внедрения своего кода

    Reply
  7. klinval

    (4)

    Новый поиск гораздо удобнее. Не знаю, что там с вашими пользователями не так…

    Этот поиск не всегда ищет правильно. На форуме http://forum.infostart.ru/forum8/topic158831/ я уже описывал пару примеров для демо базы. Повторю:

    1. Дробные суммы поиск искать не умеет.

    2. Документ имеет номер ИИ00-000006. Раньше раз я помню, что документ №6 я искал: «006» в номере (количество нулей в зависимости от массовости документов, если база полу пустая то 06, если много документов то 00006 и т.д.). Сейчас же всё странно и не прозрачно: 6 — находит, 06 — находит, по 006 — уже не находит… по 000006 — находит и по ИИ00-000006 находит.

    Reply
  8. ardn

    (4) (7) Новым поиском надо уметь пользоваться, в голове постоянно держать правила составления запроса, чтобы поиск отработал корректно. Для нового поиска нужно поддерживать актуальность индекса, что не всегда возможно.

    Reply
  9. sarp

    Отлично! То что нужно, собирался заняться поиском на следующей неделе, а тут практически все есть)) Надеюсь все будет как хотелось бы)) спасибо автору!

    Reply
  10. stol6

    (4) 1. У меня ищет. 2. Обновите индекс.

    (8) За обновление индекса отвечает регламентное задание, не отключайте его. И зря вы прогибаетесь под пользователей…

    Reply
  11. klinval

    (10)

    1. У меня ищет. 2. Обновите индекс.

    Очистил индекс. Выключил полнотекстовый поиск. Включил поиск. Обновил индекс. Демо база Бухгалтерия предприятия (3.0.44.202).

    1. В базе есть документ поступления на «306 163,86 руб.» (см. «До поиска.PNG»). Копируем. Ctrl+F. Вставить. Результат — ничего не найдено. (см. «Ничего не найдено по сумме.PNG»). Меняем на «306163,86» — опять не ищет. Сделал для примера «86» — тоже не нашёл.

    В этой же базе ищу другой документ на 100 руб по «100,00» — находит, «100» — находит

    2. Делаю поиск по номеру 6 старым способом (см. «Старый поиск по номеру 6.PNG»). Мы видим документы: «РО00-000006», «КП00-000006», «КС00-000006», «ТД00-000006» и «КП00-000006». Т.е. 5 документов.

    Новым поиском по номеру 6 находит те же документы.

    Старым поиском ищу по номеру «06». Те же 5 документов.

    Новым поиском по номеру «06». Находит только документ «РО00-000006». (см. «Новый поиск по 06.PNG»). Это ошибка!. Куда делись остальные документы?

    По «006» находит «КП00-000006». Почему именно его? А где остальные?

    Вы пишите, что у вас всё находит. Я индекс очистил/обновил и у меня не работает. Прикрепил скриншоты. Прошу вас тоже показать скришотом какие документы вы ищете по какой строке поиска, что у вас работает!

    Reply
  12. stol6

    (11) В чем у тебя проблемы, я просто не понимаю.

    Открываю какой либо список. Отмечаю нужную колонку, в которой буду что-то искать.

    Жму ALT-F. Ввожу то, что ищу. Для примера ввожу дробное число 7101,32.

    Получаю нужный мне отбор.

    Reply
  13. stol6

    (11)

    Reply
  14. ardn

    (12) Alt-F — это обычный старый поиск, попробуйте найти через Ctl-F (или поле полнотекстового поиска в правом верхнем углу списка)

    Reply
  15. klinval

    (12)

    Жму ALT-F

    :))))))

    Про что я и говорю. Старый поиск (который теперь открывается по ALT+F) — работает! А новый Ctrl+F — не работает!

    Вы нажмите Ctrl+F и введите «7101,32»))

    Reply
  16. ardn

    (10) Проблемы, связанные с полнотектовым поиском хорошо описаны в статье и комментариях к ней Улучшение поиска…

    Reply
  17. stol6

    Через CTRL-F не ищет. Но по ALT-F для меня всегда был расширенный поиск, а не старый. Им всегда и пользовался.

    Reply
  18. ardn

    (17)

    Им всегда и пользовался.

    Сколько вы себя перестраивали, чтобы перед поиском нажимать на ALT-F? Раньше то можно было нажать на CTRL-F (стандартный поиск во всех приложениях) или просто начать ввод с клавиатуры.

    Reply
  19. stol6

    (18) Относительно недолго, узнав что по данному сочетанию клавиш вызывается окно расширенного поиска.

    Тогда непонятен смысл Вашей доработки. «Старый» поиск работает.

    Reply
  20. klinval

    (17)

    Но по ALT-F для меня всегда был расширенный поиск, а не старый.

    Вы сами в (4) комментарии написали

    Новый поиск гораздо удобнее.

    Из чего я сделал вывод, что расширенный поиск для вас старый. Поэтому видимо и произошло недопонимание.

    (17)

    Через CTRL-F не ищет.

    Про что и речь. Поиск работает некорректно, а принудительно выставлен фирмой 1С как основной (набор слова в списке активирует именно этот поиск, а не старый/расширенный).

    Зато 1С-ники заявляют, что документ теперь можно искать по словам «Конф Инв усл». Интересно кто-нибудь так ищет?:))

    Reply
  21. klinval

    (19)

    Тогда непонятен смысл Вашей доработки. «Старый» поиск работает.

    Да работает, но под новым сочетанием клавиш. Да и ввод слов на клавиатуре активирует именно новый поиск, что тоже неудобно… Во всех приложениях поиск Ctrl+F, а тут Альт+F. Просто вопрос удобства.

    Можно по F1 сделать проведение документа а по Ctrl+Enter открытие справки. Да, все со временем привыкнут, но зачем так делать?

    Reply
  22. klinval

    Лично у меня пока все поутихли с этой темой (смена поиска), поэтому пока будем думать внедрять или не внедрять.

    Автору однозначно плюс за найденное решение.

    Reply
  23. Новиков

    Честно говоря, не прочитав комментарии до конца, я тоже так и не понял с какой проблемой боролся автор. Особенно в свете громкого «Для моих пользователей это оказалось шоком — программа перестала искать.» ©

    Автору дружеский совет: прежде чем описывать решение проблемы, кажется, нужно было подробнее описать со скриншотами как было, и как стало. И что в «как стало», автор переделал.

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

    Reply
  24. klinval

    (23)

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

    Поиск работает некорректно (см. мои сообщения и ссылку на форум). Корректный поиск по Alt+F. Причём даже в некоторых местах 1С нужно вызывать Ctrl+F нормальный поиск (например в табличной части). Явно неудобно. Причём неудобно было и программисту. Термин «прогибаться» предполагает, что программист несмотря на своё мнение пошёл на поводу у пользователей. А если 100% программистам и 100% пользователям не нравится данное нововведение, то это явно не прогиб. У нас так, думаю у автора статьи тоже.

    И у меня вопрос к вам: на какой конфе и платформе работаете? Франч или фикси? Просто мне как фикси, активно допиливающему БП 3.0, чисто из названия темы было понятна проблема, т.к. у самих был шок когда 1С ввело новый поиск как основной. Согласен, что если человек с этим не столкнулся то из описания возможно не понятна будет проблема. Но это уже дело автора будет он добавлять описание проблемы, чтобы люди не знакомые с БП 3.0 поняли проблему…

    Reply
  25. Новиков

    (24)

    Но это уже дело автора будет он добавлять описание проблемы

    Вроде бы в (23) о том же:

    Автору дружеский совет:
    Поиск работает некорректно. Корректный поиск по Alt+F

    Мне сложно понять максимализм фразы, с учетом того в конфигурации 3 различных механизма поиска, а также того факта, что раньше расширенный поиск, вызывался по Ctrl+F, а теперь по Alt+F, а на Ctrl+F повешен другой механизм. Можно ли говорить в этом случае, что «поиск работает не корректно»? Вы пишите «100% программистам и 100% пользователям» с учетом, «мне как фикси». Надеюсь ответил на ваш вопрос. Вы, штатный сотрудник так же, организации, как сами пишите — активно работающей и модифицирующей… и по тексту. В массовом же сегменте, когда на обслуживании стоят не сотня, но сотни конфигураций сотен клиентов, которые за любые доработки платят свои кровные деньги, эта проблема решается просто новыми шорткатами. Если клиент захочет как автор, вернуться в старую ламповую теплоту Ctrl+F для диалога расширенного поиска — пожалуйста. Лично мне, как сотруднику франчайзи, пока такое не встречалось. Какие нотки грусти и тоски слышал, но не саботаж. Я так полагаю, у автора, как и у вас — несколько другие условия работы, когда подобные ситуации, уже переходят в разряд проблем, и вам их нужно решать. И прогибаться, как я написал, по данному вопросу, не стоит рассматривать как некий такой плевок у лицо или что-то подобное. Более того, вы и ваши пользователи могли бы на ситуацию повлиять, приняв участие в соответствующем опросе от самой 1С по поводу этого механизма. Более того, если уж настолько у вас негодование — можно было даже оставить какие-то телефоны для контакта с вами лично, в случае, если вы правда негодуете адово.

    Reply
  26. klinval

    (25)

    Мне сложно понять максимализм фразы, с учетом того в конфигурации 3 различных механизма поиска, а также того факта, что раньше расширенный поиск, вызывался по Ctrl+F, а теперь по Alt+F, а на Ctrl+F повешен другой механизм. Можно ли говорить в этом случае, что «поиск работает не корректно»?

    Если один из способов работает некорректно можно ли говорить что в 1С нельзя ничего найти? Нет нельзя. Если один из рядя способов лажает при определенных ситуациях можно ли сказать, что именно этот способ работает некорретно? Думаю да. О чём я и пишу. Я естественно не имел ввиду, что способов поиска вообще нет. Они есть, но способ поиска по-умолчанию, как мне кажется, самый неудобный и к тому-же некорректно работающий.

    которые за любые доработки платят свои кровные деньги

    Этим всё объясняется. У нас привыкли при неудобствах в работе программы напрягать программистов, а не терпеть. Если хотите при следующем посещении можете устроить опрос в бухгалтерии ваших клиентов: «Если бы я вам за бесплатно переделал на старый механизм поиска вы бы согласились?». Может я ошибаюсь, но мне кажется больше половины согласились бы. Если конечно у них база не на поддержке и бесплатный сыр сегодня предполагает постоянный вызов программиста при обновлении 🙂

    Более того, вы и ваши пользователи могли бы на ситуацию повлиять, приняв участие в соответствующем опросе от самой 1С по поводу этого механизма.

    Можно ссылку, пожалуйста. Обязательно приму участие если опрос ещё существует. Не знал что такой ведётся.

    Reply
  27. ardn

    (25) Кстати, принимал участие в том самом опросе, по поводу поиска ответил негативно.

    Reply
  28. kraynev-navi

    (0) Автору плюс. Реализовали у себя с дополнительной плюшкой — ввели доп.настройку пользователя, которая отвечает за поведение отключения.Кому надо вернули как было, кому и так хорошо, оставили.

    (23) По поводу прогибов.

    Да посылать пользователей с их пожеланиями сразу. Они, вообще, кто здесь?!

    Reply
  29. v3rter

    (28) Не везде получается «посылать пользователей», есть места, где они организованно несут руководству служебки «верните как было, у нас падает производительность, мы не можем работать». Угадайте действия руководства.

    Reply
  30. Lukich66

    (28)

    Да посылать пользователей с их пожеланиями сразу. Они, вообще, кто здесь?!

    оч.смахивает на 1с_вирус, на сег день неизлечим.

    Reply
  31. ardn

    (30) Думаю, все же в (28) была ирония

    Reply
  32. kraynev-navi

    (31) вы правы. Просто иногда слушаешь некоторых товарищей и думаешь, что они занимают слишком высокие должности вида Царь 1С и т.д.

    Мы для кого, собственно, работаем?

    Reply
  33. user613525_batchaev

    Спасибо огромное, Юрий, очень выручили! В новых релизах вообще кошмарный поиск стал, с радостью вернулись на старый вариант. Единственное процедура УправлениеПечатью.ПриСозданииНаСервере уже устарела, вместо нее используется ПриСозданииНаСервере из Общего модуля «Подключаемые команды». Потестируем еще, позже отпишусь подробно

    Reply
  34. user613525_batchaev

    В общем все пучком, после обновления на 3.0.67.43 поставил опять — полет нормальный. Еще раз огромное спасибо!

    Reply
  35. pvl_mksv

    Автору — большое человеческое спасибо! Будем внедрять!

    Reply
  36. korol-ar

    Не прогибаться под пользователей в данном случае — это примерно как после очередного ТО на вашей машине сигнал клаксона с центра руля переместят на рычаг поворотника на французский манер. Привыкайте, че…

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *