Здравствуйте!
Возник такой вопрос "Объекты" - создал раздел (через утилиту CreateNewWorkspace).
Среди полей в том числе и создано поле Контрагент, ссылающееся на соответствующий справочник.
В разделе "Контрагенты" сделал деталь, записи на которой берутся справочника "Объекты".
Задача состоит в том, чтобы на этой детали были автоматически видны записи раздела "Объекты" у которых выбран соответствующий контрагент. Немного копнул в механизме детали "Контакты" - я так понимаю надо переработать запрос в детали. Я правильно смотрю, или есть более простые механизмы?
Нравится
"Мамедов Фариз Эльдарович" написал:надо переработать запрос в детали
В принципе, верно. Если для детали используются сервисы раздела [Объекты], то необходима в 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 - название контейнера
Угу теперь понятно, я подозревал подобное, но просто не смог найти скрипт в котором описана эта функция чтобы посмотреть какие у нее входные данные.