|
Проверка строки на соответствие маски | ☑ | ||
---|---|---|---|---|
0
kotokent
29.01.14
✎
08:17
|
Здравствуйте, я создал справочник и в нем несколько реквизитов. Один из них ГосНомер.
ГосНомер - строка, при записи проверять что строка соответсвует формату гос номеров РФ. При этом проверка должна выполняться даже в случае записи элемента универсальными обработками... Я установил маску: http://i031.radikal.ru/1401/7d/9840cd1b0694.png Но он мне вводит не то что хотелось бы: http://s020.radikal.ru/i718/1401/46/297325192e15.png Как это исправить? И что за проверка в конце задания я не понял? |
|||
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) управляемым режимом управляешь ты, а обычный управляет тобой
- ваши бы слова, да Нуралиеву в глаз. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |