⟵ сюдатуда ⟶
  • Учебный курс
  • Создание простых таблиц и полей
  • Коды базовый уровень
  • Селекты и связь между таблицами
  • Настройки таблиц базовый уровень
  • Префильтры базовый уровень
  • Условное форматирование базовый уровень
  • Коды действия базовый уровень
  • Использование всплывающих окон
  • Циклы базовый уровень
  • Роли и пользователи в web
  • Коды продвинутый уровень
  • Коды действий продвинутый уровень
  • Префильтры продвинутый уровень
  • Как доступ к изменению и видимость префильтра влияют на фильтрацию?
  • Префильтры вычисляемые кодом
  • Как использовать поле префильтра как временную переменную?
  • Настройки полей и таблиц продвинутый уровень
  • Циклы продвинутый уровень
  • Форматирование продвинутый уровень
  • Селект-дерево
  • Выполнения кода действия по расписанию
  • Печать и отправка email
  • Нотификации
  • Взаимодействие по API
  • Адаптивность и секции
  • Графики
  • Вид таблицы панелями и поворот строчной части
  • Анонимные таблицы для неавторизованного доступа
  • Внешние формы для сбора информации
  • Обновление и бэкапирование
  • Дублирование схем и перенос таблиц между базами
  • Консольная утилита bin/totum
  • Как доступ к изменению и видимость префильтра влияют на фильтрацию?

    Будет ли фильтровать префильтр, заблокированный для пользователя на изменение?

    Да, будет если его значение вычисляется кодом или установлено по умолчанию.

    Это дает возможность использовать префильтр для жесткого разделения доступа к строкам — делается заблокированный для пользователя префильтр, в котором вычисляется относящееся к нему значение.

    Например, если мы хотим для менеджера показывать только его строки, а для остальных все:

    // 10 — роль «менеджер»
    
    =: if(condition: $#nr = 10; then: $#nu; else: "")
    
    
    • $#nrlist из ролей пользователя, проверяем, есть ли в нем «менеджер».

    • $#nuid текущего пользователя.

    Будет ли фильтровать префильтр, скрытый для пользователя?

    Да, если поле префильтра включено в web или api и скрыто для пользователя — оно все равно будет применятся.

    Это дает возможность делать комплексные префильтры. Например мы хотим, что бы в поле префильтра выбирался пользователь, а фильрация происходила по компании к которой он относится:


    // Код в поле fl_teh_prefilter = : if(condition: #fl_user = ""; then: $#lc; else: $calc) calc: selectList(table: 'table_users'; field: 'id'; where: 'company' = $company) company: select(table: 'table_users'; field: 'company'; where: 'id' = #fl_user)

    В этом случае мы префильтр fl_user не привязываем к строчной части, а привязываем скрытый fl_teh_prefilter.

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

    Будет ли работать предзаполнение поля по префильтру если он скрыт?

    Да, ключевым фактором здесь является привязка и доступ на редактирование при добавлении.

    Если необходимо заблокировать поле от ошибки пальцев, то можно заблокировать его через форматирование:


    f1=:
    setFormat(condition: #id = ""; block: true)

    В этом случае поле будет заблокировано, но автоподстановка значения будет работать.

    Будет ли работать префильтр если он выключен в web?

    Нет. В этом случае префильтр отключается.