Задался целью отрезать префикс и ведущие нули в поле код универсального отчета с целью совместимости со старой базой, чтобы он при этом в эксельку выгружался в виде числа, а не строки
Вроде, на первый взгляд все просто должно было быть, но в итоге плясал с бубном полдня.
УНФ 8.3 Код в стандартном Виде ХХ-00000001
Добавил в отчет кастомное поле, туда Прав(Код, 8), все работает , все прекрасно, но в эксель вываливается в виде строки с ведущими нулями.
Вроде, в мануале про преобразование типов сказано, что можно явно с помощью Число(Прав(Код, 8)), или неявно с помощью 1 * Прав(Код, 8), ни то ни то не работает.
Докопался до этой темы
Убрать нули в номере слева (шедевр в 8) , шедевр №8 работает в виде СтрЗаменить(СокрЛ(СтрЗаменить(Прав(Код, 8), "0", " ")), " ", "0"), но опять же, на выходе строка, хоть и без нулей уже.
Попытался окуклить опять в "Число" Число(СтрЗаменить(СокрЛ(СтрЗаменить(Прав(Код, 8), "0", " ")), " ", "0"))) и на единицу умножать, все также не работает, как изначально.
В итоге от безысходности попробовал метод из питона Int(СтрЗаменить(СокрЛ(СтрЗаменить(Прав(Код, 8), "0", " ")) и, о чудо, оно заработало, причем и в виде Int(Прав(Код, 8)). После сохранения Int обрусел и стал Цел, но работать не перестало.
Нигде в справке этого нет, ни в СКД, ни в описании типов встроенного языка. Может, кому пригодится.