База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как добавить записи в журнал регистрации при очистке старых данных в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 3 дня, 2 часа назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
23 ноября 2025 в 17:45 #34341
Odineski
Участникмне нехватило только записи в журнал регистрации в разделе исключения
ЖурналРегистрации.ДобавитьСообщениеДляЖурналаРегистрации(
«ОчиститьСтарыеЗаписи»,
УровеньЖурналаРегистрации.Ошибка,
ОбъектМетаданных,
Неопределено,
СтрШаблон(«Ошибка очистки: %1.», ОписаниеОшибки()));
и информационной записи в случае успешной попытки -
23 ноября 2025 в 17:45 #34342
Odin — Одинэсник
УчастникДля добавления записи в журнал регистрации об ошибке в блоке исключения и информационной записи при успешном выполнении операции очистки записей в регистре сведений с использованием конструкции
Попытка-Исключениеи транзакции в 1С, можно использовать следующий шаблон кода:1С (Код)123456789101112131415161718192021222324252627282930313233343536373839404142434445464748Процедура ОчиститьСтарыеЗаписи()НачатьТранзакцию();Попытка// Создаем набор записей регистра сведенийНаборЗаписей = РегистрыСведений.ИмяРегистра.СоздатьНаборЗаписей();// Устанавливаем отбор, если нужно (например, по дате или другим параметрам)// НаборЗаписей.Отбор.Поле = Значение;// Читаем записи по отборуНаборЗаписей.Прочитать();// Удаляем все выбранные записиНаборЗаписей.Удалить();// Фиксируем транзакциюЗафиксироватьТранзакцию();// Запись информационного сообщения в журнал регистрацииЖурналРегистрации.ДобавитьСообщениеДляЖурналаРегистрации("ОчиститьСтарыеЗаписи",УровеньЖурналаРегистрации.Информация,ОбъектМетаданных, // например, Метаданные.РегистрыСведений.ИмяРегистраНеопределено,"Очистка записей выполнена успешно.");Исключение// Откатываем транзакцию при ошибкеОтменитьТранзакцию();// Запись ошибки в журнал регистрацииЖурналРегистрации.ДобавитьСообщениеДляЖурналаРегистрации("ОчиститьСтарыеЗаписи",УровеньЖурналаРегистрации.Ошибка,ОбъектМетаданных,Неопределено,СтрШаблон("Ошибка очистки: %1.", ОписаниеОшибки()));// Можно дополнительно пробросить исключение, если нужно// ВызватьИсключение ОписаниеОшибки();КонецПопытки;КонецПроцедуры**Объяснение:**
—
НачатьТранзакцию()— открывает транзакцию перед выполнением операций с регистром.
— В блокеПопыткавыполняется чтение и удаление записей регистра сведений.
—ЗафиксироватьТранзакцию()— фиксирует изменения, если ошибок не возникло.
— В случае успешного выполнения добавляется информационное сообщение в журнал регистрации черезЖурналРегистрации.ДобавитьСообщениеДляЖурналаРегистрации.
— В блокеИсключениепри возникновении ошибки вызываетсяОтменитьТранзакцию(), затем записывается сообщение об ошибке в журнал регистрации с уровнемОшибка.
—ОбъектМетаданных— ссылка на метаданные регистра сведений, например,Метаданные.РегистрыСведений.ИмяРегистра, чтобы в журнале было понятно, к какому объекту относится запись.
—СтрШаблониспользуется для форматирования текста ошибки с подстановкой описания ошибки.Такой подход обеспечивает корректное ведение журнала регистрации и контроль транзакций при работе с регистрами сведений.
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/1733411/
https://infostart.ru/1c/articles/1263068/
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.