Здравствуйте!
Расскажите, пожалуйста, каким образом можно фильтровать данные в детали. Отображать данные связанные с записью в реестре удается, а вот включить дополнительные фильтры - никак.
Нравится
Если вам нужно, чтобы на детали постоянно был включен какой-то дополнительный фильтр и он не снимался при переходе от одной записи к другой записи в основном гриде раздела, то вам необходимо добавить передачу параметра DoNotDisableAllFilters=true в общюю функцию RefreshCommonDetail в нужном вам разделе. Например, для детали "Проекты" в разделе "Контрагенты":
[javascript]
RefreshCommonDetail(BaseWorkspace, wndProjectDetail, 'ClientID', 'ClientID', null, null, null, null, null, null, true);
[/javascript]
А для того, чтобы наложить фильтр дополнительный, вы можете сделать это в функции инициализации детали в нужном вам разделе.
Спасибо, Андрей!
Зря я не написал для какой версии надо фильтровать данные в детали...
В моей версии (3.2.017) объявление для RefreshCommonDetail() (scr_WorkspaceUtils) следующее:
[javascript]
function RefreshCommonDetail(BaseWorkspace, WindowContainer, ParentItemFieldName, ChildFilterName, DatasetUSI, EditWindowUSI, AdditionalAttributes, AlwaysRefresh, SimpleRefresh, ParentItemID) {...}
[/javascript]
Т.е. очень нужный в моем случае 11 аргумент отсутствует))! Подскажите, пожалуйста, как можно отфильтровать данные на вкладке с поправкой на версию?
По сути основное отличие функции RefreshCommonDetail в 3.2.0.17 и 3.3.2 это добавление параметра DoNotDisableAllFilters.
В функции RefreshCommonDetail, вызванивается RefreshDetailDataByParentID с scr_DB, в которую также добавлен параметр DoNotDisableAllFilters, сама функция RefreshDetailDataByParentID не менялась с версии 3.2.0.17 и 3.3.2, поэтому вам следует сравнить RefreshCommonDetail и дописать необходимую логику.
По сути следует добавить вместо
[javascript]
} else {
RefreshDetailDataByParentID(ParentID, Dataset, ChildFilterName);
}
[/javascript]
строки
[javascript]
} else {
if (IsUndefined(DoNotDisableAllFilters)) {
DoNotDisableAllFilters = true;
}
RefreshDetailDataByParentID(ParentID, Dataset, ChildFilterName,
DoNotDisableAllFilters);
}
[/javascript]
и добавить сам параметр в объявление функции:
Заменить
[javascript]
function RefreshCommonDetail(BaseWorkspace, WindowContainer,
ParentItemFieldName, ChildFilterName, DatasetUSI, EditWindowUSI,
AdditionalAttributes, AlwaysRefresh, SimpleRefresh, ParentItemID) {
[/javascript]
на
[javascript]
function RefreshCommonDetail(BaseWorkspace, WindowContainer,
ParentItemFieldName, ChildFilterName, DatasetUSI, EditWindowUSI,
AdditionalAttributes, AlwaysRefresh, SimpleRefresh, ParentItemID,
DoNotDisableAllFilters) {
[/javascript]
На всякий случай выслал вам на почту скрипты scr_WorkspaceUtils и scr_DB