Универсальные процедуры для работы с логами

Эти процедуры требуются для безболезненных изменений в коде при переходах от строк к массивам строк и обратно и поддержки старых реализаций. Кроме того позволяет изменять вывод лога добавляя в него строки дат, префиксы и др. оформление добавляет к логу данные, действуя в зависимости от типа (строка или массив). оформляет добавляемые строки лога как заголовок

#Область Логирование
// Процедура - Добавляет к логу данные действуя в зависимости от типа (строка или массив)
//
// Параметры:
//  Лог         - Массив, Строка - Лог
//  Данные     - Строка - Данные для добавления
//
Процедура ДобавитьВЛог(Лог, Данные) Экспорт
    Если ТипЗнч(Лог) = Тип("Строка") Тогда
        Лог = Лог + ?(Лог = "", "", Символы.ПС) + Данные;
    ИначеЕсли ТипЗнч(Лог) = Тип("Массив") Тогда
        Лог.Добавить(Данные);
    ИначеЕсли ТипЗнч(Лог) = Тип("ТекстовыйДокумент") Тогда        
        лог.ДобавитьСтроку(Данные);
    ИначеЕсли ТипЗнч(Лог) = Тип("Неопределено") Тогда //по умолчанию лог это массив
        Лог = Новый Массив;
        Лог.Добавить(Данные);
    КонецЕсли;
КонецПроцедуры

Процедура ДобавитьВЛогЗаголовок(Лог, Данные) Экспорт
    
    РазделительЛога = "--------------------------------------------------------------------------";
    Если ТипЗнч(Лог) = Тип("Массив")  Тогда
        СтрокВЛоге = Лог.Количество();
        
        Если СтрокВЛоге > 0 Тогда
            ПоследняяСтрокаЛога = Лог.Получить(СтрокВЛоге - 1);
            Если РазделительЛога <> ПоследняяСтрокаЛога Тогда
                ДобавитьВЛог(Лог, РазделительЛога);
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
    
    ДобавитьВЛог(Лог, Данные);
    ДобавитьВЛог(Лог, РазделительЛога);
КонецПроцедуры
#КонецОбласти

//быстрая запись в строку из массива для большого объема строк
Функция МассивСтрокВСтроку(Строки) Экспорт 
    
    Запись = Новый ЗаписьXML;
    Запись.УстановитьСтроку();
    Для Каждого ТекущаяСтрока Из Строки Цикл
        Запись.ЗаписатьБезОбработки(ТекущаяСтрока + Символы.ПС);
        
    КонецЦикла;
    
    Возврат Запись.Закрыть();
КонецФункции

Функция ЛогСтрокой(Лог) Экспорт
    
    Если ТипЗнч(Лог) = Тип("ТекстовыйДокумент") Тогда
        Лог.ПолучитьТекст();
    ИначеЕсли ТипЗнч(Лог) = Тип("Массив") Тогда
        Результат = МассивСтрокВСтроку(Лог);
    ИначеЕсли ТипЗнч(Лог) = Тип("Строка") Тогда
        Результат = Лог;
    КонецЕсли;
    
    Возврат Результат;
КонецФункции 
0
Орфографическая ошибка в Логирование: Логирование
Орфографическая ошибка в Неопределено: Неопределено

См. также

Универсальная процедура проверки на дубли строк в табличной части документа

ОбработатьФайлПослеПолученияУниверсальногоВремениИзменения (БСП)

ОбработатьФайлПослеУстановкиУниверсальногоВремениИзменения (БСП)

Работа с универсальными коллекциями данных

ДобавитьНастройкиРаботыСФайлами (БСП)

ДействияПриНачалеРаботыСистемыВИнтеграционнойПроцедуре (БСП)

ПриНачалеРаботыСистемы (БСП)

ВыбратьПолучателяЗавершение (БСП)

ИнтерактивнаяОбработкаПредупрежденийПриЗавершенииРаботы (БСП)

Модератору