Не работает переход к объявлению функции в скрипте унаследованного окна
Решил написать, поскольку часто сталикиваюсь с этой ситуацией.
Создал окно с гридом и использовал в качестве шаблона wnd_BaseGridArea.
В скрипте шаблона окна видно ряд подключенных скриптов.
Создаю сервис скрипта для обработки событий грида, в скрипте в блоке "Использовать скрипты" нет записей, но известно, что я могу использовать функции из подключенных в шаблоне скриптов.
Пытаюсь перейти к объявлению функции из скрипта созданного по шаблону грида - переход не происходит, хотя функцию эту я могу вызывать в текущем скрипте. Ожидается, что при попытке перейти в функцию, я смогу перейти в объявление этой функции, даже если сам скрипт подключен к родителю-шаблону.
Terrasoft XRM 3.4.0.143
Нравится
Добрый день, Андрей.
Это не ошибка, на самом деле. Это особенность работы конфигуратора.
Обратите, например, внимение на сервис Common\Dictionaries\Communication Type\wnd_CommunicationTypeEditScript. В function wnd_CommunicationTypeEditOnPrepare(Window) есть вызов из наследуемого сервиса: wnd_BaseDBEditOnPrepare(Window); Но, если удержать клавишу CTRL и кликнуть на wnd_CommunicationTypeEditOnPrepare мышкой - редактор не перейдет к обявлению wnd_CommunicationTypeEditOnPrepare. Подключение функций wnd_BaseDBEdit происходит в ядре, во время запуска приложения. К функциям, которые объявлены в явно подключенных сервисах - перейти таким же образам получится.
Здравствуйте, Андрей!
По данным отдела разработки, данная функциональность должна работать. Но поскольку она реализована, начиная с определённой версии, то может не работать для «старых» скриптов, которые были сохранены более ранними бинарниками. Поэтому алгоритм действий следующий:
1) Пересохранить скрипт и окно скрипта в TSAdmin.
2) Пересохранить окно шаблона и его скрипт.
3) Перезапустить TSAdmin.
4) Если не поможет – обновить бинарники до последних 3.4.0, т.к. 3.4.0.143 – довольно старые. После этого повторить действия 1) – 3).
Анна, спасибо :twisted:
Обновил бинарные файлы до версии 3.4.0.165, выполнил Ваши действия 1) - 3) и все заработало :smile: