|
Проверка простых типов, как правильно сделать для ТЗ?
| ☑ |
0
Kreont
04.07.12
✎
11:25
|
Есть ТЗ с заданными типами колонок. И перед записью значения в нее, мне надо проверять тип значения и предварительно его "красиво" форматировать.
Получился такой код:
ТипКолонки = ТЗ.Колонки.Получить(і).ТипЗначения;
Если ТипКолонки.СодержитТип(Тип("Строка")) Тогда
//
ИначеЕсли ТипКолонки.СодержитТип(Тип("Дата")) Тогда
//
ИначеЕсли ТипКолонки.СодержитТип(Тип("Число")) Тогда
//
Иначе
//
КонецЕсли;
Но че то код стал нечитабельный и длинный, а нету в 1ске методов проверки именно для простых значений в стиле других языков:
.isInteger, isString,... ?
|
|
1
Kreont
05.07.12
✎
14:57
|
Ищу легкий путь...
|
|
2
izekia
05.07.12
✎
14:59
|
в смысле форматировать?
|
|
3
Kreont
05.07.12
✎
15:03
|
(2) Ну для примера получаю строку "01/02/12", и если ее надо вставить в колонку с типом дата, то перевожу в формат красивый для 1с Дата, а если надо в колонку с типом строкой тогда прям как есть строкой и т.п.
|
|
4
AaNnDdRrEeYy
05.07.12
✎
15:06
|
может просто одну форматную строку использовать
типо такой
"ЧЦ=2; ЧДЦ=1; ЧС=1; ДФ=dd.MM.yy; БЛ=Нет" (для числа, даты и булево)
|
|
5
Kreont
05.07.12
✎
15:44
|
Дааа, я думал что я много кода для проверки типа написал лишнего, но оказалось еще мало в 1С, в сравнении с другими языками. (Руби не в счет),
+ проверил как в станд.конфигах сделано = почти так же
Я просто сначала чет засомневался что б вот это "СодержитТип(Тип("Строка"))" не начало глючить при разных регион.настройках. Ну типа что для UA = "стрічка", для EN = string :). Но так как (0) получается и есть правильно,что б от рег.настроек не зависеть.
Сори, жара +35, мозг не работает, глупости пишу :)
|
|
6
Torquader
05.07.12
✎
18:25
|
Будем ждать, когда они допрут, что проще писать Тип.Строка, чем Тип("Строка"), но это, видимо, будет уже в другой версии.
|
|
7
asady
05.07.12
✎
18:27
|
(0) юзай XML сериализацию
|
|