Здравствуйте, хотелось бы про консультироваться, хочу чтобы в ГосНомере авто присутстовали 12 букв латинского алфавита. В коде сделал сравнения и указал какие буквы должны присутствовать, но должным образом не работает. В чем проблема?
&НаКлиенте
Процедура ГосНомерПриИзменении(Элемент)
стр = Объект.ГосНомер;
Если НЕ ПравильныйНомер (стр) Тогда
Объект.ГосНомер = "";
Сообщить("Введите ГосНомер Заново!");
КонецЕсли;
КонецПроцедуры
Функция ПравильныйНомер(стр)
Для а=1 По СтрДлина(стр) Цикл
с=ВРег(Сред(стр, а, 1));
Если (а=1 ИЛИ а=5 ИЛИ а=6) И НЕ Буква(с) Тогда
Возврат Ложь;
ИначеЕсли ((а>=2 ИЛИ а<=4) ИЛИ (а=7 и а=8)) И НЕ Цифра(с) Тогда
Возврат Ложь;
КонецЕсли;
КонецЦикла;
Возврат СтрДлина(стр)=8;
КонецФункции
функция Буква(с)
Возврат с="А" И с="В" и с="Е" и с="У" и с="К" и с="С" и с="М" и с="Н" и с="О" и с="П" и с="Р" и с="Т";
КонецФункции
Функция Цифра(с)
Возврат с>="0" И с<="9";
КонецФункции
Хотя бы так:
функция Буква(с)
Возврат с="А" ИЛИ с="В" ИЛИ с="Е" ИЛИ с="У" ИЛИ с="К" ИЛИ с="С" ИЛИ с="М" ИЛИ с="Н" ИЛИ с="О" ИЛИ с="П" ИЛИ с="Р" ИЛИ с="Т";
КонецФункции
Функция Цифра(с)
Попытка
ЧислоС=Число(с);
Возврат с>=0 И с<=9;
исключение
Возврат Ложь;
КонецПопытки;
КонецФункции
Как по вашему может выполниться условие: (а=7 и а=8) ? может ИЛИ вместо И?
И еще я не проверял, латинские у вас в условии буквы или русские )))
"У"и"П" - точно русские