при добавлении записи в подтаблице, событие $event['is_new_line'] == 1 не возникает.
как отловить создание новой записи?
Новая запись в подтаблице $event['is_new_line']
Автор mak, 27 нояб. 2015 12:28
Сообщений в теме: 9
#1
Отправлено 27 Ноябрь 2015 - 12:28
#2
Отправлено 27 Ноябрь 2015 - 16:08
Почему это не возникает? Запись в подтаблице добавляется сразу после нажатия на Добавить. После этого уже идет ее редактирование.
#3
Отправлено 27 Ноябрь 2015 - 17:10
мне тоже интересно почему?
тестовая БД у вас на саас https://test1112.cli...ine=1&filter=49
вычисление на таблицу "позиции счета":
срабатывает при сохранении и изменении поля описания - http://prntscr.com/97jvfu
при добавлении записи, видим что массива $event нет вообще: http://prntscr.com/97jnyf
при изменении видим что массив есть: http://prntscr.com/97jojp
при добавлении записи в режиме таблицы, вычисление срабатывает, но запись не меняется и тип "save".
http://prntscr.com/97jted
может я не понимаю когда оно срабатывает и не там ловлю?
мне надо выполнить вычисление во время создания и изменения записи в режиме подтаблицы.
если я создаю запись вычислением data_insert то проверка $event['is_new_line'] срабатывает, при добавлении из подтаблицы нет.
тестовая БД у вас на саас https://test1112.cli...ine=1&filter=49
вычисление на таблицу "позиции счета":
$line['Описание'] = "новая строка"; // не срабатывает в принципе.
calc_alerts("<pre>события тест:<br>".print_r($event, true)."строка тест:<br>".print_r($line, true)."</pre>");
срабатывает при сохранении и изменении поля описания - http://prntscr.com/97jvfu
при добавлении записи, видим что массива $event нет вообще: http://prntscr.com/97jnyf
события тест: строка тест: Array ( [user_id] => 1 [add_time] => 2015-11-27 16:50:58 [status] => [f807] => Array ( [id] => 1 [user_id] => 1 [add_time] => 2015-11-27 16:44:34 [status] => 0 [f436] => 2015-11-27 00:00:00 [f437] => 1 [f448] => 1 [f454] => 0.00 [f455] => 0.00 [f456] => 0.00 [f457] => 0000-00-00 00:00:00 [f654] => 1 [f839] => 0 [f851] => [f889] => 0.00 [f1083] => dghd [f2061] => 0.00 [f2071] => 1 [f2650] => [f2820] => 0 [f2830] => [f3360] => [f4101] => 0 [f4221] => [f4231] => 1 [f4241] => 0 [f4251] => Нет [r] => 0 [u] => 0 [uniq_qst] => 0 [raw] => 1 ) [f4181] => [f2331] => Array ( [f1157] => Array ( ) ) [f1440] => [f809] => Array ( ) [f810] => 0 [f811] => 1 [f812] => 0 [f2021] => 0 [f2041] => 0 [f2051] => 0 [f4191] => 2015-11-27 00:00:00 [f4201] => 0 [f4211] => 0 [id] => 6 )
при изменении видим что массив есть: http://prntscr.com/97jojp
события тест: Array ( [type] => update [type2] => view [table_id] => 74 [line_id] => 6 [changed] => Array ( [1440] => Array ( [field_id] => 1440 [int_name] => f1440 [old] => [new] => sdfgdf ) ) ) строка тест: Array ( [id] => 6 [user_id] => 1 [add_time] => 2015-11-27 16:50:58 [status] => 0 [f807] => 1 [f809] => 2 [f810] => 0.00 [f811] => 1 [f812] => 0.00 [f1440] => sdfgdf [f2021] => 0.00 [f2041] => 0.00 [f2051] => 0.00 [f2331] => 0 [f4181] => 0 [f4191] => 2015-11-27 00:00:00 [f4201] => 0.00 [f4211] => 0.00 [r] => 0 [u] => 0 [uniq_qst] => 0 )
при добавлении записи в режиме таблицы, вычисление срабатывает, но запись не меняется и тип "save".
http://prntscr.com/97jted
может я не понимаю когда оно срабатывает и не там ловлю?
мне надо выполнить вычисление во время создания и изменения записи в режиме подтаблицы.
если я создаю запись вычислением data_insert то проверка $event['is_new_line'] срабатывает, при добавлении из подтаблицы нет.
#4
Отправлено 27 Ноябрь 2015 - 17:15
Заявку в ТП тогда.
#5
Отправлено 23 Декабрь 2015 - 14:50
в таблице есть несколько вычислений.
в 2-х проверка на новую запись.
то вычисление, которое выполняется первым, получает событие "is_new_line",
а следующее вычисление "[type] => calc"
так и должно быть или баг?
если так и должно, то получается разделять вычисления нет смысла, или как минимум все что касается новой записи, надо делать в 1-м вычислении, причем выполнятся оно должно в первую очередь.
в 2-х проверка на новую запись.
то вычисление, которое выполняется первым, получает событие "is_new_line",
а следующее вычисление "[type] => calc"
Array ( [type] => calc [table_id] => 43 [line_id] => 3580 [changed] => Array ( [7650] => Array ( [field_id] => 7650 [int_name] => f7650 [old] => [new] => Иванов) [7610] => Array ( [field_id] => 7610 [int_name] => f7610 [old] => [new] => 89262115083 ) [7620] => Array ( [field_id] => 7620 [int_name] => f7620 [old] => [new] => Москва, Московская обл ) [7630] => Array ( [field_id] => 7630 [int_name] => f7630 [old] => [new] => Россия, Московская обл, Москва, тест ) ) [calc_id] => 19 )
так и должно быть или баг?
если так и должно, то получается разделять вычисления нет смысла, или как минимум все что касается новой записи, надо делать в 1-м вычислении, причем выполнятся оно должно в первую очередь.
#6
Отправлено 23 Декабрь 2015 - 15:12
Скорее баг, чем "так и должно быть", если конечно вы сами не напутали чего. Отправьте заявку в ТП на проверку.
#7
Отправлено 12 Январь 2016 - 12:30
Перепроверил несколько раз на вашей же тестовой базе - и в режиме подтаблицы и в режиме основной таблицы, и с новыми и со "старыми" таблицами - нигде не смог повторить ошибки, везде оба вычисления возвращают "is_new_line = 1" (именно в корне массива, а не как содержимое измененного поля). Как вы умудряетесь ее вызвать? Может я что-то по другому делаю?
#8
Отправлено 12 Январь 2016 - 16:33
))) самому загадка.
сейчас техподдержка ломает голову.
сперва думал пропало после обновления, обновился. все равно ошибка.
создал новую таблицу и к ней 2 вычисления - ошибки нет.
предполагаю что это какой то глюк от старой конфигурации, сперва начал стандартную адаптировать, но потом удалил все лишние мне таблицы и вычисления, но часть таблиц осталась от старой конфигурации, как например проблемная - счета.
надо было сразу с чистого листа начинать...
сейчас техподдержка ломает голову.
сперва думал пропало после обновления, обновился. все равно ошибка.
создал новую таблицу и к ней 2 вычисления - ошибки нет.
предполагаю что это какой то глюк от старой конфигурации, сперва начал стандартную адаптировать, но потом удалил все лишние мне таблицы и вычисления, но часть таблиц осталась от старой конфигурации, как например проблемная - счета.
надо было сразу с чистого листа начинать...
#9
Отправлено 13 Январь 2016 - 10:10
Нашел причину, точнее когда именно такая ситуация возникает. Для этого второе вычисление должно вызываться не напрямую, а другим вычислением (т.е. когда первое меняет поле, на событие изменения которого настроено второе вычисление). Попробую исправить.
#10
Отправлено 13 Январь 2016 - 12:17
значит баг)
карма что ли у меня такая, в какой системе не начну работать, баги так и прилипают. ))) прям как тестер.
похоже что приоритет событий возникших в вычислении выше чем указанных в параметрах вычисления, по тому как у меня и в первом и во втором помимо изменения полей стоит событие сохранение в таблице.
карма что ли у меня такая, в какой системе не начну работать, баги так и прилипают. ))) прям как тестер.
похоже что приоритет событий возникших в вычислении выше чем указанных в параметрах вычисления, по тому как у меня и в первом и во втором помимо изменения полей стоит событие сохранение в таблице.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных













