|
ограничение типа ввода данных | ☑ | ||
---|---|---|---|---|
0
ArtYst
24.07.12
✎
10:08
|
помогите как создать функцию которая разрешает вводить символы от 1-9 и от a-z при это если эти же буквы введены по русски(случайно) их также можно, а на все остальные символы запрет.
|
|||
1
FIXXXL
24.07.12
✎
10:13
|
Расширение поля формы для поля ввода (Form field extension for a text box)
Маска (Mask) Использование: Чтение и запись. Описание: Тип: Строка. Содержит посимвольную строку маски интерактивного ввода текста в поле. В строке маски допустимо использование следующих специальных символов: ! - любой введенный символ преобразуется в верхний регистр; 9 - допустимо ввести произвольный символ цифры; # - допустимо ввести произвольный символ цифры или - (знак минус) или + (знак плюс) или пробел; N - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры); U - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) и любой введенный символ преобразуется в верхний регистр; X (латинского алфавита) - допустимо ввести произвольный символ; ^ - не допустимо вводить этот символ интерактивно пользователем, он может устанавливаться только из языка; h - допустим ввод символов обозначения шестнадцатеричных цифр; @ – допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) в верхнем регистре или пробел. При помещении значения из поля ввода с маской в текстовый реквизит, связанный с этим полем ввода, происходит следующее преобразование: на тех позициях, где в маске стоит символ "@", а в строке пробел – пробел удаляется. Если в маске из специальных символов используются только символы "@", то все символы текста, соответствующие символам маски, не являющимся специальными символами, удаляются после последнего непустого блока из символов "@". Например, при маске "@@.@@.@@." текст "41. 2. ." преобразуется в "41.2". Для того, чтобы использовать в маске один из специальных символов, нужно использовать перед ним символ "\". Допускается указание нескольких масок в одном параметре. Маски разделяются символом ";". В этом случае использоваться будет та маска, к которой подходит введенный текст. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент |
|||
2
FIXXXL
24.07.12
✎
10:16
|
//Проверяет на наличие только латинских букв и цифр(допускаются пробелы и дефис и некоторые спец символы)
Функция СтрокаНаписанаЛатиницейИЦифрами(Знач СтрокаПараметр) Экспорт // Русские буквы: 192 и больше СтрокаПараметр = СокрЛП(СтрокаПараметр); СписокДопустимыхЗначений = Новый СписокЗначений; СписокДопустимыхЗначений.Добавить(184); СписокДопустимыхЗначений.Добавить(168); СписокДопустимыхЗначений.Добавить(45); СписокДопустимыхЗначений.Добавить(46); СписокДопустимыхЗначений.Добавить(32); СписокДопустимыхЗначений.Добавить(48); СписокДопустимыхЗначений.Добавить(49); СписокДопустимыхЗначений.Добавить(50); СписокДопустимыхЗначений.Добавить(51); СписокДопустимыхЗначений.Добавить(52); СписокДопустимыхЗначений.Добавить(53); СписокДопустимыхЗначений.Добавить(54); СписокДопустимыхЗначений.Добавить(55); СписокДопустимыхЗначений.Добавить(56); СписокДопустимыхЗначений.Добавить(57); // Большие латинские буквы: 65 - 90 СчБ=65; Пока СчБ<91 Цикл СписокДопустимыхЗначений.Добавить(СчБ); СчБ = СчБ+1; КонецЦикла; // Маленькие латинские буквы: 97 - 122 СчМ=97; Пока СчМ<123 Цикл СписокДопустимыхЗначений.Добавить(СчМ); СчМ = СчМ+1; КонецЦикла; Для Сч=1 По СтрДлина(СтрокаПараметр) Цикл //числа пропускаем Если Найти(":;().,0123456789", Сред(СтрокаПараметр, Сч, 1)) <> 0 Тогда Продолжить; КонецЕсли; Код = КодСимвола(СтрокаПараметр,Сч); //Если (Код<192) И (СписокДопустимыхЗначений.НайтиПоЗначению(Код) = Неопределено) Тогда Если (СписокДопустимыхЗначений.НайтиПоЗначению(Код) = Неопределено) Тогда Возврат Ложь; КонецЕсли; КонецЦикла; Возврат Истина; КонецФункции //Проверяет на наличие только русских букв и цифр(допускаются пробелы и дефис и некоторые спец символы) Функция СтрокаНаписанаПоРусскиИЦифрами(Знач СтрокаПараметр) Экспорт СтрокаПараметр = СокрЛП(СтрокаПараметр); СписокДопустимыхЗначений = Новый СписокЗначений; СписокДопустимыхЗначений.Добавить(184); СписокДопустимыхЗначений.Добавить(168); СписокДопустимыхЗначений.Добавить(45); СписокДопустимыхЗначений.Добавить(46); СписокДопустимыхЗначений.Добавить(32); СписокДопустимыхЗначений.Добавить(48); СписокДопустимыхЗначений.Добавить(49); СписокДопустимыхЗначений.Добавить(50); СписокДопустимыхЗначений.Добавить(51); СписокДопустимыхЗначений.Добавить(52); СписокДопустимыхЗначений.Добавить(53); СписокДопустимыхЗначений.Добавить(54); СписокДопустимыхЗначений.Добавить(55); СписокДопустимыхЗначений.Добавить(56); СписокДопустимыхЗначений.Добавить(57); Для Сч=1 По СтрДлина(СтрокаПараметр) Цикл //числа пропускаем Если Найти(":;().,0123456789", Сред(СтрокаПараметр, Сч, 1)) <> 0 Тогда Продолжить; КонецЕсли; Код = КодСимвола(СтрокаПараметр,Сч); Если (Код<192) И (СписокДопустимыхЗначений.НайтиПоЗначению(Код) = Неопределено) Тогда Возврат Ложь; КонецЕсли; КонецЦикла; Возврат Истина; КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |