Доработал обработку по подсчету размеров объектов

Использую обработку по подсчету размера объектов баз данных, которая использует вызов ПолучитьРазмерДанныхБазыДанных.

Я уже один раз дорабатывал эту обработку, чтобы сортировать отчет по размеру — уж очень криво и копи-пастно написана.

Но вот беда — на некоторых базах у меня эта великолепная обработка падала, из-за ошибки разделения 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 ошибочно - поле разделителя отсутствует в таблице

Как с этим бороться, не знаю, но обычно такие ошибки несущественны. По ним можно почитать тут.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *