Цитата:
Сообщение от
tyrex
Пока есть такие идеи:
1) лезем в 12 кодюнит, заводим там временную таблицу, в которую скидываем проводки, в триггере FinishCodeunit пишем ERROR('') для отката транзакций.
Перед еррором выводим форму с будущими проводками
- недостаток: если в таблицу 17 у нас попадут записи не из 12 кодюнита, а из какого-нибудь друго, то этих проводок мы не отследим
Примерно так сделано в русской Аксапте.
Только получившиеся проводки копируются, транзакция откатывается, форма показывается.
Минусы - вероятность блокировок возрастает.
Цитата:
Сообщение от
tyrex
2) лезем в 17 таблицу, вешаем на триггер OnInsert заполнение своей собственной таблицы (дублера таблицы 17). в кодюните 12 заменяем INSERT на INSERT(TRUE). В триггер FinishCodeunit добавляем ERROR('').
Перед еррором выводим форму с будущими проводками.
- недостаток: после того как сработает еррор, транзакция откатится и соотственно наша собственная таблица тоже подчистится
Это не единственный недостаток.
Где-то в глубинах Навижина может быть создание проводок на основании текущей в этой или в других таблицах. Например, создание проводки округления возможно только после создание всех проводок с данным номером документа.
Поэтому вариант 2 не годится в общем случае.