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

Возник такой вопрос "Объекты" - создал раздел (через утилиту CreateNewWorkspace).
Среди полей в том числе и создано поле Контрагент, ссылающееся на соответствующий справочник.
В разделе "Контрагенты" сделал деталь, записи на которой берутся справочника "Объекты".

Задача состоит в том, чтобы на этой детали были автоматически видны записи раздела "Объекты" у которых выбран соответствующий контрагент. Немного копнул в механизме детали "Контакты" - я так понимаю надо переработать запрос в детали. Я правильно смотрю, или есть более простые механизмы?

Нравится

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

"Мамедов Фариз Эльдарович" написал:надо переработать запрос в детали

В принципе, верно. Если для детали используются сервисы раздела [Объекты], то необходима в SelectQuery раздела добавить параметр AccountID и одноименный фильтр. При создании детали в разделе [Контрагенты] свойство Window элемента WindowConteiner-а указать Grid раздела [Объекты], в скрипте wnd_AccountWorksspace, функции ResreshDetails для новой детали использовать функцию RefreshCommonDetail.

Здравствуйте, Фариз.

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

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

Спасибо за пояснения!

"Кулак Олег" написал:В принципе, верно. Если для детали используются сервисы раздела [Объекты], то необходима в SelectQuery раздела добавить параметр AccountID и одноименный фильтр.

Сделано.

"Кулак Олег" написал:
При создании детали в разделе [Контрагенты] свойство Window элемента WindowConteiner-а указать Grid раздела [Объекты], в скрипте wnd_AccountWorksspace, функции ResreshDetails для новой детали использовать функцию RefreshCommonDetail.

А вот на этом абзаце забуксовал. Можно немного поподробнее?

По порядку - сделал Page "pgAccountSitesDetail", сделал так окно (Container) в свойстве Window выбрал wnd_SitesGridArea (Sites - новый раздел "Объекты").
В скрипт scr_AccountsWorkspace в функции function RefreshDetails() добавил следующий код:

if (pcDetails.ActivePage.Name == pgAccountSitesDetail.Name) {
RefreshCommonDetail();
} else

При открытии раздела Контрагенты (видимо при проходе функции обновления деталей) всплывает ошибка 'Window' - есть null или не является объектом. Вид детали именно какой надо - но при нажатии кнопки "Добавить" ничего не происходит.

"Мамедов Фариз Эльдарович" написал:if (pcDetails.ActivePage.Name == pgAccountSitesDetail.Name) {
RefreshCommonDetail();
} else

RefreshCommonDetail(BaseWorkspace, wndAccountSitesDetail, 'AccountID', 'AccountID');

wndAccountSitesDetail - название контейнера

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

Функцию можно увидеть в скрипте scr_WorkspaceUtils

Ок, спасибо, все получилось )

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