Проверка строки на соответствие маски #696511


#0 by kotokent
Здравствуйте, я создал справочник и в нем несколько реквизитов. Один из них ГосНомер. ГосНомер - строка, при записи проверять что строка соответсвует формату гос номеров РФ. При этом проверка должна выполняться даже в случае записи элемента универсальными обработками... Я установил маску: Но он мне вводит не то что хотелось бы: Как это исправить? И что за проверка в конце задания я не понял?
#0 by kotokent
Здравствуйте, я создал справочник и в нем несколько реквизитов. Один из них ГосНомер. ГосНомер - строка, при записи проверять что строка соответсвует формату гос номеров РФ. При этом проверка должна выполняться даже в случае записи элемента универсальными обработками... Я установил маску: Но он мне вводит не то что хотелось бы: Как это исправить? И что за проверка в конце задания я не понял?
#1 by Wobland
>проверять что строка соответсвует формату это тебе регвыражения изучать надо
#2 by Wobland
#3 by Wobland
тут интересней:
#4 by kotokent
это про маску строки или про проверку?
#5 by Wobland
про проверку соответствия какой-то маске
#6 by kotokent
ну уже понял, немного... а почему маска то корявит?
#7 by Wobland
да не, как описано в документации, так и работает
#8 by kotokent
там написано что если "X 999 XX   rus" ввести то будет 1-буква, потом 2 цифры и потом 2 буквы, а у меня все вводит
#9 by Wobland
скопипасти сюда этот кусок документации
#10 by kotokent
так я маску установил
#11 by kotokent
без когда
#12 by kotokent
в свойствах - "Маска"
#13 by kotokent
без кода
#14 by Wobland
где написано?
#15 by БледноЗолотистый
Звездёшь. X (латинского алфавита) - допустимо ввести произвольный символ;
#16 by Defender aka LINN
Попробуй таки справку именно по 1С открыть. "X (латинского алфавита) - допустимо ввести произвольный символ;" ©
#17 by kotokent
#18 by Wobland
фраза " 1-буква, потом 2 цифры и потом 2 буквы" не найдена
#19 by kotokent
тогда невозможно просто так установить буквы, там такого нет в справке,
#20 by kotokent
ты имеешь в виду код, так в какой тогда процедуре его писать чтобы установить шаблон строки
#21 by Wobland
я имею в виду священную документацию. пора бы уже узнать, как она выглядит
#22 by kotokent
я ее читаю
#23 by kotokent
Для того, чтобы использовать в маске один из специальных символов, нужно использовать перед ним символ "".
#24 by kotokent
все... я запутался
#25 by kotokent
Как это сделать то?
#26 by Wobland
забей на поле ввода, есть более мудрая задача: анализ строки
#27 by kotokent
я вот не умею пользоваться RegExp
#28 by Wobland
и у меня в жизни был такой период
#29 by Wobland
кстати, вдруг ком-объекта не будет? пиши тогда посимвольный перебор
#30 by kotokent
мне надо отдельную процедуру делать с ним? или "ПриИзменении"?
#31 by Wobland
закрой глаза и представь, что формы у тебя нет. а проверять надо. как быть?
#32 by МишельЛагранж
не путай новичка. Если он фикси, так и то, может "потерять" dll-ку, а уж если "на выезде", то однозначно никаких библиотек. Потеряют и все крякнется. Либо 1С вводит нормальную работу с масками, либо - писать самому анализ строки, как надо. И в отдельную функцию все это.
#33 by regniws
Есть проблема анализа строки? решили использовать регулярные выражения? теперь у вас две проблемы.
#34 by МишельЛагранж
сделай сам, потом будет проще. Задача как раз для новичка.
#35 by CepeLLlka
Мне кажется я бы сделал проверку по кодам символов и ок..
#36 by Wobland
русская часть таблицы не в одном месте лежит. так что тупо сравнение с>="а" и с<="я" подойдёт имхо
#37 by МишельЛагранж
кода же в таблице не переезжают с места на место.
#38 by Wobland
я за удобство проверки вхождения в один диапазон
#39 by EvgeniuXP
не обязательно, берешь толстую форму с маской, заносишь в поле значение получаешь результат - сверяешь с исходной - одинакова? значит по маске :)
#40 by EvgeniuXP
ес-стно программно всё это делаешь.
#41 by kotokent
т.е. в модуле написать отдельную процедуру ПроверкаСимволовГосНомер...? но вопрос как маску задать кодом строке и как проверку символов организовать? я код урвал, может поможет
#42 by Wobland
может, ТекСимвол в паре с Сч тебе показывает символ, находящийся на Сч-й позиции?
#43 by kotokent
ну да...
#44 by Wobland
тогда это хорошо. всегда можно узнать, буква он или цифра, правда?
#45 by kotokent
ну да, а какой командой маску задать строке?
#46 by Wobland
предлагаю перебирать символы
#47 by kotokent
без маски получается
#48 by Wobland
если ты под маской подразумеваешь свойство поля ввода, то забудь. формы у тебя нет
#49 by Sammo
Помимо regExp иногда работает проверка запросом ВЫБРАТЬ     &Стр В шаблон загоняешь шаблон строки в скулевом формате
#50 by kotokent
под маской я подразумеваю номер автомобиля
#51 by Wobland
а ведь отличный план
#52 by kotokent
как сравнить символ с буквой, команда какая?
#53 by kotokent
щас опять запутаете
#54 by Sammo
Правад в 49 два момента 1. Насколько я помню в гос номерах возможны не все буквы россикйского или английского алфавита, т.е. [A-Z] не взлетит. Как вариант собрать ее руками и проставить через , По цифрам [0-9] работать будет. Да, и я не помню - можно ли в запросе указать 3 цифры подряд иначе чем [0-9][0-9][0-9] Когда разбирался пару лет назад что-то не нашел. 2. По умолчанию не работает для случаев, когда нужно фильтровать по регистру. Работает регистронезависимо
#55 by Wobland
какие операции сравнения тебе известны?
#56 by kotokent
-
#57 by Sammo
с учетом момента, ято я не помню допутимый набор букв шаблон будет Шаблон = "[A-Z] [0-9][0-9][0-9] [A-Z][A-Z]" - это без региона. Но я бы не стал это делать. Т.к. могут быть номера выданные еще в советское время (некоторые до сих пор на них ездят) + у грузовых автомобилей/автобусов может формат отличаться + номера казахские, например. И т.п.
#58 by kotokent
я на верном пути?
#59 by kotokent
только что то он мне этот код вообще не видит
#60 by kotokent
может надо при событии каком то ее делать
#61 by kotokent
например окончаниеВводаТекста?
#62 by Wobland
я думаю, реальную задачу такому не доверят
#63 by kotokent
что то херня какая то получилось в
#64 by kotokent
&НаКлиенте по этому коду обработчик не видит текст
#65 by Wobland
>проверка должна выполняться даже в случае записи элемента универсальными обработками что будет с твоим окончанием ввода текста при универсальной обработке?
#66 by kotokent
я не пойму что такое универсальная обработка
#67 by kotokent
он по тексту проходит, но только по предыдущему... в смысле я первый раз ввел вася, обработчик его не увидел... второй раз ввел петя, обработчик увидел вася
#68 by Wobland
такая обработка, запустив которую я смогу проставить "*** вам" во всех или некоторых элементах
#69 by kotokent
Ммм... ну я пашел по пути который ты предложил, перебираю символы
#70 by kotokent
только вот
#71 by kotokent
&НаКлиенте
#72 by Wobland
первый символ должен быть буквой или цифрой?
#73 by kotokent
1- буква, 3 цифры, 5 и 6 - буквы
#74 by Wobland
как узнать, что мы сейчас работаем с первым символом?
#75 by kotokent
обработчик показывает 1, а потом ТекСимвол становится 1-ым символом
#76 by Wobland
как узнать, является ли какой-то символ буквой?
#77 by kotokent
хороший вопрос :)
#78 by Wobland
так и быть. преобразованный в верхний регистр, он будет больше или равен "А" и меньше или равен "Я"
#79 by kotokent
??? ты про специальные символы
#80 by Wobland
нет. я про сравнение строк длиной 1. в 1С нет типа char, приходится работать со строкой
#81 by kotokent
может его проще с числом сравнить
#82 by kotokent
блин, я тоже не представлю как
#83 by Wobland
предлагай. с каким?
#84 by kotokent
ну вот если написать
#85 by kotokent
#86 by Wobland
"[0-9]" - это строка такая длиной 3. и вовсе не число
#87 by Wobland
*длиной 5, конечно
#88 by kotokent
понял... но тогда как
#89 by Wobland
преобразованный в верхний регистр, он будет больше или равен "А" и меньше или равен "Я"
#90 by kotokent
я даже в нете такого примерно выржения не нашел
#91 by Wobland
правильно, я его только что сам сгенерировал. какое слово непонятно?
#92 by kotokent
ааа... это мне так сравнить надо... блин, теперь "верхний регистр не понятно"
#93 by Wobland
какие функции для работы со строками есть в 1С?
#94 by kotokent
ВРег(<Строка>) — Все символы строки функция преобразует в верхний регистр.
#95 by Wobland
теперь у тебя есть всё, чтобы узнать, не буква ли первый символ. справишься?
#96 by kotokent
без тебя... нет
#97 by kotokent
сейчас надо символ, преобразовать в верхний регистр и потом сравнить его с А и Я?
#98 by Ёпрст
Вон из профессии!
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С