Перейти к содержимому


Новая запись в подтаблице $event['is_new_line']


Сообщений в теме: 9

#1 mak

    Активный участник

  • Активный пользователь
  • PipPipPip
  • 207 сообщений

Отправлено 27 Ноябрь 2015 - 12:28

при добавлении записи в подтаблице, событие $event['is_new_line'] == 1 не возникает.
как отловить создание новой записи?

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 27 Ноябрь 2015 - 16:08

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

#3 mak

    Активный участник

  • Активный пользователь
  • PipPipPip
  • 207 сообщений

Отправлено 27 Ноябрь 2015 - 17:10

мне тоже интересно почему?

тестовая БД у вас на саас 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 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 27 Ноябрь 2015 - 17:15

Заявку в ТП тогда.

#5 mak

    Активный участник

  • Активный пользователь
  • PipPipPip
  • 207 сообщений

Отправлено 23 Декабрь 2015 - 14:50

в таблице есть несколько вычислений.
в 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 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 23 Декабрь 2015 - 15:12

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

#7 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 12 Январь 2016 - 12:30

Перепроверил несколько раз на вашей же тестовой базе - и в режиме подтаблицы и в режиме основной таблицы, и с новыми и со "старыми" таблицами - нигде не смог повторить ошибки, везде оба вычисления возвращают "is_new_line = 1" (именно в корне массива, а не как содержимое измененного поля). Как вы умудряетесь ее вызвать? Может я что-то по другому делаю?

#8 mak

    Активный участник

  • Активный пользователь
  • PipPipPip
  • 207 сообщений

Отправлено 12 Январь 2016 - 16:33

))) самому загадка.
сейчас техподдержка ломает голову.

сперва думал пропало после обновления, обновился. все равно ошибка.
создал новую таблицу и к ней 2 вычисления - ошибки нет.

предполагаю что это какой то глюк от старой конфигурации, сперва начал стандартную адаптировать, но потом удалил все лишние мне таблицы и вычисления, но часть таблиц осталась от старой конфигурации, как например проблемная - счета.

надо было сразу с чистого листа начинать...

#9 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 13 Январь 2016 - 10:10

Нашел причину, точнее когда именно такая ситуация возникает. Для этого второе вычисление должно вызываться не напрямую, а другим вычислением (т.е. когда первое меняет поле, на событие изменения которого настроено второе вычисление). Попробую исправить.

#10 mak

    Активный участник

  • Активный пользователь
  • PipPipPip
  • 207 сообщений

Отправлено 13 Январь 2016 - 12:17

значит баг)
карма что ли у меня такая, в какой системе не начну работать, баги так и прилипают. ))) прям как тестер.

похоже что приоритет событий возникших в вычислении выше чем указанных в параметрах вычисления, по тому как у меня и в первом и во втором помимо изменения полей стоит событие сохранение в таблице.





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных