База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как сохранить печатную форму в 1С:УНФ 3.0.12.226? › Ответ в теме: Как сохранить печатную форму в 1С:УНФ 3.0.12.226?
В 1С:УНФ 3.0.12.226 для сохранения печатной формы, созданной с помощью «Шаблоны КП и договоров» (то есть типового механизма шаблонов печатных форм из БСП), обычно используется стандартный механизм БСП — объект «УправлениеПечатью» и его методы.
Пример кода, который формирует печатную форму по шаблону и сохраняет ее в файл (например, в формате PDF или DOCX) на диск, выглядит так:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
// Объект документа, для которого формируем печатную форму Документ = ...; // ссылка на документ (например, ЗаказПокупателя) // Имя шаблона печатной формы, как он зарегистрирован в системе ИмяШаблона = "КП"; // или "Договор" - в зависимости от нужного шаблона // Получаем коллекцию команд печати для документа КоллекцияКоманд = УправлениеПечатью.СоздатьКоллекциюКомандПечати(Документ); // Находим нужную команду печати по идентификатору (например, "КП" или "Договор") КомандаПечати = Неопределено; Для Каждого Команда Из КоллекцияКоманд Цикл Если Команда.Идентификатор = ИмяШаблона Тогда КомандаПечати = Команда; Прервать; КонецЕсли; КонецЦикла; Если КомандаПечати = Неопределено Тогда ВызватьИсключение("Команда печати '" + ИмяШаблона + "' не найдена для данного документа."); КонецЕсли; // Формируем печатную форму (табличный документ) ТабличныйДокумент = УправлениеПечатью.СформироватьПечатнуюФорму(Документ, КомандаПечати); // Сохраняем табличный документ в файл ПутьКФайлу = "C:TempПечатнаяФорма_" + Формат(ТекущаяДата(), "ДФ='yyyyMMdd'") + ".pdf"; // Сохраняем в PDF (можно и в DOCX, если поддерживается) ТабличныйДокумент.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.PDF); // Сообщаем пользователю Сообщить("Печатная форма сохранена в файл: " + ПутьКФайлу); |
Объяснения:
— УправлениеПечатью.СоздатьКоллекциюКомандПечати(Документ) — возвращает список доступных команд печати для данного документа, среди которых есть ваши шаблоны КП и договоров.
— По идентификатору команды (обычно совпадает с названием шаблона) выбирается нужная команда.
— УправлениеПечатью.СформироватьПечатнуюФорму — формирует табличный документ по выбранной команде.
— Метод Записать табличного документа сохраняет его в файл на диск.
Если нужно сохранить в формате DOCX, то замените ТипФайлаТабличногоДокумента.PDF на ТипФайлаТабличногоДокумента.DOCX, если платформа и конфигурация это поддерживают.
Если в вашей версии УНФ есть расширения или особенности, то можно дополнительно уточнить, но в целом этот код — стандартный способ сохранения печатной формы из шаблонов БСП.
—
Если хотите, чтобы после сохранения сразу открывалось окно выбора файла для сохранения, то можно использовать диалог выбора файла:
|
1 2 3 4 5 6 7 8 9 10 |
ДиалогСохранения = Новый ДиалогВыбораФайла; ДиалогСохранения.Заголовок = "Сохранить печатную форму"; ДиалогСохранения.ИмяФайла = "ПечатнаяФорма_" + Формат(ТекущаяДатаСеанса(), "ДФ=yyyyMMdd") + ".pdf"; ДиалогСохранения.Фильтр = "PDF файлы (*.pdf)|*.pdf|Все файлы (*.*)|*.*"; Если ДиалогСохранения.Выбрать() Тогда ПутьКФайлу = ДиалогСохранения.ПолноеИмяФайла; ТабличныйДокумент.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.PDF); Сообщить("Печатная форма сохранена в файл: " + ПутьКФайлу); КонецЕсли; |
—
https://infostart.ru/public/1382297/ — базовое понимание внедрения механизма печати в документах на БСП
https://infostart.ru/public/1856710/ — пример использования команд печати с параметрами
https://infostart.ru/public/633085/ — пример внешних печатных форм с настройками
—
Если нужна помощь с конкретным шаблоном или особенностями УНФ 3.0.12.226 — уточните, могу помочь с адаптацией.