![]() |
#1 |
Участник
|
Нав 3.6
Есть большой отчёт осуществляющие финучёт сбеестоимотсти. Требуется вести некоторые записи в табличку-лог в процессе выполнения, но так, чтоб в случае ошибки записи в лог-табличке не откатились. Навиженский COMMIT я так понимаю не подходит, т.к. оно сбрасывает ВСЮ текущую транзакцию, а даже если я его размещаю в триггере OnInsert лог-таблички, то это всё та же транзакция. Как решить проблему? Подозреваю, что только ведением логов на через SQL, но это изврат ИМХО |
|
![]() |
#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.ДобавитьВЛог. |
|
![]() |
#3 |
Участник
|
в файл пишут в таких случаях
|
|
![]() |
#4 |
Участник
|
2rmv
Спасибо, действительно классный метод, только вот теряются сообщения об ошибках работы отчёта. В случае если руками вызывается ERROR,то ладно-можно передать текст в лог, а как быть если оно в каком-либо непредсказуемом месте вывылится? Да про файл это понятно, но этот вариант плохой. Хочется именно в табличку |
|
![]() |
#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.ДобавитьВЛог. ![]() |
|
![]() |
#6 |
Участник
|
Да то что временные или не временные - это уже детали. С этим я и са мразберусь
![]() Как бы сообщения не терять об ошибках? Подозреваю, что никак. Выходит надо делать, чтоб через SQL писалось. |
|
![]() |
#7 |
Участник
|
|
|
![]() |
#8 |
Участник
|
Почему с файлом вариант плохой?!
если есть системность запуска финучёта, можно подтягивать данные из файла в таблицу автоматом с помощью DTS |
|
![]() |
#9 |
Участник
|
Ну просто таблицей гораздо удобнее и надёжнее. Проще анализировать и нге надо ничгео никуда пергонять - всё и так есть. Уже сделал чтоб писалось через SQL-запросы
|
|
![]() |
#10 |
Участник
|
Подскажи пож-ста, где и каким образом ты сделал через SQL- запросы.
|
|
![]() |
#11 |
Участник
|
|
|