#0
by Liris
Добрый день! Поискал поиском по форуму, не нашел подобной темы. Платформа: 1С:Предприятие 8.2 (8.2.14.540) Есть типовая НЕ управляемая форма. На форме расположен элемент "ПолеВвода" (многострочный). В это поле вводится текст. Как в момент ввода текста считать количество символов? В других языках есть событие типа OnChange, которое вызывается каждый раз при изменении значения в поле ввода. Здесь такого не нашел. Есть событие "ПриИзменении", но оно вызывается при потере фокуса объектом. Есть событие "АвтоПодборТекста". Использовать его можно только в случае набора текста. Стоит начать "затирать" набранный текст, событие не вызывается. У формы есть событие "ОбновлениеОтображения". Вообще не понятно в какой момент вызывается. Может быть кто-то делал подобное? Может можно подключить обработчик к "ПолюВвода" или форме?
#9
by orefkov
В обработке ожидания делаешь ПолучитьГраницыВыделения, потом УстановитьГраницыВыделения(1, 1, 1, 10000), потом читаешь ВыделенныйТекст, потом снова УстановитьГраницыВыделения по сохраненным данным.
#10
by Maxus43
вызовется когда данные изменяться. процесс набора текста - не есть изменени. нажми ентер - вызовется
#11
by Liris
Имя поля "SMSСообщение" В модуле формы: Вызываю эту процедуру на событие SMSСообщениеПриИзменении. ДлинаSMSСообщения - реквизит формы. При вводе текста в ПолеВвода не вызывается событие SMSСообщениеПриИзменении. Если закончить ввод тескта и перейти на другой объект - вызывается.
#12
by Fish
По энтеру не вызовется. Только что проверил :)) Тем более поле многострочное и энтер - это просто перевод строки.
#13
by Liris
Поле многострочное, перевод строки получается. Мне нужно при изменении содержимого ПоляВвода сразу знать число символов.
#16
by orefkov
Так же. Ну раз поле многострочное, делай УстановитьГраницыВыделения(1, 1, 10000, 10000) Проверено, работает.
#19
by Liris
Уже так делал. Но как-то не красиво получается. Простая функция, а городить такой огород. Попробую. Спасибо. Тема остается открытой для тех, кто знает более простые и изящные варианты.
#20
by Рэйв
+Но это только при интерактивном набивании строки вручную.При простом перещелвикании мышкой не сработает
#21
by Maxus43
точно. тогда обработчика хватит, 0,1 секунды - приемлемая скорость. без автоподбора текста
#22
by vmv
опять костыли изобретаете обработчики ожидания зло особенно для веб-клиента! границы выделения и есть костыль Вывод: служба обновления платформы должна занести в план работ пунктик - создать аналог метода OnChange для поля ввода
#23
by Liris
Вызывается после ввода текста при сходе с элемента управления. Для моего случая не подходит. С элемента управления не ухожу
#24
by Infsams654
- пишет "В других языках есть событие типа OnChange, которое вызывается каждый раз при изменении значения в поле ввода" - изменение значения в поле ввода - как раз и есть изменени. И тут приходится изголяться - что не есть хорошо.
#25
by vmv
опрботчик ПриИзменении в 1С работает только в прошлом времени, т.е. когда событие уже произошло, наверное философия не позволяет разработчикам 1С сделать его работу и в настоящем времени или создать другое событие, например ПриИзмененииВНастоящемВремени
#26
by Liris
>Вывод: служба обновления платформы должна занести в план работ пунктик Не имею опыта по общею со службой обновления платформы. Считаете, что имеет смысл обратиться? Тема открыта для более простого и изящного решения
#27
by orefkov
Сидите и ждите, когда фирма 1С посчитает нужным это сделать. А мы не ждем, а делаем - - пример фильтрации по подстроке.
#28
by vmv
сиди тут и у них и ной раз в неделю на эту тему и прикрутят - я так часто делаю, практически все о чем ныл прикрутили)
#30
by vmv
Невозможно отобразить содержимое. Требуется Adobe Flash на фига мне поделка котарая не может работать со стандартным дистрибутивом - это тожа костыль, чувак)
#32
by Liris
Могу поинтересоваться, каким образом работает верхнее ПолеВвода? Если АвтоПодборТекста, то он не реагирует на "стирание" текста. Только на набор. Понял. :-)
#33
by Maxus43
сказали же - обработчик ожидания, раз в 0,1 секунды будет проверять содержимое твоего поля ввода
#34
by vmv
запусти это чудо в веб-клиенте - накидай на форму пару таблиц, полей, подсказок и получай удовольствие
#36
by vmv
+ я считаю, что обработчики ожидания нужно уничтодить точто также как и обработчик ПриВыводеСтроки, который был в 8.1. Это обработчики-паразиты, котрые исскушают неокрепшие умы писать г-код)
#41
by vmv
рекурсия - это стиль алгоритмизации кода. я говорю не о стилях, а о методах. Любой стиль имеет право на жизнь в определенной ситуации, но не любой метод имеет право на жизнь в аналогичных ситуациях)
#42
by vmv
на УФ нету, обычные формы в 82 - это дань динозаврам, которые не могут без слез смотреть на свои культи-нетленки)
#43
by vmv
именно так, обработчик ожидания - это как та сучка на помойке, сидит и тявкает и по делу и не по делу, нарушая общую идиллию
#45
by Infsams654
на простом поле ввода события ПриВыводеСтроки нет. Кстати, при вводе текста в ячейке ТП это событие срабатывает только при потере фокуса ячейки. Так, что не прокатит.
#46
by Maxus43
полстраны на 7.7 сидят ещё, на 8.2 тоже на толстых клиентах сидят и ничо. переписаную в хлам УПП 1.2 переведи ка на управляемые формы, а таких контор много
#48
by vmv
поставленную в сабже задачу на платформах линейки 8.1 и 8.2 можно решить только через озвученные выше костыли - мудро не получиться, настоящее время еще обрабатывать не научились яйцеголовые - но мы быдет ныть!
#50
by vmv
зачем переводить - сидят на старых релизах, ну и пусть сидят. я знаю десяток банков которые юзают софт под мс дос до сих пор и довольны. но новые задачи и проекты имеет смысл разрабатывать на УФ, если ты конечно не ленивый и далее согласно постулату)
#51
by Fish
А как организовать обмен по расписанию между файловыми базами без обработчиков ожидания? Может и на этот случай у тебя есть костыль? :))
#53
by vmv
хранить протокол фиксации операций обмена в периодическом РС, дальше рассказывать или дать г да еще и ложку?)
#54
by Fish
Сам-то понял что сказал? Каким боком тут расписание? Как ты запустишь обмен тогда, когда надо без обработки ожидания?
#55
by vmv
период регистра можно легко запрограммировать на создание записей согласно произвольному расписанию, которое можно вычитать из самого расписания и из некоего своего классфикатора периодов вне расписания - по кнопке с командой запуска обмена, это сложно для вас, сочувствую?)
#56
by Fish
"период регистра можно легко запрограммировать на создание записей согласно произвольному расписанию" - поподробнее расскажешь, каким образом регистр будет записи по расписанию создавать? Или примерчик кода?
#57
by vmv
сегодня у меня платный день на код, жди пятницы - я в этот день занимаюсь благотворительностью и раздаю технологии даром, но ведь ты можешь сам это сделать - стыдно быть ленивым и жадным!)
#58
by Maxus43
спрашивали как ЗАПУСТИТЬ обмен по расписанию без обработчика ожидания, а не как придумать аналог расписания на Регистер сведений + какие то ещё объекты новые и тыкать на кнопку выполнить обмен
#60
by Liris
Ясно. Сделаю на костылях. А как не хотелось.. :-) Понятно, что платформа 1С не для красоты интерфейса делали. Но обещали настоящую модель, со всеми событиями и т.п. Ладно, как есть, так есть. Спасибо всем. Тему можно закрыть (за неимением изящного решения).
#63
by FIXXXL
жаль все ж, что "обработчик ожидания, раз в 0,1 секунды будет проверять содержимое твоего поля ввода" как в том анекдоте "но только один разик" :(
#64
by FIXXXL
что бы при наборе текста сразу видеть длину сообщения и на ходу корректировать ее стоимость и разбивка СМС зависит от ее длины PS сам такую задачку решал, но сделал на ПриИзменении, вот решил переделать, но меньше 1сек не работает, а с 1сек не очень красиво выглядит...
#65
by mikecool
пробовал решить, не вышло, плюнул обработчик не работает, пока редактируется текст (
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- В 8.0 при вводе в поле ввода неправильн. значения фокус не остается в этом поле
- v8 строка подключения V8.Connect
- Волшебнику и всем кто поможет по теме "v8 УРБД на v8 за четыре шага"
- v8: при v8 = Новый COMОбъект("V8.Application") дает ошибку ..
- v8: Не могу подключиться из V8 к V8
- v8: есть ли аналоги openconf для 1с v8
- v8: Как удалить 1С v8 ?
- v8: Какое событие использовать при перемещении строки в Табличном поле вверх (вниз)
- Запрет ввода пустого значения в поле ввода
В этой группе 1С
- Дурацкий вопрос про субконто
- ЗУП Статьи затрат по Видам начислений
- Как записать в регистр сведений в документе при отмене транзакции?
- Отражение НМА в КУДИР
- Макет ТОРГ 12
- На форме появляются полосы прокрутки. Как убрать.
- Закрытие 44 счета по субконто Подразделение
- Внешние печатные формы КС-2 и КС-3 для 1С УТ 10.3
- ОтборКомпоновкиДанных в Запросе
- где настраивается печать непроведенного документа в зуп?
- Помогите с выбором спутникового ресивера
- Что за сеанс ImplAppID?
- не подобран размер начисления в зависимости от стажа "Общий стаж"
- Документ требование накладная не списывает сумму. БП 2.0
- Регламентное задание запускается, но не выполняется.
- v7: Получить объект в 7.7
- Движения документа.
- Объект RarusSQL
- v7: Обрезание регистров. Удаление документов: что быстрей ?
- СЛК 2.0 Катран софт для Сервер расчет квартплаты и т.д.