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

    Пример случаев, в которых это может привести к разным результатам кодов при добавлении и последующего пересчета

    Строка добавления еще не записана в базу данных — поэтому у нее нет #id. Это важно тк если вы в строке добавления используете код ссылающийся на #id вы можете столкнутся с непредвиденным для себя поведением:

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

    Если поле вычисляется кодом и редактируется в строке добавления и включен код только при добавлении — значение в добавленной строке будет добавлено с учетом того, что #id был равен "":


    = :
    str`"NUM -" ++ #id`) // Без код только при добавлении // Результат в строке добавления: NUM - // Результат после добавления: NUM - [hand] // С кодом только при добавлении // Результат в строке добавления: NUM - // Результат после добавления: NUM -

    Поэтому не рекомендуется использовать привязку к id для кодов в таблицах в которых пользователи могут добавлять строки вручную.

    Когда вы добавляете строку через функцию insert это также актуально — если вы используете код только при добавлении то при его выполнении id будет пустым!.

    Если все-таки нужна и строка добавления и id после добавления, то надо добавить действие на добавление строки:

    • Если включен код только при добавлении:

      =: recalculate(table: $#ntn; where: 'id' = #id; field: $#nf)
      
      // Код-действия выполняется после создания id
      
      
    • Если выключен код только при добавлении и поле редактируемое при добавлении:


      =:
      clear(table: $#ntn; where: 'id' = #id; field: $#nf) // Код-действия выполняется после создания id

      Эти варианты не решают проблему если у вас на этом поле завязаны коды последующих полей.

    Поэтому лучшим вариантом будет сконструировать код без привязки к id добавляемой строки!