Информационный поток
Задания вакансии материалы разработки сообщения форума
Форум

Проверка букв в ГосНомере авто

    • #1
    • 28.08.2014 16:36
    0
    Здравствуйте, хотелось бы про консультироваться, хочу чтобы в ГосНомере авто присутстовали 12 букв латинского алфавита. В коде сделал сравнения и указал какие буквы должны присутствовать, но должным образом не работает. В чем проблема?

    &НаКлиенте
    Процедура ГосНомерПриИзменении(Элемент)

    стр = Объект.ГосНомер;
    Если НЕ ПравильныйНомер (стр) Тогда
    Объект.ГосНомер = "";
    Сообщить("Введите ГосНомер Заново!");

    КонецЕсли;
    КонецПроцедуры

    Функция ПравильныйНомер(стр)

    Для а=1 По СтрДлина(стр) Цикл

    с=ВРег(Сред(стр, а, 1));

    Если (а=1 ИЛИ а=5 ИЛИ а=6) И НЕ Буква(с) Тогда

    Возврат Ложь;
    ИначеЕсли ((а>=2 ИЛИ а<=4) ИЛИ (а=7 и а=8)) И НЕ Цифра(с) Тогда
    Возврат Ложь;

    КонецЕсли;
    КонецЦикла;
    Возврат СтрДлина(стр)=8;
    КонецФункции

    функция Буква(с)
    Возврат с="А" И с="В" и с="Е" и с="У" и с="К" и с="С" и с="М" и с="Н" и с="О" и с="П" и с="Р" и с="Т";
    КонецФункции

    Функция Цифра(с)
    Возврат с>="0" И с<="9";
    КонецФункции
    • #2
    • 28.08.2014 16:43
    0
    Хотя бы так:
    функция Буква(с)
    Возврат с="А" ИЛИ с="В" ИЛИ с="Е" ИЛИ с="У" ИЛИ с="К" ИЛИ с="С" ИЛИ с="М" ИЛИ с="Н" ИЛИ с="О" ИЛИ с="П" ИЛИ с="Р" ИЛИ с="Т";
    КонецФункции

    Функция Цифра(с)
    Попытка
    ЧислоС=Число(с);
    Возврат с>=0 И с<=9;
    исключение
    Возврат Ложь;
    КонецПопытки;
    КонецФункции
    • #3
    • 28.08.2014 16:45
    0
    Спасибо, попробую!
    • #4
    • 28.08.2014 18:07
    0
    Теперь чтобы я не ввел, все стирает!
    • #5
    • 28.08.2014 18:26
    0
    Нашел ошибку, исправил:)
    • #6
    • 28.08.2014 18:27
    0
    Как по вашему может выполниться условие: (а=7 и а=8) ? может ИЛИ вместо И?
    И еще я не проверял, латинские у вас в условии буквы или русские )))
    "У"и"П" - точно русские
    • #7
    • 28.08.2014 18:34
    0
    Тихонов Сергей
    "П"
    кстати да - буквы П (русской) - в номере быть не может.
    • #8
    • 28.08.2014 20:13
    0
    Функция ПравильнаяБуква(Буква)

    Возврат ?(Найти("АВЕУКСМНОПРТ",Буква) >0,Ложь,Истина);

    КонецФункции
Яндекс-директ
Для участия в обсуждении Вам необходимо авторизоваться либо   зарегистрироваться