20.11.2006, 12:44 | #1 |
Участник
|
Нав 3.6
Есть большой отчёт осуществляющие финучёт сбеестоимотсти. Требуется вести некоторые записи в табличку-лог в процессе выполнения, но так, чтоб в случае ошибки записи в лог-табличке не откатились. Навиженский COMMIT я так понимаю не подходит, т.к. оно сбрасывает ВСЮ текущую транзакцию, а даже если я его размещаю в триггере OnInsert лог-таблички, то это всё та же транзакция. Как решить проблему? Подозреваю, что только ведением логов на через SQL, но это изврат ИМХО |
|
20.11.2006, 13:40 | #2 |
Участник
|
Создайте single instance codeunit (50000), объявите в нем текстовый массив и 2 функции ДобавитьВЛог (в ней заполняем массив) и ЗаписатьВБазу (содержимое массива - в таблицу).
В кодеюните Inventory Posting To G/L вставьте вызовы ДобавитьВЛог. Создайте еще один кодеюнит (50001) - на OnRun: report.runmodal(report::"Post Inventory Cost to G/L"); Вызов отчета переделайте таким образом: If not codeunit.run(50001) then codeunit50001.ДобавитьВЛог. |
|
20.11.2006, 13:47 | #3 |
Участник
|
в файл пишут в таких случаях
|
|
20.11.2006, 13:53 | #4 |
Участник
|
2rmv
Спасибо, действительно классный метод, только вот теряются сообщения об ошибках работы отчёта. В случае если руками вызывается ERROR,то ладно-можно передать текст в лог, а как быть если оно в каком-либо непредсказуемом месте вывылится? Да про файл это понятно, но этот вариант плохой. Хочется именно в табличку |
|
20.11.2006, 14:26 | #5 |
Участник
|
Цитата:
Сообщение от rmv
Создайте single instance codeunit (50000), объявите в нем текстовый массив и 2 функции ДобавитьВЛог (в ней заполняем массив) и ЗаписатьВБазу (содержимое массива - в таблицу).
В кодеюните Inventory Posting To G/L вставьте вызовы ДобавитьВЛог. Создайте еще один кодеюнит (50001) - на OnRun: report.runmodal(report::"Post Inventory Cost to G/L"); Вызов отчета переделайте таким образом: If not codeunit.run(50001) then codeunit50001.ДобавитьВЛог. |
|
20.11.2006, 14:28 | #6 |
Участник
|
Да то что временные или не временные - это уже детали. С этим я и са мразберусь
Как бы сообщения не терять об ошибках? Подозреваю, что никак. Выходит надо делать, чтоб через SQL писалось. |
|
20.11.2006, 14:41 | #7 |
Участник
|
|
|
22.11.2006, 13:24 | #8 |
Участник
|
Почему с файлом вариант плохой?!
если есть системность запуска финучёта, можно подтягивать данные из файла в таблицу автоматом с помощью DTS |
|
24.11.2006, 09:51 | #9 |
Участник
|
Ну просто таблицей гораздо удобнее и надёжнее. Проще анализировать и нге надо ничгео никуда пергонять - всё и так есть. Уже сделал чтоб писалось через SQL-запросы
|
|
07.12.2006, 09:43 | #10 |
Участник
|
Подскажи пож-ста, где и каким образом ты сделал через SQL- запросы.
|
|
07.12.2006, 11:26 | #11 |
Участник
|
|
|