Внешние обработки, печатные формы, обработки по заполнению табличных частей

Общее описание

Механизм предназначен для подключения (без изменения конфигурации):

  • Внешняя обработка для произвольного исполнения
  • Внешняя обработка в виде дополнительных печатных форм объектов (справочников и документов)
  • Обработка заполнения табличных разделов объектов

Внешние печатные формы и обработка создаются разработчиком при определенных условиях. Условия требуются на этапе создания внешней обработки для ее правильного функционирования в качестве подключаемого модуля к конфигурации.
Для реализации механизма VPFO используется справочник «Внешняя обработка».

В справочнике приведены специализированные сведения*:

  • «Тип обработки» — описывает, какой тип этого ВПФО
    1. Произвольная обработка
    2. Обработка заполнения табличных разделов объектов
    3. Внешняя печатная форма
  • «Архив внешней обработки»: хранит двоичные данные подключаемой внешней обработки. При использовании двоичные данные сохраняются на диск во временном файле, а доступ к файлу осуществляется программно как внешняя обработка.

ПРИМЕЧАНИЕ
Полный перечень деталей будет описан ниже, в разделе Техническая реализация механизма «Внешняя обработка, распечатка форм, обработка для заполнения табличных разделов»

Для удобства модули списков VPFO вызываются отдельно, с предустановленным выбором из переменной «Тип обработки» в подменю «Сервис».
Пользователь, имеющий право администрировать дополнительные модули и процедуры, может добавлять и изменять VPFO в базе данных. Это отдельная роль в конфигурации.
Для остальных пользователей права чтения (использования) и записи (изменения) назначаются для каждого элемента в каталоге VPFO.
Преимущества использования механизма ВПФО перед платформенным механизмом открытия внешней обработки:

  • Возможность использования механизма пользователями, НЕ имеющими права интерактивно открывать внешнюю обработку
  • Ограничение доступа к использованию и модификации обработки на уровне записи (RLS), например, для каждого задания отдельно
  • Целостность базы данных и неизменность функциональности в зависимости от внешних факторов (перенос базы данных, работа пользователя в сети, создание архивных копий базы данных и т.д.)

Описание видов справочника ВПФО и требования к подключаемым внешним обработкам

Рассмотрим каждый тип ВПФО отдельно.

Произвольная обработка

Чтобы включить произвольную обработку в базу данных, просто укажите внешнюю обработку на диске.
Открытие произвольной обработки в виде списка осуществляется при выборе элемента ВПФО с видом «Свободная обработка». В этом случае двоичные данные переменной «Внешняя память обработки» сохраняются на диске во временном файле. Далее открывается основная форма сохраненной внешней обработки.
В обязательном порядке должна быть определена основная форма для произвольной обработки.

Обработка для заполнения ТЧ объектов

Для обработки заполнения PM, внешней обработки (файл на диске, .epf) должен быть указан список объектов и их PM, для которых будет использоваться эта обработка.
В типичных конфигурациях объекты, использующие этот механизм, — это все документы, содержащие хотя бы один табличный раздел.
Перед открытием формы объекта в панелях управления полями таблицы (источником данных которых является табличная часть объекта), которые соответствуют определенным строкам в ссылке VPFO, записи программно добавляются в подменю «Заполнить» (если Подменю «Заливка» на панели управления отсутствует, оно создается).
При нажатии на созданную перед открытием кнопку подменю «Заполнить» соответствующая обработка сохраняется на диск во временном файле, вызывается процедура внешней сохраненной обработки:

Скопировать в буфер обмена

Инициализировать (Object, TabularSectionName, TabularObjectField)

Где это находится:

  • Объект — DocumentObject, DirectoryObject. Откуда поступает вызов на процедуру наружного лечебного наполнения;
  • TabularSectionName имеет значение String. Имя табличной части, для которой была вызвана обработка;
  • TabularObjectField — Элемент формы: TabularField. Поле таблицы формы, для которого вызывается обработка.

Процедура экспорта «Initialize ()» требуется в модуле объекта обработки с представлением «Заполнение табличных разделов». Тело этой процедуры должно содержать программный код, заполняющий табличную часть в соответствии с целью обработки.
Обработка также может включать в себя макет «Параметры автоматической регистрации», который используется для автоматического заполнения формы для печати в каталоге «Внешняя обработка». Макет должен состоять из 2-х столбцов: «полное название объекта» и «название табличного раздела».

Внешняя печатная форма

Для подключаемых внешних модулей печати указывается следующее:

  • внешняя обработка
  • список объектов, для которых используется эта распечатка

Для каждого типа объекта также можно указать:

  • Выбор. Печать будет доступна только для объектов, соответствующих установленному выбору.
  • Отдельная печатная форма. Обратите внимание, что один и тот же элемент подменю всегда будет отображаться в объектах в списках печатаемых модулей. Если отдельная печатная форма не указана, будет использоваться печатная форма из заголовка элемента VPFO.
  • Встроенная возможность печати. При выполнении этого требования указанная встроенная печатная форма будет заменена на внешнюю.

Настройка диалогового вызова условий выбора выполняется в начале выбора значения в столбце «выбор»:

В объектных формах подменю кнопок для печати форм формируется на панели команд формы (обычно на нижней панели команд). Подменю формируется программно, когда форма открыта и когда объект записан в форму (чтобы гарантировать, что пункты меню меняются в соответствии с данными объекта и активируются условия выбора, указанные в печатных формах). В информации меню стандартные печатные формы отделены от связанных разделителем.
Например:

Если обнаруживается подключаемый модуль для печати, который необходимо заменить стандартом для печати, он заменяется и отображается в списке стандартных форм для печати. В этом случае подключенный модуль печати не отображается отдельно в списке подключенных модулей печати.
Когда вы нажимаете любую из кнопок печати, он определяет, соответствует ли кнопка внешней или встроенной печатной форме в конфигурации.
Для кнопок, соответствующих встроенным в конфигурацию печатным формам, вызывается интегрированный механизм печати (в текущем проекте этот механизм не рассматривается).
Для кнопок, соответствующих внешним печатным формам, соответствующая обработка сохраняется на диске во временном файле.
Для архивной внешней обработки:

  • заполняется атрибут «LinkOnObject» — типа «Любая ссылка», где ссылка передается на объект, для которого вы хотите распечатать;
  • функция «Print ()» (должна быть в модуле обработки с флагом «Export») вызывается без параметров, возвращая документ электронной таблицы.

Наличие тега «ReferenceObject» и функции экспорта «Print ()» в модуле объекта обработки с представлением «Внешняя печать» является обязательным.
Тело функции «Print ()» должно содержать программный код, который генерирует и возвращает электронную таблицу на основе значения переменной «ReferenceObject».
Обработка также может включать в себя макет «Параметры автоматической публикации», который используется для автоматического заполнения аффилированности формы печати в каталоге «Внешняя обработка», состоящего из столбца — полного имени объекта, для которого соответствующая кнопка нажатия будет создан.
Пример макета Autoregistration_Parameters:

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

Техническая реализация механизма «Внешние  обработки, печатные формы, обработки по заполнению табличных частей»

В базе данных внешние разработки, распечатка форм, разработки для составления табличных разделов хранятся в каталоге «Внешние разработки». Каталог имеет следующую структуру:

Требования:

  • Хранение Внешняя обработка. В хранилище значений хранятся данные двоичной обработки, определенные для всей статьи.
  • Тип обработки. Перечисление Ref. Типы дополнительной внешней обработки, определяет тип ВПФО, каждый тип (печатная форма, составление табличных разделов, обработка) рассматривается отдельно в разделе «Описание типов каталога ВПФО и требований к подключенной внешней обработке».
  • Комментарий. Строка неограниченной длины.
  • Прокомментируйте источник файла. Строка неограниченной длины хранит параметры файла, дату создания и т.д. Он автоматически заполняется при интерактивном выборе файла внешней обработки. Не изменено пользователем.

Принадлежность табличной части. Хранит типы объектов, для которых установлены VPFO и другие параметры, описанные ниже. Табличный раздел используется для элементов с типом обработки: «Форма для печати» или «Составление табличных разделов».

Подробности табличного раздела:

  • ObjectView. Строка неограниченной длины хранит строковое представление выбранного объекта для отображения пользователю.
  • ObjectLink. ReferenceRef, DocumentRef, содержит пустую ссылку на объект конфигурации, поскольку невозможно определить атрибут типа «Тип» для табличной части, поэтому пустая ссылка определяет тип объекта, для которого форма печати должна быть связана внешними или обработка для составления табличного раздела. Ссылка на пустое значение некоторого типа полезна в запросах.
  • TabularPartName **. Строка, 100. Содержит имя PM объекта, для которого установлен VPFO.
  • TabularPartView **. Строка неограниченной длины. Содержит синоним PM объекта, используемый для отображения пользователю табличного разреза объекта, для которого он установлен.
  • Настройки генератора на выбор ***. Хранилище значений может содержать настройки построителя отчетов, загруженные фильтры для выбранного объекта.
  • Цех внешней обработки ***. ValueStore может содержать внешние двоичные данные для обработки, которые будут использоваться в первую очередь, вместо обработки, указанной в заголовке.
  • ReplaceablePrintingForm ***. Строка, 200. Имя печатаемого встроенного модуля объекта, который будет заменен подключаемым модулем.
  • PrintFileName ***. Строка неограниченной длины — имя файла прикрепленного модуля печати.
  • Vista BuilderSelection ***. Строка неограниченной длины, в которой хранится представление выбора построителя, используется для отображения представления выбора в табличной части формы ввода каталога «Внешняя обработка».

** Используется только для элементов с типом обработки: «Заполнение табличных разделов»
*** Используется только для элементов с типом обработки: «печатная форма».

Подключение дополнительных печатных форм к формам объектов конфигурации

Механизм дополнительных печатных форм является продолжением механизма стандартных объектных печатных форм. Добавление надстройки в общий список формы выполняется в процедурах модуля формы объекта перед открытием, после регистрации и при нажатии кнопки «Установить печать по умолчанию».
Подменю «Печать» и кнопка «Печать по умолчанию» в форме объекта не нужны. Они генерируются программно, если есть хотя бы одна печатная форма и если установлена ​​печать по умолчанию.

Создание табличного документа

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

Давайте просто представим, как выглядит макет в нашем простейшем примере:

Шаблон счета на оплату

Источники

  • https://its.1c.ru/db/content/metod8dev/src/developers/uni%20mechs%20in%20appl%20sol/i8104259.htm
  • https://www.koderline.ru/expert/narabotki/article-sozdanie-vneshney-pechatnoy-formy-v-1s-/
  • https://programmist1s.ru/vneshnie-pechatnyie-formyi-v-1s/

Оцените статью