Нужна помощь! добавление пользователей во множественное поле

Все вопросы/проблемы по установке и использовании.
nruslan2
Сообщения: 2438
Зарегистрирован: 14 окт 2020, 09:13
Имя: Ruslan
Откуда: Moscow
Контактная информация:

Re: Нужна помощь! добавление пользователей во множественное поле

Сообщение nruslan2 »

alcompstudio писал(а): 27 апр 2021, 17:18 В общем, пока не удается сделать выполнение php кода на отправку формы, т.к. в системе изначально в данном поле выполнение настроено на открытие формы.

Было бы неплохо добавить опции в настройки (если такое технически возможно):

- выполнять php код при открытии формы
- выполнять php код при отправке формы (кнопка сохранить или Продолжить в форме автоматизации)
Может Вам использовать Настройка формы
В Настройка формы вроде написано следующее: "Введенный JavaScript будет встраиваться в форму при ее отображении." и там же есть onSubmit.
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1710
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр Афанасьев
Откуда: г. Славянск, Донецкая обл.
Организация: Alcomp

Re: Нужна помощь! добавление пользователей во множественное поле

Сообщение alcompstudio »

Я пробовал, но там же выполняется только JS, как я понял, а как там еще и PHP втулить, не знаю...
nruslan2
Сообщения: 2438
Зарегистрирован: 14 окт 2020, 09:13
Имя: Ruslan
Откуда: Moscow
Контактная информация:

Re: Нужна помощь! добавление пользователей во множественное поле

Сообщение nruslan2 »

Насколько помню из JS не достучатсья до базы и не подтянуть значение но можно сделать наверное финт ушами:
php использовать как поле, а JS уже н ан его сослаться! вдруг получистя!
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1710
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр Афанасьев
Откуда: г. Славянск, Донецкая обл.
Организация: Alcomp

Re: Нужна помощь! добавление пользователей во множественное поле

Сообщение alcompstudio »

Вся проблема в том, что php срабатывает сразу, как только появляется/открывается форма редактирования. Сослаться наверное не получится. Тут только опция поможет, скорее всего, это уже Сергей наверное поможет, т.к. далее я не знаю что делать.
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1710
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр Афанасьев
Откуда: г. Славянск, Донецкая обл.
Организация: Alcomp

Re: Нужна помощь! добавление пользователей во множественное поле

Сообщение alcompstudio »

Заменил поле Ajax запрос на поле PHP код, в принципе заработало, если не ставить опцию Динамическое обновление. Теперь решаю вопрос с проверкой на уже внесенные значения, чтобы не задваивались на странице записи Задания пользователи при простом пересохранении записи Этапа (код по-прежнему срабатывает, даже если просто открыть и сохранить запись - снова добавится тот же пользователь).
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1710
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр Афанасьев
Откуда: г. Славянск, Донецкая обл.
Организация: Alcomp

Re: Нужна помощь! добавление пользователей во множественное поле

Сообщение alcompstudio »

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

Код: Выделить всё

$worker_query = db_query("select field_2064 from app_entity_27 where id='" . $_POST['parent_item_id'] . "'"); //запрос к род.сущности Задания - в поле Исполнители
$current_worker = [725]; // Берем значение из поля текущей сущности Этапы (Исполнитель - пользователь)

 if($worker = db_fetch_array($worker_query))
    {
      $value = $worker['field_2064']; // Берем значение из запроса (Исполнители)
        if (empty($current_worker) or strpos($value, $current_worker) !== false) { //Проверяем, если поле из сущности Этапы пустое или в Задании уже присутствует вносимый ползьователь - не выполняем код ниже (не добавляем значение)
      return false;
    }  
      if (!empty($value)) { //Проверяем чтобы поле из сущности Задания было не пустое
      $worker_query = db_query("update app_entity_27 set field_2064 = concat('$value', ',', '$current_worker') where id='" . $_POST['parent_item_id'] . "'"); // Если не пустое, то Обновляем родительскую сущность Задания - добавляя к имеющимся значениям новое значение из поля 725 - через запятую
      }
     else { 
       $worker_query = db_query("update app_entity_27 set field_2064 = '$current_worker' where id='" . $_POST['parent_item_id'] . "'"); //Если пустое, то Обновляем родительскую сущность Задания - добавляя новое значение из поля 725 
         }
}
это я все реализовал через поле PHP код, НО - теперь проблема с выводом в автоматизации данного функционала: поле PHP код невозможно выбрать в действии автоматизации, хотя подобное поле Ajax запрос - можно...
nruslan2
Сообщения: 2438
Зарегистрирован: 14 окт 2020, 09:13
Имя: Ruslan
Откуда: Moscow
Контактная информация:

Re: Нужна помощь! добавление пользователей во множественное поле

Сообщение nruslan2 »

Доработал Автоматизацию в итоге сотворил вот такое:
Возможность гибкого выбора для любого процесса (правда протестировал работу только на изменении/копировании) варианта работы с данных в записи (см скриншот) - (в том числе добавление - ну ради этого все и затевалось)
Вложения
41.png
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1710
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр Афанасьев
Откуда: г. Славянск, Донецкая обл.
Организация: Alcomp

Re: Нужна помощь! добавление пользователей во множественное поле

Сообщение alcompstudio »

Супер! Может с Сергеем поделитесь этим кодом, очень нужный функционал? Было бы неплохо его внедрить в оф.версию Руководителя, если конечно все соответствует требованиям безопасности и оптимизации по Сергея.
nruslan2
Сообщения: 2438
Зарегистрирован: 14 окт 2020, 09:13
Имя: Ruslan
Откуда: Moscow
Контактная информация:

Re: Нужна помощь! добавление пользователей во множественное поле

Сообщение nruslan2 »

alcompstudio писал(а): 28 апр 2021, 11:01

Код: Выделить всё

$worker_query = db_query("select field_2064 from app_entity_27 where id='" . $_POST['parent_item_id'] . "'"); //запрос к род.сущности Задания - в поле Исполнители
$current_worker = [725]; // Берем значение из поля текущей сущности Этапы (Исполнитель - пользователь)

 if($worker = db_fetch_array($worker_query))
    {
      $value = $worker['field_2064']; // Берем значение из запроса (Исполнители)
        if (empty($current_worker) or strpos($value, $current_worker) !== false) { //Проверяем, если поле из сущности Этапы пустое или в Задании уже присутствует вносимый ползьователь - не выполняем код ниже (не добавляем значение)
      return false;
    }  
      if (!empty($value)) { //Проверяем чтобы поле из сущности Задания было не пустое
      $worker_query = db_query("update app_entity_27 set field_2064 = concat('$value', ',', '$current_worker') where id='" . $_POST['parent_item_id'] . "'"); // Если не пустое, то Обновляем родительскую сущность Задания - добавляя к имеющимся значениям новое значение из поля 725 - через запятую
      }
     else { 
       $worker_query = db_query("update app_entity_27 set field_2064 = '$current_worker' where id='" . $_POST['parent_item_id'] . "'"); //Если пустое, то Обновляем родительскую сущность Задания - добавляя новое значение из поля 725 
         }
}
Как выяснилось у кода есть два нюанса:
1 - он не учитывает множественный выбор
2 - при использовании данного кода для поля пользователи - работа функционала права доступа к записям будет работать некорректно!! (главный нюанс так сказать!)
Ответить