Работа sandbox с несколькими подписчиками

Добрый день.

Есть необходимость скрывать кнопку "+" (кнопка добавления записи) на детали, в зависимости от того, на какой странице она находится.

1.На странице контакта, кнопки "+" никогда не должно быть.

2. На странице заявки, кнопки "+" никогда не должно быть.

3. На преднастроенной странице БП, кнопка должна отображаться, в зависимости от наличия записи в этой детали, по определенным типам и т.д.

Реализовали следующую логику:

На схеме детали создано сообщение, которое срабатывает на Init. Передаем сообщение с параметрами. В ответ получаем:

1. Если открываем страницу контакта, то там срабатывает подписка и всегда передаем false

2. Если открываем страницу заявки, то там срабатывает подписка и всегда передаем false

3. Если открываем преднастроенную страницу, срабатывает подписка, дальше срабатывает функция которая делает проверку наличия записей в таблице детали, с определенными параметрами, и если запись есть передаем false если записей нету передаем true

 

Вроде все работает. Но заметили, что если сначала открыть страницу Контакта или Заявки, а потом открыть преднастроенную страницу, то подписка на преднастроенной странице не отрабатывает, а отрабатывает именно Контакт (либо заявка), и соответсвеноо получаем false. 

Т.е. при ините странице контакта, срабатывает подписка, которая "висит" и отвечает постоянно отвечает всем подряд.

 

Можно ли как-то отменять подписку, после "ухода" со страницы? Именно ухода, не по нажатию кнопки закрыть (я так понимаю тут можно пойти через destroy) ? 

 

Или есть какие-то еще варианты?

Т.е. нужно чтобы запрос-ответ всегда был только в рамках конкретной страницы, которая открыта у пользователя.

Нравится

2 комментария

А мы просто делаем 2 разные схемы детали на одном объекте. Одна с "+", другая без него (а ещё без Copy, Import и т.п.)



И используем на странице ту, которая нужна

Владимир Соколов,

Да, тоже пришли в итоге к этом варианту. Но думали немного "покопать" в сторону универсального решения)

Показать все комментарии