ПакетОтображаемыхДокументов.Записать

Методы · Write

Записывает пакет отображаемых документов в файл.

Синтаксис

Записать(<ИмяФайла>, <ТипФайла>)
Полное описание, параметры и ограничения

ПакетОтображаемыхДокументов.Записать (RepresentableDocumentBatch.Write)

ПакетОтображаемыхДокументов (RepresentableDocumentBatch)

Записать (Write)

Доступен, начиная с версии 8.3.12.

Синтаксис:
Записать(<ИмяФайла>, <ТипФайла>)
Параметры:

<ИмяФайла> (обязательный)
Тип: Строка.
Содержит полное имя файла, в который нужно записать пакет отображаемых документов.

<ТипФайла> (обязательный)
Тип: ТипФайлаПакетаОтображаемыхДокументов.
Содержит формат файла, в котором будет сохранен пакет отображаемых документов.
Описание:

Записывает пакет отображаемых документов в файл.

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

См. также:
ПакетОтображаемыхДокументов, метод НачатьЗапись
ПакетОтображаемыхДокументов, метод ЗаписатьФайлДляПечатиАсинх
ПакетОтображаемыхДокументов, метод ЗаписатьФайлДляПечати
ПакетОтображаемыхДокументов, метод ЗаписатьАсинх

Использование в версии:

Доступен, начиная с версии 8.3.12.

Описание изменено в версии 8.3.18.

Методическая информация

Практические примеры

Сохранить две учебные формы в один PDF

Новый пакет записывается в новый временный PDF, существующий экспорт не используется.

Где и как запускать

Полный модуль собственной управляемой формы; толстый клиент Windows. Временные документы принадлежат только этой форме.

Подготовка

  1. Собственная отдельная конфигурация УчебнаяКонфигурацияСинтаксиса, платформа 8.5.1.1343. Создайте внешнюю обработку с пустой управляемой формой, командой Выполнить и её кнопкой.

  2. Откройте обработку в толстом клиенте Windows. Вставьте полный модуль одного урока. При наличии Асинх используйте асинхронную процедуру из примера, не убирайте Ждать.

  3. Серверная функция создаёт только две собственные формы: Книга / 3 и Ручка / 1. Временное хранилище привязано к УникальныйИдентификатор этой формы, адреса сохраняются в собственном массиве.

  4. Пока выполняется запись, форму не закрывайте. После завершения очищаются только адреса, созданные этим модулем. Файл оставляется для ручной проверки и удаления пользователем.

  5. Запись выбирает новое временное имя на машине клиента. Существующий файл не перезаписывается. Для файла печати используется расширение print: это внутренний файл печати, не PDF и не текстовый отчёт.

  6. Урок печати требует строковые реквизиты УчебныйПринтер и Подтверждение. Введите точное имя собственного тестового устройства и фразу ПЕЧАТАЮ ТОЛЬКО УЧЕБНЫЕ ДАННЫЕ.

  7. При создании руководства печать, сохранение и запуск 1С не выполнялись. Для PDF вручную проверьте обе учебные формы; ненулевой размер файла сам по себе не доказывает содержимое.

Перем УчебныйПакет;
Перем УчебныеАдреса;
Перем Занято;

&НаКлиенте
Процедура Выполнить(Команда)
    Если Занято = Истина Тогда
        ВызватьИсключение "Дождитесь завершения собственной предыдущей операции";
    КонецЕсли;
    Если УчебныеАдреса <> Неопределено Тогда
        ВызватьИсключение "Предыдущие учебные данные ещё не освобождены; закройте только учебную форму и откройте заново";
    КонецЕсли;
    Созданные = СоздатьСобственныйПакет();
    УчебныйПакет = Созданные.Пакет;
    УчебныеАдреса = Созданные.Адреса;
    Попытка
        Имя = НовоеСобственноеИмя("pdf");
        Сообщить(УчебныйПакет.Состав.Количество() = 2);
        УчебныйПакет.Записать(Имя, ТипФайлаПакетаОтображаемыхДокументов.PDF);
        ПроверитьСобственныйФайл(Имя);
    Исключение
        ОшибкаОперации = ОписаниеОшибки();
        ОсвободитьСобственныйПакет();
        ВызватьИсключение ОшибкаОперации;
    КонецПопытки;
    ОсвободитьСобственныйПакет();
КонецПроцедуры

&НаСервере
Функция СоздатьСобственныйПакет()
    Адреса = Новый Массив;
    Пакет = Новый ПакетОтображаемыхДокументов;
    Пакет.Заголовок = "guide-owned: Книга и Ручка";
    Пакет.Вывод = ИспользованиеВывода.Разрешить;
    Пакет.КоличествоЭкземпляров = 1;
    Для Номер = 1 По 2 Цикл
        Документ = Новый ТабличныйДокумент;
        Если Номер = 1 Тогда
            Название = "Книга";
            Количество = "3";
        Иначе
            Название = "Ручка";
            Количество = "1";
        КонецЕсли;
        Документ.Область(1, 1).Текст = "Только собственный учебный товар";
        Документ.Область(2, 1).Текст = Название;
        Документ.Область(2, 2).Текст = Количество;
        Документ.Область(, 1, , 1).ШиринаКолонки = 30;
        Документ.КоличествоЭкземпляров = 7;
        Адрес = ПоместитьВоВременноеХранилище(Документ, ЭтаФорма.УникальныйИдентификатор);
        Адреса.Добавить(Адрес);
        Элемент = Пакет.Состав.Добавить(Адрес);
        Элемент.Наименование = Название;
    КонецЦикла;
    Возврат Новый Структура("Пакет,Адреса", Пакет, Адреса);
КонецФункции

&НаСервере
Процедура УдалитьСобственныеАдреса(Адреса)
    Для Каждого Адрес Из Адреса Цикл
        УдалитьИзВременногоХранилища(Адрес);
    КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура ОсвободитьСобственныйПакет()
    Если УчебныеАдреса <> Неопределено Тогда
        УдалитьСобственныеАдреса(УчебныеАдреса);
        УчебныеАдреса = Неопределено;
    КонецЕсли;
    УчебныйПакет = Неопределено;
КонецПроцедуры

&НаКлиенте
Функция НовоеСобственноеИмя(Расширение)
    Имя = ПолучитьИмяВременногоФайла(Расширение);
    Проверка = Новый Файл(Имя);
    Если Проверка.Существует() Тогда
        ВызватьИсключение "Новый путь уже занят; файл не перезаписываем";
    КонецЕсли;
    Возврат Имя;
КонецФункции

&НаКлиенте
Процедура ПроверитьСобственныйФайл(Имя)
    Файл = Новый Файл(Имя);
    Если Файл.Существует() Тогда
        Сообщить(Файл.Размер() > 0);
        Сообщить("Файл появился; вручную проверьте содержимое: " + Имя);
    Иначе
        Сообщить("По собственному локальному пути файла нет, успешную запись не утверждаем: " + Имя);
    КонецЕсли;
КонецПроцедуры

Разбор по шагам

  1. Получить пакет двух своих документов и проверить число элементов.

  2. Получить новое имя PDF и проверить отсутствие файла по нему.

  3. Записать с ТипФайлаПакетаОтображаемыхДокументов.PDF, не с перечислением табличного документа.

  4. Проверить появление и размер файла. После завершения удалить собственные адреса, оставляя PDF для ручного просмотра.

Как проверить результат

  1. Проверка состава даёт Истина, проверка размера — Истина при появлении файла.

  2. Вручную откройте PDF и найдите Книгу/3 и Ручку/1. Проверка размера не заменяет этот шаг.

Ожидаемый результат

Полный синхронный экспорт двух собственных печатных форм.

На что обратить внимание

  1. Сохранение не равно печати на физическом устройстве.

  2. После ошибки может остаться собственный неполный файл: он не считается готовым PDF.

  3. Этот путь клиентский; временные адреса документов созданы на сервере и привязаны к форме.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.