Имя: Пароль:
1C
1С v8
Количество символов в маске.
0 PRESTIGE
 
22.06.15
09:14
Добрый день.
упр приложение. при открытии формы делаю маску для номера телефона.
&НаКлиенте
Процедура ПриОткрытии(Отказ)
    Элементы.НомерТелефона.Маска=("+7 (999) 999-99-99");
КонецПроцедуры

А дальше, мне нужно разукрасить поле, что если там ввели меньше 11 чисел, то красить допустим черным цветом, если больше то красным, если как надо то не красить. Но я не могу посчитать там количество символов, потому что оно заложенно в маске. Делаю так

Процедура НомерТелефонаИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
    если СтрДлина(Элемент.ТекстРедактирования)<11 тогда
        цвет = новый Цвет(93, 69, 255);
//СтрЗаменить(СтрДлина(Элемент.ТекстРедактирования),Символы.НПП,"")
    Элемент.ЦветФона =цвет;
КонецЕсли;
если СтрДлина(Элемент.ТекстРедактирования)>11 тогда
        цвет = новый Цвет(255, 0, 0);

    Элемент.ЦветФона =цвет;
КонецЕсли;
если СтрДлина(Элемент.ТекстРедактирования)=11 тогда
        цвет = новый Цвет(255, 255, 255);

    Элемент.ЦветФона =цвет;
КонецЕсли;

КонецПроцедурызовать

Подскажите как можно это реали
1 butterbean
 
22.06.15
09:19
это надо делать при изменении реквизита, т.е. после того как фокус ушел на другое поле
2 PRESTIGE
 
22.06.15
09:40
(1) Но я тогда узнаю это в момент окончания редактиварония, а не на этапе ввода
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс