Вот строчка, которая даёт сообщение об ошибке
PHP код:
if (!makeDecisionLater && xApplication.ttsLevel() == 1 && numberSequenceTable.nonBroken == NoYes::Yes)
В переводе на человечиский это значит:
Если номерная серия настрена как "непрерывная", уровень транзакции = обычному уровню приложения (т.е. нигде не было ttsbegin) и не было явно указано при инициализации класса, что решение о номере будет приниматься позже (т.е. будет использоваться reserve, used, abort), то что-то сделано не так
Отсюда возможные варианты решения:
1. Поместить код в транзакцию
2. NumberSeq::newGetNum(SalesParameters::numRefInvoiceId(), TRUE);