gifts2017

Регистрация текста окна сообщений

Опубликовал Антон Камолов (sdin101) в раздел Программирование - Практика программирования

Для контроля работы пользователей потребовалось записывать текст окна сообщений в файл.
Получился простейший механизм регистрации лог-файла.
Удержать роста папки "Temp", в качестве рекомендации, может использование bat-файла, который будет чистить или архивировать получаемые логи. Таких батников в инете полным-полно.
P.S. Особо по форуму не смотрел, может, есть уже такое.
Перем Текст; 
Перем ИмяЛогФайла;

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

    //Регистрация логов
    Текст=СоздатьОбъект("Текст"); 
    ИмяЛогФайла = КаталогИБ()+"Temp\"+Формат(ТекущаяДата(),"ДГГГГММДД")+".txt";
    Попытка
    Текст.Открыть(ИмяЛогФайла);
    Исключение
    КонецПопытки;

КонецПроцедуры  //ПриНачалеРаботыСистемы() 

Процедура ПриЗавершенииРаботыСистемы()
    
    //Закрытие файла логов
    Текст.Записать(ИмяЛогФайла);
    
КонецПроцедуры // ПриЗавершенииРаботыСистемы()

//Процедура, вызываемая вместо "Сообщить()"
Процедура ВыводСообщения(ТекстСообщения,Важн = "")

     Сообщить(ТекстСообщения,Важн); 
    Текст.ДобавитьСтроку(?(Важн<>"",Важн+" ","") + Строка(ТекущаяДата())+" "+ Строка(ТекущееВремя())+" "+ ТекстСообщения);

КонецПроцедуры

//Пример вызова
Процедура МояПроцедура()

  ВыводСообщения("Друзья-админы, я сделал что-то не так!","!!!");
  
КонецПроцедуры

См. также

Подписаться Добавить вознаграждение

Комментарии

0. Антон Камолов (sdin101) 28.11.11 14:42
Для контроля работы пользователей потребовалось записывать текст окна сообщений в файл.
Получился простейший механизм регистрации лог-файла.
Удержать роста папки "Temp", в качестве рекомендации, может использование bat-файла, который будет чистить или архивировать получаемые логи. Таких батников в инете полным-полно.
P.S. Особо по форуму не смотрел, может, есть уже такое.

Перейти к публикации

1. Yaroslav (maddy) 28.11.11 14:42
А почему бы просто не записать событие в системный журнал? Зачем маяться с открытием/закрытием текстового файла.

См.
ЗаписьЖурналаРегистрации(<?>,,,,);
2. Владислав Чинючин (vcv) 28.11.11 14:43
По моему, проще в глобальник вставить процедуру "Сообщить":
Процедура Сообщить(Текст,Маркер="") Экспорт
	Message("1С хочет сказать : "+Текст,Маркер);
КонецПроцедуры // Сообщить
3. Александр Лыткин (TrinitronOTV) 28.11.11 15:14
maddy пишет:

А почему бы просто не записать событие в системный журнал? Зачем маяться с открытием/закрытием текстового файла.

См.
ЗаписьЖурналаРегистрации(<?>,,,,);

полностью присоединяюсь к данному мнению
5. Антон Камолов (sdin101) 29.11.11 00:52
Согласен со всеми. Не претендую на что-то супер оригинальное. Просто написал так. Может кому и пригодится в таком варианте. Орефкова ОЧЕНЬ уважаю. Правда скачать его обработку с сайта пока рейтинга не хватает :-)
6. Осипов Сергей (fixin) 07.12.11 17:50
если 1с вылетит аварийно, ничего в журнале не останется... надо по одной строке писать и закрывать. ЖР лучше.
7. Антон Камолов (sdin101) 08.12.11 12:06
Можете делать запись в процедуре "ВыводСообщения", если случаи аварийного завершения работы 1С имеют место быть. ЖР хорош, но в него пишется еще много всего. Потом надо как-то организовывать фильтр по нужным сообщениям, использовать проги типа этой http://infostart.ru/public/87971/ (не реклама:-)) А я пишу в файл только то, что мне надо. Объем файла грошовый, легко смотрится в блокноте.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа