Ajout d'un traitement externe à la base de données. Ajout de traitements externes à la base de données Rapports et traitements supplémentaires 1s 8.3

Envisageons de créer un rapport externe dans 1C 8 sans utiliser de système de composition de données. Pour créer un rapport externe, nous utiliserons la configuration Comptabilité 2.0, les données initiales : « Rédiger un rapport sur le compte comptable 62 dans lequel le chiffre d'affaires de la période spécifiée sera affiché dans le contexte Contreparties Et Contrats de contreparties.

1. Créez un rapport

Tout d'abord, créons un fichier de rapport externe ; pour cela, passons en 1s 8 dans le mode Configurateur, allons au menu Fichier -> Nouveau, ou cliquez sur l'icône Nouveau document.

Sélectionnez l'élément dans la liste Rapport externe. Après avoir créé le rapport externe, donnez-lui un Nom (par exemple Rapport le plus simple) et enregistrez-le sur le disque. Nous ajouterons également deux détails : Début de la période Et Fin de période taper Date, nous en aurons besoin pour limiter l'intervalle de temps d'échantillonnage des données lors de la génération d'un rapport.

2. Créez une mise en page de rapport externe

Pour générer un rapport dans 1C 8, vous avez besoin d'une mise en page, il s'agit d'un modèle de sortie de données dans lequel tout est spécifié paramètres requis, des tableaux sont dessinés, etc. Ajoutons une nouvelle mise en page ; pour ce faire, sélectionnez l'élément dans l'arborescence des métadonnées du rapport. Mises en page et appuyez sur le bouton Ajouter, lors de la création, sélectionnez le type de mise en page feuille de calcul.

Notre aménagement comportera 4 zones :

  • En-tête - dans cette zone, nous afficherons le nom du rapport, la période pour laquelle il a été généré et l'en-tête du tableau ;
  • Données de la contrepartie - dans cette zone, nous afficherons les données sur la contrepartie dans un tableau ;
  • Accord de contrepartie - dans cette zone, nous afficherons les données sur l'accord de contrepartie dans un tableau ;
  • Pied de page - dans cette zone, nous afficherons les valeurs totales de l'ensemble du rapport pour les champs Revenus et Dépenses.

Commençons par créer des zones de mise en page. Pour créer une zone dans la mise en page, sélectionnez quantité requise lignes et appuyez sur Tableau de menu -> Noms -> Attribuer un nom(Ou Ctrl + Maj + N). Vers la région CapuchonÉcrivons le nom du rapport : Chiffre d’affaires 62 comptes, dessinez à l'aide de l'outil Frontières en-tête du rapport, et définissez également les paramètres Début de la période Et Fin de période. À l'aide de paramètres, vous pouvez afficher les données nécessaires dans le rapport ; nous y reviendrons lors de la prochaine étape de développement, à savoir lors de l'écriture du code du rapport. Pour créer un paramètre dans la mise en page, sélectionnez la cellule souhaitée, écrivez-y le nom du paramètre (sans espaces), faites un clic droit dessus, sélectionnez l'élément dans le menu qui s'ouvre Propriétés. Dans les propriétés de la cellule sur l'onglet Mise en page sélectionner le rembourrage Paramètre.

Après cela, le nom du paramètre dans la cellule sera placé entre crochets ("<>"). En conséquence, la zone Capuchon devrait ressembler à ceci :

Dans la région Contrepartie de données nous allons créer des paramètres d'affichage du nom de la contrepartie, ainsi que des revenus et dépenses du compte 62, à l'aide de l'outil Frontières Concevons la zone comme une ligne de tableau.

Dans la région Accord de contrepartie de données Créons des paramètres pour afficher le nom du contrat, ainsi que pour les revenus et dépenses du compte 62, à l'aide de l'outil Bordures, nous concevrons la zone sous forme de ligne de tableau. Faisons un petit retrait avant le paramètre Accord de contrepartie(cela peut être fait en divisant et en fusionnant des cellules. Cliquez avec le bouton droit sur la cellule -> Fusionner ou Cellule divisée), il est nécessaire pour que le rapport puisse voir que la ligne du contrat est inférieure dans la hiérarchie à la ligne de la contrepartie.

Dans la région Sous-sol Créons des paramètres pour les totaux des revenus et des dépenses.

En conséquence, nous devrions obtenir une disposition comme celle-ci :

3. Créez un formulaire de rapport

Pour afficher les données, définissez la période de formation et le bouton Formulaire notre rapport nécessitera un formulaire. Pour créer un formulaire, recherchez l'élément dans l'arborescence des métadonnées du rapport externe. Formulaires et appuyez sur le bouton Ajouter. Sur la première page du concepteur de formulaire, vous n'avez pas besoin d'apporter de modifications, il vous suffit de cliquer sur le bouton Suivant.

Sur la page suivante du concepteur, sélectionnez les deux détails disponibles ( Début de la période, Fin de période) à placer sur le formulaire.

En conséquence, nous obtiendrons ce formulaire :

Mais nous ne nous en contentons pas sous cette forme ; apportons-y quelques modifications :

  • Faisons glisser le bouton Formulaire du panneau inférieur du rapport vers le haut (cela sera plus pratique pour l'utilisateur) ;
  • Étirons la forme verticalement et horizontalement ;
  • Organisons les champs Début de la période Et Fin de période horizontalement ;
  • Ajouter un contrôle Field au formulaire feuille de calcul(notre rapport y sera affiché), donnez-lui un nom TabDoc;
  • Créons un bouton de sélection de période (une fois cliqué, une boîte de dialogue s'affichera avec un choix pratique de la période souhaitée). Nous n’écrirons pas encore le code du programme, nous placerons donc simplement le bouton à côté des champs de période.

En conséquence, notre formulaire ressemblera à ceci :

4. Programmation

Après avoir créé le formulaire de rapport, commençons la programmation. Commençons par créer une procédure d'affichage d'une boîte de dialogue de sélection de période (nous avons déjà créé un bouton pour cela à l'étape précédente). Faites un clic droit sur le bouton et sélectionnez l'élément de menu Propriétés, dans les propriétés du bouton allez dans l'onglet Événements, où en utilisant le bouton avec une icône en forme de loupe, nous créerons une procédure Bouton1Appuyez dans le module formulaire.

Vous pouvez basculer entre le formulaire et son module en utilisant les onglets en bas du formulaire

Pour appeler le formulaire de sélection de période, nous utiliserons la procédure standard Comptabilité 2.0à partir d'un module commun Travailler avec des boîtes de dialogue - HandlerPeriodSettingPress, vous devez lui transmettre les détails du rapport en tant que paramètres Début de la période Et Fin de période.

Procédure Bouton1Press (élément) Travailler avec Dialogs.PeriodSettingHandlerPressing(PeriodStart,PeriodEnd); Fin de la procédure

Passons maintenant à l'écriture du code qui générera et affichera notre rapport. Le module formulaire possède déjà une procédure BoutonGénérerPresse, qui sera exécuté lorsque le bouton sera enfoncé Formulaire, c’est là que nous écrirons notre code. Commençons par initialiser les variables nécessaires. Tout d'abord, créons une variable pour champs de document de feuille de calcul dans lequel nous allons sortir des données, ce n'est pas nécessaire, c'est juste que l'enregistrement des appels deviendra plus court, ce qui signifie que le code du programme sera plus compréhensible pour la lecture.

TabDoc = FormElements.TabDoc;

Obtenons la mise en page du rapport externe à l'aide de la fonction ObtenirLayout(<ИмяМакета>) , nous passerons le nom de la mise en page en paramètre, et si une telle mise en page existe, la fonction la trouvera.

Mise en page = GetLayout("Mise en page" );

Une fois la mise en page reçue, créons des variables pour chacune de ses zones, utilisons la méthode de mise en page pour cela ObtenirZone(<ИмяОбласти>) .

AreaHeader = Layout.GetArea("En-tête" ); AreaDataAccount = Layout.GetArea( "Données de l'entrepreneur"); AreaDataContract = Layout.GetArea("DataContract" ); AreaFooter = Layout.GetArea("Footer" );

Effacons le champ du tableur. Ceci est nécessaire pour que chaque fois qu'un nouveau rapport est généré, les anciennes données soient supprimées.

TabDoc.Clear();

Maintenant que l'initialisation des variables est terminée, passons au remplissage et à l'affichage des zones de layout une à une. Commençons par l'en-tête. Si vous vous en souvenez, nous avons créé deux paramètres dans cette zone Début de la période Et Fin de période, on y passera les valeurs de la période de génération du rapport, pour cela on utilisera la propriété Possibilités zones de mise en page.

AreaHeader.Parameters.PeriodStart = PeriodStart ; AreaHeader.Parameters.EndPeriod = EndPeriod ;

Plus aucune action avec la zone Capuchon Le fabricant n’est pas nécessaire, nous afficherons donc son champ dans un tableur.

TabDoc.Output(AreaHead);

Ensuite, nous écrirons une requête dans la base de données, avec laquelle nous prendrons le chiffre d'affaires du compte 62 du registre comptable Autonome. Définissons une variable dans laquelle se situera notre requête.

Demande = nouvelle demande ;

Avant de commencer à rédiger le texte de la requête, passons-lui les paramètres nécessaires. Puisque nous rédigeons une demande de facture 62 comptabilité, alors tout d'abord nous allons créer un paramètre pour cela

Request.SetParameter("Account62", Plans comptables. Autonome. Rechercher par code("62" ));

Il est également nécessaire de répercuter la période de génération du rapport dans la requête. N'oubliez pas que nous avons des détails de rapport spéciaux pour la période de génération et que nous les transmettons comme paramètres.

Request.SetParameter("Début de période", Début de période); Request.SetParameter("Fin de période", Fin de période);

Commençons par écrire le texte de la requête, nous le ferons à l'aide du concepteur de requêtes. Dans beaucoup manuels ils écrivent que vous devez être capable d'écrire une requête à la fois manuellement et à l'aide d'un constructeur, mais en pratique, ce n'est pas le cas. Dans les tâches auxquelles un programmeur 1C est constamment confronté, la priorité est d'écrire du code rapidement et efficacement, et lors de l'écriture manuelle d'une requête dans la base de données, cela est presque impossible à réaliser, vous passerez beaucoup de temps précieux à reproduire correctement toutes les structures de requête ; et trouver les fautes de frappe que vous avez faites lors de l'écriture, etc. Par conséquent, ne perdez pas votre temps à essayer d'écrire des requêtes manuellement, mais utilisez le constructeur de requêtes. Cela vous fera gagner du temps et vous permettra d’écrire des requêtes complexes sans trop d’effort. Pour commencer à écrire le texte de la requête, écrivons en code :

Requête.Text = "" ;

Après cela, placez le curseur entre les guillemets et appuyez sur bouton droit souris et sélectionnez l'élément Constructeur demande. La fenêtre du concepteur de requêtes s'ouvrira.

Nous devons maintenant sélectionner la table de base de données 1C 8 dont nous avons besoin. Nous avons besoin d'une table virtuelle. Révolutions registre comptable Autonome. Trouvons-le sur le côté gauche de la fenêtre du concepteur

Déplaçons-le dans la zone Tableaux et commençons à remplir les paramètres. Pour toutes les tables de requête virtuelles, il existe un ensemble spécial de paramètres qui vous permettent de sélectionner les données nécessaires dans la table principale (dans notre cas, la table principale Registre comptable Autonome). Ouvrons la fenêtre des paramètres de la table virtuelle.

Remplissons les paramètres de la période que nous avons passée à la demande. Pour utiliser un paramètre dans le texte de la requête, vous devez écrire le symbole avant son nom esperluette(&)

Reste à remplir la condition du compte comptable. comptabilité. Pour cela, retrouvez la ligne dans les paramètres de la table virtuelle État du compte et nous y écrirons

Compte DANS LA HIÉRARCHIE (&Compte62)

Vous pouvez également utiliser le constructeur de conditions en cliquant sur le bouton à trois points.

Il n'est pas nécessaire d'imposer d'autres conditions à la table virtuelle, alors cliquons sur le bouton D'ACCORD dans la fenêtre des paramètres de la table virtuelle. Ensuite, nous devons sélectionner les champs dont nous avons besoin dans le tableau Autonome. Chiffre d'affaires(à savoir: Contrepartie, accord de contrepartie, revenus et dépenses). Pour afficher la liste des champs disponibles dans le tableau que nous avons sélectionné, cliquez sur le symbole « + » à côté de son nom. Après cela, traînons champs obligatoires dans la zone la plus à droite du concepteur de requêtes, appelée : Champs. Si on ouvre le plan comptable, on verra que pour le compte 62 analyses sur Pour la contrepartie c'est Subconto1, et par Accord de contrepartie - Subconto2.

Par conséquent, parmi les champs de la table virtuelle, nous sélectionnons Sous-conto1 Et Sous-conto2. Puisque nous avons besoin de revenus et de dépenses par montant, nous sélectionnons également les champs MontantChiffre d'affairesDt Et MontantChiffre d'affairesKt

Remplissons les alias des champs que nous avons sélectionnés ; pour cela, rendez-vous dans l'onglet Syndicats/Alias et définissez les noms de champs requis.

Puisque dans notre rapport les données seront affichées hiérarchiquement (la Contrepartie est au premier niveau, et tous ses contrats sont au second), nous configurerons l'affichage des données dans la hiérarchie à l'aide des Totaux. Passons à l'onglet dans le concepteur Résultats. Faire glisser dans les champs de regroupement de manière séquentielle Contrepartie Et Accord de contrepartie, et en finale À venir Et Consommation.

Ceci termine le travail dans le constructeur de requêtes, cliquez sur le bouton D'ACCORD et nous voyons que le texte de notre demande apparaît dans le code du programme.

Requête.Texte = "SELECT | Chiffre d'affaires autonome.Subconto1 AS Contrepartie, | Self-supportingTurnover.Subconto2 AS Accord de contrepartie, | Self-supportingTurnover.AmountTurnoverDt AS Réception, | Self-supportingTurnover.AmountTurnoverKt AS Dépense|DE | Registre Comptable Autofinancé (&Début de Période, &Fin de Période, Compte DANS LA HIÉRARCHIE (&Compte 62),) COMME Chiffre d'Affaires Autofinancé.|RÉSULTATS | MONTANT(Revenu), | MONTANT (Dépense) | PO | Contrepartie, | Accord de contrepartie";

Une fois que nous avons fini de rédiger la demande, commençons à remplir les zones Contrepartie de données, Accord de donnéesContrepartie Et Sous-sol. Nous remplirons toutes ces zones avec les données reçues lors de l'exécution de la demande. Puisque notre requête contient des regroupements ( Contrepartie Et Accord de contrepartie) sélectionnez-en les données comme suit :

SelectionCounterpart = Request.Execute().Select(BypassQueryResult.ByGrouping);

De cette façon, nous recevrons des enregistrements avec les totaux pour toutes les contreparties.

Avant de parcourir les exemples de données à l'aide d'une boucle, nous initialisons les variables destinées au calcul des résultats globaux du rapport :

TotalEntrant = 0 ; Consommation totale = 0 ;

Pour que les données du rapport soient affichées avec une hiérarchie (et des rotations selon le « + »), définissons le début du regroupement automatique des lignes du tableur :

TabDoc.StartAutoGroupingRows();

Tous les préparatifs sont terminés, commençons maintenant à explorer les résultats de la requête. Nous allons parcourir en utilisant une boucle Au revoir

Tandis que Select Account.Next() Cycle EndCycle ;

Au début du cycle, réinitialiser les paramètres À venir Et Consommation région Contrepartie de données. A quoi ça sert ? Imaginons une situation où la contrepartie Oncle Vassia, les revenus sont de 10 et les dépenses sont de 5, et pour la contrepartie suivante Oncle Petia il n'y a ni revenu ni dépense, dans ce cas, si nous ne réinitialisons pas les paramètres À venir Et Consommation, puis en ligne par contrepartie Oncle Petia il y aura un revenu de 5 et une dépense de 10.

AreaDataAccount.Parameters.Receipt = 0 ; AreaDataAccount.Parameters.Expense = 0 ;

Après cela, nous remplissons la zone Contrepartie de données données d'élément d'échantillon

FillPropertyValues(AreaAccountData.Parameters,SelectionAccount);

Après avoir rempli les données, vous pouvez afficher la zone dans feuille de calcul, Puisque nous utilisons le regroupement automatique des lignes, nous devons indiquer le niveau de la ligne dans le regroupement (notre rapport aura deux niveaux, pour les contreparties le premier pour les contrats).

TabDoc.Output(AreaDataAccount,1);

Maintenant pour cette contrepartie nous ferons une sélection en fonction de ses contrats.

Accord SelectionCounterparty = SelectionCounterparty.Select(BypassQueryResult.ByGroups);

Nous allons parcourir en utilisant une boucle Au revoir.

While SelectionCounterparty Agreement.Next() Loop EndCycle ;

Dans le cycle des accords de contrepartie, réinitialisons les paramètres À venir Et Consommation, remplissez la zone Contrat de donnéesà partir de l’échantillon et l’afficher dans un tableur au deuxième niveau d’enregistrement.

AreaDataContract.Parameters.Receipt = 0 ; AreaDataContract.Parameters.Expense = 0 ; RemplissezPropertyValues(AreaDataAgreement.Parameters,SelectionCounterpartyAgreement); TabDoc.Output(AreaDataContract,2);

Également dans ce cycle, nous ajouterons les valeurs actuelles aux variables permettant de calculer les valeurs totales des revenus et des dépenses.

TotalReceipt = TotalReceipt + SelectionCounterparty Agreement.Receipt ; TotalExpense = TotalExpense + SampleCounterparty Agreement.Expense ;

Ceci conclut la sortie des données dans la zone Contrepartie de données, Accord de donnéesContrepartie terminé, il ne reste plus qu'à terminer l'auto-regroupement des lignes du tableur.

TabDoc.FinishAutoGroupingRows();

Cycles complets responsables de la sortie des données vers la zone Contrepartie de données Et Accord de donnéesContrepartie ressemble à ça :

TabDoc.StartAutoGroupingRows(); While SelectionAccount.Next() Boucle AreaDataAccount.Parameters.Receipt = 0 ;

AreaDataAccount.Parameters.Expense = 0 ; Sous-sol FillPropertyValues(AreaAccountData.Parameters,SelectionAccount); feuille de calcul.

TabDoc.Output(AreaDataAccount,1);

Accord SelectionCounterparty = SelectionCounterparty.Select(BypassQueryResult.ByGroups); While SelectionCounterparty Agreement.Next() Boucle AreaDataAgreement.Parameters.Receipt = 0 ; AreaDataContract.Parameters.Expense = 0 ;

RemplissezPropertyValues(AreaDataAgreement.Parameters,SelectionCounterpartyAgreement);

TabDoc.Output(AreaDataContract,2); TotalReceipt = TotalReceipt + SelectionCounterparty Agreement.Receipt ; TotalExpense = TotalExpense + SampleCounterparty Agreement.Expense ; Fin du cycle ; Fin du cycle ; TabDoc.FinishAutoGroupingRows(); Reste à afficher les données finales dans la zone

et affichez la zone elle-même vers

L'article abordera les options suivantes pour les objets connectables externes supplémentaires :

  • Traitement externe supplémentaire des parties tabulaires ;
  • Formulaires d'impression externes supplémentaires ;
  • Supplémentaire rapports externes;
  • Traitement externe supplémentaire.

Que sont les traitements externes supplémentaires, les rapports et les formulaires imprimés ?




Pour commencer, je voudrais parler en général de que sont ces traitements externes, rapports et formulaires imprimés ?. Très souvent, lorsque vous travaillez avec une configuration standard, qu'il s'agisse de 1C ZUP ou 1C Enterprise Accounting ou d'une autre configuration, certaines fonctionnalités sont nécessaires qui ne sont pas fournies par les développeurs 1C. Par exemple, vous pourriez avoir besoin formulaire imprimé, qui n'est pas réglementé, mais est utilisé pour les besoins internes de l'organisation. Ou requis d'une certaine manière processus (changer, ajuster) données disponibles dans la base de données. Par exemple, modifier certains détails dans des documents pour la période requise, ce qui n'est pas pratique à faire manuellement lorsqu'il y a une grande quantité d'informations.

Dans ce cas, il existe deux options. D'abord, on peut modifier la configuration elle-même, le programme lui-même. Après cela, il cessera d'être typique et il suffira de le mettre à jour avec ceux de manière simple, dont j'ai parlé, ne fonctionnera pas. Mise à jour Pas configuration typique- il s'agit d'un processus plus long et plus sérieux, donc avec cette approche, vous devrez probablement payer mensuellement un spécialiste 1C pour mettre à jour le programme. Deuxième l'option est de développer ou de demander à développer traitement externe ou sous forme imprimée (rapport). Il s'agit essentiellement d'un module externe, qui est également développé dans le langage de programmation 1C dans le Configurateur, mais n'apporte aucune modification à la configuration standard. Il existe indépendamment de la configuration elle-même. Pour les stocker, des répertoires spéciaux sont utilisés : élément du menu principal « Service » -> « Rapports et traitements supplémentaires ».

Traitement externe supplémentaire pour le remplissage des parties tabulaires

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 :

Voyons maintenant quelles opportunités chacun des quatre disponibles nous offrira. modules externes. Commençons par traitement externe des parties tabulaires. Il me semble que ces traitements de parties tabulaires de documents illustrent le mieux comment on peut modifier assez sérieusement un programme, sans recourir à l'édition de la configuration standard, mais en se contentant uniquement de traitements externes.

Pour que ce soit plus clair, je vais donner un exemple spécifique tiré de ma pratique, dans lequel pour résoudre le problème que j'ai utilisé traitement externe des parties tabulaires. Dans la configuration "1C Salaire et Gestion du Personnel" édition 2.5 il y a un document "Paiement pour les jours fériés et les week-ends"(Ce document a été écrit en détail). Dans sa forme standard, ce document offre la possibilité de remplir automatiquement la partie tabulaire par salariés « Travaillant les jours fériés ».

Le comptable a demandé de mettre en œuvre la possibilité de remplir ce document par les salariés dont les journées de travail devaient tomber le week-end, c'est-à-dire "Travailler le week-end".

Ce fichier a été téléchargé dans le répertoire "Traitement externe des parties tabulaires"(élément de menu « Service » -> « Rapports et traitements supplémentaires » -> « Traitement externe supplémentaire des parties tabulaires »). Lors de la création d'un élément de ce répertoire, il a été indiqué à quel document se rapporte le traitement téléchargé - « Paiement des jours fériés et week-ends de l'organisation », ainsi qu'à quelle partie tabulaire - « Employés ». Dans notre exemple partie tabulaire un document en possède un, mais d'autres documents peuvent en comporter plusieurs, c'est pourquoi il est nécessaire d'indiquer spécifiquement à quel d'entre eux se rapporte le traitement.

Suite à l'ajout de ce traitement au répertoire « Traitement externe supplémentaire pour le remplissage des parties tabulaires » dans le document « Paiement des parties vacances et week-end » lui-même, un bouton « Remplir » apparaîtra avec une liste déroulante dans laquelle il sera possible de lancer ce traitement. Dans notre cas, le bouton « Remplir les dimanches » est disponible dans la liste déroulante. Un appui dessus lance l'algorithme contenu dans le traitement. DANS dans cet exemple La partie tabulaire sera remplie par les salariés dont les jours de travail tombaient un jour chômé. Attention, ce bouton n'existait pas auparavant (capture d'écran ci-dessus).

Ce mécanisme permet de résoudre un très large éventail de problèmes sans avoir à modifier la configuration elle-même. C’est pourquoi je profite assez souvent de cette opportunité pour mettre en œuvre les tâches des clients.

Plaques d'impression externes en option

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 :

Cette option est très similaire à la précédente. Vous avez probablement vu et savez que presque tous les documents et même certains éléments des ouvrages de référence comportent des formulaires imprimés. Ils sont généralement situés dans le coin inférieur droit du formulaire d'un élément de répertoire ou d'un document. Parfois, les formulaires imprimés standards ne suffisent pas. Par exemple, une organisation peut avoir sa propre forme de contrat de travail. Je vous rappelle que le formulaire imprimé type « Contrat de travail » est inclus dans le formulaire annuaire « Salariés ».

Vous pouvez ajouter le vôtre à ces formulaires imprimés du répertoire. A cet effet, un formulaire imprimé externe avec l'extension « .epf » est créé. Ensuite, un élément de répertoire est créé pour cela "Plaques d'impression externes supplémentaires"(élément de menu « Outils » -> « Rapports et traitements supplémentaires ») et un fichier avec l'extension « .epf » est ajouté à cet élément de répertoire. Il est également nécessaire d'indiquer pour quel document ou ouvrage de référence le traitement est ajouté.

De ce fait, dans le cadre des formulaires imprimés des éléments de l'annuaire « Employés », un autre formulaire apparaîtra - « Contrat de travail (Alpha LLC) », qui n'existait pas auparavant. Et elle apparence et le remplissage des données est déterminé par le programmeur dans le fichier « .epf ».

Cette possibilité d'ajouter les formulaires imprimés nécessaires aux documents et aux ouvrages de référence est également très souvent demandée et constitue, à mon avis, une fonctionnalité plutôt pratique des programmes de la plateforme 1C Enterprise.

Rapports externes supplémentaires

Dans ce cas, vous pouvez développer rapport externe. Il s'agit d'un fichier au format « .erf ». C'est ce fichier qui déterminera l'apparence du rapport, quelles données de configuration il utilisera et qu'il demandera à l'utilisateur (par exemple, période, sélection par employé ou par service). Le fichier est créé dans le configurateur 1C dans le langage de programmation 1C.

Un rapport externe peut être stocké dans le cadre de la configuration à l'aide du livre de référence « Rapports externes supplémentaires » (élément de menu « Outils » -> « Rapports et traitements supplémentaires »). Ils ne sont pas liés à un document ou à un ouvrage de référence spécifique ; ces informations ne sont pas obligatoires.

Avec cette option de stockage, l'état est lancé depuis le même répertoire (par double clic).

Vous pouvez également lancer un rapport externe en utilisant l'élément de menu « Fichier » -> « Ouvrir ». Cette option peut être utilisée s'il est plus pratique pour vous de stocker des rapports externes non pas dans le cadre du programme, mais simplement dans des dossiers informatiques.

Traitement externe supplémentaire

Traitements externes ont à peu près la même signification que les rapports externes. Mais contrairement aux rapports, qui servent à visualiser les données base d'informations dans un format convivial, le traitement est destiné à modifier, éditer ou convertir les données de la base d'informations. L'éventail des problèmes résolus à l'aide d'un traitement externe est assez large.

Par exemple, traitement pour le téléchargement des relevés de paiement salaires. Malgré la présence d'un traitement standard dans le ZUP (lire à ce sujet), il peut parfois ne pas convenir à une banque particulière et un traitement externe est développé pour convertir et télécharger les informations dans le format requis.

je t'apporterai un autre exemple traitement complètement simple, mais assez populaire. Si dans 1C ZUP vous ne conservez pas le document « Transfert de l'impôt sur le revenu des personnes physiques au budget » au cours de l'année, alors lors de la génération de l'impôt sur le revenu des 2 personnes physiques pour l'année, le champ « Transféré » pour chaque employé sera nul, ce qui est généralement factuellement incorrect. La saisie du document « Transfert de l'impôt sur le revenu des personnes physiques au budget » pour toute l'année peut s'avérer assez fastidieuse, compte tenu des spécificités du document lui-même. Mais vous pouvez effectuer un traitement externe qui, dans le 2-NDFL généré, remplira simplement le champ « Liste » pour chaque employé, en fonction des valeurs du champ « Calculé ». Les comptables aiment généralement beaucoup cette option.

Le traitement externe a exactement les deux mêmes options de stockage et de lancement : soit utiliser le répertoire "Traitement externe supplémentaire"(élément de menu « Outils » -> « Rapports et traitements supplémentaires »), ou l'élément de menu principal « Fichier » -> « Ouvrir ».

C'est tout pour aujourd'hui !

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

Attention!
Tout traitement à partir des disques ITS est destiné à des fins d'information et exclusivement aux utilisateurs ITS enregistrés.

Sélection et traitement des objets. (Universel)

Recherche des objets dans des documents et des répertoires qui remplissent certaines conditions. Traite les résultats de la recherche.

Convolution de la base d'informations. (Universel)

Effectue le cumul de la sécurité des informations des configurations typiques :

  • UPP 3.1.
  • BP 1.6.
  • UT 10.3.

Enregistrement des modifications pour échange. (Universel)

Edite, en mode application gérée, l'enregistrement des modifications des objets échangés. Vous permet de modifier l'enregistrement actuel sur différents nœuds. Modifie le nombre de messages reçus et envoyés.

Conversion du journal d'activité de l'utilisateur. (Universel)

Convertit un journal des actions de l'utilisateur en programme, dans un langage intégré.

Recherche en texte intégral dans les données. (Universel)

Indexation et recherche de données.

Rechercher et remplacer des valeurs. (Universel)

Recherche et remplace les valeurs de référence dans les objets de sécurité des informations.

Mise en place d'un journal technologique. (Universel)

Crée ou modifie un fichier magazine technologique. Il a la capacité de configurer la création d'un vidage sur incident, de configurer les conditions et les événements, à l'apparition desquels les informations seront enregistrées dans ce journal.

Console de tâches. (Universel)

Surveille les tâches de fond et de routine. Supprime, en crée de nouveaux.

Conversion de traitement externe. (Universel)

Modification des informations confidentielles. (Universel)

Modification sélective ou effacement de la sécurité des informations à partir de certaines informations.

Changement de détails en groupe. (Universel)

Modifie les détails et les parties tabulaires dans les documents et les ouvrages de référence.

Téléchargement et chargement des utilisateurs. (Universel)

Télécharge et charge les utilisateurs de sécurité des informations dans un fichier XML.

Téléchargement de données vers des bases de données externes. (Universel)

Télécharge les structures de données vers des SGBD externes à l'aide d'ADO dans deux modes :

  • Déchargez tout
  • Upload des modifications (permet de synchroniser les modifications du SI d'exploitation avec le SI récepteur). Ce mode utilise les mécanismes du plan d'échange.

Prend en charge les SGBD suivants :

  • MicrosoftSQL
  • IBMDB2
  • Oracle
  • PostgreSQL
  • MySQL

Téléchargement et chargement de données XML. (Universel)

Télécharge et charge des données dans la sécurité des informations, à la fois complètement et partiellement. Utilisé pour transférer des données entre des configurations similaires dans la composition des objets.

Chargement de données à partir d'un tableur. (Universel)

Charge les données dans des répertoires et des parties tabulaires à partir de documents tabulaires.

Fonctionne dans un client lourd en mode application normal.

Demander une console. (Universel)

Fournit une grande aide dans la création de rapports et de requêtes.

Allez dans le menu supérieur Service->->.

Le formulaire de liste de répertoires de traitement externe apparaît. Dans le menu supérieur, appuyez sur le bouton Ajouter.

Le formulaire Ajouter un nouvel objet apparaîtra. Cliquez sur le bouton Ouvrir et sélectionnez le fichier avec le traitement souhaité. Après avoir choisi fichier requis, si nécessaire, précisez le nom du traitement (champ Nom). Après cela, vous devez cliquer sur OK pour enregistrer les modifications apportées.

Après cela, la fenêtre de création d'un élément de répertoire se ferme et vous revenez au formulaire de liste, qui contient déjà le nouveau traitement.

C'est tout ! Le processus d'ajout du traitement à la configuration est terminé. Pour ouvrir ce traitement ultérieurement, suivez l'ancien chemin : Service->Rapports et traitements supplémentaires->Traitement externe supplémentaire.

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

Le traitement externe pour 1C:Enterprise 8 se décline en plusieurs types. Dans cette instruction, je vais vous montrer comment attacher un traitement pour la modification de groupe et un traitement pour remplir des objets spécifiques.

Pour le premier cas, nous ajouterons un traitement de remplissage du répertoire de nomenclature depuis Excel.

Passons à la section appropriée du programme :


Il est nécessaire que le drapeau d'utilisation de rapports et de traitements supplémentaires soit activé ; suivez le lien hypertexte vers la liste des objets externes :

Dans la liste cliquez Créer:


Dans la boîte de dialogue qui s'ouvre, sélectionnez le fichier souhaité à traiter :


La fiche du nouvel objet externe au programme est remplie, il ne reste plus qu'à le configurer hébergement(sections du programme à partir desquelles le traitement sera disponible) :


Sélectionnez une section arbitraire (ou plusieurs) pour le placement :


Écrivez et fermez la fiche de l'objet externe :


Ouvrons maintenant le traitement depuis l'interface :


La liste est vide, cliquez Personnalisez la liste:


Choisissez notre traitement :


Il est désormais disponible à la sélection. Pour ouvrir le traitement, vous devez cliquer sur Exécuter:


Voyons maintenant comment le traitement de remplissage (modification) d'objets spécifiques est ajouté. Par exemple, prenons le traitement externe, qui attache des analyses à des éléments sélectionnés de répertoires ou de documents système. Le début de l'ajout d'un tel traitement n'est pas différent de l'option précédente. La différence est que dans ce cas l'emplacement est renseigné automatiquement (et non par la section du programme, mais par les types d'objets de la base de données) :


Si vous le souhaitez, la liste des emplacements peut être ajustée ( n'ajoutez pas d'emplacement supplémentaire, mais supprimez les éléments inutiles):


Pour accepter le changement, la carte d'objet externe doit également être notée.

Pour utiliser le traitement, vous devez accéder à un objet de base de données spécifique (à partir de la liste de placement), cliquer sur Remplir dans le panneau de commande et sélectionnez la commande :

Pour connecter les traitements externes, les rapports, les formulaires imprimés pour la plateforme 1C:Enterprise 8.2, il a été développé nouvelle norme travailler dans application gérée(standard du sous-système bibliothèques standards 8.2). Des « chips » sont apparues qui n'existaient pas auparavant, à savoir :

    Le type de traitement a été élargi : remplissage d'un objet, création d'objets associés. Désormais, dans les documents, vous pouvez ajouter vos propres boutons pour remplir l'intégralité du document, ainsi que vos propres boutons pour saisir sur la base.

    Un traitement peut contenir une liste de plusieurs opérations (commandes), c'est-à-dire vous pouvez effectuer un seul traitement, où il y aura plusieurs éléments de menu à la fois : impression et bon de livraison, impression d'un ticket de caisse, impression d'une carte de garantie. (Note de l'auteur : plus tôt dans l'ancien standard, pour faire de telles choses, vous deviez tout faire en même temps (même si cela n'était pas nécessaire) et vous n'aviez pas besoin de fermer ou de dessiner votre propre formulaire, qui avait les boutons nécessaires pour sélectionner l'opération requise)

    Vous pouvez saisir et remplir des objets en fonction de plusieurs objets à la fois, plutôt qu'un seul.

    Vous pouvez définir un calendrier d'exécution des commandes du serveur (sur le serveur).

    Vous pouvez définir le mode sur « Sûr » ou « Unsafe », c'est-à-dire exécuter le traitement en tenant compte des droits restreints ou les ignorer (comme pour les droits complets)

    Vous pouvez définir le mode d'utilisation : Ne pas utiliser, débogage, utiliser. "Ne pas utiliser" - pas en fonctionnement, "Débogage" - visible uniquement par les administrateurs, "Utiliser en fonctionnement".

    Peut être utilisé dans les formulaires d'objet et dans les formulaires de liste

    Vous pouvez lier un traitement ou un rapport à tous les objets à la fois.

    Vous pouvez configurer un accès rapide à certaines commandes de traitement externes.

    Il est possible de spécifier dans quelles sections de l'interface des traitements et rapports supplémentaires doivent apparaître.

Alors, que peut-on connecter aux configurations standards ?

Du point de vue plateforme, vous pouvez connecter :

  • traitement externe (fichiers avec l'extension « epf ») ;
  • rapports externes (fichiers avec l’extension « erf »).

Du point de vue du domaine applicatif (configuration), vous pouvez connecter des traitements externes et des reportings avec le formulaire* :

  • Traitement supplémentaire
  • Rapport supplémentaire
    • Juste un rapport supplémentaire
  • Remplir un objet
    • Ses propres boutons pour remplir les objets (documents), auparavant il n'y avait que des boutons pour remplir la partie tabulaire.
  • Formulaire imprimable
    • Formulaire imprimable supplémentaire (un bouton « Formulaires imprimables supplémentaires » est ajouté)
  • Rapport
    • Un rapport attaché aux objets (répertoires et documents).
  • Création d'objets liés
    • Votre propre saisie basée sur (le bouton « Créer des objets associés... » est ajouté à l'élément de menu « Saisie basée sur »)

*en utilisant l'exemple de la rédaction « Gestion d'une petite entreprise éd. 1,2"

Voyons comment tout cela fonctionne. Pour connecter le traitement externe et le reporting, il existe une norme qui décrit l'interface d'interaction avec le traitement externe et le reporting, et il existe des exigences générales pour tous les types, et il existe des exigences spécifiques pour chaque type de traitement ou de rapport.

Commençons par exigences générales pour tous types de traitements et de reporting. Afin de créer un plug-in de traitement externe ou un rapport, vous devez déclarer la fonction d'export InformationOnExternalProcessing() dans le module objet, qui doit remplir une structure décrivant le comportement. Un exemple de cette fonction :

Fonction InformationOnExternalProcessing() Exportation
RegistrationData = Nouvelle structure ;
Registration Data.Insert("Nom", "Exemple d'utilisation du traitement externe 8.2.");
RegistrationData.Insert("SafeMode", True);
RegistrationData.Insert("Version", "1.0");

//Traitement supplémentaire
//Rapport supplémentaire
//Remplir l'objet
//Rapport
//ImprimerFormulaire
//Création d'objets associés
RegistrationData.Insert("View", "AdditionalProcessing");

Registration Data.Insert("Information", "Traitement effectué selon le nouveau standard de connexion des traitements externes 8.2. Exemple de traitement ""Hello Word"" ");

///////////// commandes ////////////////////////
tzCommand = Nouveau ValueTable ;
tzCommand.Columns.Add("Identifiant");
tzCommand.Columns.Add("Vue");
tzCommand.Columns.Add("Modificateur");
tzCommand.Columns.Add("Afficher l'alerte");
tzCommand.Columns.Add("Utilisation");


stringCommands.Identifier = "1";
stringCommands.View = "commande ""Bonjour Word"" (OpenForm)";

stringCommands.Use = "OpenForm";

CommandString = tzCommand.Add();
stringCommands.Identifier = "2";
stringCommands.View = "command""Bonjour Word""(CallClientMethod)";
stringCommands.ShowAlert = True ;
stringCommand.Use = "CallClientMethod";

CommandString = tzCommand.Add();
stringCommands.Identifier = "3" ;
stringCommands.View = "command""Bonjour Word""(CallServerMethod)";
stringCommands.ShowAlert = True ;
stringCommand.Use = "CallServerMethod";

RegistrationData.Insert("Commandes", tzCommands);

////////////// objectif (dans quels objets il est utilisé) ////////////////////////
//pour imprimer des formulaires, remplir, saisir des objets associés
//ArrayAssignments = Nouveau tableau ;
//Tableau d'affectations.Add("Document.*"); // tous les documents sont attribués
//Tableau d'affectations.Add("Document.Advance Report");
//Tableau d'affectations.Add("Document.Commande de l'acheteur");
//Registration Data.Insert("Destination", Tableau de destination);

Retourner les données d'enregistrement ;

FinFonction

Ainsi, comme vous pouvez le voir, la fonction remplit la structure des données d'enregistrement, qui contient les éléments (paramètres) suivants :

    Nom – nom court du traitement

    Version - informations sur la version de traitement

    Mode sans échec– responsable de savoir si le traitement doit être effectué en tenant compte des droits de l'utilisateur. Si la valeur est False, le traitement ou le reporting sera effectué sans tenir compte des restrictions de droits (comme pour les droits complets). Cette fonctionnalité est apparue précisément dans la version 8.2, où lors de la création de traitements externes et de rapports, le deuxième paramètre précise le mode.

    Type – type de traitement ou de rapport. J'ai listé les valeurs possibles en début d'article, et les valeurs possibles à paramétrer dans le code sont indiquées dans les commentaires

  • Commandes – un tableau de valeurs qui répertorie les commandes utilisées. Colonnes du tableau de valeurs :
    • Identifiant – n’importe quelle chaîne (identifiant de commande)
    • Vue - description de la commande
    • Modificateur - chaîne (utilisée pour les formulaires imprimés supplémentaires)
    • Afficher la notification – la fenêtre de notification apparaîtra avant le début et après la fin de l'exécution (pour les commandes client et serveur sans formulaire)
    • Utilisation – mode de démarrage du traitement :
      • OpenForm – le formulaire de traitement s’ouvrira
      • CallClientMethod – appelle la méthode d'exportation client du formulaire
      • Call ServerMethod – appelle la méthode d'exportation depuis le module de traitement

En fonction du type de traitement ou d'état, ainsi que du mode de lancement de la commande « Utiliser », des méthodes définies dans le module formulaire ou le module objet sont appelées. Liste paramètres transmis est également différent. Je joins des exemples d'appels et d'utilisation de tous types de traitements.



2024 wisemotors.ru. Comment cela marche-t-il. Fer. Exploitation minière. Crypto-monnaie.