Уведомление, остаток символов в реквизите
Доброго времени суток.
Input: У нас есть реквизит с типом данных строка, с 150 символов(может быть и неограниченным, тогда задача меняется сколько символов в данный момент)
Условия: Пользователь вводит символы например 44, алгоритм считает 150-44=106(пробелы символами не считать!)
Output: Сообщение осталось 106 символов
Вопрос как это сделать(можно пожалуйста скриншотами дополнять свою мысль, спасибо)?
Я знаю, что есть функции строк СтрДлина(), СокрЛ() и т.п., вы помогите мне написать код 0_О
Input: У нас есть реквизит с типом данных строка, с 150 символов(может быть и неограниченным, тогда задача меняется сколько символов в данный момент)
Условия: Пользователь вводит символы например 44, алгоритм считает 150-44=106(пробелы символами не считать!)
Output: Сообщение осталось 106 символов
Вопрос как это сделать(можно пожалуйста скриншотами дополнять свою мысль, спасибо)?
Я знаю, что есть функции строк СтрДлина(), СокрЛ() и т.п., вы помогите мне написать код 0_О
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(8) вам писали вот про такой вариант...
Но, нужно учитывать, что работать он будет только при условии, что данные ввели и сняли выделение с поля ввода.
Динамически это работать не будет.
Единственное, цикл не подойдет, т.к. процедура зациклится. Лучше, делайте через условия.
Но, нужно учитывать, что работать он будет только при условии, что данные ввели и сняли выделение с поля ввода.
Динамически это работать не будет.
Единственное, цикл не подойдет, т.к. процедура зациклится. Лучше, делайте через условия.
Прикрепленные файлы:
ПроверкаОсталосьСимволов.epf
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ВывестиСообщение(СтрДлина(СокрЛП(ВводимыеДанные)));
Элементы.ВводимыеДанные.ОбновитьТекстРедактирования();
КонецПроцедуры
&НаКлиенте
Процедура ВводимыеДанныеИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
ВывестиСообщение(СтрДлина(СокрЛП(Текст)));
КонецПроцедуры
&НаКлиенте
Процедура ВывестиСообщение(ДлинаТекста)
Длина = 150;
Результат = Длина - ДлинаТекста;
Элементы.ДекорацияВыводСообщения.Заголовок = СтрШаблон("Сообщение осталось %1 символов", Результат);
КонецПроцедуры
ПоказатьНа форму добавить декарацию "ДекорацияВыводСообщения". ( Вместо декорации можно использовать строковый реквизит формы)
Свойство поля ввода "ОбновлениеТекстаРедактирования" установить в "Не использовать".
Прикрепленные файлы:
ТестВводаСимволов.epf
Для поля ввода устанавливаешь следующие свойства.
"ОбновлениеТекстаРедактирования" - "НеИспользовать.
На форму вводишь Реквизит с типом "Строка"., В моем случае это "ОставшиесяСимволы".
Для Текстового поля создаешь событие "ИзменениеТекстаРедактирования". Выбираешь НаКлиенте
Создастся процедура:
Теперь при изменении текстового поля динамически будет показываться в строке "Оставшиеся символы" количество оставшихся символов. В моем случае длина текстового поля = 300. Поэтому я и отнимаю от 300.
"ОбновлениеТекстаРедактирования" - "НеИспользовать.
На форму вводишь Реквизит с типом "Строка"., В моем случае это "ОставшиесяСимволы".
Для Текстового поля создаешь событие "ИзменениеТекстаРедактирования". Выбираешь НаКлиенте
Создастся процедура:
&НаКлиенте
Процедура ТекстовоеПолеИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОсталосьСимволов = 300 - СтрДлина(СокрЛП(Текст));
ЭтаФорма.ОставшиесяСимволы = "Осталось символов: " + ОсталосьСимволов;
КонецПроцедуры
Теперь при изменении текстового поля динамически будет показываться в строке "Оставшиеся символы" количество оставшихся символов. В моем случае длина текстового поля = 300. Поэтому я и отнимаю от 300.
Прикрепленные файлы:
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот