Сталкивался с такой же ошибкой, только у меня был код следующего плана:
X++:
container listFields;
;
listFields = [
fieldnum(MyTable, field1),
.......
fieldnum(MyTable, fieldN)
];
Причем здесь внутренний стек парсера - честно говоря не понял. Вроде вложенности никакой нет. Буду рад, если кто-то пояснит.
Проанализировав (точнее поэкспериментировав), решил, что компилятор "раскладывает" код как бы в "одну строку" от точки с запятой до точки с запятой исключая пробелы, переводы строк и комментарии. Эта "одна строка" должна быть не длиннее 1000 символов (максимальная длина строки в Axapta).
Свое предположение я проверил, подсчитав количество символов в своем коде, без учета пробелов, переводов строки и комментариев. Магическое число 1000 (предел) убедило меня в этом.
Однако, это были мои домыслы. Все-таки ситуация далеко нечастая

, однако имеющая место быть для контейнеров.
+= действительно спасли меня в свое время (я просто разбил формирование контейнера). Распаковку же контейнера я делал "ручками", т.е. циклом, поэтому проблемы RunBase я не наблюдал. Мне кажется, что в данной ситуации похожий случай.
Проверялось все на приложении Ax 3.0 SP3 CU1 с ядром KR3. На 4-ке не пробовал.