| 
    
            
         
         | 
    
    
  | 
Как проверить что Ид нормальный для ЗначениеИзСтрокиВнутр(Ид)? | ☑ | ||
|---|---|---|---|---|
| 
    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 Мудаг     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |