Всем привет!
Наткнулся тут на интересную ошибку компилятора.
X++:
static void Job1(Args _args)
{
DocuRef docuRef;
CustTable custTable;
;
select docuRef
where docuRef.RefTableId == tablenum(CustTable)
join custTable // Ошибка компиляции на этой строке
where custTable.RecId == docuRef.RefRecId;
}
Что интересно, что ошибка проявляется исключительно на такой конструкции. Т.е. не воспринимается использование функции tablenum непосредственно перед оператором join.
Т.е. добавление между tablenum и join еще одного условия, например, написание так:
X++:
where docuRef.RefTableId == tablenum(CustTable) && true
перенос условия с tablenum после join, замена tablenum на custTable.TableId - все прокатывает.
Но в 2009 RU5 компилятор пишет "Синтаксическая ошибка", а в 4.0 SP2 - "Переменная join не объявлена"