Кнопки управления на детали "Контакты" в разделе "Контрагенты"

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

Нравится

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

Чтобы появились кнопки Добавить и другие нужно в скрипте scr_AccountsWorkspace удалить строчку SetAttribute(DetailWindow, 'HideButtonsFrame', true); в методе InitializeContactsInAccountDetail(). Также в скрипте scr_ContactsInAccountGridArea изменить событие wnd_ContactsInAccountGridAreaOnPrepare(Window)

function wnd_ContactsInAccountGridAreaOnPrepare(Window) {
	Initialize();
	Window.Attributes('EditWindowUSI') = 'wnd_ContactEdit';
	wnd_BaseGridAreaOnPrepare(Window);
}

Правда при таком подходе, при нажатии двойным кликом в гриде на запись будет открываться раздел контрагентов, а карточка только при нажатии на имя контакта в колонке.
Если кнопки все равно не появяться, то возможно у них стоит свойство IsVisible = false в сервесе wnd_ContactsInAccountGridArea или у их фрейма frmButtons

Здравствуйте, Вячеслав.
Павел уже ответил на Ваш вопрос, хочется только добавить пару моментов.

1. Помимо того, что кнопкам нужно проставить свойство IsVisible = true, нужно проверить это свойство также для самой панели кнопок: frmButtons, для нее тоже должна быть включена видимость.

2. Когда пользователь будет создавать новый Контакт из детали "Контакты" раздела "Контрагенты", он, вероятно, будет ожидать, что поле "Контрагент" в карточке этого контакта автоматически заполнится названием выбранного в реестре контрагента, для этого нужно добавить такой обработчик события OnClick кнопки "Добавить":

function btnAddOnClick(Control) {
	BaseGridArea.AddDataDefaultValues('AccountID') = Self.Attributes('ParentItemID');
	scr_BaseGridArea.btnAddOnClick(Control);
}

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

"Bezverkhnia Inna" написал:function btnAddOnClick(Control) {
        BaseGridArea.AddDataDefaultValues('AccountID') = Self.Attributes('ParentItemID');
        scr_BaseGridArea.btnAddOnClick(Control);
}

Инна, если окно создано на основе родительского wnd_BaseGridArea этот обработчик не будет срабатывать по умолчанию?

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

Интересно, а почему этих кнопок нету в базовой версии? Должна же быть причина

"Владимир Соколов" написал:Должна же быть причина

контакты, связанные с Контрагентом через деталь карьера должны отображаться на вкладке Контакты. В таком случае деталь работает с несколькими сущностями и кнопка Добавить не понятна для чего.

"Вячеслав Тихонов" написал:чтобы добавить новых.

Правой кнопочкой по Контрагенту -> Действие -> Создать контакт.
Система уточнит, следует ли заполнить новую карточку данными Контрагента.

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

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

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

"Вячеслав Тихонов" написал:быстрота и простота этой операции становится важна

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

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