Configuración
- Enumerar los objetos de configuración que suministran comandos de impresión en el procedimiento OnDefineObjectsWithPrintCommands del módulo PrintManagementOverridable.
- Definir el procedimiento AddPrintCommands en el módulo del administrador de cada objeto en el área Pública de la siguiente manera:
#Region Pública // Rellena una lista de comandos de impresión. // // Parámetros: // PrintCommands - ValueTable - ver un conjunto de campos en la función PrintManager.CreatePrintCommandsCollection. // Procedure AddPrintCommands (PrintCommands) Export EndProcedure #EndRegion
- Luego, en los formularios de los objetos que se adjuntaron en el paso anterior y en los que se mostrará el submenú con los comandos de impresión, haga lo siguiente:
- Agregue el subsistema “Comandos adjuntos”.
- Opcional. Agregue el submenú principal a la barra de comandos para mostrar los comandos de informe de la siguiente manera:
- Nombre: PrintSubmenu.
- Título: Imprimir.
- Tipo: Submenú.
- Visualización: Imagen.
- Imagen: Imprimir (imagen estándar).
Si planea mostrar un gran número de comandos (más de 10) en este submenú, se recomienda agregar grupos de botones anidados con los sufijos Importante, Normal y Ver también. Por ejemplo: SubmenuPrintImportant, SubmenuPrintNormal y SubmenuPrintSeeAlso. Los sufijos de estos grupos se especifican en la propiedad Importancia de los comandos que se mostrarán en estos grupos (para obtener más información sobre esta propiedad, consulte la tabla "Parámetros del comando de impresión" a continuación). // Configuraciones adicionales de una lista de comandos de impresión. // // Parámetros: // ListSettings - Estructura - modificadores de la lista de comandos de impresión. // * PrintCommandsManager - ObjectManager - un administrador de objetos, en el que se genera una lista de comandos de impresión. // * Autofill - Boolean - rellenar los comandos de impresión a partir de los objetos del diario. // Valor predeterminado: Verdadero. // Procedure OnGetPrintCommandsListSettings(ListSettings) Export If ListSettings.PrintCommandsManager = DocumentJournals._DemoWarehouseDocuments Then ListSettings.Autofill = False; EndIf; EndProcedure
Desarrollo de comandos de impresión
Luego, debe desarrollar una parte descriptiva. Para hacer esto, enumere los comandos de impresión para cada objeto en el procedimiento AddPrintCommands y especifique una presentación, ID y otros parámetros (para obtener más información, consulte la tabla a continuación). Por ejemplo:
// Factura proforma PrintCommand = PrintCommands.Add(); PrintCommand.PrintManager = "Document._DemoCustomerProformaInvoice"; PrintCommand.ID = "InvoiceOrder" PrintCommand.Presentation = NStr("es = 'Factura proforma'"); PrintCommand.CheckPostingBeforePrint = True;
Parámetros del comando de impresión:
Parámetro |
Tipo |
Detalles |
ID (obligatorio) |
Cadena o Matriz |
Un ID de comando de impresión. El administrador de impresión utiliza este ID para determinar el formulario de impresión que debe generarse. Ejemplo: PrintCommand.ID = “InvoiceOrder” |
Presentation (obligatorio) |
Cadena |
Una presentación de comando en el menú Imprimir. Ejemplo: PrintCommand.Presentation = NStr(“es = ‘Factura proforma'”); |
PrintManager (opcional) |
Cadena |
Nombre del objeto cuyo módulo de administrador contiene el procedimiento Print que genera documentos de hoja de cálculo para este comando. Por ejemplo: PrintCommand.PrintManager = “Document._DemoCustomerProformaInvoice”; |
PrintObjectsTypes (opcional) |
Matriz |
La lista de tipos de objeto para los que está destinado el comando de impresión. El parámetro se utiliza para comandos de impresión en diarios de documentos, que requieren verificar el tipo de objeto que se pasa antes de llamar al administrador de impresión. Si la lista está en blanco, cada vez que se genera automáticamente la lista de comandos de impresión en un diario de documentos, se rellena con un tipo de objeto, del cual se importó el comando de impresión |
Handler (opcional) |
Cadena |
El controlador de comando del cliente, al que se debe pasar el control en lugar del controlador de comando de impresión estándar. |
Order (opcional) |
Número |
Valor del 1 al 100 que indica la posición del comando entre otros comandos. Los comandos del menú Imprimir se ordenan por el campo Orden, luego por una presentación. Valor predeterminado: 50 |
Picture (opcional) |
Imagen |
La imagen que se muestra junto al comando en el menú Imprimir. Ejemplo: PrintCommand.Picture = PictureLib.PDFFormat; |
FormsList (opcional) |
Cadena |
Nombres separados por comas de los formularios en los que debe mostrarse el comando. Si no se especifica el parámetro, el comando de impresión está disponible en todos los formularios de objeto que incluyen el subsistema de impresión. Ejemplo: PrintCommand.FormsList = “DocumentForm, ListForm” |
PlacementLocation (opcional) |
Cadena |
Nombre de la barra de comandos del formulario en la que debe mostrarse el comando de impresión. Utilice este parámetro solo cuando el formulario tenga más de un submenú de impresión. En otros casos, especifique la ubicación del comando de impresión en el módulo del formulario al llamar al método PrintManager.OnCreateAtServer |
FormHeader (opcional) |
Cadena |
Una cadena arbitraria que anula un título estándar del formulario “Imprimir documentos”. Ejemplo: PrintCommand.FormHeader = NStr(“es = ‘Conjunto personalizado'”); |
FunctionalOptions (opcional) |
Cadena |
Nombres separados por comas de opciones funcionales, en las que depende la disponibilidad del comando de impresión |
VisibilityConditions (opcional) |
Matriz |
Define la visibilidad del comando según el contexto. Para registrar condiciones, utilice el procedimiento AttachableCommands.AddCommandVisibilityCondition(). Las condiciones se combinan mediante “Y” |
CheckPostingBeforePrint (opcional) |
Booleano |
Indica si es necesario verificar si los documentos están contabilizados antes de imprimir. Si no se especifica el parámetro, no se realiza la verificación de contabilización. Ejemplo: PrintCommand.CheckPostingBeforePrint = True; |
SkipPreview (opcional) |
Booleano |
Indica si los documentos se envían directamente a una impresora sin vista previa. Si no se especifica el parámetro, el comando de impresión abre el formulario de vista previa “Imprimir documentos”. Ejemplo: PrintCommand.SkipPreview = True; |
SaveFormat (opcional) |
SpreadsheetDocumentFileType |
Se utiliza para guardar rápidamente un formulario de impresión (sin acciones adicionales) en formatos no MXL. Si no se especifica el parámetro, se genera un archivo MXL. Ejemplo: PrintCommand.SaveFormat = SpreadsheetDocumentFileType.PDF; Al seleccionar un comando de impresión, se abre un documento PDF generado. |
OverrideUserCountSettings (opcional) |
Booleano |
Indica si se debe desactivar la opción de guardar o restaurar el número de copias seleccionado por un usuario para imprimir en el formulario PrintDocuments. Si no se especifica el parámetro, la opción de guardar o restaurar la configuración estará activa al abrir el formulario PrintDocuments. Ejemplo: PrintCommand.OverrideUserCountSettings = True; |
AddExternalPrintFormsToSet (opcional) |
Booleano |
Indica si se debe complementar el conjunto de documentos con todos los formularios de impresión externos adjuntos al objeto (subsistema AdditionalReportsAndDataProcessors). Si no se especifica el parámetro, no se agregan formularios de impresión externos al conjunto. Ejemplo: PrintCommand.AddExternalPrintFormsToSet = True; |
FixedSet (opcional) |
Booleano |
Indica si los usuarios pueden cambiar el conjunto de documentos. Si no se especifica el parámetro, el usuario puede excluir algunos formularios de impresión del conjunto en el formulario PrintDocuments y cambiar el número de copias. Ejemplo: PrintCommand.FixedSet = True; |
AdditionalParameters (opcional) |
Estructura |
Parámetros arbitrarios para pasar al administrador de impresión |
DontWriteInForm (opcional) |
Booleano |
Indica si se deshabilita la escritura de objetos antes de la ejecución del comando de impresión. Este parámetro se utiliza en casos excepcionales. Si no se especifica el parámetro, el objeto se escribe cuando el formulario del objeto tiene una marca de modificación. Ejemplo: PrintCommand. DontWriteInForm= True; |
FilesExtensionRequired (opcional) |
Booleano |
Indica si es necesario adjuntar la extensión de archivo antes de ejecutar el comando. Si no se especifica el parámetro, no se adjunta la extensión del sistema de archivos |
Desarrollo del procedimiento “Imprimir”
- Agregue el procedimiento de exportación Print al módulo del administrador especificado en el parámetro PrintManager:
// Genera formularios de impresión. // // Parámetros: // ObjectsArray - Matriz - referencias a objetos que se van a imprimir. // PrintParameters - Estructura - configuraciones de impresión adicionales. // PrintFormsCollection - ValueTable - documentos de hoja de cálculo generados (parámetro de salida) // PrintObjects - ValueList - valor - una referencia al objeto. // presentation - un nombre del área en la que se muestra el objeto (parámetro de salida). // OutputParameters - Estructura - parámetros adicionales de los documentos de hoja de cálculo generados (parámetro de salida). // Procedure Print(ObjectsArray, PrintParameters, PrintFormsCollection, PrintObjects, OutputParameters) Export EndProcedure
- Coloque una plantilla de documento de hoja de cálculo en la configuración según las instrucciones en el capítulo “Colocación de plantillas de formulario de impresión en la configuración”.
- Agregue una función que genere un formulario de impresión (un documento de hoja de cálculo).
- En el procedimiento Print, coloque el código para identificar el formulario de impresión y llame a la función para su generación (creada en el paso 3).
Los parámetros del procedimiento Print:
Parámetro |
Detalles |
ObjectsArray |
Matriz de referencias a objetos, para los cuales es necesario generar documentos de hoja de cálculo |
PrintParameters |
Parámetros arbitrarios pasados al llamar al comando de impresión |
PrintFormsCollection |
Tabla de valores interna. Se utiliza para pasar nombres de plantillas, para las cuales se generarán documentos de hoja de cálculo. Devuelve sinónimos de plantillas (presentación), documentos de hoja de cálculo generados con el número de copias especificado y una imagen que se mostrará en la pestaña del documento de hoja de cálculo en el formulario de impresión de documentos |
PrintObjects |
Una lista de valores, en la que el controlador de impresión asigna objetos a nombres de áreas de impresión de documentos de hoja de cálculo: Valor – Objeto, Presentación – un nombre del área en la que se mostró el objeto |
OutputParameters |
Una estructura con claves predefinidas que el controlador de impresión utiliza para devolver parámetros: – SendOptions. Una estructura que contiene información para completar un texto de correo electrónico al enviar un formulario de impresión por correo electrónico. Contiene los siguientes campos (consulte los detalles en el módulo de configuración común EmailOperationsClient en el procedimiento OpenEmailSendForm): – Recipient – Subject – Text |