Подскажите, пожалуйста, как добавить элемент в список контекстного меню "Перейти к"?
Например: раздел "Договоры" - Деталь "Счета" - в меню "Перейти к" есть элемент "Счёт".
А мне надо аналогично сделать для собственноручно добавленной детали "Накладные"
Когда-то делал такое, но сейчас не могу вспомнить как :(
Спасибо.
Нравится
Здравствуйте!
Данная функциональность (Перейти к) предусмотрена, как автоматическая.
Для того, чтобы это меню появилось в реестре (например, в реестре Вашей детали), необходимо, чтобы у реестра в списке невизуальных компонент присутствовал ActionMenuItem с названием amiGoto.
В это действие, попадут все элементы, к которым есть возможность перейти от Вашей записи реестра: те, с которыми у нее есть связь, а также, обязательно, чтобы у этих элементов был свой Workspace, так как переход будет выполняться функцией GotoWorkspace(WorkspaceWindowUSI, IDDataFieldValue).
Формирование элементов этого меню должно произойти автоматически при вызове функции mGridOnPrepare скрипта scr_BaseGridArea (в этой функции вызывается GridPopupMenuPrepare, а в ней уже и далее происходит формирование действия).
Инна Безверхняя,
II линия службы поддержки Terrasoft.
"Bezverkhnia Inna" написал:с которыми у нее есть связь, а также, обязательно, чтобы у этих элементов был свой Workspace,
Что подразумевается под связью? Foreign Key?
Workspace у накладных есть.
Инна,
в настоящее время список элементов в "Перейти к" содержит поля, по которым накладные связаны с другими таблицами-разделами.
А как добавить возможность перехода к самой накладной?
Я создал раздел "Акты техосмотра" и свяал с ним документы на уровне таблицы, прописал для него код 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
Спасибо.
Михаил, обсуждение Вашего вопроса перенесено в эту тему