Fuego, Душелов, спасибо - оч интересное решение.
я понимаю - тема давно не постилась - но всё же спрошу:
подскажите , как определить - из какой процедуры была вызвана СообщитьПользователю - мне нужно в неё добавить условие - если прользователь=глбух и если групповая обработка тогда вызывать и метод сообщить и запись в логрегистр??
я понимаю - тема давно не постилась - но всё же спрошу:
подскажите , как определить - из какой процедуры была вызвана СообщитьПользователю - мне нужно в неё добавить условие - если прользователь=глбух и если групповая обработка тогда вызывать и метод сообщить и запись в логрегистр??
По теме из базы знаний
- Асинхронная запись и чтение файла без использования модальных методов и временных файлов
- Как я обработку на альтернативный сервер выносил
- Неочевидные нюансы записи управляемой формы
- Обзор полезных методов БСП 3.1.4
- Результаты ревью кода 1500+ решений каталога Инфостарт: наиболее частые ошибки разработчиков в коде
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
1. Создаем новый параметр сеанса типа булево, называем его к примеру "Запущена групповая обработка".
2. При запуске этой обработки устанавливаем параметр сеанса "Истина"
3. В процедуре "Сообщить пользователю" проверяем этот параметр сеанса
2. При запуске этой обработки устанавливаем параметр сеанса "Истина"
3. В процедуре "Сообщить пользователю" проверяем этот параметр сеанса
Кто-нибудь знает, куда выводится информация, переданная в метод «Сообщить()», когда этот метод выполняется без клиенского приложения? Т.е. в регламентном задании на сервере ночью у меня проходит перепроведение документов, а «ругательства» документов хотелось бы видеть утром.
Хотя... Похоже нет в 8.1 такой возможности. В 8.2 есть такая функция:
Для объекта ФоновоеЗадание реализован метод ПолучитьСообщенияПользователю() , позволяющий получать вне фонового задания сообщения, выведенные методом Сообщить() в процессе работы фонового задания.
Для объекта ФоновоеЗадание реализован метод ПолучитьСообщенияПользователю() , позволяющий получать вне фонового задания сообщения, выведенные методом Сообщить() в процессе работы фонового задания.
Я ща нашёл у себя 1110 вхождений. Но потом подумал, и вспомнил. Если я ща создам модуль с флагом глобальный, и там определю процедуру, то вроде бы всё будет работать. Но если такой метод вызывать из модуля типа партионного учёта, который выполняется на сервере, то эти сообщения будут записаны в лог, а не выведены в окно сообщений?
Так и сделал. Отлично работает! )
Процедура СообщитьПользователю(СтрокаСообщения, СтатусСообщенияПользователю = Неопределено) Экспорт
Если СтатусСообщенияПользователю = Неопределено Тогда
СтатусСообщенияПользователю = СтатусСообщения.Обычное;
КонецЕсли;
Попытка
Если ПустаяСтрока(ПользователиИнформационнойБазы.ТекущийПользователь().Имя) Тогда
ЗаписатьЛогСообщенийФоновыхЗаданий(СтрокаСообщения, СтатусСообщенияПользователю);
Иначе
Сообщить(СтрокаСообщения, СтатусСообщенияПользователю);
КонецЕсли;
Исключение
ЗаписьЖурналаРегистрации(ОписаниеОшибки(), УровеньЖурналаРегистрации.Ошибка);
КонецПопытки;
КонецПроцедуры
Процедура ЗаписатьЛогСообщенийФоновыхЗаданий(СтрокаСообщения, СтатусСообщенияПользователю) Экспорт
МЗ = РегистрыСведений.ЛогСообщенийФоновыхЗаданий.СоздатьМенеджерЗаписи();
МЗ.Период = ТекущаяДата();
Если СтатусСообщенияПользователю = СтатусСообщения.Важное Тогда
МЗ.Статус = "!!";
ИначеЕсли СтатусСообщенияПользователю = СтатусСообщения.Внимание Тогда
МЗ.Статус = "!";
ИначеЕсли СтатусСообщенияПользователю = СтатусСообщения.Информация Тогда
МЗ.Статус = "i";
ИначеЕсли СтатусСообщенияПользователю = СтатусСообщения.Обычное Тогда
МЗ.Статус = ">";
ИначеЕсли СтатусСообщенияПользователю = СтатусСообщения.ОченьВажное Тогда
МЗ.Статус = "!!!";
КонецЕсли;
МЗ.Сообщение = СтрокаСообщения;
МЗ.Записать();
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот