Наковырял следующее:
поставил тригеры на BEFORE DELETE, BEFORE UPDATE, BEFORE INSERT
с содержанием:
SQL код:
CREATE DEFINER = 'ПОЛЬЗВАТЕЛЬ'@'%' TRIGGER `shift_before_ins_tr` BEFORE INSERT ON `shift`
FOR EACH ROW
BEGIN
insert into `tbl_log_delete` (u_ser,dt,tip) values (USER(),NOW(),"ins");
END;
(tip для каждого события свой)
ну и логирование запросов включил.
В таблице tbl_log_delete видно что пользователь 1С производит DELETE
Но вот лог запросов смутил:
Код:
160226 11:55:18 251 Connect ПОЛЬЗОВАТЕЛЬ 1С@ИМЯ_МАШИНЫ_С_1С on export_no_sh
251 Query SET NAMES utf8
251 Query SET character_set_results = NULL
251 Query SET SQL_AUTO_IS_NULL = 0
251 Query set @@sql_select_limit=DEFAULT
251 Query SELECT
CAST(SUM(T1.
бла-бла-бла
T1.`ext_status`
FROM shift T1
WHERE (T1.`ext_status` = 0)
251 Query SELECT
T1.store,
бла-бла-бла
ORDER BY T1.`cash_id`, T1.id
251 Query SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE
251 Query SET AUTOCOMMIT=0
251 Query DELETE FROM shift
WHERE shift.`cash_id` = 15012001 AND shift.id = 1135
160226 11:55:19 251 Query DELETE FROM shift
WHERE shift.`cash_id` = 15012001 AND shift.id = 1135
251 Query INSERT INTO shift (store,`cash_number`,`cash_id`,id,number,login,date,sale,return,cancel,`cancel_return`,`close_login`,`close_date`,`ext_status`) VALUES
('025','1','15012001','1135','1222','1474','2016-02-23 07:58:45','330703038.68','14820900.83','9753418.94','160810.14','1474','2016-02-23 23:08:19','1')
251 Query ROLLBACK
251 Query SET AUTOCOMMIT=1
251 Query SELECT
бла-бла-бла
Видно, что 1С сначала делитит запись, потом вставляет, НО ПОТОМ!!! делает откат транзакции!
Вопрос: сие является признаком того, что "виноват" в "пустой таблице" одинэс? Ведь сам смотрел исходники на чистом русском: нет слова УДАЛИТЬ!
Ну и как это можно попробовать исправить?
З.Ы. И че смотрел смотрел исходники - там можно было написать все что угодноо: я ж по 1С читать не умею
З.З.Ы. Попытался "завернуть" лог в спойлер - запросил какую-то опцию. Что это?