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