Проблема с вызовом докомпилированного интерфейса.
Хочу добавить кнопку в интерфейс карточки производственного заказа. Компилирую ресурс, подключаю в саппорте как пользовательский. Далее вызываю стандартно из меню Галактики - в интерфейсе моей кнопки нет. При этом, если сначала запустить интерфейс непосредственно через утилиту запуска внешнего интерфейса, то при последующем стандартном вызове из меню, моя кнопка появляется. При подключении интерфейса из випера в режиме отладки поведение такое же. Посоветуйте пожалуйста, что с этим делать?
Это мой код:
с каким приоритетом подключаете ресурс, сделайте 3009 например. Если запуск удаленного интерфейса сделать, там видно из какого ресурса грузится, там ваш или стандарт?
Alo писал(а):Далее вызываю стандартно из меню Галактики - в интерфейсе моей кнопки нет. При этом, если сначала запустить интерфейс непосредственно через утилиту запуска внешнего интерфейса, то при последующем стандартном вызове из меню, моя кнопка появляется. При подключении интерфейса из випера в режиме отладки поведение такое же. Посоветуйте пожалуйста, что с этим делать?
Алексей писал(а):с каким приоритетом подключаете ресурс, сделайте 3009 например. Если запуск удаленного интерфейса сделать, там видно из какого ресурса грузится, там ваш или стандарт?
Когда смотрю интерфейс через утилиту запуска внешнего интерфейса, то вижу там свой ресурс, а не стандартный
вместо
if (cfsSetCurrentContainer('M_MNPLAN::IRSPMNPLAN')
используйте
if(cfsSetCurrentContainer(cfsGetCurrentContainerSelf) <> cfOk)
это исключит ошибки при повторном запуске фейса - контейнер уже будет другой.
Ну и приоритет опять же проверьте.
Кроме того если фейс встраиваемый, то cmInit может не запускаться - используйте cmVipOnLoad, как вам написал m0p3e
Я обычно добавление выделяю в отдельную функцию и запускаю ее там и там, а в ней самой проверяю переменную и если она true , то создание элементов не делаю
Вариант с cfsSetCurrentContainer('M_MNPLAN::IRSPMNPLAN' работает, но только после прямого запуска утилитой запуска внешн. интерфейса,
а вариант if(cfsSetCurrentContainer(cfsGetCurrentContainerSelf) вообще не работает.
Любопытно, если в режиме отладки в випере запустить интерфейс через утилиту запуска вн. интерфейсов, а потом отключить ресурс от проекта, то при запуске из меню Галактики, в интерфейсе все равно появляется моя кнопка.
Думаю, дело не в vip-коде. Данный ресурс, как будто вообще игнорируется. Это следует из того, что при непосредственном запуске утилитой - все работает.
Благодаря вашим советам все получилось, но теперь аналогичная проблема с докомпиляцией другого вложенного интерфейса все в той же карточке производственного заказа.
Пытаюсь изменить интерфейс M_MNPLAN::ISPSPPL01 (спецификация ПЗ).
Путь: M_MNPLAN::IRMNPLAN.WMNEDIT.SCMNEDIT.M_MNPLAN::IMNPLANEDIT.SCMNPLAN.M_MNPLAN::IRSPMNPLAN.SCRSP.M_MNPLAN::ISPSPPL01.
При вызове карточки из меню должно выдаваться сообщение, но ничего не происходит. Подскажите пожалуйста, что у меня не так?
1. Проверьте лог - не все фейсы можно докомпилировать.
2. Убедитесь через запуск внешнего фейса, что он отображается в вашем ресурсе.
3. Интересно, что там дальше.
4. С этим фейсом все вообще запутано, Возможно подрубается не он сам, а его наследник.