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


	ПутьКПапке = "\\10.8.0.1\Sale\"; 
	
	// Проверим, существует ли папка, если нет — создадим её
	ФайлПапки = Новый Файл(ПутьКПапке);
	Если Не ФайлПапки.Существует() Тогда
		СоздатьКаталог(ПутьКПапке);
	КонецЕсли;
	
	Для Каждого СтрокаТаблицы Из СвязДок Цикл
		
		// Проверяем, отмечен ли документ галочкой "Пометка"
		Если Не СтрокаТаблицы.Пометка Тогда
			Продолжить;
		КонецЕсли;
		
		ДокСсылка = СтрокаТаблицы.Ссылка;
		ТипДока   = ТипЗнч(ДокСсылка);
		
		// Переменная, куда запишем сформированный табличный документ
		ТабДок = Неопределено;
		ИмяФайла = "";
		
		// --- 1. Формирование печатной формы для Счета на оплату ---
		Если ТипДока = Тип("ДокументСсылка.СчетНаОплату") Тогда
			
			// Вызываем типовой метод формирования печатной формы Счета
			// В разных конфигурациях вызов может немного отличаться (см. нюансы ниже)
			
			// 1. Получаем объект документа из ссылки для доступа к его модулю
			СчетОбъект = ДокСсылка.ПолучитьОбъект();
			
			// 2. Создаем новый пустой табличный документ
			ТабДок = Новый ТабличныйДокумент;
			
			Если ТабДок <> Неопределено Тогда
            // Задаем альбомную ориентацию для широкого УПД
            ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
       		КонецЕсли;
		
			СчетОбъект.ПечатьСчетНаОплату(ТабДок);
			
			// Формируем понятное имя файла
			ИмяФайла = "Счет_№_" + СокрЛП(ДокСсылка.Номер) + "_от_" + Формат(ДокСсылка.Дата, "ДФ=ггггММдд") + "_" + СтрЗаменить(Строка(ДокСсылка.Контрагент), " ", "_");;
			
			// Обязательная очистка имени файла от символов, запрещенных в Windows (", \, /, :, *, ?, <, >, |)
			ИмяФайла = СтрЗаменить(ИмяФайла, """", ""); // убираем кавычки
			ИмяФайла = СтрЗаменить(ИмяФайла, "/",  "-");
			ИмяФайла = СтрЗаменить(ИмяФайла, "\",  "-");
			ИмяФайла = СтрЗаменить(ИмяФайла, ":",  "-");
			ИмяФайла = СтрЗаменить(ИмяФайла, "*",  "");
			ИмяФайла = СтрЗаменить(ИмяФайла, "?",  "");
			ИмяФайла = СтрЗаменить(ИмяФайла, "<",  "");
			ИмяФайла = СтрЗаменить(ИмяФайла, ">",  "");
			ИмяФайла = СтрЗаменить(ИмяФайла, "|",  "");
			
			// --- 2. Формирование печатной формы для Счета-фактуры ---
		ИначеЕсли ТипДока = Тип("ДокументСсылка.СчетФактураВыданный") Тогда
			
			// 1. Получаем объект документа из ссылки для доступа к его модулю
			СФОбъект = ДокСсылка.ПолучитьОбъект();
			
			// 2. Создаем новый пустой табличный документ
			ТабДок = Новый ТабличныйДокумент;
			
			Если ТабДок <> Неопределено Тогда
            // Задаем альбомную ориентацию для широкого УПД
            ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
       		КонецЕсли;
			
			// 3. Вызываем функцию из модуля объекта (она сама заполнит ТабДок данными)
			СФОбъект.ПечатьУПД(ТабДок);
			
			// 4. Формируем имя будущего файла Excel
			ИмяФайла = "УПД_№_" + СокрЛП(ДокСсылка.Номер) + "_от_" + Формат(ДокСсылка.Дата, "ДФ=ггггММдд") + "_" + СтрЗаменить(Строка(ДокСсылка.Контрагент), " ", "_");
			
			// Обязательная очистка имени файла от символов, запрещенных в Windows (", \, /, :, *, ?, <, >, |)
			ИмяФайла = СтрЗаменить(ИмяФайла, """", ""); // убираем кавычки
			ИмяФайла = СтрЗаменить(ИмяФайла, "/",  "-");
			ИмяФайла = СтрЗаменить(ИмяФайла, "\",  "-");
			ИмяФайла = СтрЗаменить(ИмяФайла, ":",  "-");
			ИмяФайла = СтрЗаменить(ИмяФайла, "*",  "");
			ИмяФайла = СтрЗаменить(ИмяФайла, "?",  "");
			ИмяФайла = СтрЗаменить(ИмяФайла, "<",  "");
			ИмяФайла = СтрЗаменить(ИмяФайла, ">",  "");
			ИмяФайла = СтрЗаменить(ИмяФайла, "|",  "");
			
		КонецЕсли;
		
		// --- 3. Сохранение сформированного Табличного документа в Excel ---
		Если ТабДок <> Неопределено И ТипЗнч(ТабДок) = Тип("ТабличныйДокумент") Тогда
			
			// Очищаем имя файла от запрещенных символов (\, /, *, ?, :, и т.д.)
			ИмяФайла = СтрЗаменить(ИмяФайла, "/", "-");
			ИмяФайла = СтрЗаменить(ИмяФайла, "\", "-");
			
			ПолныйПутьФайла = ПутьКПапке + ИмяФайла + ".xlsx";
			
			// Метод Записать() сохраняет печатную форму на диск в формате Excel
			Попытка
				ТабДок.Записать(ПолныйПутьФайла, ТипФайлаТабличногоДокумента.XLSX);
				Сообщить("Успешно сохранен файл: " + ПолныйПутьФайла);
			Исключение
				Сообщить("Ошибка сохранения файла " + ИмяФайла + ": " + ОписаниеОшибки(), СтатусСообщения.Важное);
			КонецПопытки;
			
		КонецЕсли;
		
	КонецЦикла;