В настоящий момент я справляюсь с той же проблемой, насколько я понимаю, это связано с тем, что функции PadLeft и PadRight класса String получают второй параметр, ведущий «0», как символ, а не в виде строки.
NVelocity позволяет вам указать параметр как строку, используя '0', но таким образом внутренне он генерирует исключение приведения (или что-то подобное), потому что параметр ожидается как char.
Я еще не нашел (я просто использую NVelocity с 1 часа!) Способ указать параметр как char, на данный момент у меня есть только грязное решение, такое как применение Replace ("", "0 ") после PadLeft / PadRight, поэтому шаблон становится
$ Document.SupplierCode.PadRight (7) .Replace ('', '0')