Явное преобразование к заранее неизвестному типу #785089


#0 by live in sky dreams
Есть определенная строка. Поместим ее в пременную ИсходноеЗначение. Может принимать значения: - "1", "15", "226",.... - "Иванов ИП", "ООО Тополек",.... - "01.02.2016", "03.05.2017",.... В ходе выполнения программного кода мне необходимо привести значение переменной ИсходноеЗначение к типу, который может быть или булево или дата или строка или число... Примитивные вобщем. Сам тип, к которому необходимо привести, на этот момент задан в переменной "ТребуемыйТип" Можно сделать через попытка...исключение.. Например: Попытка Исключение    Сообщаем об ошибке преобразования КонецПопытки Но тут явно задано "Строка(...)" а может быть и не строка вовсе, а "Булево(...)", "Число(...)" и т.д. Можно ли написать универсальный код для преобразвания значения к типу в зависимости от содержания переменной ТребуемыйТип?
#1 by Garykom
Если ... Тогда ... ИначеЕсли ... Тогда ... ИначаЕсли ... Тогда ...
#2 by Лефмихалыч
по очереди пытаться преобразовать к каждому типу, кроме строки
#3 by Господин ПЖ
функция есть... нештатная ИменемБорисаНуралиева
#4 by Масянька
Не всем доступна :(
#5 by Масянька
А когда станет известно к какому типу приводить-то надо?
#6 by aleks_default
XMLЗначение?
#7 by НЕА123
"Истина" строка или булево?
#8 by Масянька
А 1 или 0 - не?
#9 by Лефмихалыч
#10 by youalex
ОписаниеТипов.ПривестиЗначение ?
#11 by Fragster
развлекайся: ТЗ = Новый ТаблицаЗначений;
#12 by Лефмихалыч
есть 10 и 24 строки. Кто больше?
#13 by Fragster
МассивЗначений.Добавить("01.01.2016 00:00:00");
#14 by Fragster
но на самом деле надо идти глубже и понять, откуда у автора такие строки
#15 by Fragster
очень похоже на самопальный парсер чего-то. причем в случае csv или xml - все уже давно придумано
#16 by Лефмихалыч
#17 by Вафель
можно через вычислить
#18 by Лефмихалыч
пальным бы он был, если бы автор сам с ним справился
#19 by Garykom
3. ТЗ с типизированными колонками 4. ХМLТип/ИзХМLТипа
#20 by Fragster
4 попутал
#21 by Fragster
кстати, правила XML и правила описания типов отличаются
#22 by newbling
Коллективнопальный
#23 by live in sky dreams
В момент отладки 2 переменных: ОписаниеТипаРеквизита = Дата (Тип: Тип) Для "Тип"а нет метода ПривестиЗначение, так бы использовал, конечно. Значение переменной ОписаниеТипаРеквизита получил из РеквизитДокумента.Тип.Типы[0] Вместо Дата (Тип: Тип) засунуть в переменную ОписаниеТипаРеквизита "Дата" (Тип: Строка) я могу. Интерес чисто познавательный, можно ли имея переменную со значением типа Тип попытаться привести произвольное значениек этому типу..
#24 by Garykom
XSLT и вперед
#25 by live in sky dreams
это как то делает полученные знания хреновыми? Или меня как человека хреновым? Или к чему вы это сказали?
#26 by Лефмихалыч
> Для "Тип"а нет метода ПривестиЗначение, зато этот метод есть у ОписаниеТипов. это - не делает. Но как случилось, что тебе тут привели два разных куска аналогичного ГОТОВОГО кода, а ты все еще задачу не решил?
#27 by live in sky dreams
я знаю что есть у ОписаниеТипов. Но чтобы узнать какое описание типа создавать, - мне необходимо выполнять Строка(ОписаниеТипаРеквизита). И в случае с примитивами это сработает. Этот кусок кода выполнится и отработает так как нужно, но только для примитива. И да, изначально задача так и ставилась. Но что если мне придется в будущем расширить этот код и до обработки к примеру ссылочных типов?
#28 by Вафель
делай через ЕслиТогда
#29 by Fragster
"В ходе выполнения программного кода мне необходимо привести значение переменной ИсходноеЗначение к типу, который может быть или булево или дата или строка или число... Примитивные вобщем. Сам тип, к которому необходимо привести, на этот момент задан в переменной "ТребуемыйТип" " (с)
#30 by Вафель
Для ссылочных типов еще нужно указывать по каким реквизитам искать
#31 by Fragster
ну а про "выполнять Строка(ОписаниеТипаРеквизита)" - СП - не наш путь?
#32 by live in sky dreams
а что СП?
#33 by Dmitry77
Попытка Новое значение  = число (старое значение) Исключение Конец попытки Попытка Новое значение =дата (старое значение) Исключение Конецпопытки Попытка
#35 by Fragster
печалька
#36 by KAO111
XMLТип(Тип).ИмяТипа
#37 by Torquader
Если мы у реквизита в метаданных получаем значение Тип, то это и есть описание типа - и оно нам дано для того, чтобы от него вызвать привести значение - мы сразу же получаем значение, которое можно сохранить в реквизит. Наверное - автор именно это и хотел ?
#38 by dmpl
Нафига строка? Для ОписаниеТипов есть конструктор на основании массива типов. Вот помещай ТребуемыйТип в массив и создавай ОписаниеТипов.
#39 by Рэйв
нормализуй входящее. А то бардак развел...
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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