Добрый день.
Есть необходимость скрывать кнопку "+" (кнопка добавления записи) на детали, в зависимости от того, на какой странице она находится.
1.На странице контакта, кнопки "+" никогда не должно быть.
2. На странице заявки, кнопки "+" никогда не должно быть.
3. На преднастроенной странице БП, кнопка должна отображаться, в зависимости от наличия записи в этой детали, по определенным типам и т.д.
Реализовали следующую логику:
На схеме детали создано сообщение, которое срабатывает на Init. Передаем сообщение с параметрами. В ответ получаем:
1. Если открываем страницу контакта, то там срабатывает подписка и всегда передаем false
2. Если открываем страницу заявки, то там срабатывает подписка и всегда передаем false
3. Если открываем преднастроенную страницу, срабатывает подписка, дальше срабатывает функция которая делает проверку наличия записей в таблице детали, с определенными параметрами, и если запись есть передаем false если записей нету передаем true
Вроде все работает. Но заметили, что если сначала открыть страницу Контакта или Заявки, а потом открыть преднастроенную страницу, то подписка на преднастроенной странице не отрабатывает, а отрабатывает именно Контакт (либо заявка), и соответсвеноо получаем false.
Т.е. при ините странице контакта, срабатывает подписка, которая "висит" и отвечает постоянно отвечает всем подряд.
Можно ли как-то отменять подписку, после "ухода" со страницы? Именно ухода, не по нажатию кнопки закрыть (я так понимаю тут можно пойти через destroy) ?
Или есть какие-то еще варианты?
Т.е. нужно чтобы запрос-ответ всегда был только в рамках конкретной страницы, которая открыта у пользователя.
Нравится
А мы просто делаем 2 разные схемы детали на одном объекте. Одна с "+", другая без него (а ещё без Copy, Import и т.п.)
И используем на странице ту, которая нужна