Ajout d'un formulaire d'impression externe à la base de données. Ajout d'un formulaire d'impression externe à la base de données T 1 ; formulaire d'impression externe zup 2.5

Question:

S'il te plaît, dis-moi où 1CZUP 3 ajouter les coordonnées bancaires de l'organisation afin qu'elles soient reflétées dans les attestations des salariés ? Par exemple, dans Attestation de revenus (forme libre) du répertoire Employés.

Répondre:

Séminaire « Lifehacks pour 1C ZUP 3.1 »
Analyse de 15 life hacks pour la comptabilité dans 1C ZUP 3.1 :

LISTE DE CONTRÔLE pour vérifier les calculs de paie dans 1C ZUP 3.1
VIDÉO - autocontrôle mensuel de la comptabilité :

Calcul de la paie dans 1C ZUP 3.1
Instructions étape par étape pour les débutants :

Le fait est que dans 1C ZUP, il n'est pas nécessaire de stocker des informations sur le compte courant de l'organisation. Il n’est utilisé dans aucun document. Par conséquent, ces informations ne sont saisies nulle part dans le programme et il n'y a nulle part où elles peuvent figurer dans le formulaire imprimé.

Il existe deux options. Soit saisissez ces informations manuellement dans le formulaire généré à chaque fois, soit saisissez ces informations une fois par semaine. mise en page du formulaire imprimé(section de menu Administration - Formulaires imprimés, rapports et traitement - Mises en page des formulaires imprimés).

Il est plus pratique d'utiliser la deuxième option.

Dans la liste des mises en page, vous devez rechercher la mise en page du formulaire imprimé souhaité (le nom de la mise en page est le même que le nom du formulaire lui-même) et cliquer sur la commande Modifier. Dans la fenêtre qui s'ouvre, vous devez apporter les corrections nécessaires et les noter.

Après avoir enregistré la mise en page, ces modifications seront affichées chaque fois que ce rapport sera généré pour un employé.

Pour être le premier informé des nouvelles publications, abonnez-vous aux mises à jour de mon blog :

Cet article décrit comment connecter un formulaire imprimé externe à une base de données 1C en utilisant l'exemple de la configuration « Trade Management 11.2 »

La configuration « Trade Management 11.2 » est une configuration sur formulaires « GÉRÉS » !

Nos instructions « montrent » comment connecter un formulaire imprimé externe dans la base d'informations 1C avec configuration sur formulaires « GÉRÉS », à savoir :

  • "Comptabilité 3.0"
  • "Gestion commerciale 11.2"
  • "Gestion des salaires et du personnel 3.1"
  • "Automatisation complète 2.0"
  • "Gestion des petites entreprises 1.6"
  • "Commerce de détail 2.2"
  • et d'autres configurations similaires.

Afin de connecter un formulaire d'impression externe dans 1C, nous devrons suivre 11 étapes.

1 — Menu « Données de base et administration » (Dans d'autres configurations, comme dans Enterprise Accounting 3.0, il peut être simplement appelé « Administration »). 2 — Sélectionnez « Formulaires imprimés, rapports et traitement » (voir figure ci-dessous ↓)

3 — Développez le sous-menu « Rapports et traitement » (dans d'autres configurations, telles que Enterprise Accounting 3.0, il se peut qu'il n'y ait pas un tel sous-menu, nous passons donc immédiatement à l'étape suivante). 4 — Cochez la case « Utilisation de rapports et traitements supplémentaires ». 5 — Accédez à la rubrique : Rapports et traitements complémentaires. (voir figure ci-dessous ↓) ()

6 — Cliquez sur le bouton « Créer ». (voir figure ci-dessous ↓)

Dans les nouvelles versions de 1C (à partir d'août 2016), le programme dispose d'un mécanisme d'avertissement intégré concernant le danger d'utiliser un traitement externe inconnu pouvant contenir des « virus » ; dans les versions antérieures du programme, l'avertissement n'apparaîtra pas ! Si cela se produit, il faudra alors connecter un formulaire d'impression externe - 7 — cliquez sur le bouton « Continuer ». (voir figure ci-dessous ↓)

8 — Sélectionnez le répertoire dans lequel se trouve le traitement. 9 — Sélectionnez-le (le traitement dont nous avons besoin). 10 — Cliquez sur le bouton « Ouvrir ». Ou, au lieu des étapes 9 et 10, vous pouvez simplement double-cliquer sur le formulaire imprimé externe dont nous avons besoin dans la fenêtre de sélection. (voir figure ci-dessous ↓)

Si nous devons ajouter un emplacement pour le traitement supplémentaire (par exemple, il s'agit d'un formulaire de contrat universel de notre site Web et nous avons besoin que la commande pour imprimer ce formulaire soit affichée dans un objet dans lequel il n'est pas initialement affiché) - 11 — cliquez sur la ligne de placement (« Placer dans : », peut-être « Placement : ») et sélectionnez les répertoires et documents nécessaires. 12 — Nous complétons les étapes de connexion d'un formulaire d'impression externe en cliquant sur le bouton « Enregistrer et fermer ». (voir figure ci-dessous ↓)

C'est tout! Toutes nos félicitations! La plaque d'impression externe est connectée ! Avons-nous tout fait correctement ? Allons vérifier...

Avant l'enregistrement et la clôture, nous avons remarqué que cet imprimé externe se trouve dans le document Ventes de biens et services, ce qui nous permet d'ouvrir des options d'impression pour tout document du type : « Ventes de biens et services ». appuyez sur le bouton "Imprimer" et voyez qu'une fenêtre de sélection des formulaires imprimés est apparue, parmi lesquelles il y a - 13 — formulaire d'impression externe connecté par nos soins (voir figure ci-dessous ↓)

Maintenant, c'est sûr. Nous espérons que cet article vous a été utile.

Bon après-midi.

Aujourd'hui, je veux vous expliquer comment créer des formulaires imprimés externes pour la configuration « Gestion des salaires et du personnel 3.0 ». Comme vous le savez, ZUP 3.0 utilise une bibliothèque de sous-systèmes standards, ce qui signifie que la structure de traitement est complètement différente. Lorsque j'ai dû créer pour la première fois un formulaire imprimé pour le BSP dans des formulaires gérés (à l'époque c'était UT 11), la première chose que j'ai faite a été d'aller sur le disque ITS afin d'y trouver une documentation détaillée sur les procédures d'exportation, les paramètres à utiliser. traité et comment tout cela fonctionne. Là, SON m'a un peu déçu, parce que... tout y est dit sur l'apparence des procédures dans le module de document, et dans le formulaire imprimé externe, les paramètres de la procédure « d'impression » sont réorganisés, j'ai donc dû chercher des informations dans d'autres sources et bricoler le sous-système de l'intérieur .

Eh bien, commençons. Ce que nous obtenons à la fin peut être utilisé comme modèle.

La première étape- évident. Créons un nouveau traitement. Attribuons-lui un nom arbitraire : "Print Sample".

Deuxième étape. Créons une mise en page. Puisque nous avons un exemple de test, je vais créer la mise en page la plus simple, sans un seul paramètre.

Troisième étape- Le plus intéressant. Ouvrez le module objet et démarrez la programmation. Selon le BSP, lors de l'enregistrement d'un traitement externe, celui-ci (le traitement) doit indiquer ce qu'il peut faire, à quels objets il est attaché et comment il s'appelle. Lorsqu'on lui demande quel traitement il peut effectuer, il doit renvoyer une liste de commandes - il s'agit d'un tableau de valeurs. Dans notre cas, le traitement peut produire un seul formulaire imprimé, il n'y aura donc qu'une seule commande. Pour générer un tableau de valeurs, nous définirons quelques procédures qui seront toujours les mêmes dans tous les formulaires imprimés externes :

//procédure qui prépare la structure de la table de commandes

Fonction GetTableCommand()

// Crée une table de commandes vide et des colonnes dedans
Commandes = Nouveau ValueTable ;

// À quoi ressemblera la description du formulaire imprimé pour l'utilisateur
Commands.Columns.Add("View", NewTypeDescription("Row"));

// Le nom de notre mise en page, afin que nous puissions distinguer la commande appelée lors du traitement de l'impression
Commands.Columns.Add("Identifier", New TypeDescription("String"));

// Ceci définit comment la commande de traitement doit être appelée
// Options possibles :
// - OpeningForm - dans ce cas, la colonne identifiant doit indiquer le nom du formulaire que le système ouvrira
// - CallClientMethod - appelle la procédure d'export client depuis le module formulaire de traitement
// - Call ServerMethod - appelle une procédure d'export serveur depuis le module objet de traitement
Commands.Columns.Add("Usage", New TypeDescription("Ligne"));

// Le paramètre suivant spécifie si une notification doit être affichée lorsqu'un travail de traitement démarre et se termine. Cela n'a aucun sens lors de l'ouverture du formulaire
Commands.Columns.Add("ShowAlert", NewTypeDescription("Boolean"));

// Pour un formulaire imprimé, il doit contenir la chaîne PrintMXL
Commands.Columns.Add("Modifier", New TypeDescription("Row"));

Équipe de retour ;

FinFonction

//Crée une nouvelle ligne dans la table de commandes

Fonction AddCommand (CommandTable, View, Identifier, Usage, ShowAlert = False, Modifier = "")
NewCommand = CommandTable.Add();
Nouvelle équipe. Vue = Vue ;
Nouvelle équipe. Identifiant= Identifiant ;
Nouvelle équipe. Utilisation = Utilisation ;
Nouvelle équipe. ShowAlert= ShowAlert ;
Nouvelle équipe. Modificateur= Modificateur ;
FinFonction

Fonction InformationOnExternalProcessing() Exportation
Paramètres d'enregistrement = Nouvelle structure ;
ArrayDestinations = Nouveau tableau ;
Tableau d'affectations.Add("Document.Hiring");
Paramètres d'enregistrement.Insert("View", "PrintForm"); //peut-être - Remplissage d'un objet, rapport supplémentaire, création d'objets associés...
Paramètres d'enregistrement.Insert("Destination", Tableau de destination);
Paramètres d'enregistrement.Insert("Nom", "Hello World"); //nom sous lequel le traitement sera enregistré dans le répertoire des traitements externes
Paramètres d'enregistrement.Insert("Version", "1.0");
Paramètres d'enregistrement.Insert("SafeMode", TRUE);
Paramètres d'enregistrement.Insert("Information", "SAMPLE");//voici à quoi ressemblera la description du formulaire imprimable pour l'utilisateur
CommandTable = GetCommandTable();
AddCommand(CommandTable, "Hello World", "Layout", "CallServerMethod", True, "MXL Print");
Paramètres d'enregistrement.Insert("Commandes", CommandTable);
ReturnRegistrationParameters ;
FinFonction

En fait, vous devrez le bricoler à chaque fois que vous créerez un nouveau formulaire d'impression externe. D'après le morceau de code, il est clair que nous le lierons au document « Embauche », en conséquence vous écrivez le vôtre. Notre formulaire imprimé s’appellera « Hello World », encore une fois, nous le remplacerons par le nôtre. Ici, il serait pratique d'écrire un panneau d'affichage évident dans le modèle pour qu'il attire l'attention, pour ne pas oublier de le corriger plus tard ; à mon avis, « Hello World » est utile. La version est pour vous, écrivez ce que vous voulez, elle s'affichera sous forme d'élément dans le répertoire de traitement externe. Le mot « EXEMPLE » est également visible uniquement sous la forme d'un répertoire de formulaires imprimés. Ensuite, nous ajoutons une commande, ici le deuxième paramètre est le nom du bouton, c'est ce que l'utilisateur verra dans le document dans l'élément de menu « imprimer ».

Cet ensemble de trois procédures suffit pour que le traitement soit ajouté au répertoire des traitements externes ; tout ce code déroutant est un service et n'a rien à voir avec l'algorithme d'impression. En fait, les auteurs du BSP nous ont obligés à programmer d'une manière si difficile que si auparavant vous commenciez immédiatement à écrire la fonction « Imprimer », maintenant, lorsque vous écrivez un traitement à partir de zéro, et non selon un échantillon, vous perdrez du temps sur le service. Auparavant, les paramètres d'enregistrement étaient facultatifs et étaient indiqués dans le schéma de traitement, maintenant tout semble beaucoup plus sérieux. La première impression quand j'ai vu ça était cool, tellement de possibilités, tout est unifié... mais en pratique, je crée toujours une seule commande en un seul traitement, et je la lie à un seul document. Ceux. en fait, j'ai besoin de deux lignes pour l'enregistrement : le nom de l'objet, le nom du bouton. Et ici tout est tellement... eh bien, eh bien, ce n'est pas à moi de juger.

Quatrième étape- non moins intéressant.

Fonction IMPRIMER ?

Mais non, ce n’est plus une fonction, mais une procédure.

Comment puis-je récupérer la mise en page ?

Envoyez-le à la fonction du module du sous-système d'impression global.

D'accord

Voici le texte de cette procédure :

Procédure Imprimer (Tableau d'objets, Collection de PrintForms, PrintObjects, Paramètres de sortie) Exporter
Si PrintManagement.NeedPrintLayout(CollectionPrintForms, "Layout") Alors
Gestion de l'impression. Sortie TabularDocumentIntoCollection(CollectionofPrintForms,
"Mise en page", "Mise en page",
GenerateTabDocumentSample (Tableau d'objets, Objets d'impression));
fin si;
Fin de la procédure

Maintenant pour des éclaircissements. La première ligne de la procédure contient une condition légèrement floue. Le fait est que lorsque nous appelons la procédure d'impression, le système nous transmet un tableau de valeurs qui indique ce que nous devons imprimer. Essentiellement, la fonction ManagePrint.NeedPrintLayout(...) vérifie la présence dans le tableau des valeurs d'une ligne dans laquelle dans la colonne "Nom" se trouve une ligne avec le nom de la mise en page. En pratique, dans la plupart des cas, la chose est inutile, car... notre traitement ne pourra générer qu'un seul formulaire imprimé. Ceux. Cette condition peut être omise et n’affectera pas les performances.

Ensuite, Gestion de l'impression. Sortie TabularDocumentIntoCollection(...) - c'est ce qui ajoute la disposition tabulaire là où elle est nécessaire, afin qu'elle puisse ensuite être affichée à l'écran. Si vous devez afficher votre feuille de calcul dans votre propre fenêtre (pas dans une fenêtre standard), n'appelez pas cette procédure, mais écrivez simplement votre code ici.

Je tiens également à ajouter que la procédure d'impression s'effectue sur le client et, si nécessaire, vous pouvez ouvrir ici un formulaire gratuit afin de demander à l'utilisateur des informations complémentaires nécessaires à l'impression.

Ensuite, GenerateTabDocumentSample(...) est une fonction que l'on doit écrire dans le module de traitement et qui renvoie un document tabulaire. Dans 100 cas sur 100, ce sera basé sur un serveur, car... nous devons obtenir la valeur des détails des objets répertoriés dans le paramètre "Object Array".

Cinquième étape- créer une mise en page.

Hourra, nous allons enfin passer à l'algorithme de mise en page, à la récupération des données, etc.

Mais dans notre échantillon, nous agirons de manière prosaïque et je ne ferai même pas de commentaire ici)))

Fonction GenerateTabDocumentSample (Tableau d'objets, Imprimer des objets)
tabDoc = Nouveau TabularDocument ;
layout = GetLayout("Mise en page");

AreaHeader = Layout.GetArea("En-tête");
tabDoc.Output(areaHeader);

Retourner TabDoc ;
FinFonction

C'est tout, merci pour votre attention

Allons à Service->Rapports et traitements supplémentaires->Plaques d'impression externes en option.

Le formulaire de liste d'annuaire avec des formulaires imprimés externes s'ouvre. Dans le menu supérieur de la liste, cliquez sur Ajouter. Le formulaire de création d'un élément de répertoire apparaît.

Cliquez sur le bouton Ouvrir et sélectionnez le fichier contenant le formulaire d'impression souhaité. Après cela, si nécessaire, définissez le nom souhaité (champ Nom).

Si le formulaire imprimé contient des paramètres d'enregistrement automatique, un message à ce sujet apparaîtra. Cliquez sur Oui.Si cela ne se produit pas, vous devez alors indiquer à quel document ce formulaire sera lié. Pour ce faire, vous devez ajouter une ligne dans la partie tabulaire « Affiliation du formulaire imprimé », où dans la « Représentation de l'objet » champ sélectionnez le type de document auquel nous lions le formulaire. Puisque dans notre exemple il s'agit d'un acte de radiation de matériaux, nous sélectionnons le document Demande-facture.

Après cela, accédez à n'importe quel document Demande-facture, cliquez sur Imprimer et sélectionnez le formulaire nouvellement ajouté.

Pour BP 3.0, ZUP 3.0, UT 11, KA 2.0, ERP 2.0.

Pour démontrer l'ajout d'un formulaire imprimé dans une interface gérée, je montrerai l'ajout d'un formulaire externe de facture de paiement à un document du même nom dans Comptabilité 3.0.

On se rend dans la section correspondante du programme :


Il faut que le flag d'utilisation des rapports et traitements externes soit activé ; suivre le lien hypertexte vers la liste des objets externes :

Dans la liste qui s'ouvre, cliquez sur Créer:


Dans la boîte de dialogue, sélectionnez le fichier souhaité :


La fiche de l'objet externe est renseignée : dans la mise en page on voit le type d'objet de base auquel le formulaire sera attaché et juste en dessous de son nom :


Écrivons et fermons le formulaire de l'objet externe créé.

Passons maintenant à n'importe quel document Facture de paiement à l'acheteur et affichez le menu d'impression :


Envisageons d'écrire le formulaire imprimé le plus simple dans 1s 8,1 - 8,2 en utilisant un exemple de configuration Comptabilité d'entreprise 2.0. Disons que vous devez rédiger un formulaire imprimé externe pour un document : afficher les données de base du document, ainsi que de la partie tabulaire Marchandises: nomenclature, prix, quantité et montant.

Vous pouvez télécharger l'exemple résultant à partir de .

Dans le configurateur Entreprises 1C 8 créer un traitement externe ( Fichier->Nouveau->Traitement externe), définissez le nom, créez les détails requis pour le formulaire imprimé externe Référence d'objet avec type DocumentLink. Ventes de biens et services.

Création d'une mise en page de formulaire imprimé

Ajoutez-en un nouveau mise en page, laissez le type de mise en page feuille de calcul. Nous créons trois zones sur le layout : En-tête, données Et Sous-sol. Cela peut être fait en sélectionnant le nombre de lignes requis et en cliquant sur le menu Tableau->Noms->Attribuer un nom (Ctrl+Maj+N).

Après cela, nous commençons à placer du texte et des paramètres dans les zones. Nous le mettrons dans l'en-tête nom du formulaire imprimé, numéro du document Et organisation, et dessinez également les bordures de l'en-tête du tableau et écrivez les noms des colonnes. Lors de la création d'un paramètre dans les propriétés de la cellule, dans l'onglet Disposition, vous devez définir la propriété Remplissage dans le sens Paramètre.

Dans la zone Données créons des paramètres pour afficher les lignes dans la section tabulaire ( Nomenclature, prix etc.), et dans la zone Sous-sol pour les totaux par quantité et montant.

La programmation

Passons au module objet du formulaire d'impression Actions->Ouvrir le module objet.

Créons-y une fonction d'exportation obligatoire pour les formulaires imprimés. Joint().

Fonction Imprimer () Exporter FinFonction

Dans la fonction nous allons créer une variable pour feuille de calcul, dans lequel le formulaire imprimé sera sorti, nous obtenons mise en page Et zones de mise en page.

TabDoc = nouveau TabularDocument ; Mise en page = GetLayout("Mise en page" ); HeaderArea = Layout.GetArea("En-tête" ); AreaData = Layout.GetArea("Données" ); AreaFooter = Layout.GetArea("Footer" );

Remplissons les paramètres Chapeaux et amène-le à feuille de calcul.

HeaderArea.Parameters.HeaderText = +LinkToObject.Number; HeaderArea.Parameters.Organization = LinkToObject.Organization; TabDoc.Output(HeaderArea);

Pour obtenir des lignes de tableau Marchandises nous utilisons la demande.

Demande = nouvelle demande ; Request.SetParameter("Lien", ObjectLink); Requête.Texte = "SELECT | Ventes de biens et services Biens. Nomenclature, | Ventes de biens et services Biens. Montant, | Ventes de biens et services Biens. Prix, | Ventes de biens et services Biens.Quantité|DE | Document. Ventes de biens et services. Biens COMMENT vendre des biens et services Biens|OÙ | Ventes de biens et services. Link = &Link";

Nous transmettons les détails au paramètre de requête Référence d'objet, pour indiquer dans l'état , que nous avons besoin uniquement des données du document à partir duquel nous tirons le formulaire imprimé. Pour obtenir un exemple de requête, nous l’exécutons d’abord, puis sélectionnons les lignes.

Sélectionner = Query.Run().Select();

Ensuite dans la boucle, nous remplissons les paramètres de zone Données pour chaque ligne de l'échantillon de document et affichez-les dans feuille de calcul. On calcule également les valeurs totales dans la boucle quantités Et les montants. Nous ne remplirons pas chaque paramètre séparément, mais utiliserons la procédure RemplissezPropertyValues((<Приемник>, <Источник>) depuis contexte mondial, il copie les valeurs des propriétés <Источника> aux propriétés <Приемника> . La correspondance est effectuée par noms de propriété. Vous pouvez en savoir plus à ce sujet dans assistant de syntaxe 1C Entreprise 8.

Somme totale = 0 ; Quantité totale = 0 ; While Selection.Next() Boucle FillPropertyValues(AreaData.Parameters,Selection); Somme totale = Somme totale + Sample.Sum ; Quantité totale = Quantité totale + Échantillon.Quantité ; TabDoc.Output(AreaData); Fin du cycle ;

Remplir et afficher la zone Sous-sol.

AreaFooter.Parameters.TotalQuantity = Quantité totale ; AreaFooter.Parameters.TotalSum = TotalSum ; TabDoc.Output(AreaFooter);

Renvoi du document de feuille de calcul complété à partir de la fonction Joint().

retourner TabDoc ;

Si vous utilisez l'une des configurations standards, après avoir renvoyé le tableur 1C affichera le formulaire imprimé à l’écran. Vous pouvez également utiliser la méthode du tableur pour la sortie. Montrer().

5. Connecter un formulaire imprimé à un document

DANS configurations standards 1C 8 Il existe un répertoire pour enregistrer les formulaires imprimés externes TraitementExterne. Pour vous connecter, rendez-vous dans le menu en mode entreprise Service->Rapports et traitements supplémentaires->Formulaires imprimés externes supplémentaires.

Ajoutez un nouvel élément de répertoire, chargez le formulaire imprimé à partir du disque et sélectionnez le type de document.

Maintenant dans le document Ventes de biens et services Un nouvel imprimable apparaîtra.

Enregistrement automatique du formulaire imprimé

Pour vous assurer que lors de la connexion d'un formulaire d'impression, vous n'avez pas besoin de sélectionner manuellement le type de document, vous pouvez configurer enregistrement automatique. Pour ce faire, ajoutez une nouvelle mise en page et appelez-la Paramètres_Enregistrement automatique(c'est le seul moyen) et dans sa première cellule on écrit Documentation.<Наименование документа> (ou Annuaires.<Наименование справочника> ).

Désormais, lors de la connexion d'un formulaire d'impression, il nous sera demandé d'utiliser paramètres d'enregistrement automatique.