09.12.2004, 09:59 | #1 |
Moderator
|
NumberSeq_Fast
Доброе утро!
[Более точно проблема изложена во втором посте] [В итоге я разобрался!] Заливаю InventDim: PHP код:
PHP код:
PHP код:
В чем может быть дело? (На другой апликухе все работало) |
|
09.12.2004, 10:11 | #2 |
Moderator
|
Компилирую NumberSeq -- в методе new синтаксическая ошибка на первой строке:
PHP код:
PHP код:
|
|
09.12.2004, 10:15 | #3 |
Moderator
|
Однако не хватало ;
но раньше все работало без нее! PHP код:
|
|
09.12.2004, 10:24 | #4 |
Участник
|
Тоже часто встречается такая проблема, что во многих методах классов нужно ставить точку с запятой. Причем эти классы как правило лежат в слое sys.
|
|
09.12.2004, 12:10 | #5 |
Участник
|
Цитата:
....
inventDim.inventDimId = InventDim::newDimId(); .... Правильно вот так: Цитата:
InventDim.clear();
// заполнение аналитик ... InventDim = InventDim::FindOrCreate( InventDim ); Подробнее можно посмотреть на http://axapta.mazzy.ru/hints/inventdim/ |
|
09.12.2004, 12:24 | #6 |
Участник
|
Цитата:
Изначально опубликовано Ace of Database
Тоже часто встречается такая проблема, что во многих методах классов нужно ставить точку с запятой. Причем эти классы как правило лежат в слое sys. Дело в том что в X++, в отличие от других клонов языка C++ разрешено создавать экземляры переменных с именами, совпадающими с именами типов данных! Это довольно интересный ход, т.к. теперь если в начале ф-ии встретит такой например код: PHP код:
Для устранения недоразумений в синтаксис языка была ввдена точка с запятой, отделяющая блок деклараций переменных (возможно пустой) от собственно тела ф-ии (и в отличие от многих других клонов C++ в X++ определять переменные можно только в начале ф-ии). Так что PHP код:
PHP код:
Интересно так же что в нигде других местах языка не разрешаются "лишние" точки с запятой, опять же в отличие от других клонов C++ в которых такие вещи гордо наз-ся "пустыми операторами". |
|
09.12.2004, 13:46 | #7 |
Moderator
|
Цитата:
Правильно вот так:
|
|
09.12.2004, 14:31 | #8 |
Участник
|
Цитата:
Это не проблема, это особенность синтаксиса языка X++.
А почему тогда точка с запятой отсутствует во многих методах во многих классах на sys-слое? И почему вдруг эти классы в один прекрасный момент времени перестают компилироваться до тех пор, пока там не поставишь точку с запятой? |
|
09.12.2004, 14:47 | #9 |
Участник
|
Цитата:
Изначально опубликовано Ace of Database
2 Alks А почему тогда точка с запятой отсутствует во многих методах во многих классах на sys-слое? Цитата:
И почему вдруг эти классы в один прекрасный момент времени перестают компилироваться до тех пор, пока там не поставишь точку с запятой?
PHP код:
|
|
09.12.2004, 16:17 | #10 |
Участник
|
Спасибо, Alks. Ваша теория вполне имеет место быть. Вопрос к DreamCreatoru, действительно ли у него в приложении есть EDT или ещ что-нибудь с именем Active?
Я, например всегда стараюсь давать создаваемым мною объектам префикс, чтобы они никогда не пересекались с чем-ибо еще. Но и уменя иногда возникает проблема с точкой с запятой. Может, потому что я в AOT'E не один. |
|
09.12.2004, 17:07 | #11 |
Участник
|
> Но и уменя иногда возникает проблема с точкой с запятой.
> Может, потому что я в AOT'E не один. "Проблема с запятой" будет очень часто у вас появлятся, если вы.... программируете в X++. Еще раз повторяю - это НЕ проблема. Это особенность синтаксиса языка. Попробуйте создать Job, который выводит в инфолог строчку "Hello, world!" и в 9 случаях из 10 столкнётесь с этой особенностью. Потому что глобальная ф-я Global::info называется так же как класс Info... и т.п. и т.д. В следующий раз когда у вас снова возникнет подобная проблема - постите сюда, разберемся. |
|