Цитата:
Сообщение от
sukhanchik
У конструкции CompileAll_+ было несколько неприятных особенностей:
- - она ставила уровень 4 (level 4) в настройках компилятора у пользователя под которым запускалась, несмотря на его (пользователя) предпочтения
- - она не грохала старые записи, в результате чего наблюдались задвоения при повторном запуске, а само обновление выполнялось дольше
- - она не обновляла модель данных и иерархию типов. Мелочь конечно - но уж можно было бы все сделать до конца.
...
PHP код:
<AxaptaAutoRun
exitWhenDone="true"
version="5.0"
logFile="D:\AxaptaAutorun.log">
<Run type="class" name="xRefUpdate" method="updateAll" />
</AxaptaAutoRun>
...
Использование такой конструкции аналогично использованию пункта меню Сервис-Средства разработки-Перекрестные ссылки-Периодические операции-Обновить с включенными галками:
- "Удалить все",
- "Обновить все",
- "Обновить модель данных",
- "Обновить иерархию типов" и
- с выключенной галкой "Выбрано".
Давайте обратимся к первоисточнику:
SysCompileAll::compile() для перестроения перекрестных ссылок вызывает xRefUpdate::main(new Args(classstr(SysCompileAll))), где есть следующий кусок кода
X++:
if (args.name() == classStr(SysCompileAll))
{
xRefUpdate.updateAll();
}
Нетрудно видеть, что используется все тотже
xRefUpdate.updateAll().
То есть при использовании CompileAll мы имеем тот же самый алгоритм перестроения ссылок.
То есть единственной неприятностью остается Level 4, но для псевдопользователя, который по ночам занимается компиляцией с перестроением перекрестных ссылок, думаю, это не проблема
И да, ночной опыт с CompileAll закончился успешно... и будет теперь повторяться еженочно. Чего и вам желаю.