|
68 | 68 | НастройкаСпособаВывода = НоваяНастройкаСпособаВывода(НовыйУровень, ЗаданЯвно); |
69 | 69 | мУровниАппендеров[СпособВывода] = НастройкаСпособаВывода; |
70 | 70 |
|
| 71 | + ПроверитьПоддержкуAPIВывести(СпособВывода, НастройкаСпособаВывода); |
| 72 | + |
| 73 | +КонецПроцедуры |
| 74 | + |
| 75 | +Процедура ПроверитьПоддержкуAPIВывести(СпособВывода, НастройкаСпособаВывода) |
| 76 | + Рефлектор = Новый Рефлектор; |
| 77 | + Методы = Рефлектор.ПолучитьТаблицуМетодов(СпособВывода); |
| 78 | + МетодВывести = Методы.Найти("Вывести"); |
| 79 | + Если МетодВывести <> Неопределено Тогда |
| 80 | + Если МетодВывести.КоличествоПараметров = 2 Тогда |
| 81 | + НастройкаСпособаВывода.ВерсияAPI = 2; |
| 82 | + Иначе |
| 83 | + Сообщить("Число параметров:" + МетодВывести.КоличествоПараметров); |
| 84 | + СпособВывода.Вывести("Метод Вывести должен иметь 2 параметра. |
| 85 | + |В будущих версиях logos данный способ вывода перестанет работать."); |
| 86 | + КонецЕсли; |
| 87 | + КонецЕсли; |
71 | 88 | КонецПроцедуры |
72 | 89 |
|
73 | 90 | Процедура УдалитьСпособВывода(Знач СпособВывода) Экспорт |
74 | 91 |
|
75 | 92 | Для Сч = 0 По мСпособыВывода.Количество()-1 Цикл |
76 | 93 | Если мСпособыВывода[Сч] = СпособВывода Тогда |
| 94 | + мУровниАппендеров.Удалить(СпособВывода); |
77 | 95 | СпособВывода.Закрыть(); |
78 | 96 | мСпособыВывода.Удалить(Сч); |
79 | 97 | Прервать; |
|
155 | 173 | Если УровеньСообщения >= Уровень() Тогда |
156 | 174 | ВыводимоеСообщение = мРаскладкаСообщения.Форматировать(УровеньСообщения, Сообщение); |
157 | 175 | Для Каждого СпособВывода Из мСпособыВывода Цикл |
158 | | - УровеньСпособаВывода = мУровниАппендеров[СпособВывода].Уровень; |
| 176 | + НастройкаАппендера = мУровниАппендеров[СпособВывода]; |
| 177 | + УровеньСпособаВывода = НастройкаАппендера.Уровень; |
159 | 178 | Если УровеньСпособаВывода = Неопределено Или УровеньСообщения >= УровеньСпособаВывода Тогда |
160 | | - СпособВывода.Вывести(ВыводимоеСообщение); |
| 179 | + Если НастройкаАппендера.ВерсияAPI = 2 Тогда |
| 180 | + СпособВывода.Вывести(ВыводимоеСообщение, УровеньСообщения); |
| 181 | + Иначе |
| 182 | + СпособВывода.Вывести(ВыводимоеСообщение); |
| 183 | + КонецЕсли; |
161 | 184 | КонецЕсли; |
162 | 185 | КонецЦикла; |
163 | 186 | КонецЕсли; |
|
210 | 233 |
|
211 | 234 | ВыводПоУмолчанию = Новый ВыводЛогаВКонсоль(); |
212 | 235 | мСпособыВывода.Добавить(ВыводПоУмолчанию); |
213 | | - мУровниАппендеров[ВыводПоУмолчанию] = НоваяНастройкаСпособаВывода(Уровень(), Ложь); |
214 | | - |
| 236 | + НастройкаСпособаВывода = НоваяНастройкаСпособаВывода(Уровень(), Ложь); |
| 237 | + мУровниАппендеров[ВыводПоУмолчанию] = НастройкаСпособаВывода; |
| 238 | + |
215 | 239 | КонецПроцедуры |
216 | 240 |
|
217 | 241 | Функция НоваяНастройкаСпособаВывода(Знач НовыйУровень, Знач ЗаданЯвно) |
218 | 242 |
|
219 | | - НастройкаСпособаВывода = Новый Структура("Уровень, ЗаданЯвно", НовыйУровень, ЗаданЯвно); |
| 243 | + НастройкаСпособаВывода = Новый Структура("Уровень, ЗаданЯвно, ВерсияAPI", НовыйУровень, ЗаданЯвно, Неопределено); |
220 | 244 | Возврат НастройкаСпособаВывода; |
221 | 245 |
|
222 | 246 | КонецФункции |
|
0 commit comments