Срабатывание формулы элемента формы только при Enter

Новая тема
Показывать по сообщений
Платформа: 1С.Предприятие 7.7<br>Имеется форма, в ней есть текстовое поле. В него вводится что то (строка поиска по базе). Нужно чтобы формула, связанная с элементом формы срабатывала бы только при нажатии на Enter, но не срабатывала бы при смене фокуса в форме. То есть, нужна полная аналогия со строкой ввода url в Internet Explorer
можно попробывать Форма.АктивныйЭлемент(), но не факт...
пробовал уже.<br>Формула срабатывает в тот момент, пока фокус еще на этом элементе управления. И при любом действии одинаково, не могу выделить событие именно нажатия Enter.
форма.ВыполнятьФормулуТолькоПриИзменении(<Режим>) не то?
А если создать рядом кнопку . Т е так как это реализовнно в той же 1С. Пишем текст для поиска и нажимает рядом кпопку поиска вперед или назад.
Нет, не то. ВыполнятьФормулуТолькоПриИзменении - придумана для табличных частей документов. Если ее написать, то формула срабатывает при смещении фокуса и нажатии Enter в измененном реквизите в случае если он в самом деле изменился.
В том и задача, чтобы убрать эту кнопочку. Сейчас так и сделано. Просто для тех, кто работает с этим, как и для любого пользователя есть некие привычные подходы в работе, к Internet Browser-ам все привыкли и там все сделанно удобно. Набираешь что то в строке url, закончил набор, нажал Enter, пошел процесс. А тут набираешь в строку, соображаешь, что надо бы еще пару фильтров задать, мышкой тычешь в какие нибудь поля рядышком, а процесс поиска уже пошел, хотя Enter на подтверждение не нажимался, просто фокус с элемента управления ушел. Иметь рядом кнопочку, конечно, вариант, но неудобный, я сам при отладке раз 10 интуитивно Enter жму и ловлю себя на том, что не работает оно так.
Трудно судить что вы ищите с этой формой.<br>Дело привычки конечно великая вещь. По мне так ничего более привычного как набрать нужный текст и нажать кнопку найти нет(хоть 1с, хоть office)<br>Строка url  не характерный пример, а вот строка поиска в том же проводнике выглядит как текст и кнопка рядом "найти". И хотя можно нажать Enter и пойдет поиск,а все равно сразу жму "найти". <br><br>Т е в вашем примере по текстовому полю вообще нет обработки,нажимай хоть Enter, Tab вся обработка идет по кнопке. <br><br>МОжет опишите поподробнее что хотите найти.
Описывать полностью нет смысла. Я как раз вопрос написал так, чтобы голову не морочить и спросить только то, что конкретно интересует. Вникание в суть задачи не поможет. Но если интересно, пожалуйста. Имеется конфигурация, полностью написанная с нуля. Цель - автоматизация работы РИЦ. РИЦ = "Региональный информационный центр сети Консультант Плюс". Я базу сам и написал. Со временем добавляю в нее новые возможности. Сейчас придумал в ней реализовать работу отдела маркетинга. Ранее они заносили свои "мемуары" в базу, написанную на FoxPro. Перенос из Fox-а с его memo полями, это отдельная история, но сделал (через ODBC). Таким образом, сейчас в базе 1С сформирован информационный массив: Контрагенты, Справочно-Правовые системы и Номера дистрибутивов, Контактные лица с телефонами, Потенциальные клиенты (база по нашему городу и близьлежащим городам), контактные лица этих потенциальных клиентов, Записи о сделанных звонках с регистрациями авторов, дат, а так же дат напоминания о необходимости повторного звонка. Короче... Куча информации. Работу сотрудников задумал реализовать в виде "фронта", то есть единственного окна, в котором представлена вся информация, необходимая для работы и в нем реализована возможность изменения сведений, сотрудники прямо из этого окна попадают во все сведения и не "лазают" по менюшкам, чтобы сформировать какие то нужные отчеты. Все делается прямо здесь. В этом же окне реализован механизм отбора необходимых сведений. Это выглядит как набор фильтров + строка поиска. То есть, во фронте сотрудник задает фильтры (все клиенты, только потенциальные клиенты, только действующие клиенты, только бывшие клиенты и т.п., значения дополнительных свойств: установленное ПО конкурентов, пиратское ПО, в общем выбор широк) + строку поиска (если нужно). Вот со строкой поиска и задачка. Я не стал делать много текстовых полей, отдельное для поиска по наименованию, отдельное по поиску контактного лица (ФИО), отдельное для поиска по телефонам, по номерам дистрибутивов, записям, комментариям и т.п. Я сделал ОДНО поле! И набор галочек, где сотрудник может указать по каким срезам информации он хочет делать поиск. И вот получается, что все так вышло красиво и замечательно, все ищется быстро, алгоритмы все положены на механизм запросов и база размещена на MS SQL Server, но есть эта заморочка с стартером процесса выборки. Человек набирает что то в строку поиска, ему приходит в голову мысль, что надо бы состав фильтров поменять, он смещается из поля, а Формула уже срабатывает и поиск пошел. Хочу, чтобы было только как в IE, только по Enter. Похоже, придется из за такой ерунды внешнюю компоненту писать и делать keyhook.
Интересная конечно задача, но мне просто хотелось понять только вопрос поиска. Насколько это принципиально, нажимать Enter.<br><br>Получается что дело только в привычке. Как я уже писала для меня более привычно, дать команду начать поиск , нажав на кнопку "Найти".<br>Вы ведь сами пишите что сотрудник может уйти ставить галочки, выбирая другие условия. Делает это наверника мышкой, так что логичнее нажать мышкой на кнопку "Найти", чем идти в поле поиска и нажимать на клавиатуре Enter.<br><br>> Похоже, придется из за такой ерунды внешнюю компоненту писать и делать <br>> keyhook. <br><br>Вы проделали огромную работы.У меня иногда как у программиста бывает такие "упертости".<br>Так что, если это дело принципа - желаю успеха.<br><br>P.S. Поищите типа FormEx<br><br>
Читают тему
(гостей: 1)

Быстрый переход