До старта конференции

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

Программирование - Практика программирования

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

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

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

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

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

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

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

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

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

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

См. также

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

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

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

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

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

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

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