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


Несколько вызовов insert_query - события срабатывают только на первом?

insert_query event

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

#1 Tonik

    Участник

  • Пользователи
  • PipPip
  • 16 сообщений

Отправлено 24 Апрель 2014 - 11:34

Текущая ревизия:
11995 от 2014-04-21

Пытаюсь выполнить вот такой код, который расположен в модуле

<?php
$config['script_noauth']=1;
include(dirname(__FILE__)."/../../common.php");
// Массив продуктов из другой системы, Не важно как он появился, будем считать что с корректными данными
$products = array(
array(
  'Прайс-лист' => 1,
  'Цена' => 50,
  'Кол-во' => 2
),
array(
  'Прайс-лист' => 2,
  'Цена' => 150,
  'Кол-во' => 3
),
array(
  'Прайс-лист' => 3,
  'Цена' => 20,
  'Кол-во' => 5
),
);
// Несколько вызовов insert_query  - события срабатывают только на первом?
foreach ($products as $product) {
$product['Счет'] = 8028;
insert_query($product, 'Позиции счета');
}
Скрипт вызываю из консоли.

То есть последовательно вызываю insert_query для вставки строк в документ Счет. Насколько я понимаю, после insert_query должны срабатывать событий и отрабатывать вычисление. В частности должен считаться поле Итого.
Моя проблем в том, что Итого считается только для первой вставленной строчки. Собственно в Счете на вычислениях так же вроде считается и общаz сумма счета - и туда тоже попадает только Итого из первой сроки. То есть я делаю вывод, что вычисления корректно срабатывают только для первого вызова insert_query

Скажите, это баг или я как то не верно использую код?

#2 CbCoder

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

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

Отправлено 24 Апрель 2014 - 11:54

В настройках вычислений есть опция "Запретить рекурсивный вызов" - она должна быть отключена.

#3 Tonik

    Участник

  • Пользователи
  • PipPip
  • 16 сообщений

Отправлено 25 Апрель 2014 - 07:50

Спасибо ваш ответ направил в нужную сторону. Дело действительно в галке. Но я решил пойти по другому, может кому пригодится
1) Вначале вставляю строки использую data_insert которые событие не генерит
2) а потом уже создаю документ Счет

#4 wondertalik

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

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 25 Апрель 2014 - 14:13

Просмотр сообщенияTonik (25 Апрель 2014 - 07:50) писал:

Спасибо ваш ответ направил в нужную сторону. Дело действительно в галке. Но я решил пойти по другому, может кому пригодится
1) Вначале вставляю строки использую data_insert которые событие не генерит
2) а потом уже создаю документ Счет
Забывайте про использование функций типа *_query. Для обеспечения совместимости вычислений и большой гибкости переходите на data_* с использованием EVENTS_ENABLE при необходимости.





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

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