Доработал обработку по подсчету размеров объектов
Использую обработку по подсчету размера объектов баз данных, которая использует вызов ПолучитьРазмерДанныхБазыДанных.
Я уже один раз дорабатывал эту обработку, чтобы сортировать отчет по размеру — уж очень криво и копи-пастно написана.
Но вот беда — на некоторых базах у меня эта великолепная обработка падала, из-за ошибки разделения SDBL.
В итоге, мне это надоело, я засучил рукава и переписал подсчет размера так:
Функция ПолучитьРазмерДанныхБазыДанныхБезопасно(МассивИменМетаданных) Экспорт РазмерДанных = 0; Попытка Выполнить("РазмерДанных = ПолучитьРазмерДанныхБазыДанных(Новый Массив(),МассивИменМетаданных)"); Исключение Для Каждого МД ИЗ МассивИменМетаданных Цикл ТекРазмерДанных = 0; МДМассив = Новый Массив(); МДМассив.Добавить(МД); Попытка Выполнить("ТекРазмерДанных = ПолучитьРазмерДанныхБазыДанных(Новый Массив(), МДМассив)"); Исключение Сообщить("Не удалось посчитать размер по: " + МД + " Ошибка: " + ОписаниеОшибки()); КонецПопытки; РазмерДанных = РазмерДанных + ТекРазмерДанных КонецЦикла; КонецПопытки; Возврат РазмерДанных; КонецФункции
Запускал на БП Корп 3.0.140.20.
Получил вот такие ошибки:
Не удалось посчитать размер по: Справочник.СообщениеЭДОПрисоединенныеФайлы Ошибка: {<Неизвестный модуль>(1)}: Ошибка при вызове метода контекста (ПолучитьРазмерДанныхБазыДанных): Ошибка SDBL:
Условие разделения данных по таблице RefSInf11688 ошибочно - поле разделителя отсутствует в таблице
Не удалось посчитать размер по: РегистрСведений.ЖурналУчетаСчетовФактур Ошибка: {<Неизвестный модуль>(1)}: Ошибка при вызове метода контекста (ПолучитьРазмерДанныхБазыДанных): Ошибка SDBL:
Условие разделения данных по таблице InfoRgOpt11603 ошибочно - поле разделителя отсутствует в таблице
Не удалось посчитать размер по: РегистрСведений.БТУправленческиеНаименованияСтатейЗатрат Ошибка: {<Неизвестный модуль>(1)}: Ошибка при вызове метода контекста (ПолучитьРазмерДанныхБазыДанных): Ошибка SDBL:
Условие разделения данных по таблице InfoRgOpt11493 ошибочно - поле разделителя отсутствует в таблице
Не удалось посчитать размер по: РегистрСведений.бтРегистрСведенийПоОС Ошибка: {<Неизвестный модуль>(1)}: Ошибка при вызове метода контекста (ПолучитьРазмерДанныхБазыДанных): Ошибка SDBL:
Условие разделения данных по таблице InfoRgOpt11670 ошибочно - поле разделителя отсутствует в таблице
Не удалось посчитать размер по: РегистрСведений.ПрефиксыИнформационныхБаз Ошибка: {<Неизвестный модуль>(1)}: Ошибка при вызове метода контекста (ПолучитьРазмерДанныхБазыДанных): Ошибка SDBL:
Условие разделения данных по таблице InfoRgOpt11683 ошибочно - поле разделителя отсутствует в таблице
Не удалось посчитать размер по: РегистрСведений.СтавкиНалогаНаИмуществоПоОтдельнымОсновнымСредствам Ошибка: {<Неизвестный модуль>(1)}: Ошибка при вызове метода контекста (ПолучитьРазмерДанныхБазыДанных): Ошибка SDBL:
Условие разделения данных по таблице InfoRgOpt11677 ошибочно - поле разделителя отсутствует в таблице
Не удалось посчитать размер по: РегистрСведений.УдалитьУчетнаяПолитикаОрганизаций Ошибка: {<Неизвестный модуль>(1)}: Ошибка при вызове метода контекста (ПолучитьРазмерДанныхБазыДанных): Ошибка SDBL:
Условие разделения данных по таблице InfoRgOpt11623 ошибочно - поле разделителя отсутствует в таблице
Как с этим бороться, не знаю, но обычно такие ошибки несущественны. По ним можно почитать тут.
Свежие комментарии