|
Проверка строки на соответствие маски | ☑ | ||
---|---|---|---|---|
0
kotokent
29.01.14
✎
08:17
|
Здравствуйте, я создал справочник и в нем несколько реквизитов. Один из них ГосНомер.
ГосНомер - строка, при записи проверять что строка соответсвует формату гос номеров РФ. При этом проверка должна выполняться даже в случае записи элемента универсальными обработками... Я установил маску: http://i031.radikal.ru/1401/7d/9840cd1b0694.png Но он мне вводит не то что хотелось бы: http://s020.radikal.ru/i718/1401/46/297325192e15.png Как это исправить? И что за проверка в конце задания я не понял? |
|||
1
Wobland
29.01.14
✎
08:18
|
>проверять что строка соответсвует формату
это тебе регвыражения изучать надо |
|||
2
Wobland
29.01.14
✎
08:22
|
||||
3
Wobland
29.01.14
✎
08:24
|
тут интересней: http://novichok1c.ru/ispolzovanie-regulyarnyh-vyrazheniy-v-1s
|
|||
4
kotokent
29.01.14
✎
08:24
|
(1) это про маску строки или про проверку?
|
|||
5
Wobland
29.01.14
✎
08:28
|
(4) про проверку соответствия какой-то маске
|
|||
6
kotokent
29.01.14
✎
08:30
|
(5) ну уже понял, немного... а почему маска то корявит?
|
|||
7
Wobland
29.01.14
✎
08:33
|
(6) да не, как описано в документации, так и работает
|
|||
8
kotokent
29.01.14
✎
08:36
|
(7) там написано что если "X 999 XX rus" ввести то будет 1-буква, потом 2 цифры и потом 2 буквы, а у меня все вводит
|
|||
9
Wobland
29.01.14
✎
08:37
|
(8) скопипасти сюда этот кусок документации
|
|||
10
kotokent
29.01.14
✎
08:39
|
(9) так я маску установил http://i031.radikal.ru/1401/7d/9840cd1b0694.png
|
|||
11
kotokent
29.01.14
✎
08:39
|
(9) без когда
|
|||
12
kotokent
29.01.14
✎
08:39
|
(9) в свойствах - "Маска"
|
|||
13
kotokent
29.01.14
✎
08:40
|
(11) без кода
|
|||
14
Wobland
29.01.14
✎
08:40
|
(8) где написано?
|
|||
15
Бледно Золотистый
29.01.14
✎
08:41
|
(8) Звездёшь.
X (латинского алфавита) - допустимо ввести произвольный символ; |
|||
16
Defender aka LINN
29.01.14
✎
08:41
|
(8) Попробуй таки справку именно по 1С открыть.
"X (латинского алфавита) - допустимо ввести произвольный символ;" © |
|||
17
kotokent
29.01.14
✎
08:43
|
||||
18
Wobland
29.01.14
✎
08:44
|
(17) фраза " 1-буква, потом 2 цифры и потом 2 буквы" не найдена
|
|||
19
kotokent
29.01.14
✎
08:44
|
(16) (15) тогда невозможно просто так установить буквы, там такого нет в справке,
|
|||
20
kotokent
29.01.14
✎
08:45
|
(18) ты имеешь в виду код, так в какой тогда процедуре его писать чтобы установить шаблон строки
|
|||
21
Wobland
29.01.14
✎
08:49
|
(20) я имею в виду священную документацию. пора бы уже узнать, как она выглядит
|
|||
22
kotokent
29.01.14
✎
08:49
|
(21) я ее читаю
|
|||
23
kotokent
29.01.14
✎
08:56
|
Для того, чтобы использовать в маске один из специальных символов, нужно использовать перед ним символ "\".
не работает |
|||
24
kotokent
29.01.14
✎
09:06
|
все... я запутался
|
|||
25
kotokent
29.01.14
✎
09:11
|
Как это сделать то?
|
|||
26
Wobland
29.01.14
✎
09:13
|
(25) забей на поле ввода, есть более мудрая задача: анализ строки
|
|||
27
kotokent
29.01.14
✎
09:14
|
(26) я вот не умею пользоваться RegExp
|
|||
28
Wobland
29.01.14
✎
09:15
|
(27) и у меня в жизни был такой период
|
|||
29
Wobland
29.01.14
✎
09:16
|
кстати, вдруг ком-объекта не будет? пиши тогда посимвольный перебор
|
|||
30
kotokent
29.01.14
✎
09:16
|
(28) мне надо отдельную процедуру делать с ним? или "ПриИзменении"?
|
|||
31
Wobland
29.01.14
✎
09:22
|
закрой глаза и представь, что формы у тебя нет. а проверять надо. как быть?
|
|||
32
МишельЛагранж
29.01.14
✎
09:23
|
(28) не путай новичка.
Если он фикси, так и то, может "потерять" dll-ку, а уж если "на выезде", то однозначно никаких библиотек. Потеряют и все крякнется. Либо 1С вводит нормальную работу с масками, либо - писать самому анализ строки, как надо. И в отдельную функцию все это. |
|||
33
regniws
29.01.14
✎
09:23
|
(26) Есть проблема анализа строки? решили использовать регулярные выражения? теперь у вас две проблемы.
|
|||
34
МишельЛагранж
29.01.14
✎
09:24
|
(30) сделай сам, потом будет проще.
Задача как раз для новичка. |
|||
35
CepeLLlka
29.01.14
✎
09:27
|
Мне кажется я бы сделал проверку по кодам символов и ок..
|
|||
36
Wobland
29.01.14
✎
09:32
|
(35) русская часть таблицы не в одном месте лежит. так что тупо сравнение с>="а" и с<="я" подойдёт имхо
|
|||
37
МишельЛагранж
29.01.14
✎
09:58
|
(36) кода же в таблице не переезжают с места на место.
|
|||
38
Wobland
29.01.14
✎
10:08
|
(37) я за удобство проверки вхождения в один диапазон
|
|||
39
EvgeniuXP
29.01.14
✎
10:23
|
(1) не обязательно, берешь толстую форму с маской, заносишь в поле значение получаешь результат - сверяешь с исходной - одинакова? значит по маске :)
|
|||
40
EvgeniuXP
29.01.14
✎
10:24
|
(39) ес-стно программно всё это делаешь.
|
|||
41
kotokent
29.01.14
✎
11:07
|
т.е. в модуле написать отдельную процедуру ПроверкаСимволовГосНомер...?
но вопрос как маску задать кодом строке и как проверку символов организовать? я код урвал, может поможет Строка = Объект.ГосНомер; Длина = СтрДлина(Строка); Сч = 1; Пока Сч<=Длина Цикл ТекСимвол = Сред(Строка, Сч, 1); Сч = Сч+1; КонецЦикла; |
|||
42
Wobland
29.01.14
✎
11:09
|
может, ТекСимвол в паре с Сч тебе показывает символ, находящийся на Сч-й позиции?
|
|||
43
kotokent
29.01.14
✎
11:11
|
(42) ну да...
|
|||
44
Wobland
29.01.14
✎
11:12
|
(43) тогда это хорошо. всегда можно узнать, буква он или цифра, правда?
|
|||
45
kotokent
29.01.14
✎
11:13
|
(44) ну да, а какой командой маску задать строке?
|
|||
46
Wobland
29.01.14
✎
11:13
|
(45) предлагаю перебирать символы
|
|||
47
kotokent
29.01.14
✎
11:15
|
(46) без маски получается
|
|||
48
Wobland
29.01.14
✎
11:17
|
(47) если ты под маской подразумеваешь свойство поля ввода, то забудь. формы у тебя нет
|
|||
49
Sammo
29.01.14
✎
11:18
|
Помимо regExp иногда работает проверка запросом
ВЫБРАТЬ &Стр ГДЕ &Стр ПОДОБНО &Шаблон В шаблон загоняешь шаблон строки в скулевом формате |
|||
50
kotokent
29.01.14
✎
11:19
|
(48) под маской я подразумеваю номер автомобиля
|
|||
51
Wobland
29.01.14
✎
11:21
|
(49) а ведь отличный план
|
|||
52
kotokent
29.01.14
✎
11:25
|
как сравнить символ с буквой, команда какая?
|
|||
53
kotokent
29.01.14
✎
11:25
|
(51) (49) щас опять запутаете
|
|||
54
Sammo
29.01.14
✎
11:26
|
Правад в 49 два момента
1. Насколько я помню в гос номерах возможны не все буквы россикйского или английского алфавита, т.е. [A-Z] не взлетит. Как вариант собрать ее руками и проставить через , По цифрам [0-9] работать будет. Да, и я не помню - можно ли в запросе указать 3 цифры подряд иначе чем [0-9][0-9][0-9] Когда разбирался пару лет назад что-то не нашел. 2. По умолчанию не работает для случаев, когда нужно фильтровать по регистру. Работает регистронезависимо |
|||
55
Wobland
29.01.14
✎
11:26
|
(52) какие операции сравнения тебе известны?
|
|||
56
kotokent
29.01.14
✎
11:29
|
(55) -
|
|||
57
Sammo
29.01.14
✎
11:29
|
(53) с учетом момента, ято я не помню допутимый набор букв шаблон будет
Шаблон = "[A-Z] [0-9][0-9][0-9] [A-Z][A-Z]" - это без региона. Но я бы не стал это делать. Т.к. могут быть номера выданные еще в советское время (некоторые до сих пор на них ездят) + у грузовых автомобилей/автобусов может формат отличаться + номера казахские, например. И т.п. |
|||
58
kotokent
29.01.14
✎
11:36
|
(55) &НаКлиенте
Процедура ПроверкаСимволовГосНомер () Строка = "[A-Z] [0-9][0-9][0-9] [A-Z][A-Z]"; Строка = Объект.ГосНомер; Длина = СтрДлина(Строка); Сч = 1; Пока Сч<=Длина Цикл ТекСимвол = Сред(Строка, Сч, 1); Для Сч = 1 и Сч = 5 и Сч = 6 ; КонецЕсли; Сч = Сч+1; КонецЦикла; КонецПроцедуры я на верном пути? |
|||
59
kotokent
29.01.14
✎
11:36
|
только что то он мне этот код вообще не видит
|
|||
60
kotokent
29.01.14
✎
11:37
|
может надо при событии каком то ее делать
|
|||
61
kotokent
29.01.14
✎
11:37
|
(55) например окончаниеВводаТекста?
|
|||
62
Wobland
29.01.14
✎
11:39
|
(57) я думаю, реальную задачу такому не доверят
|
|||
63
kotokent
29.01.14
✎
11:40
|
(62) что то херня какая то получилось в (58)
|
|||
64
kotokent
29.01.14
✎
11:44
|
(62)
&НаКлиенте Процедура ГосНомерОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) Строка = Объект.ГосНомер; Строка = "[A-Z] [0-9][0-9][0-9] [A-Z][A-Z]"; Длина = СтрДлина(Строка); Сч = 1; Пока Сч<=Длина Цикл ТекСимвол = Сред(Строка, Сч, 1); Для Сч = 5 по Сч = 6 Цикл ; КонецЦикла; Сч = Сч+1; КонецЦикла; КонецПроцедуры по этому коду обработчик не видит текст |
|||
65
Wobland
29.01.14
✎
11:46
|
>проверка должна выполняться даже в случае записи элемента универсальными обработками
что будет с твоим окончанием ввода текста при универсальной обработке? |
|||
66
kotokent
29.01.14
✎
11:47
|
(65) я не пойму что такое универсальная обработка
|
|||
67
kotokent
29.01.14
✎
11:54
|
(65) он по тексту проходит, но только по предыдущему... в смысле я первый раз ввел вася, обработчик его не увидел... второй раз ввел петя, обработчик увидел вася
|
|||
68
Wobland
29.01.14
✎
11:55
|
(66) такая обработка, запустив которую я смогу проставить "*** вам" во всех или некоторых элементах
|
|||
69
kotokent
29.01.14
✎
11:57
|
(68) Ммм... ну я пашел по пути который ты предложил, перебираю символы
|
|||
70
kotokent
29.01.14
✎
11:57
|
(68) только вот (67)
|
|||
71
kotokent
29.01.14
✎
11:58
|
&НаКлиенте
Процедура ГосНомерОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) Строка = Объект.ГосНомер; Длина = СтрДлина(Строка); Сч = 1; Пока Сч<=Длина Цикл ТекСимвол = Сред(Строка, Сч, 1); ТекСимвол = "[A-Z]"; Сч = Сч+1; КонецЦикла; КонецПроцедуры |
|||
72
Wobland
29.01.14
✎
12:00
|
(71) первый символ должен быть буквой или цифрой?
|
|||
73
kotokent
29.01.14
✎
12:01
|
(72) 1- буква, 3 цифры, 5 и 6 - буквы
|
|||
74
Wobland
29.01.14
✎
12:02
|
(73) как узнать, что мы сейчас работаем с первым символом?
|
|||
75
kotokent
29.01.14
✎
12:03
|
(74) обработчик показывает 1, а потом ТекСимвол становится 1-ым символом
|
|||
76
Wobland
29.01.14
✎
12:04
|
как узнать, является ли какой-то символ буквой?
|
|||
77
kotokent
29.01.14
✎
12:06
|
(76) хороший вопрос :)
|
|||
78
Wobland
29.01.14
✎
12:07
|
так и быть. преобразованный в верхний регистр, он будет больше или равен "А" и меньше или равен "Я"
|
|||
79
kotokent
29.01.14
✎
12:10
|
(78) ???
ты про специальные символы |
|||
80
Wobland
29.01.14
✎
12:10
|
(79) нет. я про сравнение строк длиной 1. в 1С нет типа char, приходится работать со строкой
|
|||
81
kotokent
29.01.14
✎
12:13
|
(80) может его проще с числом сравнить
|
|||
82
kotokent
29.01.14
✎
12:14
|
(80) блин, я тоже не представлю как
|
|||
83
Wobland
29.01.14
✎
12:15
|
(81) предлагай. с каким?
|
|||
84
kotokent
29.01.14
✎
12:16
|
(83) ну вот если написать
|
|||
85
kotokent
29.01.14
✎
12:16
|
(83)
Процедура ГосНомерОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) Строка = Объект.ГосНомер; Длина = СтрДлина(Строка); Сч = 1; Пока Сч<=Длина Цикл ТекСимвол = Сред(Строка, Сч, 1); Если Сч = 1 и ТекСимвол = "[0-9]" Тогда Сообщить ("аааааа"); КонецЕсли; Сч = Сч+1; КонецЦикла; КонецПроцедуры |
|||
86
Wobland
29.01.14
✎
12:17
|
"[0-9]" - это строка такая длиной 3. и вовсе не число
|
|||
87
Wobland
29.01.14
✎
12:17
|
(86) *длиной 5, конечно
|
|||
88
kotokent
29.01.14
✎
12:18
|
(87) понял... но тогда как
|
|||
89
Wobland
29.01.14
✎
12:19
|
преобразованный в верхний регистр, он будет больше или равен "А" и меньше или равен "Я"
|
|||
90
kotokent
29.01.14
✎
12:23
|
(89) я даже в нете такого примерно выржения не нашел
|
|||
91
Wobland
29.01.14
✎
12:23
|
(90) правильно, я его только что сам сгенерировал. какое слово непонятно?
|
|||
92
kotokent
29.01.14
✎
12:25
|
(91) ааа... это мне так сравнить надо... блин, теперь "верхний регистр не понятно"
|
|||
93
Wobland
29.01.14
✎
12:26
|
какие функции для работы со строками есть в 1С?
|
|||
94
kotokent
29.01.14
✎
12:30
|
(93) ВРег(<Строка>) — Все символы строки функция преобразует в верхний регистр.
|
|||
95
Wobland
29.01.14
✎
12:33
|
теперь у тебя есть всё, чтобы узнать, не буква ли первый символ. справишься?
|
|||
96
kotokent
29.01.14
✎
12:33
|
(95) без тебя... нет
|
|||
97
kotokent
29.01.14
✎
12:34
|
(95) сейчас надо символ, преобразовать в верхний регистр и потом сравнить его с А и Я?
|
|||
98
Ёпрст
29.01.14
✎
12:34
|
(96) Вон из профессии!
|
|||
99
Ёпрст
29.01.14
✎
12:34
|
(97) догадливый.
|
|||
100
Wobland
29.01.14
✎
12:35
|
СТО
|
|||
101
kotokent
29.01.14
✎
12:39
|
(100) у меня проблема
&НаКлиенте Процедура ГосНомерОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) Строка = Объект.ГосНомер; Длина = СтрДлина(Строка); Сч = 1; Пока Сч<=Длина Цикл ТекСимвол = Сред(Строка, Сч, 1); Если ВРег(ТекСимвол)>="А" и ВРег(ТекСимвол)<="Я" Тогда Сообщить ("аааааа"); КонецЕсли; Сч = Сч+1; КонецЦикла; КонецПроцедуры Он мне не видит то что ввожу сейчас, он выдит предыдущую запись, что делать? |
|||
102
Wobland
29.01.14
✎
12:42
|
ну перевесь это дело на кнопку
|
|||
103
kotokent
29.01.14
✎
12:45
|
(102) не хотелось бы менять форму
|
|||
104
kotokent
29.01.14
✎
12:49
|
(102) может вставить это в кнопку "записать и закрыть", в процедуру призаписи?
|
|||
105
Wobland
29.01.14
✎
12:49
|
заведи себе ВнешняяОбработка1.epf и отлаживай там свой алгоритм, пока не позеленеешь
|
|||
106
kotokent
29.01.14
✎
12:50
|
(105) мне это в справочнике надо сделаеть
|
|||
107
Wobland
29.01.14
✎
12:51
|
(106) я понял
|
|||
108
kotokent
29.01.14
✎
13:00
|
как сделать так, чтобы если символ не подходит, то ошибка и все стиралось или нельзя было записать?
|
|||
109
Wobland
29.01.14
✎
13:02
|
алгоритм проверки соответствия уже есть?
|
|||
110
kotokent
29.01.14
✎
13:03
|
(109) делаю
|
|||
111
Wobland
29.01.14
✎
13:04
|
ждём-с
|
|||
112
Wobland
29.01.14
✎
13:04
|
можешь даже нарисовать себе булевскую функцию ГодныйНомер(КакаяТоСтрока) и вставлять её потом в разные места по вкусу
|
|||
113
kotokent
29.01.14
✎
13:08
|
(112) понять бы что такое булево
|
|||
114
Wobland
29.01.14
✎
13:09
|
(113) тип, включающий в себя два логических значения
|
|||
115
kotokent
29.01.14
✎
13:16
|
(111) ща, я алгоритм то накидал
|
|||
116
МишельЛагранж
29.01.14
✎
13:16
|
(113) булева алгебра. Вики.
|
|||
117
МишельЛагранж
29.01.14
✎
13:18
|
(113) "булева" функция - возвращает или Ложь, или Истина, и все.
|
|||
118
МишельЛагранж
29.01.14
✎
13:18
|
а вообще, не часто увидишь такую няньку на мисте ))
жду продолжения!!! |
|||
119
kotokent
29.01.14
✎
13:21
|
(114) (116)
&НаКлиенте Процедура ГосНомерПриИзменении(Элемент) Строка = Объект.ГосНомер; Длина = СтрДлина(Строка); Сч = 1; Пока Сч<=Длина Цикл ТекСимвол = Сред(Строка, Сч, 1); Если Сч = 1 или Сч = 5 или Сч = 6 Тогда Если ВРег(ТекСимвол)>="А" и ВРег(ТекСимвол)<="Я" Тогда Сообщить ("ДА"+Сч); Иначе //Отказ = Истина; КонецЕсли; КонецЕсли; Если Сч >= 2 и Сч <= 4 или Сч >= 7 и Сч <= 8 Тогда Если ВРег(ТекСимвол)>="0" и ВРег(ТекСимвол)<="9" Тогда Сообщить ("ДА"+Сч); Иначе //Отказ = Истина; КонецЕсли; КонецЕсли; Сч = Сч+1; КонецЦикла; КонецПроцедуры |
|||
120
kotokent
29.01.14
✎
13:22
|
(118) (114) теперь осталось отказ прописать... во как :)
|
|||
121
Wobland
29.01.14
✎
13:24
|
какие события бывают у объекта?
|
|||
122
kotokent
29.01.14
✎
13:25
|
(121) приизменении, открытие....
|
|||
123
Wobland
29.01.14
✎
13:26
|
(122) ложь
|
|||
124
kotokent
29.01.14
✎
13:27
|
(123) ну в свойиствах, там перед... призаписи написано и это (122)
|
|||
125
Wobland
29.01.14
✎
13:29
|
(124) в каких свойствах?
|
|||
126
kotokent
29.01.14
✎
13:29
|
(125) в свойствах поля
|
|||
127
Wobland
29.01.14
✎
13:34
|
(126) а при чём тут поле? я тайно ночью запущу универсальную обработку и переименую все твои номера в хрень. и даже это самое поле ни разу не увижу
|
|||
128
kotokent
29.01.14
✎
13:39
|
(127) получается что не для того написал процедуру
|
|||
129
kotokent
29.01.14
✎
13:43
|
(127) это надо сделать так, чтобы ни одна подписка на события не изменила форму, т.е. заблокировать все подписки?
|
|||
130
kotokent
29.01.14
✎
13:48
|
(127) или что
|
|||
131
Питерский_
Никола 29.01.14
✎
13:48
|
ТС тебе зряплату платят или энтузиазм ?
|
|||
132
kotokent
29.01.14
✎
13:54
|
(131) учусь - практика - диплом
|
|||
133
Wobland
29.01.14
✎
13:54
|
(129) подписка даже не знает, что на свете бывают формы
|
|||
134
kotokent
29.01.14
✎
13:56
|
(133) ну тогда я не понимаю о чем ты
|
|||
135
Любопытная
29.01.14
✎
13:59
|
(134)он о том, что проверять надо у объекта перед записью
|
|||
136
Любопытная
29.01.14
✎
14:00
|
(133)пы путаешь парня. Ему надо всего лишь организовать работу маски в поле формы, а ты про серьезные вещи вещаешь.
|
|||
137
Wobland
29.01.14
✎
14:00
|
(132) диплом по какоой специальность?
|
|||
138
kotokent
29.01.14
✎
14:03
|
(137) прикладная информатика в экономике
|
|||
139
kotokent
29.01.14
✎
14:03
|
(135) так у меня объект.ГосНомер, не?
|
|||
140
kotokent
29.01.14
✎
14:03
|
(136) типо поле
|
|||
141
Wobland
29.01.14
✎
14:05
|
Функция ЭтоБуква(с)
Возврат с>="А" И с<="Я"; КонецФункции Функция ЭтоЦифра(с) Возврат с>="0" И с<="9"; КонецФункции Функция ГодныйНомер(стр) Для й=1 По СтрДлина(стр) Цикл с=ВРег(Сред(стр, й, 1)); Если (й=1 ИЛИ й=5 ИЛИ й=6) И НЕ ЭтоБуква(с) Тогда Возврат Ложь; ИначеЕсли ((й>=2 И й<=4) ИЛИ й=7 ИЛИ й=8) И НЕ ЭтоЦифра(с) Тогда Возврат Ложь; КонецЕсли; КонецЦикла; Возврат СтрДлина(стр)=8; КонецФункции |
|||
142
kotokent
29.01.14
✎
14:09
|
(141) это ты мне написал как надо?
|
|||
143
kotokent
29.01.14
✎
14:10
|
(141) у меня что, вообще не то?
|
|||
144
Wobland
29.01.14
✎
14:10
|
(142) это я тряпочкой протёр (119)
|
|||
145
kotokent
29.01.14
✎
14:14
|
(144) а переменную "стр" надо где объявлять
|
|||
146
Wobland
29.01.14
✎
14:16
|
зачем прикладным экономистам программировать?
|
|||
147
kotokent
29.01.14
✎
14:16
|
(146) заставляют, да и диплом не просто же так проектирование сдавать
|
|||
148
kotokent
29.01.14
✎
14:17
|
(146) (145)
|
|||
149
kotokent
29.01.14
✎
14:18
|
(146) ты мне скажи где переменную объявить и как к этим функциям теперь обращаться
|
|||
150
Wobland
29.01.14
✎
14:19
|
||||
151
kotokent
29.01.14
✎
14:22
|
(150) :)
|
|||
152
kotokent
29.01.14
✎
14:24
|
(150)
&НаКлиенте Процедура ГосНомерПриИзменении(Элемент) стр = Объект.ГосНомер; ГодныйНомер(стр); КонецПроцедуры Функция ЭтоБуква(с) Возврат с>="А" И с<="Я"; КонецФункции Функция ЭтоЦифра(с) Возврат с>="0" И с<="9"; КонецФункции Функция ГодныйНомер(стр) Для й=1 По СтрДлина(стр) Цикл с=ВРег(Сред(стр, й, 1)); Если (й=1 ИЛИ й=5 ИЛИ й=6) И НЕ ЭтоБуква(с) Тогда Возврат Ложь; ИначеЕсли ((й>=2 И й<=4) ИЛИ (й=7 и й=8)) И НЕ ЭтоЦифра(с) Тогда Возврат Ложь; КонецЕсли; КонецЦикла; Возврат СтрДлина(стр)=8; КонецФункции не работает |
|||
153
Wobland
29.01.14
✎
14:25
|
(152) а должно?
|
|||
154
kotokent
29.01.14
✎
14:27
|
(153) нет... функция не правильно вызвана
теперь я не пойму, мне надо как функцию вызвать |
|||
155
kotokent
29.01.14
✎
14:31
|
(153) Верно?
|
|||
156
Ёпрст
29.01.14
✎
14:35
|
(154) ну и пиши ежели не годныйномер тогдашеньки Объект.ГосНомер =""...
|
|||
157
kotokent
29.01.14
✎
14:37
|
(156)
|
|||
158
kotokent
29.01.14
✎
14:37
|
(156)
&НаКлиенте Процедура ГосНомерПриИзменении(Элемент) стр = Объект.ГосНомер; Если НЕ ГодныйНомер(стр) Тогда Сообщить("Введите нормер заново"); КонецЕсли КонецПроцедуры Функция ЭтоБуква(с) Возврат с>="А" И с<="Я"; КонецФункции Функция ЭтоЦифра(с) Возврат с>="0" И с<="9"; КонецФункции Функция ГодныйНомер(стр) Для й=1 По СтрДлина(стр) Цикл с=ВРег(Сред(стр, й, 1)); Если (й=1 ИЛИ й=5 ИЛИ й=6) И НЕ ЭтоБуква(с) Тогда Возврат Ложь; ИначеЕсли ((й>=2 И й<=4) ИЛИ (й=7 и й=8)) И НЕ ЭтоЦифра(с) Тогда Возврат Ложь; КонецЕсли; КонецЦикла; Возврат СтрДлина(стр)=8; КонецФункции |
|||
159
kotokent
29.01.14
✎
14:40
|
(156) (153)
&НаКлиенте Процедура ГосНомерПриИзменении(Элемент) стр = Объект.ГосНомер; Если НЕ ГодныйНомер(стр) Тогда Объект.ГосНомер = ""; Сообщить("Введите нормер заново"); КонецЕсли КонецПроцедуры Функция ЭтоБуква(с) Возврат с>="А" И с<="Я"; КонецФункции Функция ЭтоЦифра(с) Возврат с>="0" И с<="9"; КонецФункции Функция ГодныйНомер(стр) Для й=1 По СтрДлина(стр) Цикл с=ВРег(Сред(стр, й, 1)); Если (й=1 ИЛИ й=5 ИЛИ й=6) И НЕ ЭтоБуква(с) Тогда Возврат Ложь; ИначеЕсли ((й>=2 И й<=4) ИЛИ (й=7 и й=8)) И НЕ ЭтоЦифра(с) Тогда Возврат Ложь; КонецЕсли; КонецЦикла; Возврат СтрДлина(стр)=8; КонецФункции вот так проканало |
|||
160
kotokent
29.01.14
✎
14:42
|
только проблема осталась обработкой
|
|||
161
kotokent
29.01.14
✎
14:43
|
чтобы проверка выполнялась даже в случаезаписиэлемента универсальной обработкой
|
|||
162
Wobland
29.01.14
✎
15:39
|
семь часов на реализацию соответствия шаблону. ещё и не самым оптимальным способом. ничо так, мне нравится. какой же ж счёт можно было б клиенту выкатить? ;)
|
|||
163
catena
29.01.14
✎
15:45
|
(113)Ты уверен, что твоя специальность информатика?
|
|||
164
Wobland
29.01.14
✎
15:55
|
(163) вот на защите-то конфуз будет..
|
|||
165
МишельЛагранж
29.01.14
✎
16:00
|
да лан, на фоне всего остального - человек еще старается что-то сделать....
65% одноэсников вообще не стараются. Ни капельки. |
|||
166
catena
29.01.14
✎
16:01
|
Я уже не говорю о шедеврах
Процедура ГосНомерОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) Строка = Объект.ГосНомер; Строка = "[A-Z] [0-9][0-9][0-9] [A-Z][A-Z]"; и "обработчик не видит текст" |
|||
167
МишельЛагранж
29.01.14
✎
16:04
|
(166) они имел ввиду, что код, который он прописал в процедуре, не выполняется.
|
|||
168
МишельЛагранж
29.01.14
✎
16:06
|
... так молодец, добил задачу :D
Правда, без Вобланда все б затухло. А тут, глядишь, втянется по-тихоньку... Просто человек вообще не воспринимает эти ваши одноэсы как среду программирования, а как - экзотику с бананами ))) |
|||
169
Wobland
29.01.14
✎
16:06
|
(165) он хоть как-то старался, потому что мне никто не мешал ;)
|
|||
170
EvgeniuXP
29.01.14
✎
23:25
|
вот е-мае, (39) и (40) перепрочти еще раз и гемороя столько не надо писать :) три строки кода :)))
|
|||
171
Wobland
30.01.14
✎
04:16
|
(170) маску скажешь? в(49) надо смотреть
|
|||
172
Любопытная
30.01.14
✎
06:09
|
(168) у нас на специальности "прикладная информатика в экономике" 1с предприятиеи преподавалась на практических занятиях в одном из курсов экономики. И там давалось достаточно, чтобы иметь представление о 1с как о среде разработки. И если человек на дипломе не имеет представления о таких элементарных вещах, о каких спрашивает ТС, это значит, что образование его ну совсем коридорное. С таким дипломом дальше только на рынке фруктами торговать
|
|||
173
kotokent
30.01.14
✎
06:11
|
только проблема осталась обработкой, чтобы проверка выполнялась даже в случае записи элемента универсальной обработкой или она с этим кодом будет выполняться?
|
|||
174
Wobland
30.01.14
✎
06:13
|
(172) было высказано мнение, что на самом деле специальность автора вовсе не "прикладная информатика", а сам автор добросовестно заблуждается ;)
|
|||
175
Wobland
30.01.14
✎
06:14
|
(173) ты вообще в курсе, что форма - это прокладка между БД и юзером? технически вполне осуществимо вести всяческие учёты, совсем не открывая форм
|
|||
176
kotokent
30.01.14
✎
06:17
|
(175) ну через БД
|
|||
177
Любопытная
30.01.14
✎
06:20
|
(176) при записи проверяй, что у тебя в реквизите объекта. И если что-то не так, то шли лесом всех меняльщиков
|
|||
178
Любопытная
30.01.14
✎
06:21
|
Правда есть еще ОбменДанными.Загрузка = Истина...
|
|||
179
Wobland
30.01.14
✎
06:21
|
(177) перед
(178) а чо? пускай будет |
|||
180
kotokent
30.01.14
✎
06:27
|
(179) (178) я думал мне надо не на &клиенте, а &На сервере писать это...
(178) эту коменду в конце кода вставить? |
|||
181
Wobland
30.01.14
✎
06:28
|
(180) чем управляемый режим отличается от обычного?
|
|||
182
Любопытная
30.01.14
✎
06:29
|
(180) я думаю, тебе надо пойти и почитать документацию. Понять, что такое объект БД и чем он приципиально отличается от формы. Выяснить, что же означают магические слова НаКлиенте и НаСервере, к чему они относятся и как используются.
В общем, шли бы вы, молодой человек, учиться. Ну или диплом пишите исключительно теоретический какой-нибудь |
|||
183
kotokent
30.01.14
✎
06:33
|
(182) вот я и учусь
|
|||
184
kotokent
30.01.14
✎
06:36
|
(181) управляемым режимом управляешь ты, а обычный управляет тобой
|
|||
185
Wobland
30.01.14
✎
06:44
|
интересно, а есть в науке понятие nullus cerebrum?
|
|||
186
Wobland
30.01.14
✎
06:45
|
как-то нет у меня сегодня настроения нянькаться. а тасовать предлагаемые куски кода (если за автора кто-то сделает) - тот ещё трэш
|
|||
187
kotokent
30.01.14
✎
06:47
|
(186) ты мне скажи просто как сделать, а я сам додумаюсь
|
|||
188
Wobland
30.01.14
✎
06:48
|
(187) ни разу не замечал, что я тебе иногда повторяю что-то? иногда даже одинаковыми словами
|
|||
189
kotokent
30.01.14
✎
06:52
|
(188) замечал... значит я тебя сейчас где то не понял
|
|||
190
Wobland
30.01.14
✎
06:59
|
все слова названы, есть куча материала к осмыслению. не бывает программистов без способности читать, осмысливать прочитанное и мыслить вообще. да, это больно и неприятно, но без этого не получится.
да и к пятому курсу уже пора уметь учиться |
|||
191
kotokent
30.01.14
✎
07:04
|
(190) скажи где именно ты мне сказал про защиту от обработки?
|
|||
192
Wobland
30.01.14
✎
07:05
|
(191) -> (31), (48) ну и далее по ветке
|
|||
193
kotokent
30.01.14
✎
07:11
|
(192) будем думать
|
|||
194
Wobland
30.01.14
✎
07:25
|
Ле-Цзы учился стрелять. Попав в цель, попросил указаний у Стража Границ. Страж Границ задал вопрос:
— Знаешь ли ты, почему попал в цель? — Не знаю. — Значит, ты ещё не овладел мастерством. Ле-Цзы ушёл, упражнялся три года и снова явился с докладом. Страж Границ спросил: — Знаешь ли ты, почему попал в цель? — Знаю, — ответил Ле-Цзы. — Теперь ты овладел мастерством! Храни и не забывай! Поступай так, изучая не только стрельбу, но и себя самого, и царство. Ибо мудрый человек познаёт не существование и гибель, а их причины. |
|||
195
kotokent
30.01.14
✎
07:57
|
(194) во как :)
|
|||
196
МишельЛагранж
30.01.14
✎
20:03
|
(172)С таким дипломом дальше только на рынке фруктами торговать
- несмотря на over 10 лет программирования (10 - только на 1С) некоторые, не найдя у меня диплома а-ля как у ТС, указывают сразу на дверь. |
|||
197
МишельЛагранж
30.01.14
✎
20:05
|
(184) управляемым режимом управляешь ты, а обычный управляет тобой
- ваши бы слова, да Нуралиеву в глаз. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |