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