|
Как проверить что Ид нормальный для ЗначениеИзСтрокиВнутр(Ид)? | ☑ | ||
---|---|---|---|---|
0
Помогите
30.05.12
✎
11:42
|
Как проверить что Ид нормальный для ЗначениеИзСтрокиВнутр(Ид) чтобы не возникло ошибочной ситуации если в строке Ид не внутреннее представление данных?
|
|||
1
Помогите
30.05.12
✎
11:43
|
Попытку не предлагать
|
|||
2
Помогите
30.05.12
✎
12:16
|
Ап
|
|||
3
H A D G E H O G s
30.05.12
✎
12:17
|
Зачем?
|
|||
4
Maxus43
30.05.12
✎
12:19
|
ТипЗнч(ЗначениеИзСтрокиВнутр(Ид)) ?
|
|||
5
quest
30.05.12
✎
12:19
|
если попытку не предлагать, то разбирать { и } самому
|
|||
6
Maxus43
30.05.12
✎
12:20
|
да и криво так помоему, через ЗначениеИзСтрокиВнутр. задачу опиши лучше, ГУИД лучше передавать строкой, 36 символов.
|
|||
7
Помогите
30.05.12
✎
12:28
|
(4) Так не сработает, ошибка возникнет до того как ТипЗнч выполнится
|
|||
8
Помогите
30.05.12
✎
12:30
|
(6) Как ГУИД получить?
|
|||
9
Помогите
30.05.12
✎
12:47
|
Ап?
|
|||
10
Maxus43
30.05.12
✎
12:48
|
(8) Ссылка.УникальныйИдентификатор()
|
|||
11
quest
30.05.12
✎
12:49
|
ты бы задачу подробней описал. может другое решение есть
|
|||
12
Maxus43
30.05.12
✎
12:49
|
Попытка Исключение в помощ при (8), задача не ясна
|
|||
13
Помогите
30.05.12
✎
12:52
|
(11) Мне задали на зачет сделать получение в одном текстовом поле идентификатора ссылки на элемент справочника и ввод вручную его в другое текстовое поле пользователем, с проверкой что введенный текст правильный, не используя попытку/исключение.
Про ГУИД интересно, как им пользоваться? |
|||
14
Помогите
30.05.12
✎
12:52
|
(10) А, понятно.
|
|||
15
Maxus43
30.05.12
✎
12:56
|
(13) ГУИД не поможет, при преобразования строки в Новый УникальныйИдентификатор(СтрокаГуид) - тоже выдаст ошибку если не правильно ввели
|
|||
16
quest
30.05.12
✎
12:57
|
в первом окошке -
Ссылка = справочник.номенклатура.найтиПонаименованию("искомаяНоменклатура") сообщить(ссылка.Уникальныйидентификатор()); в вотром окошке значение = то что скопировали из первого окошка ссылка = Справочник.Номенклатура.ПолучитьСсылку(новый УникальныйИдентификатор(значение)); если ссылка.пустая() тогда сообщить("не нашли"); иначе сообщить("нашли"); конецЕсли как-то так примерно |
|||
17
Помогите
30.05.12
✎
13:01
|
(16)А, так не пойдет. Потому что справочник может быть любой, не только Номенклатура. Поэтому придется еще и имя справочника передавать, это хреново
|
|||
18
Maxus43
30.05.12
✎
13:09
|
видимо в сторону (5) копать, парсить надо. чо за зачет такой?
|
|||
19
Помогите
30.05.12
✎
13:21
|
(18) Зачет по 1С )))
|
|||
20
Maxus43
30.05.12
✎
13:22
|
Текст вопроса полный до запятых в студию
|
|||
21
DrShad
30.05.12
✎
13:22
|
(19) звездишь, нет у нас никаких зачетов
|
|||
22
Помогите
30.05.12
✎
13:26
|
(20) Текст очень большой, и задачу я уже сделал. Просто мне дополнительно попросили вот такую проверку сделать которой не было в тексте задачи
(21) Вы тут при чем вообще? |
|||
23
Maxus43
30.05.12
✎
13:28
|
(22) Преподавателю - незачет
|
|||
24
DrShad
30.05.12
✎
13:32
|
ни один даже самый продвинутый юзверь не сможет набрать с клавы гуид, а уж тем более ЗначениеВСтрокуВнутр(), которое в отличие от гуида имеет разную длину для разных объектов
|
|||
25
Помогите
30.05.12
✎
13:33
|
(24) это не важно
|
|||
26
DrShad
30.05.12
✎
13:35
|
(25) смысл тогда это реализовывать, если шанс что введут правильно 79 непонятных символов равен 0,0000000000001 процента?
|
|||
27
Maxus43
30.05.12
✎
13:36
|
(26) да такой же смысл, когда ты в школе считал производные. пригодилось в жизни? это ж зачет... но препод не понимает о чем говорит помоему
|
|||
28
Помогите
30.05.12
✎
13:36
|
(26) Для проверки знаний
|
|||
29
DrShad
30.05.12
✎
13:37
|
(27) ну а как тогда зачеи сдавать? при тестировании всегда будет неверный ввод
|
|||
30
DrShad
30.05.12
✎
13:38
|
имхо лучше проверять знания на реальных задачах, чем на каком-то бреде
|
|||
31
Maxus43
30.05.12
✎
13:38
|
(29) препод копи-паст между окнами сделает.
З.ы. тупо сравнить полеВвода1 и ПолеВвода2 не вариант?) |
|||
32
Maxus43
30.05.12
✎
13:39
|
>>получение в одном текстовом поле идентификатора ссылки на элемент справочника и ввод вручную его в другое текстовое поле пользователем, с проверкой что введенный текст правильный, не используя попытку/исключение.
Да, решение в (31). сравнивай строки из ГУИДов просто. Абсолютно точное решение задачи |
|||
33
DrShad
30.05.12
✎
13:40
|
лучше бы было преобразование строки "Справочник;Номенклатура;0000002516,Печеньки" в реальную ссылку в БД и чтоб для всех объектов
|
|||
34
Помогите
30.05.12
✎
13:40
|
(29) Тоесть сделать так?:
Функция ПроверкаПравильностиВвода(Строка) Сообщить("Не верно"); Возврат ложь; КонецФункции; |
|||
35
Помогите
30.05.12
✎
13:42
|
(31) не вариант, поле ввода 1 может быть испорчено во время ввода в поле ввода 2
|
|||
36
DrShad
30.05.12
✎
13:42
|
(34) не ну если перед глазами есть верный текст и его нужно перенабрать, то шансы набрать правильно резко увеличиваются
|
|||
37
Maxus43
30.05.12
✎
13:42
|
(35) кто сказал?
|
|||
38
DrShad
30.05.12
✎
13:42
|
(35) вот как оно блеать может быть испорчено?
|
|||
39
Maxus43
30.05.12
✎
13:43
|
только чтение поставь там
|
|||
40
Помогите
30.05.12
✎
13:43
|
(37) теоретически вместо Ctrl+C можно нажать Ctrl+X
|
|||
41
ptiz
30.05.12
✎
13:44
|
Мне бы тоже решение этой задачи пригодилось.
Пример: работа со ЗначениеИзСтрокуВнутр() в транзакции, где Попытка/Исключение неприменима. |
|||
42
Maxus43
30.05.12
✎
13:44
|
(40) Всё генита... Гениальное - просто, только чтение, сравнивай строки ГУИДов. Прпод пусть убъётся об стену если не устроит
|
|||
43
Помогите
30.05.12
✎
13:44
|
(39) Это не решит задачу проверки правильности ввода. Обман могут раскрыть, тогда я точно на осень останусь
|
|||
44
DrShad
30.05.12
✎
13:45
|
(43) а в той части задачи огроменной что ты уже сделал нет обманов?
|
|||
45
Maxus43
30.05.12
✎
13:45
|
(43) обман в (34), в (31) - четкое решение написанной задачи
|
|||
46
Помогите
30.05.12
✎
13:45
|
(44) нет. Всем что там есть я могу гордиться
|
|||
47
Maxus43
30.05.12
✎
13:46
|
(46) тока сюда код гордости не пиши, а то заклюют)
|
|||
48
Помогите
30.05.12
✎
13:46
|
(45) Сравнивать поля ввода не вариант. Поле ввода 1 может быть скопировано в блокнот, потом форма закрыта и открыта заново, и поле будет пустым.
|
|||
49
Помогите
30.05.12
✎
13:47
|
(47) И не думаю писать
|
|||
50
DrShad
30.05.12
✎
13:47
|
(47) +100500
|
|||
51
DrShad
30.05.12
✎
13:47
|
(48) тогда в (5) самы верный ответ
|
|||
52
Maxus43
30.05.12
✎
13:48
|
(41) пока идей нет. помоги автору сдать зачет - способ найдёш)
|
|||
53
Maxus43
30.05.12
✎
13:49
|
кстати ЗначениеИзСтрокуВнутр - достаточно тяжёлая функция, отказываюсь от неё где есть другие варианты
|
|||
54
Buster007
30.05.12
✎
13:52
|
(53) ща ) протестирую и выложу, если правильно )
|
|||
55
Buster007
30.05.12
✎
13:59
|
&НаКлиенте
Процедура ПроверитьГуид(Команда) ГУИДСсылки = ЛюбаяСсылка.УникальныйИдентификатор(); ПроверитьГУИДСервер(); КонецПроцедуры Процедура ПроверитьГУИДСервер() СтрокаПредставление = ЗначениеВСтрокуВнутр(ГУИДСсылки); СтрокаПредставлениеВведенногоГУИДа = ЗначениеВСтрокуВнутр(ПроверочныйГУИД); Если НЕ СтрокаПредставление = СтрокаПредставлениеВведенногоГУИДа тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Не совпадает!"; Сообщение.Сообщить(); КонецЕсли; КонецПроцедуры где ГУИДСсылки - тип Строка, поле ввода. Показывает уникальный идентификатор. ПроверочныйГУИД - тип Строка, поле ввода. Сюда пользователь перепечатывает то что видит. как-то так вроде. |
|||
56
vde69
30.05.12
✎
14:00
|
решений довольно много, счас накидаю
|
|||
57
Buster007
30.05.12
✎
14:02
|
СтрокаПредставление = ЗначениеВСтрокуВнутр(ГУИДСсылки);
не, вот это можно заменить на СтрокаПредставление = ЗначениеВСтрокуВнутр(ЛюбаяСсылка.УникальныйИдентификатор()); так будет правильней вроде |
|||
58
vde69
30.05.12
✎
14:03
|
1. прямой доступ к таблицам и поиск в них
2. куда более приятное - это замена UID а в сущестующем обьекте и дальнейшее сравнение типа "Ссылка.Сылка = Null" |
|||
59
Buster007
30.05.12
✎
14:13
|
правда я что-то не вижу смысла в использовании ЗначениеИзСтрокиВнутр или наоборот.
|
|||
60
Maxus43
30.05.12
✎
14:17
|
тут смысл задачи в том чтоб проверить соответствует ли произвольная строка (т.к. набирается вручную) какому-либо реальному гуиду в базе
|
|||
61
Maxus43
30.05.12
✎
14:18
|
могут набрать "ЯПоявилсяИзМамы", а Новый УникальныйИдентификатор(Строка) - дас ошибку. Попытка-Исключение нельзя
|
|||
62
vde69
30.05.12
✎
14:35
|
(61) может задача по 7.7 ??? там формат идентификаторов довольно простой, можно распарсить и выцепить отдельно тип и значение
|
|||
63
Maxus43
30.05.12
✎
14:39
|
(62) имхо преподаватель ставя такую задачу не понимает о чем говорит) может он бывший клюшечник... в 8-ке это тяжело уже сделать
|
|||
64
Maxus43
30.05.12
✎
14:42
|
не обязательно ГУИД, в нём нет типа тем более...
даже если юзать XMLСТрока(Ссылка) - там всё есть, но парсить тяжело |
|||
65
Maxus43
30.05.12
✎
14:49
|
Автор, попробуй
XMLСтрока(Ссылка.УникльныйИдентификатор()); и проверяй с XMLЗначение(СтрокаВведённаяЮзером)... |
|||
66
vde69
30.05.12
✎
14:50
|
(65) будет ошибка потока, без корректного определения типа не взлетит
|
|||
67
Maxus43
30.05.12
✎
15:00
|
(66) да, проверил. Просто ошибка преобразования XML правда.
Не зная тип фиг чо сделаем. А если парсить ссылку - только для конкретной базы можно, в разных базах может отличаться определение типа по внутреннему идентификатору |
|||
68
Maxus43
30.05.12
✎
15:02
|
Сувалку в студию:
1. Автор мудаг 2. Препод Автора Мудаг 3. Мистяне Мудаги, не могут придумать ничо |
|||
69
Помогите
31.05.12
✎
05:59
|
4. 1С 8 Мудаг
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |