Элемент Печать pdf

Serhii Kistanov
8 Jun 202413:44

Summary

TLDRВ видео скрипте рассматривается реализация функционала печати и сохранения документов в 1С:Предприятие 8.3. Показан процесс создания пакета 'Печать' и 'Макеты' для организации печатных форм. Обсуждается создание пакета 'Контракты' и 'Реализация товаров' для демонстрации работы с документами и контрактами. Рассматриваются методы реализации печати, использование общего модуля для повторного использования кода и примеры конфигурации макетов для печатных форм. Представлены шаги по созданию формы представления печатной информации и интеграции с клиентским и серверным кодом для генерации и управления двоичными данными PDF.

Takeaways

  • 📝 Скрипт описывает процесс реализации функционала печати и сохранения данных в 1С.
  • 🖨️ Создание отдельного пакета 'Печать' для организации и структурирования кода.
  • 📑 Использование макетов печати для демонстрации работы с контрактами и документами.
  • 🔄 Реализация возможности печати накладной и контракта для избежания дублирования кода.
  • 📑 Создание пакета 'Товары и Услуги' для демонстрации работы с документами.
  • 🔗 Указание типа документа 'Контракт' в настройках печати для обеспечения корректной работы.
  • 🛠️ Добавление метода печати 'Накладная' в общий модуль для клиент-серверного взаимодействия.
  • 📁 Использование конструктора 'ДвоичныеДанные' для сохранения табличного документа в файл.
  • 🖥️ Создание формы представления печати с возможностью просмотра PDF-файлов.
  • 🔄 Реализация метода 'Накладная' для сервера, который возвращает двоичный объект ссылка.
  • 📁 Добавление команды 'Печать' и 'Сохранить' для объектов, реализующих контракт 'Источник печати'.

Q & A

  • Что означает термин 'реализация товаров' в контексте скрипта?

    -Термин 'реализация товаров' относится к процессу продажи товаров, включая их перемещение и документирование в учетной системе.

  • Какие основные задачи выполняет функционал печати в системе?

    -Функционал печати отвечает за сохранение данных документов, генерацию команд для печати информации текущего документа на принтере и предоставление макетов печати.

  • Что такое 'макет печати' и как он используется в системе?

    -Макет печати - это шаблон, определяющий, как будет выглядеть печатный документ. Он используется для форматирования и заполнения документа информацией перед печатью.

  • Какие типы документов реализуются в системе, как указано в скрипте?

    -В системе реализуются типы документов, такие как 'перемещение товаров' и 'реализация товаров', а также 'накладная' и 'контракт'.

  • Какие шаги предпринимаются для создания пакета 'печать' в системе?

    -Для создания пакета 'печать', сначала создается пакет, затем создаются макеты печати, после чего реализуются товары и услуги для демонстрации работы контрактов.

  • Какой метод используется для вызова функции печати в документах?

    -Для вызова функции печати используется метод, реализуемый в объекте, который реализует контракт, и этот метод называется 'печать накладная'.

  • Чем отличается реализация метода печати в контексте 'накладная документ объект'?

    -Реализация метода печати в контексте 'накладная документ объект' включает в себя заполнение табличного документа данными передаваемого объекта и передачу этого документа общему модулю для вывода или сохранения.

  • Какие настройки необходимы для сохранения двоичных данных в файл?

    -Для сохранения двоичных данных в файл необходимы настройки, такие как формат файла (например, PDF), имя файла и конфигурация для сохранения временного файла.

  • Какие действия предпринимаются для создания формы представления печати?

    -Для создания формы представления печати добавляется реквизит 'двоичная ссылка', выбирается шаблон автоматической группы, добавляется просмотр PDF и указывается свойство 'данные' для реквизита.

  • Как реализуется функционал сохранения или печати заполненного табличного документа?

    -Функционал сохранения или печати реализуется через вызов метода 'выгрузка файлов' с двоичными данными и передачей имени файла для сохранения или вывода на печать.

  • Какие действия предпринимаются для заполнения макета данными документа?

    -Для заполнения макета данными документа создается соответствие между ключами макета и данными документа, затем используется метод 'заполнить параметры' для вывода информации в макете.

Outlines

00:00

😀 Реализация функционала печати и сохранения документов

В первом параграфе описывается процесс реализации функционала печати и сохранения данных в документах. Создается отдельный пакет для печати, используя макеты печати. Также создается пакет 'Контракты' для демонстрации работы с контрактами и накладными. Обсуждается создание общего модуля для вызова метода печати, который будет реализован в документах, чтобы избежать дублирования кода. Рассматривается использование ресурсов для хранения табличного документа и создание макетов печати на платформе 1С.

05:01

📄 Разработка макета печати и реализация методов для контрактов

Второй параграф посвящён разработке макета печати и реализации методов для контрактов. Описывается процесс создания макета печати, включая выбор типа документа, заполнение шапки и таблицы, а также подвал. Также обсуждается создание общего модуля на клиенте и сервере для реализации метода печати 'Накладная', который будет вызываться для объектов, реализующих контракт 'Источник печати'. Здесь также рассматривается использование двоичных данных для представления PDF-файлов и сохранения их в объектное хранилище.

10:05

🔄 Автоматизация процесса заполнения макета и реализация сохранения

Третий параграф фокусируется на автоматизации заполнения макета печати и реализации сохранения. Здесь описывается, как заполнить макет данными из запросов, используя соответствие ключей параметров макета и значений данных. Рассматривается создание итерируемых документов и вызов метода 'Записать' для вывода заполненных данных. Также обсуждается реализация метода 'Сохранить' для выгрузки файлов и добавление команды 'Сохранить накладную' для сохранения данных в файл.

Mindmap

Keywords

💡Сохранение данных

Сохранение данных в контексте видео относится к процессу сохранения информации, связанной с документами и файлами, в системе. Это важно для обеспечения безопасности и целостности информации. В видео упоминается создание пакета для сохранения печатных макетов, что демонстрирует важность сохранения данных для последующего использования.

💡Печать

Печать в видео связана с функциональностью печати документов в системе. Это включает в себя создание макетов печати и использование команды печати для вывода информации на принтер. Важность этой функции подчеркивается примером реализации печати накладной, что является ключевым элементом в автоматизации бизнес-процессов.

💡Пакет

Пакет в видео описывает логическую группировку функциональных возможностей в программном обеспечении. Создание пакета 'печать' и 'макеты' для организации и структурирования кода и функций, что важно для обеспечения ясности и повторного использования кода.

💡Макет печати

Макет печати - это предопределенная или пользовательская структура, определяющая, как будет выглядеть печатный документ. В видео упоминается создание и использование макетов печати для накладных и контрактов, что показывает их значимость в формировании документации.

💡Контракты

Контракты в видео представляют собой тип документа, который требует реализации определенных методов, таких как 'печать накладной'. Они являются примером объектов, для которых необходимо определить и реализовать методы печати, что важно для автоматизации процесса работы с договорами.

💡Табличный документ

Табличный документ в видео используется для хранения и организации данных в табличной форме. Он связан с процессом заполнения макетов печати данными, что является основой для создания печатных документов, таких как накладные.

💡Общий модуль

Общий модуль в контексте видео представляет собой часть программной системы, которая может быть использована для обработки и реализации функций, связанных с печатью. В видео упоминается создание модуля 'печать клиент-сервер', который демонстрирует концепцию повторного использования кода и функций.

💡Двоичные данные

Двоичные данные в видео относятся к форматированным данным, которые могут быть сохранены или переданы для дальнейшего использования, например, в формате PDF. Они являются результатом работы с табличными документами и их конвертации для печати или сохранения.

💡Форма представления печати

Форма представления печати - это пользовательский интерфейс, используемый для просмотра и управления печатными документами. В видео она используется для отображения PDF-документа, что важно для визуализации и проверки готовой печатной продукции.

💡Реализация товаров

Реализация товаров в видео связана с процессом заполнения макета документа данными о товарных операциях. Это ключевой аспект автоматизации управления товарным движением и демонстрирует, как данные о товарах взаимодействуют с системой документооборота.

💡Выгрузка файлов

Выгрузка файлов в видео описывает процесс сохранения или экспорта данных в файловом формате. Это включает в себя сохранение двоичных данных в виде PDF и предоставление пользователю возможности сохранить или распечатать документ, что важно для завершения процесса печати.

Highlights

Реализация функционала печати в отдельном пакете для организации структуры и логики печатных документов.

Использование макетов печати для оптимизации и повторного использования кода в различных документах.

Создание пакета 'печать' и 'макеты' для унификации процесса печати и избежания дублирования кода.

Демонстрация работы с контрактами и накладными документами для реализации товаров и услуг.

Выбор типа документа 'накладная' для определения источника печати и структуры данных.

Реализация метода печати для контрактов, обеспечивая единый подход к печати различных документов.

Настройка типов документов и объектов для определения их роли в процессе печати.

Использование платформы 1С для быстрого создания и настройки макетов печатных документов.

Добавление компонентов ресурсов для хранения и загрузки макетов в системе.

Создание общего модуля клиент-сервер для централизованного управления методами печати.

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

Преобразование табличного документа в двоичные данные для сохранения или печати в формате PDF.

Использование объектного хранилища для сохранения двоичных данных документов.

Создание формы представления печати для отображения PDF-документов и их интерактивного просмотра.

Добавление команды печати 'накладная' в пользовательский интерфейс для доступа к функционалу печати.

Реализация метода сохранения для экспорта и сохранения заполненного табличного документа.

Использование запросов и соответствия для заполнения данных в макете печатного документа.

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

Интеграция функционала печати с документами реализующими контракт для автоматической генерации накладных.

Внедрение команды 'сохранить' для возможности сохранять накладные в виде файлов.

Расширение функционала документов для реализации методов заполнения и сохранения данных.

Transcripts

play00:00

реализуем Сохранение данных документов

play00:03

файл а также команду печать чтобы

play00:06

напечатать на принтере информацию

play00:08

текущего документа приступим к

play00:10

выполнению поставленной задачи реализуем

play00:12

функционал печати в отдельном пакете

play00:15

создаём пакет печать будем использовать

play00:18

макеты печати поэтому создадим

play00:21

пакет

play00:23

макеты Давайте создадим ещё один

play00:25

документ реализация товаров услуг чтобы

play00:29

продемонстрировать работу

play00:31

контрактов создадим пакет

play00:38

контракты выбираем контракты типа

play00:42

назовём источник печати

play00:45

накладная контракт позволит избежать

play00:47

дублирования кода у нас будет общий

play00:50

модуль в которым мы будем

play00:53

использовать документы реализующие наш

play00:56

контракт чтобы вызвать метод печати

play01:00

соответственно те документы которые

play01:02

будут реализовывать метод печать

play01:05

накладная это перемещение и реализация

play01:07

будут мы будем уверены что в них есть

play01:09

этот метод и мы сможем его вызвать

play01:11

Давайте настроим их типы укажем

play01:14

перемещению товаров и реализации товаров

play01:17

Давайте зададим настройку типов документ

play01:20

объект у нас будет реализовывать

play01:23

контракт источник печати накладная

play01:30

теперь среда разработки указывает на то

play01:33

что Мы обязаны реализовать метод печать

play01:37

накладная документ объект будет

play01:39

реализовывать контракт Поэтому в модуль

play01:41

объекта добавляем реализацию данного

play01:48

метода ответственность документа будет

play01:52

заполнить табличный документ передать

play01:55

его общему модулю который будет в ответе

play01:58

за вывод табличного документа на экран

play02:00

или сохранение табличного документа это

play02:03

уже будет ответственность общего модуля

play02:05

ответственность документов - это

play02:07

заполнить табличный документ табличный

play02:09

документ будет храниться в

play02:12

ресурсах Давайте добавим в макеты

play02:15

компонент ресурсы который мы загрузим

play02:18

файл макета я буду использовать

play02:21

платформу 83 чтобы создать макет просто

play02:23

создаю такую же структуру документа

play02:26

перемещения товаров типы мне не важны

play02:28

просто оставляю строка потому что это

play02:31

просто для быстрого формирования макета

play02:33

создаю ту же структуру организация

play02:36

табличная часть

play02:38

товары реквизиты номенклатура

play02:45

количество после этого вызываю

play02:47

конструктор печати и добавляю нужные мне

play02:50

поля в шапку нужные реквизиты в таблицу

play02:54

Ну в подвале ничего не буду добавлять

play02:56

нажимаем Окей и мы получаем таким

play02:58

образом быстро макет

play03:01

Давайте в заголовке сделаем тоже

play03:03

параметр а не текст название параметра

play03:06

будет текст заголовка всё это у нас

play03:08

параметр Ну и остальные оставляем по

play03:10

умолчанию выбираем макет нажимаем

play03:13

сохранить как задаём имя Пусть это будет

play03:16

накладная и возвращаемся к элементу

play03:21

нажимаем на ресурс загрузить из файла и

play03:24

выбираем сохранённый платформой

play03:27

макет соответственно мы получаем в 1S

play03:30

элементе макет сформированный платформой

play03:33

83 в модуле документа мы Обращаемся к

play03:35

этому макету всё читаем макет закрываем

play03:38

поток после этого ну и возвращаем

play03:40

табличный

play03:42

документ Теперь давайте создадим общий

play03:47

модуль окружение клиент и сервер потому

play03:50

что мы из формы то есть с клиента будем

play03:54

вызывать этот общий модуль и после чего

play03:56

будем вызывать серверный метод поэтому

play03:58

клиент и

play04:00

добавим метод накладная То есть у нас

play04:03

общий модуль называется печать клиент

play04:06

сервер соответственно метод назовём

play04:08

накладная в параметрах данного метода Мы

play04:12

принимаем объект реализующий

play04:16

контракт контракт источник печати

play04:19

накладная те объекты которые реализуют

play04:23

этот контракт обязаны реализовать

play04:27

метод печать накладная

play04:30

Это позволяет нам избавиться от

play04:32

дублирования кода мы будем в этом общем

play04:37

модули вызывать у передаваемого объекта

play04:41

метод печать накладная и пара И вторым

play04:44

параметром мы будем принимать ссылку на

play04:47

уже конкретный документ метод накладная

play04:50

будет в контексте на

play04:54

клиенте Теперь давайте добавим метод

play04:56

накладная на

play04:58

сервере вызывать этот

play05:01

метод уже в текущем модуле который

play05:05

вернёт нам двоичный объект

play05:08

ссылка а контракт типа позволяет нам

play05:13

переиспользовать данный модуль то есть

play05:15

мы в данном модуле не знаем Какой

play05:18

документ нам передали нам не важно нам

play05:21

важно только одно что этот документ

play05:23

реализует контракт соответственно мы

play05:26

уверены что объект реализующий контракт

play05:29

содержит метод печать накладная поэтому

play05:32

мы уверенно вызываем у источника печати

play05:36

метод печать накладная знаем точно что

play05:39

он возвращает табличный документ

play05:41

обязанность данного модуля просто Этот

play05:43

табличный документ сохранить файл или

play05:46

вывести на печать ответственность

play05:48

документов заполнить ответственность

play05:51

модуля показать Ну или сохранить Итак

play05:54

наш табличный документ необходимо

play05:56

перевести в двоичные данные здесь Я

play05:59

указываю

play06:00

PDF но вы можете параметрам как-то

play06:02

передавать Это для простоты Я указываю

play06:05

жёстко здесь PDF формат дальше нам

play06:07

необходимо чтобы эти двоичные данные

play06:10

сохранить Нам необходимо будет передать

play06:13

настройки с которыми надо сохранять эти

play06:15

двоичные данные для этого существует

play06:17

конструктор пишем двоичные данные Точка

play06:20

свойства То есть как раз вот эти

play06:22

свойства как бы настройки как будет

play06:24

сохраняться файл передаём наименование

play06:27

опять же здесь я для простоты указываю

play06:29

прямо литералов файла То есть я буду

play06:32

сохранять файл как временный то есть вот

play06:35

такой конфиг я себе сразу же

play06:36

конструктором

play06:39

получая наше свойство - это настройка

play06:42

для сохранения временного файла И теперь

play06:46

мы используем этот конструктор мы

play06:48

сохраняем в объектное хранилище наши

play06:50

байты файл будет сохранён в объектное

play06:53

хранилище и нам вернётся двоичный объект

play06:57

Мы возвращаем из метода двоичный объект

play06:59

с именно такой тип данных Нам нужен

play07:01

Чтобы отобразить в просмотре PDF а также

play07:05

он подойдёт нам для сохранения Давайте

play07:07

создадим форму представления

play07:12

печати добавим реквизит двоичная

play07:18

ссылка зададим тип двоичный объект

play07:21

ссылка и не

play07:27

определено Давайте теперь доба на форму

play07:30

произвольный шаблон автоматическая

play07:33

группа и просмотр PDF в просмотр PDF

play07:37

свойство данные указываем реквизит

play07:39

двоичная ссылка Теперь давайте вернёмся

play07:42

в общий модуль вызываем наш метод

play07:44

накладная на сервере который возвращает

play07:46

двоичный объект ссылка Теперь давайте

play07:49

откроем форму модально представление

play07:52

печати и параметрам передадим двоичный

play07:56

объект ссылка Чтобы заполнить реквизит

play07:58

двоичная ссылка

play08:01

значит документ реализующий контракт Он

play08:03

нам вернёт табличный документ Вот мы

play08:06

здесь значит реализуем этот метод и этот

play08:11

заполненный табличный документ мы

play08:13

сохраним а затем покажем в форме

play08:16

представления

play08:17

печати Давайте теперь создадим форму

play08:20

документу перемещения товаров

play08:23

перемещение товара в форма

play08:26

объекта добавим здесь команду чать для

play08:30

этого перейдём дополнительные команды

play08:33

фрагмент командного интерфейса и в

play08:36

элементы добавим группу командного

play08:39

интерфейса

play08:47

[музыка]

play08:51

переместимся печать и изображение печать

play08:55

вернёмся к обычной команде назовём

play08:58

накладная получится группа называется

play09:01

печать и команда накладная добавим

play09:04

обработчик печать накладная при нажатии

play09:07

и здесь вызываем наш общий модуль печать

play09:10

клиент-сервер и метод накладная передаём

play09:14

источник данных текущий

play09:17

объект и объект печати ссылка на текущие

play09:21

данные соответственно в общем модуле

play09:23

будет вызван данный метод и у объекта мы

play09:27

вызовем реализацию чать накладная

play09:31

получим заполненный табличный документ

play09:33

который сохран в двоичные данные ссылка

play09:35

И откроем форму представление печати

play09:38

передав двоичную ссылку Чтобы отобразить

play09:42

в просмотре ПДФ Давайте вернёмся в

play09:45

реализацию контракта нашими

play09:48

документами печать

play09:50

накладная здесь Нам необходимо

play09:53

реализовать самостоятельно получение

play09:55

данных Чтобы заполнить макет допустим

play09:59

источника

play10:00

шапка для реализации товаров выбираем

play10:04

запросом данные шапки создаём

play10:08

соответствие где ключом являются имена

play10:11

параметров в макете а значениями будут

play10:14

те данные которыми надо заполнить

play10:16

параметры макета соответственно для

play10:19

табличной части делаем тоже запрос

play10:22

выбирая все элементы табличной части

play10:24

создаём соответствие И начнём заполнение

play10:27

Ну сначала мы табличному документу

play10:30

установим ориентацию затем вызываем у

play10:33

табличного документа метод записать и

play10:35

писатель нам позволит выводить

play10:37

заполненную информацию Хорошо Значит нам

play10:40

необходимо передать ссылку в запрос

play10:43

поэтому вызовем конструктор новый

play10:46

реализация товаров точка ссылка и

play10:48

передадим туда объекты печати ID Таким

play10:51

образом мы получим ссылку теперь вызовем

play10:54

метод данные источника шапка чтобы

play10:57

получить данные шапки

play11:02

соответственно в нашем макете есть

play11:05

область

play11:06

заголовок с параметрами текст заголовка

play11:10

мы устанавливаем параметр области

play11:14

заголовка после чего вызываем у писателя

play11:17

вывести Итак заполняем все области так

play11:20

как ключи соответствие имеют те же имена

play11:23

что и параметры в макете мы можем

play11:26

использовать метод заполнить параметры

play11:29

вызываем заполнить параметры выводим

play11:31

шапку и выводим данную область затем

play11:35

выводим шапка Так переименую у нас

play11:38

область называется товары шапка значит

play11:42

получили область сразу вывели там нет

play11:44

никаких параметров и нам остаётся

play11:47

получить данные таблицы

play11:51

итерируемый

play11:55

документ это как раз ответственность

play11:57

наших документов которые реализует

play12:00

контракт вернуть заполненный табличный

play12:02

документ В текущей реализации достаточно

play12:05

заменить открытие формы представления

play12:08

печати на выгрузка файлов начать

play12:12

выгрузку и передать двоичная ссылка и

play12:15

имя файла который мы будем сохранять или

play12:19

можно добавить команду добавляем обычную

play12:22

команду назовём сохранить обработчик

play12:26

сохранить накладная и

play12:29

[музыка]

play12:31

метод сохранить Давайте добавим этот

play12:32

метод

play12:37

сохранить удаляю просто строчку открытия

play12:39

метода А здесь возвращаю на открытие

play12:42

формы соответственно у нас есть метод

play12:44

сохранить где мы вызываем выгрузка

play12:46

файлов и метод печати У нас есть теперь

play12:51

две команды теперь любому объекту

play12:54

который реализует контракт источник

play12:57

печати накладная

play12:59

можно добавить команду

play13:01

сохранить вызвать этот метод и всё

play13:05

ничего не меняя мы

play13:10

переиспользование файла с данными

play13:13

источника который вызвал метод сохранить

play13:16

мы добавляем ему команду добавляем ему

play13:19

контракт и реализуем контракт именно

play13:22

заполнения как документ должен заполнить

play13:24

табличный документ всё больше мы ничего

play13:26

не трогаем общий модуль используется и

play13:30

он на себя берёт вывести на экран он на

play13:33

себя берёт сохранение А уже документы

play13:36

они отвечают за то как будет заполнен

play13:39

табличный документ Спасибо за просмотр

play13:42

Надеюсь это видео было полезным пока

Rate This

5.0 / 5 (0 votes)

Related Tags
ПечатьДокументыМакетКонтрактыТоварыРеализацияОбработкаПлатформаТабличный документРесурсы
Do you need a summary in English?