Формы. Как добавить новый элемент, если в списке на форме его нет

Вариант 1. Использование полей списка типа select2 с tags=true

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

1. Для поля ставим тип Список 2 (select2).

2. Указываем в GetItems для поля настройку tags=true

-- SELECT 1 в GetItem формы
select '{"tags": true}' options_s47

3. При обработке значений в SaveItem можно делать разбор значения поля. Если это существующий элемент, то просто сохранять поле. Если это несуществующий элемент, то добавлять его сначала в справочник, а затем делать привязку

Примечание: 

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

if(try_cast(@value as int)=null ) begin 
  -- it's string, new value from user
end else begin 
  -- it's int
end

Вариант 2. Использование Popover формы

Для этого используем формы во всплывающем окне (форма на popover окне).

Через кастомную разметку формы рядом с комбиком элементов добавляем кнопку:

<a href="#" class="as-popover btn btn-secondary btn-lg" data-content="" data-title="Заголовок" data-trigger="click" data-type="primary" data-size="lg" data-formcode="newForm" data-formitemid="">Новый элемент</a>

Также используйте частичное обновление страницы через параметр refreshContainer при сохранении формы

select 1 Result, '' msg, 'body' refreshContainer

Falcon Space - функциональная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Насколько полезной была статья?

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

Falcon Space

Это снижение стоимости владения

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

Это быстрое внесение изменений

по ходу эксплуатации программы. Как создается функционал на платформе

Это простой удобный интерфейс

адаптация под мобильные устройства. Про юзабилити платформы

Нужна бесплатная консультация?
Получить оценку проекта
Создайте концепцию проекта на основе нашего шаблона и получите оценку проекта в виде КП.
Демо-сайт решений
Базисные решения, которые можно гибко адаптировать под себя: менять внешний вид, бизнес-логику и даже структуру базы данных.
Сайт использует Cookie. Правила конфиденциальности OK