Нередко при звонке возникает необходимость увидеть либо заполнить дополнительную информацию о звонящем. Для того, чтобы минимизировать количество операций, можно реализовать такую кнопку. Описание реализации в приложении.

Нравится

Поделиться

11 комментариев

Добрый день.
Сделал всё как в примере. По нажатии на кнопку ничего не происходит. С чем это может быть связано?

Вопрос снимается.

Анна, я попытался реализовать кнопку в карточке Задачи для перехода на страницу инцидента. Кнопка не работает.

Возможно это из-за этой строчки:

UserTaskOpenLead.PageUId = new Guid("df4b6147ca344ec998e5bd3a26c62b99");

Может для карточки инцидента существует другой Id?

Поменял на 280d4bf6689748e5a81e91bc6c501b3c - кнопка по прежнему неактивна.

Опять нарвался на ту же ошибку))
В материале следует исправить - кнопку нужно именовать не btnGotoLead, а просто GotoLead.

Как называть кнопку -- ваше дело, кстати, тут только фантазия ограничена только требованиями к идентификаторам. :smile:

Ну да не за этим пишу.
ИМХО, кнопку лучше добавлять прямо в поле, как на скриншоте. Так удобнее при выравнивании и пользователям понятнее... :smile:
А так все то же самое.

1

2

Не знаю. Уже несколько раз сталкивался - если именовать кнопку как в примере - ничего не работает.

Название кнопки и сообщение для обработчика в процессе должны соответствовать друг другу, например: MyCoolButton и тогда будет MyCoolButtonClick. А вообще оно автоматом генерится.
А также в скриптах скрытия/активации кнопки надо соответственно писать правильное название кнопки

Акмаль, убедитесь, что название обработчика кнопки в дизайнере страницы и название обработчика в стартовом событии совпадают.

Так ведь я о том и толкую. В примере они не совпадают.

Акмаль, благодарю за наблюдательность. Действительно, в примере нажатие кнопки генерирует событие btnGotoLeadClick, тогда как в обработчике отлавливается GotoLeadClick.

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

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

Подскажите, пожалуйста, как добавить элемент в список контекстного меню "Перейти к"?

Например: раздел "Договоры" - Деталь "Счета" - в меню "Перейти к" есть элемент "Счёт".
А мне надо аналогично сделать для собственноручно добавленной детали "Накладные"

Когда-то делал такое, но сейчас не могу вспомнить как :(

Спасибо.

Нравится

19 комментариев

Здравствуйте!

Данная функциональность (Перейти к) предусмотрена, как автоматическая.
Для того, чтобы это меню появилось в реестре (например, в реестре Вашей детали), необходимо, чтобы у реестра в списке невизуальных компонент присутствовал ActionMenuItem с названием amiGoto.

В это действие, попадут все элементы, к которым есть возможность перейти от Вашей записи реестра: те, с которыми у нее есть связь, а также, обязательно, чтобы у этих элементов был свой Workspace, так как переход будет выполняться функцией GotoWorkspace(WorkspaceWindowUSI, IDDataFieldValue).
Формирование элементов этого меню должно произойти автоматически при вызове функции mGridOnPrepare скрипта scr_BaseGridArea (в этой функции вызывается GridPopupMenuPrepare, а в ней уже и далее происходит формирование действия).

Инна Безверхняя,
II линия службы поддержки Terrasoft.

"Bezverkhnia Inna" написал:с которыми у нее есть связь, а также, обязательно, чтобы у этих элементов был свой Workspace,

Что подразумевается под связью? Foreign Key?
Workspace у накладных есть.

Инна,
в настоящее время список элементов в "Перейти к" содержит поля, по которым накладные связаны с другими таблицами-разделами.
А как добавить возможность перехода к самой накладной?

Разобрался.
Для грида накладных надо задать параметры AddSelfReference со значением true.

Я создал раздел "Акты техосмотра" и свяал с ним документы на уровне таблицы, прописал для него код if (!IsEmptyValue(Window.Attributes('ParentItemFieldName'))) {
SetAttribute(Window,'AddSelfReference',true);
SetAttribute(Window,'SelfReferenceCaption', "Акты техосмотра");
}
однако ссылка в меню "перейти" раздела документов так и не появилась. Где обеспечивается значение атрибута Window.Attributes('ParentItemFieldName'), оно ведь не должно быть пустым.

Скорее всего, либо у Вас в карточке "документа" отсутствует поле типа справочник "Акты техосмотра", либо не существует Workspace для нового раздела. Также необходимо проверить наличие Вашего dataset и workspacr нового раздела в теле функции FillReferencesDictionary скрипта scr_WindowUtils.

Спасибо! Получилось.

Добрый день.
В гриде в воркспейсе задач кнопки "доабвить", изменить" неавтивны. Условие активности зависит от текущего пользователя и прописано в функциях wnd_BriefGridAreaOnPrepare(Window) и wnd_BriefWorkspaceOnShow(Window). Но при переходе из грида задач на детали воркспейса проектов (напрмиер) в воркспейс задач, кнопки становятся активны.

По отладчику получается, что при переходе в грид по ссылке контекстного меню, вышеуказанные функции не вызываются. Подскажите пожалуйста, куда вставить условие активности кнопок, чтобы это работало?

Елена, здравствуйте.

При переходе к разделу из контекстного меню срабатывает функция GotoWorkspace. В скрипте scr_WindowUtils есть аналогичная функция, но с Notify'ем. Предлагаю добавить Notify также в стандартную функцию, и затем на событии OnNotify в нужном Вам разделе повторить логику деактивации кнопок.

Помогло. Спасибо

Здравствуйте! Сделал как сказано здесь: http://www.community.terrasoft.ru/forum/topic/7319#comment-31632
Действительно, добавился новый пунктик в "Перейти к" (переход к заявкам), но почему-то после этого все счета отображаются как удалённые, (хотя, пошарив в MS SQL, я записи увидел, и на другой машине, где не был перезагружен клиент после изменения конфигурации, доступ к записям счетов сохранился). В чём проблема?

Здравствуйте Алексей! При переходе устанавливается фильтр ID. Не мог быть включен другой фильтр кроме этого?

"Тюльпа Владимир" написал:

Здравствуйте Алексей! При переходе устанавливается фильтр ID. Не мог быть включен другой фильтр кроме этого?


Благодарю, действительно, ошибка была в лишнем включенном фильтре.

Здравствуйте!
Ещё одна ситуация при подобном переходе:
Раздел "Договоры", деталь "Банковские счета" - если счетов несколько то переход осуществляется к первому в списке, а не к тому, на котором стоит курсор. Если сменить сортировку - снова будет переход к первой записи. Если переходить из первой записи - всё верно.)
Профайлер ничего такого "плохого" не показывает.
Где можно поискать причину?

Здравствуйте, Алексей!
Попробуйте поставить отладчик в функции "GotoWorkspace" и посмотреть, какой идентификатор записи передается.

Алексей, процесс перехода начинается в функции GotoReference() из scr_BaseGridArea и там определяются выделенные в реестре записи функцией GetGridSelectedIDsArray(). Поставьте точку останова в этой функции и "пройдитесь" по ней отладчиком.
Проще всего ответ получить изучая состояния объектов по ходу отладки.

Также понадобилось добавить в Перейти к в пункт меню связки Продукты - Движение(деталь) в Движение(деталь).
Хочу в деталь Движение добавить в Перейти к пункт "Накладная" (Складские документы).

Добавил в wnd_OfferingMovementGridAreaScript (Накладная)

function Initialize(Window) {
        if (!IsEmptyValue(Window.Attributes('ParentItemFieldName'))) {
                SetAttribute(Window,'AddSelfReference',true);
                SetAttribute(Window,'SelfReferenceCaption',"Накладная");
        }

Проверил в scr_WindowUtils присутствие

RefDictionary.Add('ds_OfferingMovement', 'wnd_OfferingMovementWorkspace');

Но, пункта меню "Накладная" в детали Движение не появилось.
Что-то я упустил?

Alex, чтобы работал переход из детали в раздел, к выделенной записи реестра, необходимо чтобы у датасета детали были заполнены:
- Ключевое поле
- Первичное поле для отображения.
Более того, по ключевому и первичному для отображения полям происходит поиск записи для дальнейшего перехода к ней.
В случае с деталью [Движение], ключевое и первичное поле датсета ds_MovementInOfferingMovement не являются ключевым и первичным полем складского документа, поэтому реализация не применима.
Подобная реализация применима для окон scr_AccountsGridArea, wnd_CampaignsGridAreaScript, wnd_CashflowGridAreaScript и т.п

P.S: для отображения детали [Движение] используется окно wnd_MovementInOfferingMovementGridArea.

Здравствуйте.
Помогите решить один вопрос:
Существует отчет выводимый, с помощью фильтра, в таблицу Excel. Возможно ли добавить в контекстное меню, вызываемое правой кнопкой мыши, этот отчет отдельным пунктом.
Например:
1. заходим в список физ.лиц
2. на нужном клиенте нажимаем ПКМ
3. в контекстном меню выбираем пункт "Действия -> Отчеты" или "Перейти к -> отчеты"
4. выбираем нужный отчет
5. формируем таблицу Excel

Спасибо.

Михаил, обсуждение Вашего вопроса перенесено в эту тему

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

Все знаю, что для того, чтобы перейти к нужному объекту в раздел, нужно использовать функцию «Перейти к» из контекстного меню. Но не все знаю, что эта операция работает также, если выбрано одновременно несколько записей. В таком случае переход произойдет сразу к нескольким объектам, при чем этот список будет уникален. Например, есть реестр контактов:

Если этот список выделить и выбрать «Перейти к» --> «Контрагент», то перейдем в раздел Контрагенты и увидим список из трех контрагентов. При этом можно увидеть, что в менеджере фильтрации установлены три фильтра по ID через операцию «ИЛИ».

Нравится

Поделиться

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

Спасибо, полезная фича

Подскажите, а такое работает только в основном реестре?
Сейчас просто нужно было перейти к задачам по контрагенту, в менеджере деталей выбрала две задачи, нажала "Перейти к "задача"", но переходит только к первой задаче в списке.

Только что проверил на базовой 3.3.2 -- переход работает как нужно.

Для старых версий подобное решение описано здесь: http://community.terrasoft.ua/forum/topic/2567

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

Здравствуйте,

у пользователей не админов терасофта возникли следующие проблемы:

1)При вызове в разделе Контакты пункта Перейти к - Контрагенту из контекстного меню, открывается раздел Контрагентов с примененным фильтром, но что бы отобразить всех контрагентов простое отключение фильтра не помогает (снимаем галочку с фильтра,жмем Применить и ничего не происходит, запрос в базу не идет). Под админом такой проблемы нет.

2)Раздел Контрагенты - Создать контакт. этот пункт меню не работает для пользователей не админов.

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

Нравится

10 комментариев

Добрый вечер, Kat!

Насколько можно судить по Вашим сообщениям, речь идет о версии TS CRM 3.3.1.38 Rus. Уточните, пожалуйста, тип СУБД.
1. Очень странная ошибка.
Нажатие на кнопку Применить в любом случае вызывает закрытие и открытие набора данных, соответственно посылку запроса на сервер. Проверьте, что у Вас в разделе Контрагенты не установлена текущей некоторая группа контрагентов и не включен быстрый фильтр по контрагентам.
Если причину явно определить не удается - обращайтесь в службу поддержки.
2. Неясно, что означает фраза "этот пункт меню не работает". Выводится ли при этом какое-либо сообщение? Очень вероятно, что пользователь (и группа, в которой он находится) не имеет прав доступа по группам таблиц на добавление Контактов. Если ничего не поможет - рекомендую обращение в службу поддержки.

Да, версия 3.3.1.38. А если быть точней, то она была проапдейчена до 3.3.1.48.

"Гамора Дмитрий" написал:1. Очень странная ошибка.
Нажатие на кнопку Применить в любом случае вызывает закрытие и открытие набора данных, соответственно посылку запроса на сервер. Проверьте, что у Вас в разделе Контрагенты не установлена текущей некоторая группа контрагентов и не включен быстрый фильтр по контрагентам.

Никакие группы и фильтры не установлены. Даже при выборе другой группы фильтр не применяется. И ничего не происходит при нажатии на кнопку Очистить в фильтре.
"Гамора Дмитрий" написал:2. Неясно, что означает фраза "этот пункт меню не работает". Выводится ли при этом какое-либо сообщение? Очень вероятно, что пользователь (и группа, в которой он находится) не имеет прав доступа по группам таблиц на добавление Контактов.

Ничего не происходит. Для всех пользователей и для группы, в которую они входят установлены права на добавление Контактов.

www.informicus.ru

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

www.informicus.ru

Проверьте под админом наличие прав пользователей на конкретные записи. Вполне возможно, что права на раздел есть, но права на записи не розданы.

В случае, если каждый пользователь видит только определенные записи, на которые у него есть права доступа по записям, то пользователь ни при каких условиях не сумеет увидеть записи, на которые нет прав по записям (на детали Доступ). И фильтры тут не виноваты.

Если требуется сделать, чтобы пользователи видели чужие записи, необходимо настроить права доступа по умолчанию, а на существующие записи раздать права (примеры см. на форуме).

Желаю успехов!

Для всех записей в разделах Контакты и Контаргенты в детали Доступ указаны Supervisor и Ответсвенный со всеми правами.

www.informicus.ru

"Гамора Дмитрий" написал:В случае, если каждый пользователь видит только определенные записи, на которые у него есть права доступа по записям, то пользователь ни при каких условиях не сумеет увидеть записи, на которые нет прав по записям (на детали Доступ). И фильтры тут не виноваты.

Если требуется сделать, чтобы пользователи видели чужие записи, необходимо настроить права доступа по умолчанию, а на существующие записи раздать права (примеры см. на форуме).

Это мне понятно. Не понятно, почему фильтры никак не реагируют при попытке их отключить.

www.informicus.ru

Kat, нужно проверить на контрольном примере, может ли пользователь в принципе увидеть те записи, которые Вы хотите увидеть после наложения фильтров. Очень вероятно, что прав доступа, указанных на детали Доступ для записи, используемой в качестве контрольного примера, недостаточно, чтобы пользователь увидел эту запись.
Чтобы это проверить, нужно зайти в систему под проблемным пользователем, и попытаться увидеть в реестре нужную запись (например, используя сортировку и перебор страниц).

Кстати, Вы так и не признались, какой тип СУБД (базы данных - MSSQL, Oracle или Firebird) используется у Вас. Это может решающим образом помочь решить вопрос.

база данных MSSQL.

"Гамора Дмитрий" написал:Kat, нужно проверить на контрольном примере, может ли пользователь в принципе увидеть те записи, которые Вы хотите увидеть после наложения фильтров. Очень вероятно, что прав доступа, указанных на детали Доступ для записи, используемой в качестве контрольного примера, недостаточно, чтобы пользователь увидел эту запись.

Вы, наверно, не так поняли. В разделе Контактов я из контактного меню перехожу к Контрагенту выбранного контакта. В разделе Контрагенты у меня накладывается фильтр по id. Затем я пытаюсь снять галочку с фильтра, или просто очистить фильтр, или выбрать другую группу, но ничего не происходит,у меня так и остается только одна запись в реесте. А по-хорошему должны отобразиться все записи (для каждого пользователся свои).
Аналогичная проблема с переходом из контрагента к основному контакту.

www.informicus.ru

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

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