Начало работыОснова Falcon SpaceРуководства
Типовые ситуации для админа-разработчика в панели управления Как создать таблицу на сайте по шагамКак создать форму на сайте по шагамКак создать дашборд в личном кабинете пользователяКак улучшить свой код - заметки по ревизии кодаКак сделать аналитический отчет или таблицу на сайтеПодробное описание процесса создания формы Обратная связьСоздание системы уведомлений из внешних источников (через API)Как отслеживать историю действий пользователя или историю событий по объекту системыКак сделать отслеживание посещений сайта конкретными людьми?Как сделать перевод сайта на другой язык для нетехнического специалистаКак сделать функционал оценки полезности материалаСоздание из под editor структуры личных кабинетов (роли, страницы)Улучшение адаптивности страниц под мобильные устройстваСоблюдение порядка в проекте в процессе сопровождения сайтаКак считать показатели год-к-году (YoY) в отчете по периодамКак добирать данные по объекту из внешних источников по APIРеализация процесса заполнения анкеты через телеграм ботМассовое обновление текстов сайта с использованием ИИ
ВозможностиКоммуникация пользователейТаблицы
Работа с таблицамиВывод данных в таблице - getItemsРедактирование данных в колонках таблицы - updateFieldУдаление строки в таблице - deleteItemСоздание строки в таблице - FastCreateОперации в таблице - на строку, групповые операцииНастройка параметров таблицыФильтрация данных в таблицеНастройка колонок таблицыНастройка сниппета таблицыКак сделать сортировку в таблицеКак реализовать подтаблицу (вложенная таблица), подформу в таблицеКак сделать таблицу в модальном окне (открывается в диалоговом окне)Как связать 2 таблицы Кастомная разметка в таблицеВыгрузка данных таблицы в XML, JSON, CSVJS коллбеки для таблицыЗагрузка таблицы по ссылкеКак связать таблицу и редактирование сущности (зависимая страница). Master-slaveКак использовать комментарии в таблицахКак добавить в фильтре значение Не выбрано со значениемКак установить ширину колонки в таблице Как добавить диапазон даты или чисел (слайдер) в фильтрКак сделать операции только для некоторых строкКак делать различный набор столбцов одной таблицы для разных ролейКак сделать Editable для галочки (Да/Нет) в AS CRUDКак редактировать колонку с датойКак скрыть строчные операции в таблице для определенных строкКак добавить коллбек после загрузки таблицыОтображение таблиц на смартфонеКак работать с галочками в таблицеЧастые ошибки при настройке таблицы (почему не работает таблица)Как обновить подтаблицу после выполнения некой операцииКак обрабатывать групповые операции через модальную формуКак создать предустановленные фильтры для таблицыКак убрать показ количества строк результата в заголовке таблицы? Как сделать сворачивание таблицы (collapse table)Как убрать старые dict процедуры в формах и таблицахКак сделать фильтр с деревом галочекКак отключить сохранение состояния таблицы (фильтры)Как сделать ссылку на всю строку таблицыКак передать через URL значение фильтраКак сделать обрезание ячеек таблицыСортировка строк в таблицеСоздание сущности с учетом значений фильтровОптимизация запроса SQL - извлечение данных для таблицыРежим кастом вывода через JS (custom)Как настроить дополнительные шапку и подвал у таблицыКак сделать зависимые фильтры в таблицеИмпорт данных в формате файлов txt, csv, excel через компонент ТаблицаКак гибко управлять видимостью столбцов таблицыКак сделать раскрытие подстроки в таблице через любую ссылкуРежим быстрой фильтрации строк без обращения на серверВыпадающая панель рядом с названием таблицы dropdownPanelКак убрать при загрузке установку фокуса ввода на фильтр (data-nofocus)?Как сделать аналитику по периодам (таблица с интервалами дат)Кастомизация вида операций таблицыСтилизация фильтров таблицыАнализ данных в таблице через внешние сервисы (опция apiSendDataOptions)
Формы
Работа с формамиНастройка полей формыСписок типов полей формыGetItem - вывод данных формыCheckItem - процедура проверка введенных данных на формеSaveItem - процедура сохранения формыSaveField - сохранение одиночного поля на формеCheckItemFIeld - процедура реагирования на изменения поляdict - процедура для значений списковых полей формыProgress - процедура отображения статуса заполнения формыКак вывести форму во всплывающем окне рядом с кнопкой (popover)Загрузка формы по ссылкеКак принимать в форму не 1 параметр (itemID), а несколько входящих параметров? data-param-p1Как сделать модальную форму Как добавить коллбек после загрузки формы и после сохранения формы.Как показывать на форме прогресс заполнения (прогресс заполнения формы)Как сделать форму в виде мастера шаговКак сделать подтверждение действия в СМС (SMS) в формеКак установить поля в форме по умолчанию при загрузкеКак показывать изменяющуюся информацию при изменении полейФормы. Как сделать в форме более 1 кнопки действий (несколько кнопок действий на форме)Как правильно обрабатывать цены (дробные числа) на формеКак передать в форму скрытый параметрКак в форме добавить примеры заполнения полей (example)Как сделать окно подтверждения действия формыКак выбрать значение списка через справочник в модальном окнеДинамическое изменение itemID у формы в зависимости от других элементов страницыКак скрывать/показывать, обновлять область на странице при изменении поля формыКак добавить новый элемент, если в списке на форме его нетКак перезагрузить страницу после сохранения формыКак вывести списковые данные или таблицу внутри формыКак сделать зависимые поля в форме (Страна, Город)Как сделать кастомную HTML разметку для формы (jsRender)Как создать кастом форму с подтверждением действия по Email или SMS (JS метод)Установка фоновой панели для формыКак сделать задержку при сохранении формы (saveDelay)Подсказки-ограничители длины для полей в формеКак динамически изменять тип поля формыКак сохранить значение поля в браузере, чтобы каждый раз его не вбивать при загрузке (оставлять последнее сохраненное). Запоминание поля формы в браузереКак выводить разные данные на одной форме для разных ролейКак сделать форму с сохранением состоянияКак сделать поля с анимацией значенийИспользование Google Recaptcha в формахКак обновить таблицу после сохранения формы в модальном окнеКак указать произвольную маску для поля ввода в формеКастом проверка полей формы через JSКак в выборе даты (datepicker) задать доступные датыКак создать форму для редактирования сущностиЗагрузка формы в выпадающем окне (dropdown)Добавление смайликов (emoji) в поля формКак у формы сделать progress bar при загрузке формыРабота с датами в формахПоказ количества символов рядом с полем в формеКнопка очистки формы ResetКонтроль заполнения ключевых форм на сайтеКак сделать форму с простым подтверждением действия (confirm)Как поменять соотношение длины метки и поляКак при сохранении формы вывести сообщение printlog, а не alertВыпадающая панель в форме рядом с названием dropdownPanel
Поля формы
Поле Список поиска значения (autocomplete, search-select) Как в форме вывести список галочек (множественный выбор поля)Как сделать списки select и chosen с категориями (optgroup)Как сделать выбор адреса и сохранение координат места (lat,lng).Установка графика работы (поле формы weekTime)Как в форму в SaveItem передать некий скрытый параметр (например Куки или параметр URL)Как работать с полем типа Слайдер (ползунок)Как использовать в форме поле Выбор файлов. Типы полей формы files, remoteFile, fileContentКак редактировать текст элементов  HTML в Rich-редактореУправление настройками поля через options_ поляВставка ссылок по шаблону (ютуб ссылка, patternString)Как использовать Флажки и выбор радио с картинкойКак работать с полем ТаймерКак сделать выбор цвета в формеКак вывести дерево с выбором галочекКак выводить и сохранять множественный список через chosen поле.Обработка даты из поля datetime-localРедактор текста - код поля формы html2Как работать с полем Дробное числоКак настроить выбор вариантов для поля Интервал датВыбор из элементов с табуляцией - поле формы tabsТип поля imageCheckbox (флажок-картинка)Поле формы Градиент (gradient)Список выбора, комбик (select)
Дизайн, стилизация, юзабилити
Гид по стилям Falcon SpaceРуководство по юзабилити сайтов на Falcon SpaceЭлементы стилизации в разметке страниц кабинетов на Falcon SpaceУправление темами сайта. Как создать новую тему дизайна сайтаКак внедрять готовую верстку в страницуКак внедрить форму настроек внешнего вида сайтаГорячие клавиши Falcon SpaceСоздание своей темы для сайтаОграничения по изменению дизайнаКак сделать дизайн сайта со скругленными элементами (или без скруглений)Как сделать свою верхнюю полоску сайта (customHeader)Как внедрить новый шрифтКак через CSS управлять стилями конкретных страницКак показать элемент увеличенным при наведении (например ячейка таблицы)Изменение стилизации через CSSКак поменять столбцы местами на смартфоне (order-1 order-md-2)Как сделать анимацию иконокАнимация элементов. Как работать с анимациейДобавление анимацииУправление анимацией для форм, таблицКастомные CSS файлы для страницыПанели с тенью и со скруглением Как внедрить свой CSS на каждой странице порталаКак сделать основное меню горизонтальнымКак убрать все тени и сделать дизайн плоскимКастом разметка верхней панели (TopMakeup)Интерфейс кабинета - это не методы репозитория CRUD!Как сделать липкую панель сверху страницыКак сделать основное меню белымВывод справа на странице float панелиКак поменять степень затемнения фона у диалогового окнаУправление иконкой в окне alert справа вверху окнаКак стилизовать иконкуВывод на экран денежных сумм (отображение рублей, валюты) - as-moneyКак увеличить картинку на страницеВизуализация воронки на основе данныхКак сделать модальное окно определенной шириныПанели показа подсказок (для базовых инструкций по странице)Как сделать левое меню по умолчанию свернутым?Иконки на сайте. Использование fa иконокСтилизация и работа со страницей входа на сайт loginАнимация градиентного фона
Лендинги
Работа с лендингами (lands)Как создать новый лендинг?Как максимально быстро создать лендинг на базе Falcon SpaceКак внедрить лендинг со своим шаблоном и стилямиКак создать сайт полностью на лендингах?Как устроен механизм лендингов внутриКак переместить лендинг на главную страницу (или на любую другую)Как сделать набор типовых лендингов (например, карточки товаров)?Как сделать копию лендинга с другим адресом или перенести лендинг на другой сайтКак использовать много раз одну секцию в разных лендахКак отключить секцию лендинга или менять их порядок на лендингеКак задать высоту/подложку секции лендингаКак для ленда подключить скрипты или CSSКак прописать SEO параметры для лендаКак создать свой шаблон новой секции лендинга?Как редактировать секцию лендингаГде посмотреть список лендингов?Как сделать меню лендинга или меню сайта на лендахКак сделать подстановочными фавикон, seo title у лендингаКак сделать так, чтобы PWA работал для лендингов
Интеграции
Подключение к удаленным серверам SQL Server через Linked ServerZapier интеграция на платформе Falcon SpaceПрием платежей через Яндекс.КассуИнтеграция с Робокассой (платежный шлюз)Пополнение средств через Yookassa (Юкасса)Прием платежей на сайте через CloudPaymentsИнтеграция с платежным шлюзом LifePayУведомление от ТБанка по операциям с расчетным счетомИнтернет-эквайринг Тинькоф БанкИнтеграция API DaData.ru подсказки по адресамИнтеграция коллтрекинга МАНГО ОФИС (режим Площадка)Интеграция API Курсы валют Центрального Банка РФИнтеграция API Почта РФИнтеграция API Служба доставки СДЭК (CDEK)Интеграция API Служба доставки Деловые линииИнтеграция API IpGeoBase Город по IP-адресуИнтеграция API DaData.ru Город по IP-адресуКак вычислить расстояние между 2 геоточками через Google MapsКак сделать интеграцию с Мой СкладКак сделать вебхук для передачи данных с Тильды на Falcon SpaceСканирование штрихкодов и QR кодов через камеру смартфонаПолучение данных контрагента по ИННВнедрение подсказок dadata на сайтВывод точек на карте Яндекс. Интеграция с Яндекс КартыИнтеграция с телефонией Zadarma.comПолучение данных о контрагенте - интеграция ЗаЧестныйБизнесИнтеграция с AMO CRMИмпорт контактов в CRM из Google КонтактыВход/регистрация через ВКонтакте(vk.com)Интеграция CRM с онлайн чатом на сайте (Replain)Как связать yandex metrika clientID с пользователем сайта?Как сделать обработку входящей почты (создание клиента в CRM из Email)Интеграция сайта с ChatGPT (openAI)Интеграция с Яндекс МетрикаИнтеграция с Youtube. Получение роликов каналаИнтеграция с Ozon, Wildberries - извлечение статистикиИнтеграция с API Яндекс Вебмастер
Универсальный API
API для сайта. Создание API сервисаИсходящие запросы API (отправка запросов с сайта к внешним API)Входящие запросы API (слой АПИ методов сайта)Как сделать вебхук (webhook)Полезные SQL функции для APIКак вывести данные из удаленного источника по API в таблицеКак выводить данные на форме из внешнего источника через APIКак создать цепочку последовательных вызовов API методовКак отправить POST запрос с телом JSONВызов API по кнопке в форме после выполнения действияВебхуки для уведомлений на сайте (отправка API запроса при уведомлении на сайте)Добавление сертификатов (PEM, PFX, CRT) в исходящий запрос APIВзаимодействие через API между 2 экземплярами FalconКак передать скрытый параметр при исходящем запросе из Request процедуры в ResponseВходящий API. Как учесть в отклике результат внешних действий в APIСредство просмотра JSON as-prettyJSONПереключение адреса API с проверкой доступности источника АПИКак сделать отслеживание доступности внешнего API сервиса
КаталогиНавигацияДокументыДополнительные компоненты
Работа с HTML блоками. Создание модулей версткиИнтерактивные диаграммы, графикиПолоски прогрессаТоварные карточки Диаграмма ChartbarДиаграмма Ганта на сайтеДоска КанбанВывод данных в виде графа на сайтеВывод движения заявки по статусам statusbarКарта с маркерами. Вывод точек на Google MapsСоздание панелей-подсказок в личном кабинетеРабота с показателями. Управление метриками на сайтеРабота с деревьями (иерархия). Вывод древовидных структур на сайтеИнтерактивное дерево для отображения иерархических структурРабота с дашбордамиДобавление лайков, дизлайков, рейтингов, голосованиеРабота со статусами заявок и других объектовБизнес-процессы. Создание бизнес-процессаДиаграммы и графики, визуализацияАвтоматизированное тестирование сайтовКалендарь. Управление событиямиВременная линия (timeline) для вывода событий на страницеСчетчики в личном кабинете на сайтеТерминал - рабочее пространство с окнами и вкладками
Продвижение, SEOСистемные моменты
Отслеживание изменений хранимых процедур и страниц (logChanges)Логирование изменений объектов на примере хранимых процедурРабота с редактором кода в личном кабинете разработчикаЛогирование событий в приложении (trace)Действия в браузере actions JSONКак быстро перенести решение (таблицы, формы, страницы) на другую базу?Настройка диалоговых окон и alert окошекМелкие удобства для разработчика в личном кабинетеКак отследить и ограничить большое количество однородных запросов на сайтеИзменение процедуры поиска, процедуры общих элементов Layout, процедуры периодического запускаКак изменить длительность показа сообщенийФорма обратной связи по ошибкам, предложениям suggestionКак разграничивать права на уровне бизнес-логики хранимых процедурБезопасная обработка данных и проверка доступа в хранимых процедурахИспользование типовой разметки в виде сниппетов для решения различных задачКак логировать клики на определенных элементах в системеОбработка старых браузеров (сообщение об устаревшем браузере)Безопасность. Как скрыть некоторые заголовки (http headers) в запросахОтображение сообщения об offline (Нет сети)Рабочее место разработчика через терминалКак обойти проблему с DNS при атаке на DNS сервера (работа с сайтом через IP сервера без домена)Обновляемые метки времени в сообщениях на сайтеПодсказка по интерфейсам хранимых процедур компонентовЗащита от CSRF атак через дополнительный токен в формахДополнительные параметры в @parameters (во многих хранимых процедурах)Как логировать события в Falcon в другую базу (чтобы ограничить рост основной базы данных)Сообщение об использовании куки (Cookies)Как искать код некоего компонента (таблицы, формы и т.д.) на страницеКак сделать так, чтобы почта отправлялась асинхронно без задержекРабота со сниппетами кодаУниверсальная кнопка действия as_submitРежим показа таблицы/формы в alert окнеРеализация системы анализа IP посетителейМетки локализации в as.resources.jsВывод markdown разметки в виде HTML
Системное администрированиеHOWTO
Как сделать отдельный универсальный поискМодальная ссылка (as-modal)Как идентифицировать анонимного пользователя (по куки)?Дашборды. Как вызвать коллбек после загрузки дашбордаСтраницы. Как сделать редирект на другую страницу при загрузкеСтраницы. Как изменить текст на главнойСтраницы. Как использовать дополнительные параметры на страницеСтраницы. Как выводить списковые данные в теле страницы (repeater)Страницы. Настройки страницы для формирования главного менюСтраницы. Мне нужен в URL параметр itemID, но там передается из-за сущностей InstanceIDСтраницы. Как сделать мастер описания функционала страницыКак добавить событие в календарь GoogleКак сделать кнопку определенного действияКак сделать горячие клавиши для событий (нажатие кнопки)Как показывать баланс пользователя вверху кабинета?Где взять фото пользователяКак сделать поддомены с разными языками для сайтаКак управлять страницей “404 Страница не найдена”Отслеживание всех действий пользователя в системеКак выводить денежные данныеКак дать возможность некоторым ролям вводить html в формах?Что делать если открытая вкладка (tab) сбрасывается при перезагрузке страницы?Как вынести правила редиректа в отдельный файл configКак реализовать создание периодического отчета на почтуПопап (popup) окна - показ модальной формы по событию или таймаутуКак быстро просматривать типовые отчеты с возможностью редактирования SQLКак максимизировать показатели Google PageSpeed для сайта на Falcon SpaceКак реализовать окно уведомления об использовании куки (cookies)Вывод на странице штрихкода (barcode) и QR кодаКак в тексте сделать ссылки кликабельнымиКак внедрить на сайте автоопределение города с возможностью выбораКак внедрить оглавление в текстКак вставить универсальный поиск в любое место страницыКак определить координаты lat lng пользователя в текущий моментКак сделать сортировку дерева с Drag-and-DropКак обновить часть страницы по клику на кнопкеЗагрузка дашборда по ссылке as-dashboard-linkКак запретить копировать текст с сайта. Как добавлять ссылку копирайта в текст при копировании с сайтаКак изменить шаблоны хранимых процедур для Формы, Таблицы и др.Определение местоположения пользователя по IP через API (as-ip)Форма Нашли ошибку по Ctrl+EnterКак определить откуда пришел пользователь на сайт? Фиксация источника посещения пользователем сайтаКак сделать ссылку, которая скроллит к элементу на страницеКак показать/скрыть область на странице по ссылке - as-collapseКак сделать обновление интерфейса у другого пользователя по некоему событиюКак сделать обработку стоплиста по пользовательскому вводуКак передать параметр из URL в таблицу или форму (через data-itemID)?
Загрузка файлов, картинок
Работа с ресурсами. Загрузка картинок, файловУправление файлами на сервере (файловый менеджер)Загрузка на форме текстовых файлов и обработка их в процедуре SaveItemКак добавить в колонку таблицы управление файламиЗагрузка файлов с drop областью и гибкой разметкой (компонент as-files)Как приводить картинки к заданным размерам при загрузке на сайтИмпорт и парсинг файла CSVЧем отличается код типа ресурса от типа объектаКак получить ссылку на ресурсКак установить права доступа на менеджер ресурсов?Как загружать фото с обрезкой Как увеличить размер подгружаемых файлов (как загружать большие файлы)Передача файлов по FTPКак искать битые ресурсы, картинкиПодбор оптимальных параметров менеджера ресурсовПодгружаемые файлыМассовая загрузка картинок в систему ресурсовНе грузится файл через менеджер ресурсовФайлы загружаются на сервер, но при скачивании выходит ошибка 404.3 (загрузка ODT, Проблема с MIME типами)Поддержка Webp формата для оптимизации картинокМассовая оптимизация картинок в менеджерах ресурсовНе выводятся картинки на сайте (401, 403 ошибка при загрузке картинок)Как установить JS callback после выполнения crop картинкиНе отображается картинка юзера справа вверхуКак изменить текст "Нет файлов" в as-resourceManager?Загрузка файлов (upload). Обработка спецсимволов в названии файлов Как поставить водяной знак на картинку при загрузкеКак оптимизировать качество картинок при загрузке на сайтКак создавать для загружаемой картинки копии с разными размерамиКак загружать файл, когда задействовано диалоговое окноКак загрузить файл по конкретному путиКак сделать возможность грузить только 1 фотоКак поставить фильтр на типы файлов и ограничить форматы загрузки картинок?Как обработать событие после удаления или добавления файлов? Не выводятся картинки в менеджере ресурсов. Что делать?Как вставить менеджер ресурсов в форму с заданным itemID
HOWTO SQLHOWTO JSHOWTO ВерсткаРешение проблемСоветы по реализации

Falcon Space - платформа для создания сайтов с личными кабинетами

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности

Вывод данных в таблице - getItems

Время чтения - 14 мин.Дата публикации 16.10.2025

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

На входе: 

  • @filters - состояние выбранных фильтров в таблице
  • @sort - выбранная сортировка
  • @direction - направление сортировки (up, down)
  • @page - номер текущей выбранной страницы (пагинация)
  • @pageSize - размер пагинации 1 страницы данных
  • @username - текущий пользователь

SP GetItems Выдает следующие SELECT:

  1. Таблица с данными
  2. Количество строк
  3. Измененные параметры таблицы (заголовок Title, подсказка Subtitle, панель toolbarAdditional и др. см. ниже)
  4. Вывод столбцов подвала таблицы и дополнительных строк в шапке (isHead=1 для строки) (обычно это агрегирующие данные по таблице #result)
    Обязательно давайте название столбцам в этом запросе и указывайте их в том же порядке что и ваши столбцы в выводе
    ВАЖНО! Если это viewType=’gantt’ (Гант), 'chartbar' или ‘canban’ - то 4 запрос это данные во времени по элементам
  5. Настройки предустановленных фильтров (т.е. именные ссылки, которые одним щелчком устанавливают некий типовой фильтр, напр. Замороженные лиды)
  6. Вызов внешних действий (сентябрь 2022).
ALTER PROCEDURE [dbo].[crud_example_getItems]
	@filters CRUDFilterParameter READONLY,
	@sort sql_variant,
	@direction nvarchar(8),
	@page int,
	@pageSize int,
	@username nvarchar(32)
AS
BEGIN
	declare   @ids TABLE (id int)

	-- filters...
	declare @filterName nvarchar(128)
	select @filterName = Value from @filters where [Key] = 'name'

	insert into @ids
	select id
	from as_menu
	where (isnull(@filterName, '')='' or name like '%'+@filterName+'%')

	-- SELECT 1
	select *
	/*
	example_data1
	*/
	from as_menu
	where id in (select id from @ids)
        /*сортировка
          ВАЖНО! Если мы сортируем по полю заданного типа то сортировка будет вестись
          именно по этому типу, например если мы включим сортировку по дате, но в поле
          попадает тип nvarchar, то сортировка будет идти именно по нему. Чтобы и
          избежать этого создаем дополнительно поле нужного типа только в процедуре
          (не выводим его), и вставляем его в выражение then */
	order by
		case when @sort = 'name' and @direction = 'down' then name end desc,
		case when @sort = 'name' and @direction = 'up' then name end asc
	OFFSET @PageSize * (@Page - 1) ROWS
	FETCH NEXT @PageSize ROWS ONLY;

	-- SELECT 2
	select count(*) from @ids

	-- SELECT 3
	/*Select  '' Title,
		'' ToolbarAdditional,
		'' GroupOperationsToolbar,
		'' EmptyText,
		'' FastCreateLinkText, '' FastCreateDialogHeader, '' FastCreateDialogPlaceholder,
		0 FastCreateSearch, 0 FastCreateTextarea,
		 0 HideTitleCount,
		 0 DisableCellTitle,
		 '10px' FontSize,
		 '{filterCode}' FilterMakeup,
		 1 InstantFilter,
		   */

	-- 4 SELECT Footer data or kanban/gantt data

       -- 5 SELECT - данные по предустановленным фильтрам.
       /*
         select * from (
      select 'Клиенты' Title, 'Текущие клиенты' Tooltip, 'clients' code, 'success' type, 'status=53,54' Filters, 1 Ord
      union
      select 'Лиды нетворк' Title, 'Потенциальные клиенты' Tooltip, 'leadsNetwork' code,  'info' type, 'Filter=1,2,3||Filter2=1,2,3||status=53||keepConnect=1' Filters, 2 Ord
      union
      select 'Замороженные лиды' Title, 'Те, что на долгой паузе' Tooltip, 'frozen' code,  'primary' type, 'status=53,54' Filters, 3 Ord
	) t1 order by t1.ord

       */

END

END
Нюансы по сортировке и фильтрации в GetItems 
  1. На вход в хранимую процедуру передается @filter - в нем содержатся все URL параметры и параметры фильтра as-crud
    Извлекаем их вышеуказанным способом и используем в первом запросе select
    Также в эту коллекцию попадаются все значения, передаваемые как data-параметр в разметку сниппета as-table 
Пример вызова параметра:
 declare @filterElementID int
 select @filterElementID = try_cast(Value as int) from @filters where [Key] = 'elementID'
 2. Сортировка в GetItems
select * from @result --параметры в настройках колонок таблицы: Сортировка-ДА
order by
   --каждый параметр указываем дважды, прямой и обратный порядок
   --в случае использования разметки HTML, сортировка должна идти по чистому
   --значению(hide_title)
   case when @sort = 'name' and @direction = 'down' then name end desc,
   case when @sort = 'name' and @direction = 'up' then name end asc,
   case when @sort = 'code' and @direction = 'down' then code end desc,
   case when @sort = 'code' and @direction = 'up' then code end asc
OFFSET @PageSize * (@Page - 1) ROWS
FETCH NEXT @PageSize ROWS ONLY;

Примечание:

  • В GetItems - если столбец имеет null в 1 строке, то столбец не выводится (т.е. можно динамически скрывать столбцы, присваивая null всему столбцу).
    Обязательно используйте isnull(field, '') field для того, чтобы столбец всегда явно выводился. Если столбец не выводится в таблице - первым делом  проверьте что у вас не стоит null в этом столбце.   
  • Вы можете в процедуре GetItems использовать @filters ExtendedDictionaryParameter (Key, Value2) вместо @filters CRUDFilterParameter (Key,Value). Это бывает необходимо, когда данные идут из внешнего источника по АПИ (и в коллекцию передаются данные response от внешнего источника).   Подробнее про универсальный API
Дополнительная настройка вывода ячеек в таблице

Есть набор псевдополей, которые позволяют расширить функционал основного поля. Если используем псевдополе, то ОБЯЗАТЕЛЬНО должно быть в таблице основное поле (сами по себе псевдополя без основного поля не используются). 
 
Псевдополя со специальными префиксами, чтобы улучшить вывод ячеек (дальше code1 - это название некой колонки таблицы): 
  • align_code1 - установка выравнивания для ячейки таблицы (выравнивание ячейки в шапке определяется по 1 строке данных, т.е. что в нем передано в align_{filedCode})
  • backcolor_code1 nvarchar(30) - цвет ячейки code1
  • badge - красит указанный столбец в badge (значок-панель) элемент (например badge_title = ‘success’ делает зеленый badge для поля title)
    Используются стандартные bootstrap 4 названия (light, secondary, warning и т.д.)
  • barPercent_code1, barClass_code1 - настройка отображения прогресс-бара процент от 0 до 100 и цвет прогресс-бара (success, danger, warning, info, primary)
  • color_code1 nvarchar(30) - цвет текста ячейки в колонке code1. Влияет только на текст, но не на ссылки в ячейке (см. внутреннюю разметку вывода)
  • colTitle_code1 - для столбца code1 колонка будет переименована в указанное значение
  • desc_code1  - дополнительное описание под значением ячейки code1
  • dropdown_code1 - добавляет к колонке разметку, которая будет показываться по нажатию на значок стрелки (некие действия или просто информация). Если это действия, то можно добавить в таком формате: 
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Separated link</a>
  • editable_code1 - настройки окна редактирования поля (JSON объект): 
{
  "min": 0, "max": 100, "step":5,  // для числовых полей
  "placement": "top||bottom||left||right", // расположение всплывающего окна.
  "disabled": true // можно отключить редактирование поля для некоторых строк.
  "instant": true // для вывода поля редактирования прямо в таблице (только для text, textarea и select)
}

Если instant=true, то поле будет выводиться в виде элемента управления и изменение значения будет происходить при потере фокуса ввода.

Пример на демостенде - https://demo.falconspace.ru/list/watch/redaktirovanie-v-tablice-cherez-elementy-upravleniya-pryamo-v-tablice---68. Данная опция работает только для типов поля редактирования text, textarea, select.

  • fontsize_code1 - устанавливает размер шрифта для ячейки (например 12px, 1rem, 1.4em)
  • hiddenDevice_code1 (например 'xs sm md lg xl'). Значения разрешений через пробел, для которых будет скрываться ячейка. Например, 'xs sm' скроет на мобильных устройствах столбец
  • hint_code1 - устанавливает стандартную всплывающую подсказку к полю (если нет - то используется в качестве подсказки название поля)
  • icon_code1 nvarchar(256) - добавляет иконку к ячейке code1 (например 'fa fa-upload')
  • marker_code1 - задает цвет небольшого маркера слева в указанной ячейке, например '#ffa' marker_field23
  • modal_code1 - указываем разметку, которая будет отображаться в модальном окне. К ячейке добавляется кнопка-иконка вывода разметки в модальном окне
    Здесь можно задавать также разметку компонентов (Таблица, форма и др)
  • modalIcon_code1 - можно поменять иконку вызова модального окна через modalIcon_code1 = 'fa-dot-circle'
  • modalTitle_code1 - можно у модального окна задать заголовок через псевдоколонку
  • prefix_code1, suffix_code1 - добавляют в ячейку текст серым перед или после значения
  • prev_code1 float - указывает прирост в процентах по сравнению с предыдущим показателем (для колонки code1)
  • prevcolor_code1   nvarchar(256) - цвет прироста колонки (актуально когда есть параметр prev_. Пример: #aaa)
  • showHover_code1 - если 1, то ячейка по умолчанию скрыта (visibility:hidden). При наведении на строку ячейка будет отображаться.
  • sub_code1 - указываем разметку подстроки. К ячейке добавляется +/- для раскрытия строки (в ней показывается указанная разметка)
    Здесь можно задавать также разметку компонентов (Таблица, форма и др)
  • width_code1 - устанавливает ширину колонки (например, 500px или 30%)

Пример: 

-- in SELECT 1
select isnull(name, '') name,
    'some desc1' desc_name,
    'some data or control in substring' sub_name
from table1

Для Переключателей можно в этом параметре передать дополнительные настройки: on (текст Включено), off (текст Выключено), onsstyle (warning и т.д.), offstyle (secondary), size (small, mini, normal, large).

Специальные названия полей в SELECT 1, которые в целом влияют на строку таблицы: 

  • color - красит фон строки в указанный цвет (например, “#aabbcc”)
  • rowLink - устанавливает ссылку для всей строки таблицы. Подробнее...
  • rowClass - CSS класс, который будет добавлен к строке таблицы (tr).
  • rowHeight - устанавливает высоту строки (например, 500px или 30%).
  • wholeRow - если указана разметка в таком поле, то для строки выводится одна ячейка, растянутая на всю строку с указанным содержимым.  https://demo.falconspace.ru/list/watch/ob-edinenie-yacheek-tablicy-v-1-stroku---1148
Варианты настройки editable_col1: 
  • min,max,step - указывает для числовых полей минимальное, максимальное значение и шаг приращения (при изменении поля)
  • placement - указывает расположение окна редактирования относительно ячейки
  • placeholder - указывает подсказку к полю
  • inputclass - задает CSS для поля 
  • escape - если true - то показываем значение в сыром HTML (если в значении есть теги)
  • clear - если true - то показываем кнопку очистки поля
  • rows - для многострочных полей textarea задает количество строк
  • для некоторых типов полей HTML5 могут использоваться также size, minlength, maxlength, pattern, orient
  • disabled - если true, то режим редактирования отключается для строки. ВАЖНО!!! Обязательно проверьте в updateItemField может ли пользователь менять данную строку или нет. Пример установки disabled: 
select *, '{"disabled": '+iif(code1='newForm', 'false' , 'true')+'}'  editable_role
from #result
 
Также в разметке ячейки таблицы можно использовать разметку {edit-code1}, где code1 - код редактируемого поля. В этом случае вместо этой разметки будет выведено указанное поле. 
 
Примечание:
Для псевдополей (desc_colName) не нужно создавать в таблице реальные поля. Они просто прописываются в выходном запросе SELECT 1 в GetItems.  

Пример
: Нам надо красить ячейки для колонки title (title - это код существующей колонки в таблице).

Для этого в GetItems  SELECT 1 добавляем вывод этого поля: ‘#f00’ backcolor_title

Дополнительные параметры настройки таблицы в GetItems SELECT 3
  1. ButtonSize - управляет размерами кнопок в тулбаре (варианты - sm, md, lg).
  2. CardGroupType - тип вывода карточек: deck (в 1 строку карточки), columns (разделение по колонкам),
    group (все карточки в 1 строку и выглядят как единая панель). В большинстве случаев подойдет columns.  Смотреть подробнее.
  3. ChangeFontSize - если 1, то вверху появляются кнпоки для изменения размера шрифта.
  4. Compact - если 1 то таблица будет сжатой с уменьшенными отступами.
  5. Collapse 0,1,2. Служит для сворачивания таблицы по названию. 0 - нет сворачивания. 1 - есть сворачивание, при загрузке показан в открытом виде. 2 - есть сворачивание, при загрузке свернут
  6. CollapseFilter 0,1,2. Служит для сворачивания фильтров по иконке рядом с названием. 0 - нет сворачивания. 1 - есть сворачивание, при загрузке показан в открытом виде. 2 - есть сворачивание, при загрузке свернут (иконку кнопки можно заменить через data-filterCollapseIcon="fas fa-filter" у сниппета). 
  7. DisableCellTitle - отключить подсказки у ячеек (дублируют название колонки и ее подсказку)
  8. DisableFrozenHeader - отключить для таблицы возможность показа шапки таблицы наверху при скроллинге (актуально когда есть несколько таблиц на странице либо есть вложенные таблицы)
  9. DisableSaveState - если 1, то состояние фильтра и сортировок не будет сохраняться при закрытии/перезагрузке страницы.
  10. DropdownPanel, DropdownPanelText - настройка выпадающей панели вверху рядом с названием таблицы. См. подробнее
  11. EditableMode - задает тип редактирования элемента. inline - внутри таблицы. popup - редактирование как малое всплывающее окошко
  12. EmptyText - текст, который отображается когда ничего не найдено.
  13. EnableExcelExport, EnablePrint, EnableClipboard - если 1, то появляются кнопки выгрузки таблицы в Excel, отправку на печать или копирование в буфер обмена ячеек таблицы (с разделением через \n и \t). Про стилизацию выгрузки Excel.
  14. EnableJSONExport, EnableXMLExport, EnableCSVExport - если 1, то будет на странице доступна кнопка с выгрузкой данных в указанном формате. Подробнее про выгрузку таблицы в различные форматы.
  15. FastCreate, Remove, Comments - включают (=1) возможность Быстрого добавления, Удаления, Комментария. Чтобы корректно работало, необходимо снять соответствующую настройку в форме параметров таблицы.
  16. FastCreateDialogDefaultValue - указание значение по умолчанию для поля в форме быстрого создания (для текстового поля, многострочного поля и списка). 
  17. FastCreateDialogHeader - заголовок диалогового окна Создать.
  18. FastCreateDialogPlaceholder - подсказка при создании в диалоговом окне Создать.
  19. FastCreateLinkText - текст ссылки Создать….
  20. FastCreateSearch - если true, то добавление будет работать как autocomplete список с поиском.
  21. FastCreateSelectCol - указываем колонку таблицы (в /tableCols) с типом редактирования Список. Быстрое добавление будет работать в виде элемента Список со значениями из процедуры dict этой колонки. 
  22. FastCreateTextarea - если true, то элементом добавления будет многострочное поле.
  23. FilterMakeup - разметка HTML для  фильтра. Фильтры колонок указываются здесь через {colCode}.
    (у колонки должен быть установлен тип данных фильтра). И предустановленный параметр {buttons} - для вставки кнопок фильтра.
  24. FilterOptions - настройка свойств фильтров через JSON.  
  25. FontSize - указать размер шрифта для таблицы (например 10px, 0.85em).
  26. FooterText - разметка, которая выводится под таблицей. 
  27. FrozenLeftCol - если 1, то левая колонка фиксируется на месте при скроллинге таблицы вправо (данная настройка может конфликтовать с подтаблицами, DisableFrozenHeader), для мобильных устройств она не используется. Подробнее...
  28. GanttScale, GanttNavigate, GanttItemForm, GanttItemFormTitle - настройки вывода диаграммы Ганта (см. отдельный раздел Ганта в таблицах).
  29. GroupOperationsToolbar - разметка панели кнопок для групповых операций (данная разметка будет появляться когда выбрана галочками хотя бы одна строка таблицы). В разметке могут быть какие-то кнопки на модальные формы (в itemID передается ids выбранных строк таблицы).
  30. HeaderTag - h1-h6 - указывает какой тег использовать для заголовка (по умолчанию h1).
  31. Height - высота таблицы (например, 500px). Работает только для немобильного вида. Задает максимальную высоту части компонента, где выводится таблица. 
  32. HelpLink - если указано поле таблицы Помощь, то выведется ссылка с названием в этом параметре (по умолчанию текст "Как это работает") - при клике будет выведена помощь по таблице внизу слева.  Обновление Май 2025.
  33. Hide - если 1, то компонент совсем не выведется (пустой div и установка класса hide).
  34. HideFilterButtons - если 1, скрывает кнопки фильтрации и сброса фильтра и включает режим instantFilter (т.е. при изменении фильтра запускается поиск).
  35. HideHeader - если 1, то скрывается шапка таблицы
  36. HideTitleCount - скрыть показ количества строк в заголовке
  37. ImportOptions - импорт данные через файлы cvs, txt. Подробнее про импорт данных через компонент Таблица
  38. InstantFilter - если 1, то при изменении значений фильтра сразу происходит применение фильтра к данным
  39. LayoutMakeup - дает возможность задать разметку для скелета компонента. При этом в нее вставляются специальные параметры, которые заменяются на части компонента (не работает для режимов ViewType): {title}, {toolbar}, {filters}, {predefinedFilters}, {paging}, {data}
  40. KanbanItemForm, KanbanItemFormTitle - настройки панелей Канбан (см. отдельный раздел про Канбан в таблицах)
  41. ManageCols - если 1, то вверху справа будет кнопка настройки порядка и видимости столбцов таблицы.
  42. MapShowUserLocation, MapUserImageUrl, MapShowAllRegions, MapShowLocationInRange  - настройки вывода карты
    (см отдельный раздел про использование карт в таблицах)
  43. ProccessOptions. Это JSON, в котором прописаны правила обработки таблицы после загрузки (выделение цветом min и мах по строкам или столбцам).
  44. RemoveConfirmText - текст подтверждения при удалении записи из таблицы
  45. RowMakeup - специальный режим, при котором данные выводятся не в табличном виде, а в заданной разметке. В параметре передается разметка для строки. Подробнее о кастом разметке таблицы
  46. ShowChecksCol - если 1, то будут показываться галочки для групповых операций (при этом галочка в интерфейсе должна быть снята)
  47. ShowNumsCol - если 1, то будет показываться столбец номера слева в таблице (при этом галочка в интерфейсе должна быть снята)
  48. Sortable - если 1, то включается режим drag-and-drop сортировки строк таблицы. Пример работы сортировки
  49. TableHeaderOptions - строка с JSON, содержащая настройки стилей для шапки таблицы. Параметры fontSize, align, background, color.  См. демостенд
  50. TableHeaderMakeup - разметка (теги tr, th) шапки таблицы (можно вставлять переменную {header} - вставится  стандартная шапка вместо этой переменной).
  51. Theme - (пустое, light, dark) - выбрать стилизацию таблицы
  52. Title - заголовок таблицы
  53. TitleTooltip - подсказка рядом с заголовком (при двойном клике - подсказка копируется в буфер обмена)
  54. Subtitle - панель появляется под названием 
  55. Toolbar (старое название - ToolbarAdditional) - разметка панели кнопок для таблицы (находится справа от названия)
  56. Ultracompact - если 1, то ячейки таблицы будут совсем без отступов (padding: 1px)
  57. VerticalBorders - если 1, то у ячеек будут вертикальные границы, а не горизонтальные (по умолчанию выводятся горизонтальные границы).
  58. ViewType - тип вывода данных (по умолчанию вывод таблицы. Варианты - kanban, gantt, map, timeline, card, chartbar, chart, progress, calendar, custom)
  59. ZoomCells - если 1, то ячейки будут увеличиваться при наведении (актуально когда размер шрифта малый и много данных на странице)
  60. Параметры диаграмм (для ViewType=chart). ChartType, ChartTitle, ChartWidth, ChartHeight, ChartLineCommaLabels, ChartOptions (JSON) - настройки вывода диаграмм (см. отдельный раздел про настройки диаграмм).
Насколько полезной была статья?

Google поиск по нашей документации

Запрос расчета стоимости веб-проекта на базе Falcon Space
Если видео Youtube плохо грузится, то попробуйте найти видео в ВК видео на канале Falcon Space
Сайт использует Cookie, Яндекс Метрику. Используя сайт, вы соглашаетесь с правилами сайта. См. Правила конфиденциальности и Правила использования сайта OK