Вопрос

Фильтрация справочного поля

Коллеги, здравствуйте. 

Как создать фильтр для справочного поля ""Ответственный", чтобы была выборка из раздела "Контакты" только записей с типом "Сотрудник"?

 

У меня такой же вопрос

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

Добрый день.

В базовой версии фильтрация поля 'Ответственный' настраивается через атрибуты таким образом:

"Owner": {
	"dataValueType": Terrasoft.DataValueType.LOOKUP,
	"lookupListConfig": {"filter": BaseFiltersGenerateModule.OwnerFilter}
}

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

Для решения Вашей задачи Вы можете использовать данный код.

Алла Савельева,

Алла, дело в том, что я использую не стандартное поле "Ответственный", я создал раздел, и в нём добавил справочное поле "Ответственный", - UsrAccount, справочник которого ссылается на раздел "Контакты". Мне необходимо, чтобы в данном кастомном справочном поле отображались только те значения, у которых Тип - Сотрудник. 

Nastol Eugene,

Тогда можете реализовать такую же фильтрацию для Вашего поля по аналогии с приведенным примером.

Проверьте, точно ли у Вас поле 'Ответственный', которое называется UsrAccount, ссылается на раздел 'Контакты'.

 Проверил, в справочнике стоит "Контакты.

 

define("UsrBid1Page", ["BaseFiltersGenerateModule"], function(BaseFiltersGenerateModule) {
    return {
        entitySchemaName: "UsrBid",

...

    ]/**SCHEMA_DIFF*/,
        attributes: {
           "UsrAccount": {
            "DataValueType": Terrasoft.DataValueType.LOOKUP,
            "lookupListConfig": {"filter": BaseFiltersGenerateModule.UsrAccountFilter}
        }
        },
  
        methods: {
       
        UsrAccountFilter: function() {
            return Terrasoft.createColumnIsNotNullFilter("[SysAdminUnit:Contact].Id");
        },

Сейчас пробую так, не работает, - вываливается весь список 

Nastol Eugene,

Если у Вас есть доступ к серверу баз данных посмотрите профайлером, какой запрос идет в базу.

Также проверьте консоль - нет ли там сообщений об ошибках.

Войдите или зарегистрируйтесь, чтобы комментировать