⟵ сюдатуда ⟶
  • Quick start
  • Установка MIT
  • Установка PRO
  • Обновления
  • Оптимизация
  • Обновление v4-v5
  • Бэкапы
  • Консольная утилита bin/totum
  • Основы для пользователей
  • Интерфейс и компоновка
  • Таблицы и их параметры
  • Префильтр
  • Поля и их параметры
  • Синтаксис
  • Код, действия, форматирование
  • Реляционные взаимосвязи
  • Порядок расчета и единицы пересчета
  • Автозаполнение расчетных и временных
  • Дублирование строк и циклов
  • Сравнения
  • Функции
  • Отладка
  • Отладка
  • Глобальные ошибки
  • Нехватка оперативной памяти
  • Смертельное зацикливание таблицы
  • Ошибка времени выполнения скрипта
  • Максимальный размер файла загружаемый в поле файл
  • Ошибка вывода utf-содержимого или слишком большого пакета данных
  • Включение отладки
  • PRO подсветка полей
  • Чтение отладочных логов
  • Доступе через кнопку Лог
  • Время расчета полей
  • Поиск поля вызывающего ошибку
  • Печать и CSV
  • API
  • Роли и пользователи
  • Нотификации
  • Действия по расписанию
  • Системные таблицы
  • [PRO] Деревья
  • [PRO] Анонимные таблицы
  • [PRO] Внешние формы
  • [PRO] Экспорт и импорт таблиц
  • [PRO] MeiliSearch
  • [PRO] Базы данных
  • [PRO] Настройка CSS
  • [PRO] Custom docs
  • [PRO] LDAP AD
  • [PRO] Версии файлов
  • [PRO] List-unsubscribe
  • [PRO] Динамические поля
  • [PRO] Only Office
  • [PRO] Auth Tokens
  • [PRO] 2FA
  • [PRO] Superlang
  • [PRO] Daemons
  • [PRO] Profiler
  • [PRO] Подключение функций
  • [SRV] Установка и подключение
  • [SRV] Экспорт, pdf, загрузка и предпросмотр
  • [SRV] XLSX/DOCX генераторы
  • Отладка и оптимизация

    Отладка

    Глобальные ошибки

    Нехватка оперативной памяти

    Если вместо загрузки страницы вы столкнулись с белым экраном, содержащим такую ошибку:

    Allowed memory size of 268435456 bytes exhausted (tried to allocate 20480 bytes)
    

    Разрешите на сервере больше оперативной памяти для PHP. Эта ошибка возникает, когда для выполнения текущей операции, в том числе и для открытия таблицы, недостаточно оперативной памяти.

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

    В некоторых случаях эта же ошибка может быть вызвана бесконечным циклом в кодах. Смотрите следующий пункт.

    Смертельное зацикливание таблицы

    Иногда коды в полях могут привести к вечному зацикливанию таблицы, потреблению всей доступной оперативной памяти или исчерпанию стека рекурсии в PHP. В первом случае выпадет ошибка как описано выше, во втором может быть ошибка сервера или белый экран.

    Например: код в любом поле хедера вида:

    =: recalculate(table: $#ntn)
    

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

    Для исправления подобных ситуаций вы можете открыть настройки полей через состав таблиц по пути Системные таблицы — Основные — Таблицы и поля — Состав таблиц и отфильтровать поля по нужной вам таблице.

    Настройки полей хранятся в поле Параметры поля.

    Ошибка времени выполнения скрипта

    Если выполнение изменения в таблице или действия было остановлено по максимальному времени выполнения скрипта — увеличьте доступное для Totum время выполнения:

    Переопределить можно Conf.php в корневой папке установки в параметре:

    public static $timeLimit = 120; // в секундах, по умолчанию 2 минуты
    

    Что бы открыть Conf.php на редактирование выполните:

    nano /home/totum/totum-mit/Conf.php
    

    Максимальный размер файла загружаемый в поле файл

    Если вы столкнулись с тем, что файл не загружается в поле файл то проверьте на сервере параметры upload_max_filesize и post_maxsize.

    Откроейте настройки pool fpm:

    nano /etc/php/8.3/fpm/pool.d/totum.conf
    

    Параметр:

    php_admin_value[upload_max_filesize] = 10M
    

    Откройте настройки nginx:

    nano /etc/nginx/sites-available/totum.online.conf
    

    Параметр:

    client_max_body_size 10M;
    

    Перезагрузите fpm и nginx:

    service php8.3-fpm restart && service nginx restart
    

    Ошибка вывода utf-содержимого или слишком большого пакета данных

    Возможно у вас включено логирование (в верхнем правом углу экрана) и логи слишком велики для отображения. Откройте любую другую таблицу и отключите логи.

    Возможно вы хотите загрузить слишком большую таблицу. Включите для нее страницы, открыв настройки из Системные таблицы — Основные — Таблицы и поля — Список таблиц.

    Включение отладки

    Включение логов

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

    • Код — отслеживание секции вычисления значений полей.

    • Код действия — отслуживание секции выполнения действий.

    • Селекты — отслеживание секции расчета отображений селектов.

    • Форматирование — отслуживанивание секции форматирования.

    • Пересчеты и селекты — устаревшее, отключено.

    • Время расчета полей — записывает время расчета полей по различным секциям кода, для оптимизации быстродействия больших таблиц. Результат работы вызывается при клике на иконку таблицы рядом с галочкой после обновления таблицы.

    Рекомендуется одновременно включать не больше двух! После включения лога необходимо совершить целевое действие для записи.

    Логи расчетов нигде не хранятся, отдаются в веб-интерфейс вместе с таблицей при изменении таблицы.

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

    PRO подсветка полей

    В PRO-версии можно подсветить заголовки полей для быстрого поиска нужного типа кода используемого в полях таблицы.

    Highlighting

    Чтение отладочных логов

    В логе можно увидеть последовательность выполнения строк кода, их результаты, входящие параметры и используемые переменные. Также можно выяснить на каком этапе возникла ошибка. Ошибка всплывает к пусковой строке кода.

    Доступе через кнопку Лог

    Придоступе к логам через кнопку Лог поля разделены по плейсментам. Внутри строчной части адресация осуществляется по id строки.

    Адресация в кнопке ЛОГ

    Обозначения:

    • Ког (шестеренки) — секция кода.

    • Ванд (волшебная палочка) — элемент.

    • Рука — обозначает секцию кода вычисленную и зафиксированную в предыдущей операции.

    • </> (дробь) — вывод значений списков.

    • HDD (диски) — запрос к базе данных.

    При клике на элемент он будет развернут во всплывающем окне.

    При возникновении ошибки ее можно проследить до места возникновения.

    Время расчета полей

    Используется для отладки быстродействия и нагрузки.

    Включить — перезагрузить — Открыть:

    Открыть время расчета

    Время расчета полей

    • table — таблица в которой измеряется время выпонения кодов полей.

    • field — name полей.

    • type — тип выполнения операции:

    • time — общее время выполнения кодов по типу в этом поле в секундах.

    • times — количество раз, которое был выполнен код. Для хедера и футера для поля это будет 1 раз, для строчной части — по количеству строк.

    Поиск поля вызывающего ошибку

    Если таблица не открывается и вы не знаете в каком поле находится ошибка, то можно попробовать ее найти поиском.

    В Отладке открываете поисквик ошибок:

    Поиск ошибок

    Параметры

    • Путь — указывается полный путь к ошибочной таблице.

    • Пользователь — выбираете пользователя от которого выполнять проверку.

    • Лимит — лимит в секундах на итерацию, Он перекрывает стандартный лимит времени исполнения скрипта для базы, что бы избежать долгого ожидания. По умолчанию 1 секунда. Вам нужн устанвить в соответствии с реальными условиями.

    • Основная таблица или Страница — для таблиц у которых есть разбивка на страницы надо проверить оба!

    После указания параметров — нажать Start.

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

    После этого осуществляется поиск поля в котором происходит ошибка.