Введение
Данное руководство описывает процесс добавления новых полей в существующие списки (таблицы) платформы Wepps. Поля определяют структуру данных и интерфейс редактирования в административной панели.
Основные концепции
Что такое поля списка
Поля списка — это столбцы таблицы базы данных с метаданными для отображения в административном интерфейсе. Каждое поле содержит:
- Имя поля (
Field) — название столбца в таблице БД - Тип поля (
Type) — определяет визуальный компонент ввода (text, textarea, select, checkbox и т.д.) - Название (
Name) — человекочитаемое название для интерфейса - Обязательность (
Required) — флаг обязательности заполнения - Приоритет (
Priority) — порядок отображения в форме (если не указан, платформа сама добавит значение) - Видимость (
IsHidden) — показывать ли поле в админке
Таблица s_ConfigFields
Все поля списков хранятся в системной таблице s_ConfigFields:
| Поле | Описание |
|---|---|
Id |
Уникальный идентификатор записи |
TableName |
Имя таблицы, к которой относится поле |
Field |
Техническое имя поля (название столбца) |
Name |
Отображаемое название поля |
Description |
Дополнительное описание поля |
Type |
Тип поля (text, area, select, flag, file, int, digit, date и т.д.) |
Required |
Обязательность: 1 — обязательное, 0 — необязательное |
Priority |
Приоритет сортировки (целое число) |
IsHidden |
Скрытие поля: 1 — скрыто, 0 — показывается |
CreateMode |
Режим отображения при создании (hidden, disabled или пусто) |
ModifyMode |
Режим отображения при редактировании (hidden, disabled или пусто) |
FGroup |
Группа полей для визуального разделения |
Способ 1: Добавление через интерфейс админки
Шаг 1. Откройте таблицу Настройки полей
- Войдите в административную панель
/_wepps/ - Перейдите в раздел Настройки → Настройки полей (
s_ConfigFields)
Шаг 2. Создайте новый элемент
- Нажмите кнопку "Добавить элемент"
- Заполните форму:
TableName: Products
Field: Price
Name: Цена товара
Type: text
Required: 1
Priority: 10
IsHidden: 0
Шаг 3. Сохраните изменения
- Нажмите кнопку "Сохранить"
- Новое поле появится в форме редактирования указанной таблицы
Пример: Добавление поля "Артикул" для товаров
Параметры:
TableName:ProductsField:ArticleCodeName:АртикулType:textRequired:0Priority:5IsHidden:0
Результат: В форме редактирования товара появится текстовое поле "Артикул".
Способ 2: Загрузка полей из Excel
Этот способ удобен для массового добавления полей или миграции конфигурации между проектами.
Шаг 1. Подготовьте Excel-файл
Создайте Excel-файл (.xlsx) со следующей структурой:
Лист 1 (название листа не важно)
Строка 1 (заголовки — обязательны!):
| Список | Наименование | Alias | Тип | Группа | Описание |
|---|
Примеры данных:
| Список | Наименование | Alias | Тип | Группа | Описание |
|---|---|---|---|---|---|
| Products | Артикул | ArticleCode | text | FieldDefault | Артикул товара |
| Products | Бренд | BrandId | select::Brands | FieldDefault | Бренд производителя |
| Products | В наличии | IsAvailable | flag | FieldDefault | Наличие на складе |
| Products | Описание | Description | area | FieldDefault | Полное описание |
Описание столбцов:
- Список — имя таблицы (например:
Products,News,Contacts) - Наименование — отображаемое название поля в админке
- Alias — техническое имя поля (название столбца в БД)
- Тип — тип поля (см. раздел "Типы полей")
- Группа — группа для визуального разделения (обычно
FieldDefault,FieldDopoln1,FieldDopoln2) - Описание — дополнительное описание поля (необязательно)
Требования к файлу:
- Первая строка — заголовки:
Список,Наименование,Alias,Тип,Группа,Описание - Названия заголовков должны точно совпадать (с учётом регистра!)
- Формат файла:
.xlsx(Excel 2007 и выше) - Кодировка: UTF-8
- Обязательные столбцы:
Список,Наименование,Alias,Тип - Опциональные столбцы:
Группа,Описание
📎 Скачать шаблон: add-fields-template.xlsx
Шаг 2. Откройте системное расширение "Загрузки из Excel"
- Войдите в административную панель
/_wepps/ - Перейдите в раздел Системные расширения → Загрузки из Excel
Шаг 3. Выберите цель загрузки
- В поле "Цель" выберите: "Списки: установка полей"
- Нажмите кнопку "Выбрать файл" и загрузите подготовленный Excel-файл
Шаг 4. Выполните загрузку
- Нажмите кнопку "Далее"
- Система обработает файл и добавит новые поля в таблицу
s_ConfigFields - Проверьте результат в разделе Настройки полей
Преимущества загрузки из Excel
✅ Массовое добавление — можно добавить десятки полей за один раз
✅ Удобное редактирование — редактирование в Excel быстрее, чем через веб-форму
✅ История загрузок — все файлы сохраняются в БД (список Загруженные файлы, s_UploadsSource) с возможностью повторного использования
✅ Миграция — легко переносить настройки между проектами
✅ Документирование — файл служит документацией структуры данных
Типы полей
Базовые типы
| Тип | Описание | Пример использования |
|---|---|---|
text |
Текстовое поле (varchar 128) | Название, артикул |
latin |
Текстовое поле для латиницы | Alias, URL-ключи |
password |
Поле для пароля | Пароли пользователей |
area |
Многострочное текстовое поле (text) | Описание, комментарии |
flag |
Флажок (да/нет, int) | В наличии, активность |
int |
Целое число | Количество, ID связей |
digit |
Десятичное число (decimal 12,2) | Цена, вес с точностью |
date |
Дата и время (datetime) | Дата публикации, создания |
file |
Загрузка файлов | Изображения, документы |
Типы для связей со списками
| Тип | Описание | Пример использования |
|---|---|---|
select::TableName |
Выпадающий список из таблицы | select::Brands — выбор бренда |
select_multi::TableName |
Множественный выбор из таблицы | select_multi::Categories |
dbtable::TableName |
Связь с таблицей БД | Аналог select |
dbtable_multi::TableName |
Множественная связь с таблицей | Аналог select_multi |
remote::TableName |
Удалённый выбор (через AJAX) | Для больших списков |
remote_multi::TableName |
Множественный удалённый выбор | Для больших списков |
Специальные типы
| Тип | Описание | Пример использования |
|---|---|---|
guid |
GUID (char 36) | Уникальные идентификаторы |
blob |
Бинарные данные (blob) | Сериализованные данные |
minitable::header1,header2 |
Встроенная мини-таблица | Характеристики товара |
properties::PropertyGroupId |
Группа свойств | Расширенные параметры |
Связь с другими списками
Для полей типа select можно указать связь с другим списком прямо в поле Type через двоеточие:
TableName: Products
Field: BrandId
Name: Бренд
Type: select::Brands
При этом в выпадающем списке будут отображаться элементы из таблицы Brands.
Варианты связей:
select::TableName— одиночный выбор из спискаselect_multi::TableName— множественный выборremote::TableName— одиночный выбор через AJAX (для больших списков)remote_multi::TableName— множественный выбор через AJAXdbtable::TableName— аналог selectdbtable_multi::TableName— аналог select_multi
Практические примеры
Пример 1: Добавление полей для товаров
Задача: Добавить поля "Вес", "Страна производства" и "Гарантия" для товаров.
Excel-файл:
| Список | Наименование | Alias | Тип | Группа | Описание |
|---|---|---|---|---|---|
| Products | Вес (кг) | Weight | digit | FieldDefault | Вес товара в килограммах |
| Products | Страна производства | CountryId | select::Countries | FieldDefault | |
| Products | Гарантия (мес.) | Warranty | int | FieldDefault | Гарантийный срок |
Результат: В форме товара появятся три новых поля.
Пример 2: Добавление скрытых служебных полей
Задача: Добавить служебное поле для хранения данных из внешней системы.
TableName: Products
Field: ExternalId
Name: ID во внешней системе
Type: text
Required: 0
Priority: 999
IsHidden: 1
Результат: Поле будет храниться в БД, но не отображаться в админке.
Пример 3: Добавление поля с обязательным заполнением
Задача: Добавить обязательное поле "Цена" для товаров.
TableName: Products
Field: Price
Name: Цена (руб.)
Type: digit
Required: 1
Priority: 5
IsHidden: 0
FGroup: FieldDefault
Результат: При сохранении товара без указания цены будет выведена ошибка.
Пример 4: Добавление мини-таблицы характеристик
Задача: Добавить поле для хранения характеристик товара в виде таблицы.
TableName: Products
Field: Specifications
Name: Характеристики
Type: minitable::Параметр,Значение,Единица
Required: 0
Priority: 50
IsHidden: 0
FGroup: FieldDefault
Результат: В форме товара появится встроенная таблица для ввода характеристик с тремя колонками.
Важные замечания
⚠️ Автоматическое создание столбцов:
Платформа автоматически создаёт столбцы в таблице БД при добавлении поля в s_ConfigFields:
- Если столбец не существует → он будет создан с типом, соответствующим указанному в поле
Type - Если столбец уже существует → его тип будет обновлён (если отличается)
💡 Соответствие типов поля и столбца БД:
Тип в s_ConfigFields |
Тип столбца в MySQL |
|---|---|
text, latin, password |
varchar(128) |
area |
text |
int, flag, file |
int |
digit |
decimal(12,2) |
date |
datetime |
guid |
char(36) |
blob |
blob |
minitable::... |
mediumtext |
⚠️ Перед добавлением полей:
- Проверьте уникальность — не должно быть дублирующихся записей (
TableName+Field) - Соблюдайте приоритеты — поля с меньшим
Priorityотображаются выше - Выбирайте правильный тип — от типа зависит структура столбца в БД
⚠️ При загрузке из Excel:
- Проверьте формат файла — только
.xlsx - Не используйте объединённые ячейки — каждая ячейка должна быть отдельной
- Проверьте заголовки — названия столбцов должны точно совпадать
- Создайте резервную копию — перед массовой загрузкой сделайте бэкап БД
⚠️ При миграциях между проектами:
При переносе таблиц и полей между проектами (например, через SQL-дампы или Excel) необходимо обеспечить синхронизацию:
- Структура таблиц в БД должна соответствовать записям в
s_Config - Столбцы таблиц должны соответствовать записям в
s_ConfigFields - Порядок миграции:
- Сначала создайте таблицы (или добавьте записи в
s_Config) - Затем добавьте поля (записи в
s_ConfigFields) - Платформа автоматически создаст/обновит структуру БД
- Сначала создайте таблицы (или добавьте записи в
💡 Рекомендация: При миграции используйте загрузку полей через Excel — это обеспечит автоматическое создание столбцов с правильными типами данных.
Проверка результата
После добавления полей:
- Перейдите в список, для которого добавляли поля
- Откройте любой элемент на редактирование
- Убедитесь, что новые поля отображаются в форме
- Проверьте сохранение данных
Удаление полей
Для удаления поля из списка:
- Перейдите в Настройки → Настройки полей (
s_ConfigFields) - Найдите нужное поле
- Удалите запись
⚠️ Внимание: Удаление записи из s_ConfigFields автоматически удалит столбец из таблицы БД! Все данные в этом столбце будут безвозвратно потеряны. Перед удалением убедитесь, что:
- Данные в этом поле больше не нужны
- Создана резервная копия БД (если данные могут понадобиться)
Заключение
Два способа добавления полей позволяют выбрать оптимальный подход в зависимости от задачи:
- Интерфейс админки — для быстрого добавления 1-2 полей
- Загрузка из Excel — для массового добавления и миграции конфигурации
Правильная настройка полей обеспечивает удобный интерфейс редактирования и корректное хранение данных в платформе Wepps.
