Автоматизация "После изменения записи": не работает конкатенация

Любые критические ошибки будут исправлены в течение 24-48 часов.
Ответить
Аватара пользователя
Andres
Сообщения: 89
Зарегистрирован: 09 окт 2016, 01:44
Имя: Andres Orumets
Откуда: Estonia, Maardu

Автоматизация "После изменения записи": не работает конкатенация

Сообщение Andres »

Добрый день Сергей,
Автоматизация "Выполнить после изменения записи" (происходит конкатенация) записывает данные в поле "не доконца":
Т.е. записанные данные есть, но не отображаются в поле. После сохранения записи вручную без изменений - все отображается как надо. Воссоздал ситуацию в демо здесь
Использовать формулу или функцию CONCAT - не вариант, т.к. нужно соединять по условию (если одно из полей пустое, то запятая не ставится), чтобы избегать вариантов конкатенации типа: "Имя, Фамилия, , , , г."

Имеем запись без изменений:
Изображение

Жмем "Изменить название":
Изображение

Выбранное изменение есть, но не дописалось к названию:
Изображение

Пересохраняем без изменений:
Изображение

Все есть как надо:
Изображение

Код автоматизации:

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

$project_name=[158];
$change_name=[207];
$string=$project_name.' + изменение: '.$change_name;
db_query("update app_entity_21 set field_209='$string' where id={$item_id}");
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 829
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич

Re: Автоматизация "После изменения записи": не работает конкатенация

Сообщение Fait »

Попробуйте этот код, ваш не совсем правильно составлен:

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

$item_id=[id];
$project_name=[158];
$change_name=[207];
$string=$project_name.' + изменение: '.$change_name;
db_query('update app_entity_21 set field_209="'$string'" where id='$item_id);
Аватара пользователя
Andres
Сообщения: 89
Зарегистрирован: 09 окт 2016, 01:44
Имя: Andres Orumets
Откуда: Estonia, Maardu

Re: Автоматизация "После изменения записи": не работает конкатенация

Сообщение Andres »

Спасибо Fait, попробовал. К сожалению, не помогло. После ручного сохранения ошибку выкинуло.
В демо логин-пароль стандартные, можно "покликать" и увидеть изменения

{$item_id} - всегда работает для текущей записи
Аватара пользователя
support
Техническая поддержка
Сообщения: 9166
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Автоматизация "После изменения записи": не работает конкатенация

Сообщение support »

"Выполнить процесс после изменения записи" срабатывает если вы делаете изменения в основной форме, но не после автоматизации.
Аватара пользователя
Andres
Сообщения: 89
Зарегистрирован: 09 окт 2016, 01:44
Имя: Andres Orumets
Откуда: Estonia, Maardu

Re: Автоматизация "После изменения записи": не работает конкатенация

Сообщение Andres »

support писал(а): 24 июл 2024, 07:49 "Выполнить процесс после изменения записи" срабатывает если вы делаете изменения в основной форме, но не после автоматизации.
ОК...
А возможно ли написать какой-то скрипт, эмулирующий изменение в основной форме (обновление скрытого числового поля, например)?
Наподобие такого, толко не открытие формы добавления, а открытие, изменение поля, сохранение (взял из ветки "Плагины"):

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

<script>
var sp = new URLSearchParams(window.location.search)
action = sp.get("action_on_page");
if (action) {
  if (action == "add") {
   bn_add =  $("[onclick*='=items/form&path=']")
   if (bn_add) {bn_add.click();} 
  }
}
</script>
Ответить