Имя: Пароль:
1C
1С v8
Проверка простых типов, как правильно сделать для ТЗ?
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 сериализацию