⟵ сюдатуда ⟶
  • Мастерклассы
  • Внешние подключения
  • Tableau и PowerBI
  • amoCRM
  • Битрикс 24
  • База знаний
  • Обращение к данным временной таблицы
  • Потеря связи с БД при большом трафике данных
  • Сохранить файл в поле по внешней ссылке url
  • Формирование списка из отмеченных галочками строк и вывод на печать
  • Добавление цикла в таблицу циклов кнопкой из временной таблицы
  • Функция TryCatch и передача данных после отката
  • Ошибка доступа при переходе в цикл если первая таблица недоступна для пользователя
  • Архитектура системы рассчитывающей остатки по кассе или складу
  • Сортировка при выборке по отображению поля Селект, а не по его основанию
  • Блокировка введения дублированного значения
  • Табличное отображение в контекстной панели
  • Сортировка строк в таблице с помощью кнопки
  • Как получить значение по условию из списка вложенных массивов?
  • Сбросить счётчик id в таблице
  • Скрытие поля в таблице по условию
  • Подтверждение действия при нажатии на кнопку в контекстном окне
  • Пересчет большой таблицы
  • Как суммировать значения в rowList по одному из ключей (по одной из колонок)
  • Наборы полей по условию при открытии через linkToTable
  • Как отложить выполнение действия и выполнить его в фоне
  • Создание и удаление строк при выборе значений в Селект или Селект-дерево
  • selectRowListForSelect с условием при котором текущее значение получается зачеркнутым
  • Не все внешние запросы на Remotes выполняются и ломается счетчик id
  • Сортировка Расчётных таблиц в Цикле
  • Как передать данные в виде чисел при обращении POST к API стороннего сервиса (must be a "integer")
  • Как сделать график если есть несколько параметров
  • Сохранение изначальных значений в поле в случае, когда поле рассчитывается кодом
  • Табличное отображение в контекстной панели

    Оригинал на GitHub

    Ссылка на GitHub ⟹

    Вопрос

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

    Ответ

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

    Каким образом выглядит шаблон:

    {
      "data": [
        {
          "name_1": "content_here_1_1",
          "name_2": "content_here_1_2",
          "name_3": true
        },
        {
          "name_1": "content_here_2_1",
          "name_2": "content_here_2_2",
          "name_3": false
        }
      ],
      "settings": {
        "columns": [
          "name_1",
          "name_2",
          "name_3"
        ],
        "headRow": {
          "name_1": "Title for name_1",
          "name_2": "Title for name_2",
          "name_3": "Title for name_3"
        },
        "headColumn": true
      }
    }
    

    В data содержаться данные для показа — rowList. В данных может быть больше колонок чем будет показано. Показываться будут те, которые указаны в ключе settings — в ключе columns.

    В settings оформляются настройки отображения:

    • columns — name колонок из data, которые надо показать.

    • headRow — строка заголовков в которую мы передаем row из name колонки и соответствующего ей title.

    • headColumn — true | false, нужно ли выделять жирным значения в первой колонке.

    Что бы значение в поле выглядело хорошо, то ему также назначается форматирование с перекрывающим text:

    f1=: setFormat(text: "Some value"; textasvalue: true)
    

    Шаблон можно собрать прям в поле кодом, либо хранить где-то и подтягивать селектом.

    Я обычно имею в таблице два поля — техническое (скрытое) с данными без настроек data_from_teh_field и показываемое пользователю:

    =: rowCreate(field: "data" = #data_from_teh_field; field: "settings" = $settings)
        settings: rowCreate(field: "columns" = $columns; field: "headRow" = $headRow; field: "headColumn" = true)
            columns: json`["name_1","name_2","name_3"]`
        headRow: rowCreate(field: "name_1" = "Title 1"; field: "name_2" = "Title 2"; field: "name_3" = "Title 3")
    

    Обычно для такого поля ширина контекстной панели увеличивается через настройки поля через параметр Ширина контекстной панели.