Загрузка данных


&НаКлиенте
Процедура ВыгрузитьВсё(Команда)
	
	Сообщить("Начинаю сбор данных... Это может занять минуту. Жди...");
	
	// Вызываем серверную процедуру для сбора полной базы
	ТекстДампа = СобратьВсюБазуНаСервере();
	
	// Сохраняем в файл. ВНИМАНИЕ: Если на сервере нет прав писать на диск C:\, 
	// измени путь на D:\ или на путь к своему рабочему столу в RDP.
	ПутьКФайлу = "C:\1C_Full_Metadata.txt"; 
	
	ТекстДок = Новый ТекстовыйДокумент;
	ТекстДок.УстановитьТекст(ТекстДампа);
	ТекстДок.Записать(ПутьКФайлу, "UTF-8");
	
	Сообщить("УСПЕХ! Полный дамп сохранен по пути: " + ПутьКФайлу);
	
КонецПроцедуры

&НаСервере
Функция СобратьВсюБазуНаСервере()
	
	Текст = "=== ПОЛНЫЙ ДАМП МЕТАДАННЫХ 1С ===" + Символы.ПС;
	
	// 1. Выгрузка ВСЕХ Справочников
	Текст = Текст + Символы.ПС + "=== СПРАВОЧНИКИ ===" + Символы.ПС;
	Для Каждого Объект Из Метаданные.Справочники Цикл
		Текст = Текст + "Справочник." + Объект.Имя + " (" + Объект.Синоним + ")" + Символы.ПС;
		Для Каждого Реквизит Из Объект.Реквизиты Цикл
			Текст = Текст + "    - " + Реквизит.Имя + " : " + Строка(Реквизит.Тип) + Символы.ПС;
		КонецЦикла;
		// Табличные части
		Для Каждого ТЧ Из Объект.ТабличныеЧасти Цикл
			Текст = Текст + "    + ТЧ: " + ТЧ.Имя + Символы.ПС;
			Для Каждого РеквТЧ Из ТЧ.Реквизиты Цикл
				Текст = Текст + "        - " + РеквТЧ.Имя + " : " + Строка(РеквТЧ.Тип) + Символы.ПС;
			КонецЦикла;
		КонецЦикла;
		Текст = Текст + Символы.ПС;
	КонецЦикла;

	// 2. Выгрузка ВСЕХ Документов
	Текст = Текст + Символы.ПС + "=== ДОКУМЕНТЫ ===" + Символы.ПС;
	Для Каждого Объект Из Метаданные.Документы Цикл
		Текст = Текст + "Документ." + Объект.Имя + " (" + Объект.Синоним + ")" + Символы.ПС;
		Для Каждого Реквизит Из Объект.Реквизиты Цикл
			Текст = Текст + "    - " + Реквизит.Имя + " : " + Строка(Реквизит.Тип) + Символы.ПС;
		КонецЦикла;
		Для Каждого ТЧ Из Объект.ТабличныеЧасти Цикл
			Текст = Текст + "    + ТЧ: " + ТЧ.Имя + Символы.ПС;
			Для Каждого РеквТЧ Из ТЧ.Реквизиты Цикл
				Текст = Текст + "        - " + РеквТЧ.Имя + " : " + Строка(РеквТЧ.Тип) + Символы.ПС;
			КонецЦикла;
		КонецЦикла;
		Текст = Текст + Символы.ПС;
	КонецЦикла;

	// 3. Выгрузка ВСЕХ Регистров сведений
	Текст = Текст + Символы.ПС + "=== РЕГИСТРЫ СВЕДЕНИЙ ===" + Символы.ПС;
	Для Каждого Объект Из Метаданные.РегистрыСведений Цикл
		Текст = Текст + "РегистрСведений." + Объект.Имя + " (" + Объект.Синоним + ")" + Символы.ПС;
		Для Каждого Измерение Из Объект.Измерения Цикл
			Текст = Текст + "    [Измерение] " + Измерение.Имя + " : " + Строка(Измерение.Тип) + Символы.ПС;
		КонецЦикла;
		Для Каждого Ресурс Из Объект.Ресурсы Цикл
			Текст = Текст + "    [Ресурс] " + Ресурс.Имя + " : " + Строка(Ресурс.Тип) + Символы.ПС;
		КонецЦикла;
		Для Каждого Реквизит Из Объект.Реквизиты Цикл
			Текст = Текст + "    [Реквизит] " + Реквизит.Имя + " : " + Строка(Реквизит.Тип) + Символы.ПС;
		КонецЦикла;
		Текст = Текст + Символы.ПС;
	КонецЦикла;

	Возврат Текст;

КонецФункции