Maison / Sol / Informations comptables. Comment utiliser un rapport universel Structure des rapports universels

Informations comptables. Comment utiliser un rapport universel Structure des rapports universels

Rapports universels en 1C. Possibilité de mettre en place des rapports en 1C. Modification des regroupements, des indicateurs, des sélections, des tris. Mise en place de regroupements. Paramétrage des sélections. Dans la configuration "Trade Management", possibilité d'utiliser les propriétés et catégories de répertoires et de documents.

Toute entreprise est confrontée à la nécessité de faire le point. Le comptable doit calculer les profits et les pertes, le magasinier et le marchandiseur doivent analyser la disponibilité des marchandises dans l'entrepôt et le vendeur doit recevoir un rapport sur les produits pour la journée. Le gestionnaire analyse les ventes et planifie les stocks. Le processus de synthèse des résultats dans le programme est extrêmement simplifié et ne pose pas de difficultés. Les informations qui en résultent sont collectées dans de nombreux rapports.

1C : Enterprise 8.1 en tant que programme d'aide à la décision propose une grande variété de rapports. La « Configuration de gestion du commerce » met en œuvre un système de rapports universels, qui constituent un outil permettant d'analyser presque tous les aspects de l'activité commerciale et du chiffre d'affaires d'une entreprise.

Les rapports suivants sont disponibles :

Restes de la nomenclature ;

Ventes;

Mouvements de nomenclature ;

Situation actuelle ;

Historique des ventes ;

Comptabilité nomenclature ;

Coût de l'article;

Prix ​​des articles ;

Toutes les données sur la contrepartie (carte contrepartie) ;

Taux d'échange.

Les rapports peuvent être générés à tout moment et fournir des informations jusqu'à un jour.

Les règles de génération de rapports sont les mêmes. Sélectionnez le type de rapport dans le sous-menu déroulant, puis dans la fenêtre qui s'ouvre, précisez la période de génération et cliquez sur le bouton « Générer ».

Alors, qu’est-ce qu’un rapport universel ?

Un rapport universel est un objet de configuration qui peut être utilisé indépendamment et dans d'autres rapports. Ce rapport est présent dans de nombreuses configurations d'entreprise 1C : Trade Management, Enterprise Accounting, Manufacturing Enterprise Management, etc.

Considérons par exemple le rapport « Déclaration des lots de marchandises en entrepôts (comptabilité de gestion) ».

Le rapport affiche des informations complètes sur la distribution des marchandises par lot. Le rapport peut afficher des informations complètes sur les fournisseurs de marchandises et sur la manière dont les marchandises sont réparties entre les lots. Le rapport peut être regroupé par statut de lot. Si la comptabilité par lots est gérée par entrepôts, le rapport peut être affiché par entrepôt.

Dans les paramètres de sélection rapide du rapport, vous pouvez définir la sélection par un ou plusieurs documents de livraison.

Pour que le rapport affiche des informations sur les documents de mouvement en fonction des marchandises reçues et expédiées, dans les paramètres du rapport sur l'onglet « Champs », vous devez ajouter « Document de mouvement (enregistreur) » à la liste.

Les données quantitatives dans les rapports peuvent être affichées en unités de mesure de base, en unités de stockage de solde et en unités de reporting. Le coût des marchandises calculé au moment de l'expédition est affiché comme la somme des marchandises. Cela prend également en compte les coûts supplémentaires qui affectent le coût des marchandises.

Dans le rapport, vous pouvez également définir des regroupements supplémentaires par statut de lot, ainsi que par fréquence : jour, semaine, mois, etc.

Le rapport peut être généré à partir de données de gestion, comptables, fiscales ou comptables internationales.

Ouvrons le formulaire de rapport :




Pour générer un rapport, cliquez sur le bouton « Générer » :

Voici à quoi ressemble notre rapport jusqu’à présent.

Lorsque vous cliquez sur le bouton « Paramètres », le formulaire de configuration du rapport s'ouvrira :

Afin de définir la période ou l'intervalle à partir de quelle date jusqu'à quelle date les données seront affichées dans le rapport, vous devez cliquer sur le bouton :

La période détermine l'intervalle de dates pour lequel les informations sont affichées dans la liste.

La boîte de dialogue comporte deux onglets. L'intervalle peut être défini sur n'importe lequel d'entre eux.

Sur l'onglet " Intervalle" - l'installation s'effectue en sélectionnant le début et la fin de l'intervalle de temps.

Sur l'onglet " Période" - indique la période pour laquelle les données seront sélectionnées.

Si vous souhaitez que la liste s'ouvre avec l'intervalle de visibilité sélectionné, sélectionnez le " Utilisez ce paramètre de période lors de l'ouverture ".

Le formulaire « Configuration de la période » s'ouvrira :


Nous sélectionnons les données dont nous avons besoin et appuyons sur le bouton « OK ».

"Options":

  • négatif en rouge - toutes les valeurs négatives (nombres) seront surlignées en rouge ;
  • afficher les totaux globaux - à la fin de la liste, le total global pour tous les indicateurs sera affiché ;
  • afficher des enregistrements détaillés - afficher des données détaillées pour chaque produit ;
  • utiliser les propriétés et les catégories

"Indicateurs":

Les indicateurs du panneau de commande définissent des marques ;

Les indicateurs du panneau de commande sont décochés ;

Monter (Ctrl + Maj + Haut);

Descendre (Ctrl + Maj + Bas) ;

Trier par ordre croissant ;

Trier par ordre décroissant.

"Performance":

Nous cochons les cases que nous voulons voir dans le rapport généré.

« Regroupements de lignes » :

Ajouter;

Supprimer le courant ;

Monter (Ctrl + Maj + Haut);

Descendre (Ctrl + Maj + Bas).

Caractéristiques du « Rapport universel » dans le programme de comptabilité 1C 8.3.

Dans le programme 1C 8.3 Enterprise Accounting 3.0, dans la section « Rapports », il existe de nombreux rapports différents pour chaque type d'activité. En principe, ils suffisent pour la comptabilité quotidienne. Mais parfois, pour analyser un problème particulier, il est nécessaire d'approfondir, allant même jusqu'à comparer, par exemple, les inscriptions dans un document et dans les registres qu'il affecte. Et il arrive parfois que les rapports standards ne suffisent tout simplement pas.

Pour une telle analyse approfondie des données, ou pour créer votre propre rapport dans le programme 1C 8.3, il existe un « Rapport universel ». Je vais considérer ses capacités dans cet article.

Description générale du rapport universel en 1C 8.3

Tout d'abord, voyons où trouver un rapport universel ? Si nous allons dans le menu « Rapports » puis cliquons sur le lien « Rapport universel », nous verrons cette fenêtre :

Jetons un coup d'œil rapide à ses commandes.


Nous en avons fini avec la ligne supérieure.

  • Ci-dessous, le bouton le plus intéressant est « Afficher les paramètres ». Il vaut mieux montrer avec un exemple ici

Instructions pour la mise en place d'un rapport universel 1C 8.3

Puisque nous travaillons dans le programme 1C : « Enterprise Accounting 3.0 », nous nous intéressons principalement aux registres comptables. Dans la configuration 3.0, un seul s'offre à nous : « comptabilité et comptabilité fiscale ». Choisissons-le. Regardons le chiffre d'affaires du compte 10.01 « Matériaux ».

Sélectionnez une période. J'aurai cela tout au long de 2012. Ensuite, cliquez sur le bouton « Afficher les paramètres » :

Pour obtenir les noms des matériaux, on sélectionne le regroupement avec le 1er sous-conto. C'est dans celui-ci que est stocké le nom, ou plutôt un lien vers la nomenclature.

Allez dans l'onglet « Sélections » :

Ici, nous devons indiquer que nous voulons uniquement voir le score 10,01.

Si vous le souhaitez, vous pouvez spécifier ici autant de conditions de sélection que vous le souhaitez.

Cliquons sur le bouton Générer et voyons ce que nous avons obtenu :

On constate que le rapport contient trop de colonnes inutiles. Tels que la comptabilité des devises, la comptabilité fiscale, etc. Dans cet exemple, ces enregistrements ne sont pas conservés et nous souhaitons supprimer ces colonnes du rapport.

On retourne dans les paramètres et on passe immédiatement dans l'onglet « Indicateurs » :

Nous supprimons les cases à cocher des colonnes que nous n'avons pas besoin d'afficher.

Dans l'onglet « Générer », vous pouvez préciser le champ par lequel le tri aura lieu. Par exemple, pour que les matériaux apparaissent par ordre alphabétique :

Cliquez sur « Générer » :

Nous obtenons le résultat souhaité. De cette façon, vous pouvez obtenir un grand nombre d'options de rapport.

Le rapport peut désormais être imprimé ou envoyé par courrier électronique.

Si vous sélectionnez ces nombres dans les colonnes avec des nombres, la somme des nombres sélectionnés apparaîtra en haut dans le champ avec l'icône « Somme ».

Basé sur des matériaux de : programmist1s.ru


Mots-clés : Rapport universel, Rapport général, Rapport Soldes et Chiffre d'affaires, Rapport Liste CrossTable, Soldes et Chiffre d'affaires, Liste croix/tableau

La plupart des rapports reposent sur les mêmes principes de base. Le moyen le plus rapide de développer un rapport consiste à utiliser le générateur « Output Form Designer » intégré à la plateforme. Cependant, lors du développement (ou de la modification) d'une configuration standard, les programmeurs sont tenus d'unifier le code du programme, ainsi que les formes d'ouvrages de référence, de documents et de formulaires de rapport de sortie. Par conséquent, dans les configurations typiques, le code de programme fréquemment utilisé est placé dans des modules communs et des rapports « universels » spéciaux sont utilisés pour unifier les formes de sortie des rapports.
L'ensemble des rapports dans les configurations standard peut être divisé en rapports générés sur la base de rapports généraux, lorsque toutes les fonctions de génération du formulaire de sortie et des paramètres sont transférés vers le module externe du rapport général, et ceux générés à l'aide du générateur, lorsque toutes les fonctions générant le formulaire de sortie sont contenues dans le module objet.
Dans UT et UPP, il existe deux rapports généraux : « Rapport sur les soldes et les chiffres d'affaires (ReportRemainsAndTurnovers) » et « Rapport sur le tableau croisé de la liste (ReportListCrossTable) ». Le premier « Rapport des soldes et des chiffres d'affaires (Rapport des soldes et des chiffres d'affaires) » est destiné à générer des rapports linéaires du type « Solde de départ – Revenus – Dépenses – Solde final », avec des regroupements affichés par lignes. Le deuxième rapport « Liste / tableau croisé (ReportListCrossTable) » est conçu pour afficher des tableaux croisés, lorsque les regroupements sont développés non seulement par lignes, mais également par colonnes.

Structure des rapports universels

Examinons les détails, les éléments de formulaire et les procédures des modules de reporting universels. La composition des détails et des fonctions des rapports est quelque peu différente, donc les différences entre « Liste / tableau croisé (ReportListCrossTable) » et « Rapport sur les soldes et les chiffres d'affaires (ReportRemainsAndTurnovers) » seront données ci-dessous les descriptions des détails généraux, des fonctions et éléments de forme.
Détails du rapport universel :
  • « RegisterName » - chaîne, nom du registre d'accumulation à partir duquel nous obtenons des données
    « Date de début » – la date à partir de laquelle l'échantillonnage des données commence
  • « DataCon » – la date pour laquelle les données sont échantillonnées. Ceux. période de génération du rapport de « DataStart » à « DataConk »

  • « Report Builder » – tapez Report Builder, cet attribut contient une instance de l'objet Report Builder à l'aide de laquelle les informations sont générées dans la partie tabulaire, les paramètres du rapport sont gérés (regroupements, sélections, tri), ainsi que l'apparence de le rapport est maîtrisé (affichage des résultats pour tous les niveaux, coloration des groupes)
  • « UsePropertiesAndCategories » – Booléen, destiné à affiner la sélection des données du rapport par propriétés et catégories d'objets. Après avoir spécifié ce paramètre dans les paramètres du rapport, vous avez la possibilité de sélectionner certaines propriétés et catégories d'objets pour le regroupement, la sélection et le classement.

  • « SavedSettings » – une structure dans laquelle sont placés les paramètres qui sont enregistrés à la fermeture du rapport et restaurés à la prochaine ouverture.
  • « ColorDimensions » – Booléen, définir cet attribut sur True indique que lors de l'affichage des lignes de regroupements et de champs, ils doivent être colorés pour une meilleure présentation des informations à l'écran

  • « OutputIndicatorsInLine » – booléen, indique la possibilité d'afficher des regroupements sur une seule ligne
  • « Afficher les champs supplémentaires dans une colonne séparée » – booléen, si des champs supplémentaires sont spécifiés dans les paramètres du rapport, ils doivent être affichés dans des colonnes différentes

  • « Totaux de sortie pour tous les niveaux » – Booléen, pour certains regroupements vous pouvez spécifiquement interdire la sortie de chiffres pour les indicateurs, cet attribut supprime cette interdiction
  • « ShowTitle » – Booléen, indique s'il faut afficher ou non le titre à l'écran (réglable par le bouton « Titre » sur le formulaire de rapport)

  • La partie tabulaire «Indicateurs» - contient une liste d'indicateurs affichés à l'écran

  • Dans le rapport « Liste croix/tableau (ReportListCrossTable) » :
  • "Utiliser des regroupements d'intervalles (UseIntervalGroups)" - booléen, indique la possibilité d'afficher les données par intervalles de période
  • La partie tabulaire « Intervalles » - contient une liste d'intervalles

Formulaires de déclaration universels :
« FormMain » – la principale forme de sortie de données.
Détails « FormMain » :
  • "ReportObject" - l'objet principal du rapport, un lien vers "ReportRemainsAndTurnover" ou "ReportListCrossTable"

  • Le module formulaire contient les variables suivantes :
  • "Hauteur du titre" - nombre, nombre de lignes dans le titre, cette variable est utilisée lorsque vous devez masquer/afficher le titre du rapport dans un tableur
  • "DécryptageWindowIdentifier"

  • « Formulaire de paramètres » - lien vers le formulaire de paramètres
  • "Ne pas remplir les paramètres lors de l'ouverture" - Booléen, la variable est utilisée lorsqu'il n'est pas nécessaire de renseigner les paramètres initiaux du rapport. A la première ouverture, la variable est FALSE, lors du décryptage du rapport, la variable sera définie sur TRUE

  • "Structure des liens des éléments avec des données" - une structure qui contient des données indiquant quels éléments du formulaire correspondent aux détails du rapport

  • Éléments du formulaire « FormMain » :
  • « Form CommandBar » – contient des boutons de contrôle de formulaire :
    o Menu « Sous-menu » (Actions) – contient une liste des actions possibles du formulaire
    o Bouton « Générer » – lorsqu'il est enfoncé, génère un rapport
    o Bouton « Sélection » – ouvre/ferme le panneau de sélection
    o Bouton « Titre » – ouvre/ferme les lignes avec le titre du rapport dans la section tableau
    o Bouton « Paramètres » - ouvre le formulaire de paramètres du rapport
    o Boutons « RestoreSettings », « SaveSettings » - enregistrer et restaurer les paramètres du rapport
    o Bouton « Aide (Action1) » – appelle l'aide sur le rapport
  • "Période de : (DateStart)", "à : (DateCon)" - champ de saisie, saisissez la date de début/fin de la sélection des données pour le rapport

  • "Section comptable (RegisterName)" - champ de sélection, nom du registre pour lequel le rapport est généré
  • "Panneau de sélection" - un panneau sur lequel des éléments sont placés pour mettre en œuvre un mécanisme d'accès rapide aux sélections de rapports

  • "DocumentResult" - un document tabulaire dans lequel les données du rapport sont affichées
Module de formulaire "FormMain":
Listons les procédures :
  • "BeforeOpening" - gestionnaire d'événements avant d'ouvrir le formulaire. Contient le code exécuté pour initialiser les paramètres initiaux du rapport. Restaure les données enregistrées, attribut « RegisterName »

  • "À l'ouverture" - gestionnaire d'événements lorsque le formulaire est ouvert
  • « UpdateReport » - la procédure génère un rapport et met à jour le document tabulaire « DocumentResult »

  • « Afficher la sélection » - afficher/masquer le panneau du formulaire de sélection
  • "Fill ObjectByDialog" - remplit les détails du rapport en utilisant les détails du formulaire

  • "Fill in DialogBy Object" - remplir les détails du formulaire à l'aide des détails du rapport
  • "Titre de sortie" - affiche le titre du rapport

  • "GenerateFormTitle" - génère le texte du titre
  • "AfterRestoringValues" - après avoir restauré les valeurs sur le formulaire. Dans cette procédure - le gestionnaire d'événements du formulaire, vous pouvez insérer du code qui définira les valeurs du rapport et les détails du formulaire après l'ouverture du formulaire de rapport. Les valeurs enregistrées sont généralement placées dans l'attribut SavedSettings et après avoir restauré le formulaire, tous les paramètres sont placés dans l'attribut SavedSettings.

  • "Before SavingValues" est un gestionnaire d'événements de formulaire, exécuté lorsque le formulaire est fermé et que les valeurs de l'attribut SavedSettings sont enregistrées
  • "Traitement des alertes" - gestionnaire d'alertes

  • "ButtonSettingPeriodPress", "SettingsField1OnChange", "SettingsFieldWith1OnChange", "SettingsFieldBy1WhenChange", "ComparisonViewField1WhenChange" - gestionnaires d'événements pour les éléments de formulaire
  • « DocumentResultDecryptionProcessing » - gestionnaire d'événements pour l'événement « DecryptionProcessing » du champ de document de feuille de calcul « DocumentResult »

« FormSettings » - un formulaire destiné à créer un rapport, appelé lorsque vous cliquez sur le bouton « Paramètres » dans le formulaire de rapport principal.
Détails de « FormConfiguration » :
  • "ReportObject" - rapport, lien vers "ReportRemainsAndTurnover" ou "ReportListCrossTable"


  • "CallingReport" - type arbitraire
  • "IntervalGrouping" - type de chaîne

  • "IntervalField" - type arbitraire
  • "SelectedIntervals" - tapez un tableau de valeurs. Lié à l’élément de formulaire SelectedIntervals dans l’onglet Intervalles de regroupement.

Éléments « FormSettings » :
« Panneau de rapport (Panneau de rapport) » contient les onglets suivants :
L'onglet « Général » contient les éléments suivants :
  • "Période de : (DateStart)", "à : (DateCon)" - champ de saisie, date de début et de fin de l'échantillonnage des données du rapport. Les données sont associées aux détails du rapport « DataStart » et « DataCon »

  • « Section comptable (RegisterName) » est un champ de sélection, les données de l'élément sont associées à l'attribut de rapport « RegisterName », contient le nom du registre pour lequel le rapport est généré. Si "FormSettings" est appelé à partir d'un rapport externe, ce champ n'est pas disponible pour l'affichage et la modification.
  • "Utiliser les propriétés et les catégories (UsePropertiesAndCategories)" - case à cocher, définit l'indicateur d'utilisation des propriétés et des catégories d'objets, les données de cette case à cocher sont associées aux données de l'attribut de rapport "UsePropertiesAndCategories"

  • "Dimensions de couleur (ColorDimensions)" - case à cocher, les données sont associées aux détails du rapport "ColorDimensions", si la case est cochée alors les niveaux de regroupement affichés dans la feuille de calcul seront surlignés en couleurs
  • « Totaux de sortie pour tous les niveaux (OutputTotalsAcrossAllLevels) » - case à cocher, si cochée, les totaux pour tous les niveaux de regroupements sont affichés dans une feuille de calcul, associée à l'attribut de rapport « OutputTotalsAcrossAllLevels »

  • "Sortie dans différentes colonnes (Sortie dans différentes colonnes)" - case à cocher, par défaut les valeurs des indicateurs sont affichées dans une cellule, lorsque cette case est cochée, les valeurs de l'indicateur seront affichées dans deux cellules
  • "Liste des indicateurs (Indicateurs)" - partie tabulaire, contient une liste d'indicateurs

  • Dans le « Rapport Liste / Tableau croisé (ListCrossTableReport) » :
  • "Période (DateStart)" - champ de saisie de date, destiné à sélectionner une période. La visibilité de ce champ est régulée par la variable du module « mPeriodInputMode », en fonction de la valeur de cette variable dans ce champ vous pouvez sélectionner une période par incréments de jour, mois, trimestre, année
Onglet « Groupes » :
  • "Dimensions de ligne (Report Builder.Row Dimensions)" - type de dimensions du Générateur de rapports, dimensions définies par lignes de rapport

  • Dans le rapport « Liste / tableau croisé (ReportListCrossTable) » :
  • «Dimensions de colonne (Générateur de rapports. Dimensions de colonnes)» - type de dimensions du Générateur de rapports, dimensions définies par colonnes de rapport

  • Dans le rapport « Liste / tableau croisé (ReportListCrossTable) » : si l'attribut
  • "Utiliser IntervalGroups" est défini sur "True", le signet devient alors disponible
"Intervalles de regroupement" :
  • "Nom (IntervalField)" - champ de sélection. Lors de l'ouverture du formulaire, celui-ci est renseigné avec les dimensions de la collection « Report Builder.AvailableFields » dont le nom commence par « IN ».

  • « SelectedIntervals » - tableau de valeurs. Lors du changement de « Nom (IntervalField) », la liste des intervalles sélectionnés est renseignée
Onglet « Sélection » :
  • "Sélection (ReportBuilder.Selection" - tapez Selection. Sélection du générateur de rapports

Onglet « Champs » :
  • "SelectedFields (Report Builder.SelectedFields)" - type de champ du générateur de rapports. Champs à afficher dans le rapport

  • "Afficher les champs supplémentaires dans une colonne séparée (OutputAdditionalFieldsINSeparateColumn)" - la case à cocher, lorsqu'elle est cochée, affiche les champs dans des colonnes séparées
Onglet « Tri » :
  • "Commande (ReportBuilder.Order)" - tapez Commande. Tri des regroupements dans un rapport

Le module « FormsSettings » contient les procédures et gestionnaires d'événements suivants :
  • "Fill DialogByObject" - remplit la boîte de dialogue en fonction des valeurs des détails du rapport

  • "Avant l'ouverture" - gestionnaire de l'événement "Avant l'ouverture" du formulaire de rapport
  • "RegisterNameOnChange", "ButtonPeriodSettingPress", "BasicFormActionsOK", "UsePropertiesAndCategoriesWhenChange", "CommandPanelListIndicatorsSetAll", "CommandPanelListIndicatorsRemoveAll", "SelectionValueStartofSelection", "SelectionBeforeDeleting", "StartDateOnChange", " DateConOnChange - gestionnaires d'événements pour l'élément de formulaire correspondant

  • Dans le module de formulaire, la variable Liste des registres est également initialisée (fonction Obtenir la liste des registres et des restes) et spécifiée sous forme de liste pour sélectionner l'élément de formulaire « Section Comptabilité (Nom du registre) ».

  • Dans le rapport « Liste / tableau croisé (ReportListCrossTable) » :
  • "Sélectionner les intervalles" - la procédure génère une liste d'intervalles sélectionnés dans l'attribut "Intervalles sélectionnés", appelé lors de la modification du champ de sélection "Nom (IntervalField)"
  • "InsertIntervalsByName" - la procédure est appelée avant de générer le rapport, remplit la partie tabulaire "Intervalles"

  • « ButtonPeriodSettingPress » - gestionnaire pour appuyer sur le bouton de réglage de la période
  • "PlusPeriodPress", "MinusPeriodPress" - gestionnaire pour appuyer sur le bouton "+", point "-"

  • « IntervalFieldOnChange », « SelectedIntervalsAfterDeleting », « SelectedIntervalsWhenEditingCompleted », « SelectedIntervalsInBorderOnChange » - gestionnaires d'événements pour les éléments de l'onglet « Intervalles de regroupement »

  • Le champ de sélection « IntervalField » est initialisé dans le module formulaire.
Module objet de rapport :
Variables du module qui affectent la génération du rapport :
  • "mTableIndicators" - un tableau de valeurs, contient tous les indicateurs possibles, est rempli par défaut avec les indicateurs de la section tabulaire "Indicateurs"

  • "NP" - réglage de la période, utilisé lors de l'appel du "Bouton Paramètres de période"
  • "mAssignment Match" - une correspondance contenant des affectations de propriétés et de catégories aux noms

  • « mStructure de relation entre indicateurs et dimensions » - correspondance, contient la connexion des indicateurs et des mesures. Utilisé lorsque vous devez afficher les valeurs de certains indicateurs uniquement dans des lignes avec certains regroupements
  • "mArrayWidths of Columns" - un tableau de largeurs de colonnes d'une feuille de calcul à enregistrer entre la génération du rapport. Utilisé lors de la mise à jour d'un rapport afin de conserver la largeur des colonnes, y compris celle définie par l'utilisateur

  • "mInitialReportLayout" : la mise en page utilisée pour le rapport est par défaut "Layout", mais peut être remplacée. La variable est nécessaire si vous comptez utiliser une mise en page différente de la mise en page originale de l'état universel « Mise en page »
  • "mReportName" - chaîne, titre du rapport

  • "mSelectRegisterName" - Booléen, signe de sélection (modification) d'un nom de registre (type de rapport), affecte la visibilité de l'élément de formulaire de configuration "Accounting Section (RegisterName)"
  • « mSelectUseProperties » - Booléen, signe de sélection (modification) de l'indicateur d'utilisation des propriétés et des catégories

  • « FieldFormatStructure » - une structure qui stocke le format des champs de types primitifs, utilisée pour formater les champs de type date dans une représentation sous forme de chaîne
  • "mStructureForSelectionByCategories" - une structure conçue pour connecter les sélections du Builder aux catégories des tables connectées

  • Dans le rapport « Liste / tableau croisé (ReportListCrossTable) » :
  • « mStructure des groupes non affichables » - une structure qui stocke une liste de ces groupements qui n'ont pas besoin d'être affichés. Il est utilisé dans les cas où il faut sauter des totaux, par exemple Nomenclature - Caractéristiques - Série : les totaux pour la nomenclature ne sont pas nécessaires, uniquement pour les trois
  • "Types de champs d'intervalle correspondants" - correspondance

Procédures et fonctions du module de rapport :
  • "Remplir les paramètres initiaux" - la procédure remplit les paramètres initiaux du rapport. Appelé dans le module formulaire de rapport avant l'ouverture du formulaire (le gestionnaire d'événement « BeforeOpen »)

  • « Transcription de traitement d'un rapport standard » - une procédure appelée par le gestionnaire d'événements pour l'événement « Transcription de traitement » du champ « DocumentResult » du document de feuille de calcul.
  • "Remplissez les champs de détails principaux" - une procédure appelée lors de l'initialisation du formulaire de rapport principal (module de formulaire)

  • "Personnaliser" - une procédure qui configure le rapport à l'aide de la structure de paramètres transmise, appelée lors du déchiffrement du rapport
  • "GetReportBuilder" - fonction qui renvoie le générateur de rapports

  • "GetMainForm" - fonction qui renvoie le formulaire principal du rapport
  • « Créer une structure pour enregistrer les paramètres » - une procédure qui crée une structure « Paramètres enregistrés » pour enregistrer les paramètres du rapport. Appelé avant d'enregistrer les paramètres dans le gestionnaire d'événements « BeforeSavingValues ​​». La structure se compose des champs suivants :
    o « RegisterName » – contient le nom du registre
    o « Paramètres du générateur » - contient les paramètres du générateur : champs disponibles, sélections, ordre, etc.
    o « Indicateurs » - partie tabulaire « Indicateurs »
    o "Utiliser les propriétés et les catégories" - un signe d'utilisation des propriétés et des catégories
    o "Afficher les champs supplémentaires dans une colonne séparée" - un signe pour afficher les champs supplémentaires dans une colonne séparée
    o "Afficher les totaux pour tous les niveaux" - afficher les totaux pour tous les niveaux
    o « OutputIndicatorsInLine » - indicateurs de sortie sur une ligne
    o "ColorDimensions" - coloriser les dimensions
    o "TitleTagged" - afficher ou masquer le titre
  • "RestoreSettingsFromStructure" - une procédure qui remplit les paramètres généraux du rapport à partir de la structure des paramètres. Appelé après la restauration des paramètres dans le gestionnaire d'événements « AfterValuesRestored »

  • "GenerateReport" - exécute une requête et génère un document-résultat tabulaire du rapport

  • Dans le rapport « Liste / tableau croisé (ReportListCrossTable) » :
  • « Remplir les indicateurs » est une procédure qui remplit un tableau spécial « mTableIndicators ». Appelé dans la procédure « Remplir les paramètres initiaux » avant d'ouvrir le rapport
  • « GenerateTitle » - procédure qui génère une plaque de titre

  • "Colonne d'en-tête de sortie" - une procédure qui affiche l'en-tête du tableau
  • "OutputIndicators" - une procédure qui affiche les indicateurs dans une ligne de rapport

  • "GetIndicators" - une procédure qui reçoit les valeurs des indicateurs pour les afficher dans le tableau
  • "OutputLine" - affiche une ligne de rapport

Le rapport « Soldes et chiffres d'affaires (ReportBalances and Turnovers) » contient les présentations suivantes :
« Mise en page » - est une mise en page pour afficher les informations dans le tableur « DocumentResult », composée des sections suivantes :
  • « En-tête » est une section horizontale qui contient des cellules dans lesquelles sont affichées des informations sur le nom du rapport, la période de génération, la liste des indicateurs affichés et les regroupements.

  • « En-tête du tableau Général » - contient des cellules dans lesquelles les en-têtes des colonnes du tableau sont affichés. Cette section comprend les sections verticales suivantes : « Champ » - les noms des regroupements et des champs supplémentaires sont affichés, « Solde initial » - indicateurs de solde initial, « Reçu » - indicateurs de revenus, « Dépenses » - indicateurs de dépenses, « Solde final » - indicateurs de solde final. La section comprend également des sous-sections horizontales : "En-tête du tableau" - comprend une rangée de cellules "Champ", "Solde de départ", "Reçu", "Dépenses", "Solde final", "En-tête du tableau en bas" - affiche les noms des éléments supplémentaires. des champs. S’il n’est pas nécessaire d’afficher des champs supplémentaires, seule la section « En-tête du tableau » est affichée
  • « Pied de page » est une section horizontale, utilisée comme section finale lors de l'affichage d'un tableau ; elle n'affiche pas de données, mais contient une ligne continue, complétant ainsi le bord du tableau avec des lignes pleines.

  • "Ligne hiérarchique" - la section horizontale est affichée uniquement si la méthode d'affichage du regroupement de répertoires est "par hiérarchie", affiche un groupe d'éléments de répertoire
  • « Rangée » - section horizontale, affichage de la ligne de regroupement

  • « Ligne de détails » est une section horizontale. Si les paramètres indiquent que des champs supplémentaires doivent être affichés, des champs supplémentaires sont affichés dans cette ligne.
  • « GeneralTotals » - section horizontale, les totaux généraux sont affichés dans cette ligne

  • "Conception des dimensions" - la section horizontale contient la conception des dimensions, si la case "Dimensions de couleur (ColorDimensions)" est cochée dans les paramètres ; pour afficher les regroupements et les champs à différents niveaux, les paramètres de conception des cellules de la section "Conception des Les dimensions »sont utilisées.
  • « Conception détaillée » - la section horizontale contient la conception détaillée

  • « Paramètres du rapport... » - présentations dans lesquelles les paramètres d'affichage des rapports individuels sont spécifiés. Le remplissage des paramètres initiaux du rapport par mise en page est appelé par la fonction « Remplir les paramètres initiaux par mise en page ».
Dans la mise en page, vous pouvez spécifier la composition des indicateurs, des regroupements et des champs à afficher dans le rapport ; elle contient deux sections :
  • « Indicateurs » est une section horizontale dont les cellules indiquent la composition des indicateurs et les paramètres d'affichage des indicateurs dans le rapport. Dans cette section, vous pouvez également spécifier des indicateurs calculés

  • « Regroupement » - section horizontale, contient des cellules répertoriant les regroupements affichés dans le rapport
Le rapport CrossTable/Table List (ReportListCrossTable) contient les présentations suivantes :
«Mise en page» - est une mise en page pour afficher les informations dans le document tabulaire «DocumentResult», composée des mêmes sections que la mise en page du rapport «Rapport sur les soldes et les chiffres d'affaires (Soldes et chiffres d'affaires)», à l'exception des sections verticales «Initial Balance", "Receipt", " Expense", "Final Balance" ont été remplacés par la section "Indicator" et une section horizontale "Table HeaderLine" a été ajoutée pour afficher les noms des regroupements dans la ligne.

Création de formulaires de sortie personnalisés basés sur des rapports universels (généraux)

Maintenant que nous sommes familiers avec la structure des rapports universels, examinons leur utilisation pour créer d'autres formulaires de sortie.
« Soldes et chiffres d'affaires (Report Balances and Turnovers) » (ci-après dénommé OiO) et « Liste des croisements/tableaux (ReportListCrossTable) » (ci-après dénommé SCT) sont des rapports indépendants, ils peuvent être utilisés pour obtenir diverses informations sur tous registres d'accumulation qui sont dans la configuration. Mais il est souvent nécessaire de générer des rapports plus détaillés basés sur des requêtes et des sélections complexes (nous appellerons ces formulaires de sortie personnalisés). À cette fin, un formulaire de sortie distinct est créé dans lequel, à l'aide de rapports généraux, nous pouvons organiser la sortie des informations nécessaires.

Forme basique

Examinons comment les rapports personnalisés interagissent avec les rapports généraux. La première chose à laquelle vous devez faire attention est que dans les données du rapport, il existe un attribut « GeneralReport », qui a le type « ReportObject.ReportRemainsAndTurnover » ou « ReportObject.ReportListCrossTable », cet attribut contient une instance du rapport général, des détails dont méthodes que nous utilisons pour générer le formulaire de sortie. L'attribut principal du formulaire de rapport personnalisé « GeneralReport » a également le type O&O ou SKT. Pour faire référence à un objet de rapport personnalisé, utilisez l'attribut de formulaire « ThisReport ».
La structure du formulaire principal est la même que celle du rapport général parent :
  • "Panneau de commande (CommandPanelForms)" - panneau de commande, contient des boutons de contrôle : "Formulaire" - génère un rapport, "Sélection" - affiche/masque le panneau de sélection ("Panneau de sélection"), "Titre" - affiche/masque le titre dans un tableur (formulaires d'éléments "DocumentResult"), "Paramètres" - ouvre le formulaire des paramètres du rapport, "SaveValues" - enregistre les valeurs des paramètres du rapport, "RestoreValues" - restaure les valeurs des paramètres du rapport, accès à tous les boutons ci-dessus peut être obtenu via le sous-menu "Actions"

  • « Période de : (DataStart) », « à : (DataCon) » ou « Le jour : (DataCon) » - champ de saisie de la date, les données sont associées aux détails du rapport général « DataStart » ou « DataCon »
  • «Panneau de sélection (PanelSelection)» est un panneau sur lequel sont placés des éléments de sélection rapide. Pour paramétrer une sélection, vous avez besoin de trois éléments de formulaire : une case à cocher, un champ de sélection et un champ de saisie, le nom de chaque élément commence par un nom précis plus le nom de la sélection puisqu'il doit être précisé dans le générateur d'états :
    o « Case à cocher Paramètres… » - une case à cocher associée à l'attribut de sélection « Utiliser » ; lorsque cette case est cochée, la sélection correspondante sera activée dans le générateur de rapports
    o « Champ de type de comparaison... » - le champ de sélection, associé à l'attribut de sélection « Type de comparaison », contient une méthode pour comparer la valeur de sélection avec les valeurs sélectionnées.
    o « Champ de paramètres... » - champ de saisie, associé à l'attribut de sélection « Valeur », contient la valeur par laquelle le filtrage est effectué

  • Exemple d'utilisation :
    Définir la sélection en fonction de la dimension « Nomenclature ». Nous ajoutons trois éléments de formulaire au panneau de sélection, nommons-les comme suit : la case à cocher « NomenclatureSettingsCheck », le champ de sélection « NomenclatureComparisonViewField », le champ de saisie « NomenclatureSettingsField ». Nous vérifions que dans le gestionnaire d'événements du formulaire « Avant l'ouverture » la procédure « Définir le lien des champs de sélection rapide sur le formulaire » est exécutée, qui relie les éléments du formulaire aux données de sélection du générateur de rapport. Tous. Si les données du rapport contiennent la sélection « Nomenclature », alors nous pouvons gérer la sélection sur le panneau de sélection sans appeler le formulaire de paramètres du rapport.
  • "Document tabulaire (DocumentResult)" - le document tabulaire réel dans lequel les données du rapport sont affichées
Lorsque vous ouvrez pour la première fois un rapport personnalisé, une instance de l'objet « GeneralReport » est créée. Il faut bien comprendre que dans le cadre d'un rapport personnalisé nous opérons avec deux objets « GeneralReport » - une instance de l'objet rapport général et « ThisReport » - une instance de l'objet rapport personnalisé.
Autrement dit, si vous devez appeler la procédure du module de rapport personnalisé « Fill in InitialSettings() », alors écrivez la construction suivante : « ThisReport.Fill inInitialSettings() », et appelez la procédure de rapport générale « Fill in the MainAttributeFields() », écrivez « GeneralReport. Remplissez les champs de détails principaux ()". Notez que dans le module de formulaire pour appeler les procédures de rapport générales, spécifiez simplement le nom de la procédure, et dans le module objet de rapport personnalisé, vous devez écrire « GeneralReport ». et le nom de la procédure.
Un exemple d'utilisation d'un rapport personnalisé du répertoire « Contreparties » :
Compte = éléments de formulaire. Liste d'annuaire. Données actuelles. Lien ; Rapport = Rapports. Déclaration de règlement mutuel avec les contreparties. Create(); Formulaire = Rapport.GetForm(); Form.ThisReport.FillInInitialSettings(); Form.ThisReport.GeneralReport.ReportBuilder.Selection["Account"].Usage = True ; Form.ThisReport.GeneralReport.ReportBuilder.Selection["Account"].Value = Compte ; Si Account.This est un groupe, alors Form.ThisReport.GeneralReport.ReportBuilder.Selection["Account"].ComparisonType = ComparisonType.VIierarchy; Sinon Form.ThisReport.GeneralReport.ReportBuilder.Selection["Account"].ComparisonType = ComparisonType.Equals; fin si; Form.UpdateReport(); Form.Open();
Nous listons les principales procédures et fonctions du formulaire principal d'un rapport utilisateur :
  • Lors de l'initialisation du formulaire, la procédure « Remplir les champs des attributs principaux » est effectuée, qui remplit les champs et les détails de l'objet principal du formulaire. Les variables de formulaire sont également définies

  • « Mise à jour de l'affichage » - procédure, gestionnaire de mise à jour des données du formulaire
  • Avant d'ouvrir le formulaire, la procédure du module de rapport personnalisé « Fill InitialSettings » est appelée, les valeurs des paramètres du formulaire sont restaurées et la connexion entre les éléments du formulaire et les sélections du générateur de rapport est effectuée : « SetLink of QuickFilterFieldsOnForm »

  • "OnOpening" - procédure de gestion d'événements lors de l'ouverture d'un formulaire

  • La sauvegarde et la restauration des paramètres du rapport s'effectuent à l'aide des procédures suivantes :
  • « AfterRestoringValues ​​» - une procédure de gestionnaire d'événements après la restauration des valeurs enregistrées, appelle la procédure du module de rapport « RestoreSettingsFromStructure »
  • « Avant SavingValues ​​» - une procédure de gestionnaire d'événements avant d'enregistrer les valeurs, appelle la fonction du module de rapport « GenerateStructureForSavingSettings », dans laquelle la structure des paramètres enregistrés est formée et affectée à l'attribut « SavedSettings »

  • Dans tous les rapports basés sur O&E ou SKT, l'enregistrement des paramètres de configuration est mis en œuvre comme suit. Dans les propriétés du formulaire, indiquez « Enregistrer les valeurs » et dans la liste « Enregistrer les valeurs », sélectionnez l'attribut « SavedSettings ». Dans le gestionnaire d'événements « Avant d'enregistrer les valeurs », « Après la restauration des valeurs », du code est inséré qui appelle les procédures du module de rapport général : « GenerateStructureToSaveSettings » pour enregistrer les paramètres et « RestoreSettingsFromStructure » pour restaurer les paramètres du rapport. La structure des paramètres a déjà été décrite dans la section sur les rapports universels
    Exemple d'utilisation :
    Après avoir généré le rapport, les utilisateurs peuvent ajuster la largeur des colonnes du tableur (en appuyant sur Ctrl + en positionnant la largeur avec le curseur de la souris). Dans les rapports généraux, un tableau de largeurs de colonnes est stocké dans la variable mArrayColumnWidths ; lorsque le rapport est mis à jour, les largeurs de colonnes sont ajustées en fonction des données stockées dans ce tableau. La tâche consiste à enregistrer un tableau de largeurs de colonnes lors de la fermeture d'un rapport et, après avoir ouvert le rapport, à restaurer les largeurs de colonnes telles qu'elles ont été spécifiées par l'utilisateur avant la fermeture. Pour cela, avant d'enregistrer les valeurs du formulaire « Before SavingValues ​​» dans la structure « SavedSettings », ajoutez un tableau au gestionnaire d'événements, qui est formé comme suit :
// À retenir si le document n'est pas Si FormElements.DocumentResult.TableHeight > 0 Alors vide Pour Count=1 Par FormElements.DocumentResult.TableWidth Loop ArrayColumnWidths.Add(FormElements.DocumentResult.Area(1 ,ColumnWidth); Fin du cycle ; fin si; SavedSettings.Insert(" TableauLargeurColonnes", ArrayWidthColumns);
Dans la procédure du gestionnaire « AfterValuesRestoration », saisissez le code suivant :
ThisReport.RestoreSettingsFromStructure(SavedSettings, ShowTitle); SavedSettings.Property(" TableauLargeurColonnes", GeneralReport.mArrayofColumnWidths); // Restaure le tableau des largeurs de colonnes
  • « OnClose » est une procédure de gestionnaire d'événements lorsque le formulaire est fermé. Des fonctions de sauvegarde des paramètres du formulaire sont généralement ajoutées à cette procédure.
  • « Notification Processing » est une procédure de gestion de messages. Utilisé pour mettre à jour les éléments de sélection sur le formulaire si les paramètres de sélection dans le générateur de rapports ont changé lors de l'appel du formulaire de paramètres

  • « DocumentResultTranscriptProcessing » est une procédure de gestionnaire pour l'événement « TranscriptProcessing » du champ de document de la feuille de calcul DocumentResult. Appelle la procédure du module rapport général « ProcessingDecryption »
  • Le module de formulaire contient également des gestionnaires de procédures pour les événements d'éléments de sélection, de sélection de date, etc., la composition de ces gestionnaires dépend du type de rapport utilisateur.
  • Procédures et fonctions générales :

    • "Gérer les paramètres d'affichage des éléments de formulaire" - contrôle les étiquettes des boutons de la barre d'outils

    • "UpdateReport" - met à jour le tableau du rapport, est appelé lorsque vous cliquez sur le bouton "Générer", ainsi que lorsque vous devez supprimer/définir le titre du rapport (le bouton "Titre"), dans ce dernier cas, seul le titre du rapport est affichée. La procédure contient un appel à la procédure du module d'état "GenerateReport".
    • "OutputHeader" - procédure - contrôle la sortie de l'en-tête, appelle la procédure "GenerateReport" depuis le module de rapport

    • « GenerateFormHeader » est une procédure qui configure le titre du formulaire et appelle la fonction du module général « GenerateMainFormHeader ». Le titre renvoyé par cette fonction comprend le nom du rapport, la date de début et la date de fin de génération du rapport. Généralement, « GenerateFormHeader » appelle le gestionnaire d'événements de mise à jour d'affichage du formulaire.

    Module de rapport

    Regardons le module de rapport personnalisé. Procédure la plus importante du module de rapport « Remplir les paramètres initiaux », cette procédure est appelée avant l'ouverture du formulaire et contient des commandes qui configurent la liste des indicateurs, regroupements, sélections et ordre qui seront présents dans le rapport :
    • Initialisation des variables :
      « FieldRepresentationStructure » est une structure dans laquelle les représentations de champ sont saisies, où la clé est le nom de l'indicateur/groupe/champ de la source de données et la valeur est la représentation textuelle de l'indicateur/groupe/champ.
      Exemple d'utilisation :
      StructureFieldRepresentation.Insert(" CaractéristiquesNomenclatures", "Caractéristiques de la nomenclature"); StructureFieldRepresentation.Insert(" Une base documentaire", "Une base documentaire");
      « Selection Array » est un tableau de sélection, un tableau dans lequel nous incluons les sélections présentes par défaut dans les paramètres du rapport.
      Exemple d'utilisation :
      Nous ajoutons deux sélections par article et par entrepôt ; ces sélections peuvent être liées aux éléments du panneau de sélection du formulaire principal. Lors de l'ajout d'éléments d'accès rapide aux sélections sur le formulaire de rapport, dans les paramètres du rapport, il est conseillé d'ajouter les noms de ces sélections au « Tableau de sélection ».
      Sélection Array.Add("Nomenclature"); Sélection Array.Add("Entrepôt");
    • Paramètres du rapport :
      "GeneralReport.RegisterName" - si nous générons un rapport basé sur un registre spécifique, indiquez le nom de ce registre.
      "GeneralReport.mReportName" - le nom du rapport, qui sera affiché dans l'en-tête de la feuille de calcul.
      Exemple d'utilisation :
      GeneralReport.RegisterName = " ProduitsDans les entrepôts"; RapportGénéral.mReportName = " Analyse de la disponibilité des marchandises dans les entrepôts";
    • Requête du générateur de rapports :
      Les rapports offrent la possibilité de générer un texte de requête pour le générateur sur la base de trois sources : les métadonnées d'enregistrement, les métadonnées de mise en page et l'attribution directe du texte de requête au générateur de rapport.
      - Requête basée sur les métadonnées du registre
      Si nous avons spécifié le nom du registre dans « GeneralReport.RegisterName », alors en appelant la procédure « Fill in InitialSettingsByRegisterMetadata », nous pouvons remplir les paramètres du générateur de requêtes et les détails du rapport général.
      Exemple d'utilisation :
      Génère le texte d'une demande au registre « ProductsInWarehouses » et remplit les détails généraux du rapport avec les paramètres :
      GeneralReport.RegisterName = " ProduitsDans les entrepôts" ; Remplissez les paramètres initiaux en fonction des métadonnées du registre (structure de représentation de champ, tableau de sélection, rapport général, " ListeCrossTable");
      - Demande basée sur la mise en page
      Comme décrit dans la section « Conception de rapport universelle », les options de personnalisation du rapport peuvent être spécifiées dans une mise en page personnalisée. La commodité de la mise en page est que vous pouvez ajuster l'affichage des indicateurs, des regroupements et des champs sans avoir recours à la création d'une requête via le constructeur.
      Exemple d'utilisation :
      ReportBuilder = GeneralReport.ReportBuilder ; Remplissez InitialSettingsByLayout(GetLayout(" ParamètresRapportsProduitsOrganisations"), StructureRepresentationFields, SelectionArray, GeneralReport, " ListeCrossTable");
      - Spécification d'une requête comme source de données du générateur de rapports
      J'utilise des rapports universels pour générer des formulaires de sortie personnalisés ; vous pouvez créer votre propre requête et spécifier son texte comme source pour le générateur de rapports. Cette méthode est très pratique car vous pouvez créer des requêtes de n’importe quelle complexité et structure.
      Exemple d'utilisation :
      ReportBuilder.Text = " SÉLECTIONNER | Chiffre d'affaires.Nomenclature AS Nomenclature, | SalesTurnover.CostTurnover AS CostTurnover |(SELECT | Nomenclature.*, | SalesTurnover.CharacteristicsNomenclature.* |//PROPERTIES |) |FROM | RegisterAccumulations.Sales.Turnover(&StartDate, &EndDate,) AS SalesTurnover |//CONNEXIONS |GROUP BY | Chiffre d'affaires.Nomenclature | //PAR GROUPE|(OÙ | SalesTurnover.Nomenclature.*, | SalesTurnover.CharacteristicsNomenclature.* |//PROPRIÉTÉS |//CATÉGORIES |) |(ORDER PAR | Nomenclature.*, | SalesTurnover.CharacteristicsNomenclature.* |//PROPRIÉTÉS |) |RÉSULTATS | SUM(CostTurnover) |PO | GÉNÉRAL, | Nomenclature |(RESULTATS PAR | SalesTurnover.Nomenclature.*, | SalesTurnover.CharacteristicsNomenclature.* |//PROPERTIES |)"
      Lors de la création de demandes, vous devez suivre plusieurs règles :
      o Dans la requête, vous pouvez spécifier deux paramètres prédéfinis : « Date de début » et « Date de fin », dans lesquels est transmise la valeur des détails du rapport correspondant. Ces paramètres sont utilisés pour limiter les échantillons de données par période.
      o Le rapport doit toujours contenir des résultats généraux : « RÉSULTATS... EN GÉNÉRAL »
      o Afin de pouvoir gérer les paramètres du rapport à partir du formulaire de paramètres, vous devez spécifier les paramètres appropriés pour le générateur de rapport, entre guillemets « ( » et «) » ou sur l'onglet « Builder » du concepteur de requêtes.
      o Vous pouvez spécifier des directives spéciales dans la requête : « //PROPERTS », « //CATEGORIES », « //CONNECTIONS », « //GROUP BY ». Ensuite, à l'aide de la procédure « AddToTextPropertiesAndCategories », des sélections de champs de propriétés et de catégories d'objets sont ajoutées à la requête.
      Exemple d'utilisation :
      Dans la requête donnée ci-dessus avec la directive "//PROPERTIES", nous indiquons que la sélection, le regroupement et les conditions par propriétés d'objet doivent être ajoutés au texte de la requête, "//CATEGORIES" - nous ajoutons une condition par catégorie, et avec la à l'aide de "//CONNECTION", nous fournissons des connexions au registre d'informations "ObjectPropertyValues", "//GROUP BY" - regrouper par propriétés d'objet sélectionnées
    • Procédures pour remplir les champs du générateur de rapports :
      Une fois la demande générée, vous devez renseigner les informations appropriées pour le générateur de rapport et le rapport général.
      Dans le « Tableau de sélection », nous entrons un tableau de sélections ; pour remplir les sélections dans le générateur de rapport, nous utilisons la procédure « Remplir la sélection ».
      Si nous prévoyons d'utiliser des propriétés et des catégories, nous devons ajouter la procédure « AddToTextPropertiesAndCategories ».
      Exemple d'utilisation :
      AddToTextPropertiesAndCategories(FieldTable, Text, StructureFieldRepresentation, mAssignment Matching, StructureParameters, TextInformationSources="", CategoriesFieldText="", PropertyFieldText="", FieldTextGroupBy = "", ReplaceProperties=" //Propriétés", RemplacerCatégories = "//CATÉGORIES", RemplacerConnexions = " //CONNEXIONS", RemplaceGroupBy = "//GROUPBY", Identifiants des paramètres pour la sélection par catégorie = "") Export
      Pour remplir les représentations de champs « FillRepresentationsFields », vous pouvez également utiliser la procédure « FillRepresentations ».
      Exemple d'utilisation :
      FillView("Nomenclature", "Nomenclature", VRAI, VRAI); FillView(" CaractéristiquesNomenclatures", "Caractéristiques de la nomenclature", FAUX, FAUX);
    • Procédures supplémentaires pour la création d'un rapport :
      "Effacer les BuilderFields supplémentaires" est une procédure obligatoire ; elle supprime les indicateurs et les regroupements de l'attribut "Report Builder.SelectedFields".
      "GeneralReport.OutputIndicatorsInLine = True" - affiche les indicateurs sur une ligne
      « mStructure des liens des indicateurs et des dimensions » - remplissez la structure des liens entre les indicateurs et les dimensions
      Exemple d'utilisation :
      Il est nécessaire d'afficher l'indicateur « QuantityRemaining » uniquement pour les dimensions « Article » et « Caractéristiques de l'article » :
      GeneralReport.mStructure des liens des indicateurs et des dimensions.Insert(" Quantité restante", Nouvelle Structure("Nomenclature, Caractéristiques de la Nomenclature"));
      Si vous devez afficher tous les résultats quels que soient les paramètres de la structure « mStructure des relations entre indicateurs et dimensions », définissez les détails suivants :
      Rapport général. Résumer tous les niveaux = True
      Si vous devez ignorer certains regroupements, vous devez alors remplir la structure « mStructure des groupes ignorants ».
      Exemple d'utilisation :
      Nous devons afficher les dimensions « Caractéristiques de la nomenclature » avec la dimension « Nomenclature » ; pour cela, ajoutez l'appel de fonction suivant
      GeneralReport.mStructure des regroupements non affichables.Insert("Nomenclature ",Nouvelle structure(" CaractéristiquesNomenclatures"));
      En conséquence, le rapport affichera les mesures séparées par une virgule : « Article, Caractéristiques de l'article »

    • Les autres procédures du module de rapports personnalisés sont similaires à celles des rapports universels, décrites dans la section « Rapports universels ». Ce à quoi vous devez faire attention, ce sont les paramètres de la requête ; avant de générer le rapport (la procédure « GenerateReport »), vous devez spécifier ces paramètres pour le générateur de rapport :
      Exemple d'utilisation :
      ReportBuilder.Parameters.Insert(ParameterName,ParameterValue);

    Conclusion

    Utiliser OiO et SKT pour générer des formulaires de sortie personnalisés est assez simple : si vous composez correctement une demande dans le concepteur et la transmettez au constructeur, nous recevrons un rapport prêt à l'emploi. En outre, un grand avantage de l'utilisation de rapports généraux est l'unification de la sortie des données sur le formulaire de rapport, des paramètres flexibles pour les regroupements, les sélections et le tri, la présentation des mesures et des indicateurs.
    La pratique montre que 90 % des fonctionnalités de création de tout formulaire personnalisé sont implémentées dans des rapports universels ; vous pouvez également vous baser sur des rapports standard prêts à l'emploi et les « modifier » en fonction des besoins des clients.

    Liste des liens

    Vous trouverez ci-dessous une liste de quelques liens vers des articles du "Livre de la Connaissance" (

    Comment développer rapidement un beau rapport à l'aide des solutions d'application Universal Report dans 1C

    Configurations : BP, UT, UPP et autres sociétés 1C sur la plateforme 8.1

    Cet article est destiné aux programmeurs débutants et avancés.

    Le problème de la création d'un rapport esthétique et fonctionnel est pertinent pour tout développeur. Créer un nouveau répertoire, un registre d'accumulation, un document qui déplace les registres que vous avez créés n'est pas un problème, mais comment alors « donner naissance » à un rapport qui fonctionnera à partir des registres que vous avez créés ? Et pas seulement un rapport, mais un rapport personnalisable, avec des sélections et des regroupements arbitraires, avec une apparence agréable ?

    J'ai tout essayé : la version traditionnelle avec les boucles et sélections sur le formulaire, le générateur de rapports, la mise en page des données. J'ai fait un décodage manuel, Dieu sait comment je pourrais le déformer autrement, mais la création de rapports prenait toujours la part du lion.

    Dernièrement, j'ai utilisé Rapport universel dans les solutions standards de 1C.

    A titre d'exemple, considérons la tâche : Pour la solution applicative 1C : Trade Management version 10.3.7.9, créer un rapport montrant les soldes de marchandises à une date sélectionnée, par entrepôt (ou entrepôts), libre et en réserve, avec des prix dans le prix sélectionné et les montants des soldes dans le prix sélectionné. Le rapport permet une sélection par entrepôt, article et détails de l'article. Le rapport peut être regroupé par entrepôts, articles et détails des articles. Il est possible d'afficher n'importe quel détail d'élément arbitraire dans le rapport. Permettez-moi de noter que la tâche n’est pas fictive, elle est bien réelle.

    Alors, qu’est-ce que le Rapport universel et que contient-il ? Ouvrons la configuration, section Rapports. L'objet « Rapport universel » se trouve dans la section rapports :

    Un rapport universel est un objet de configuration qui peut être utilisé indépendamment et dans d'autres rapports. Ce rapport est présent dans de nombreuses configurations d'entreprise 1C : Gestion commerciale, Comptabilité d'entreprise, Gestion d'entreprise manufacturière, etc. Il n'est pas nécessaire de comprendre son fonctionnement, il suffit de comprendre comment il peut être utilisé.

    Ouvrons tout rapport développé sur cette base et jetons un coup d'œil à l'intérieur. Je vais ouvrir le rapport " Marchandises en réserve dans les entrepôts ", situé juste avant le Rapport Universel dans la section Rapports. Si l'un des lecteurs a des difficultés à ouvrir ce rapport, à la fin de l'article se trouve un lien vers le rapport terminé.

    Alors, enregistrons ce rapport en tant que rapport externe et ouvrons-le dans le configurateur :

    Comme vous pouvez le constater, ce rapport n'a qu'un seul attribut : le rapport universel. Donnons un nouveau nom à notre rapport - " Marchandises en solde et en réserve»:

    Ouvrons le formulaire de rapport :

    Le formulaire de rapport est absolument anonyme, il n'y a même pas de titre dans l'en-tête. Mais il y a deux dates. Faisons attention à cela, car nous avons besoin d'une date. Mais nous ne sommes pas pressés de supprimer une des dates, cela est configuré dans le module rapport, ouvrons-le. Pour cela, fermez le formulaire et cliquez sur « Actions - Ouvrir le module objet ». Le module objet semble étonnamment laconique. Le voici dans son intégralité :

    Faisons attention aux lignes à la fin du module :

    En fait, nous configurons ici comment saisir la période : 1 - pour une date (selon nos besoins), 0 - une période arbitraire (dans ce cas, il y aura deux dates), une semaine, une décennie, etc. Laissons-le inchangé.

    Passons maintenant à la partie la plus difficile : former une requête pour les données. C'est la seule chose qui peut causer des difficultés ici. Si, pour une raison quelconque, les données nécessaires ne peuvent pas être obtenues en une seule demande, le rapport universel ne peut pas être utilisé. Mais aujourd’hui ce n’est pas le cas, passons à autre chose.

    Trouvons la fonction InstallInitialSettings et voyons ce qu'il y a à l'intérieur :

    Au début, comme on le voit, il y a quelques réglages pour le rapport universel : quel nom afficher dans l'en-tête, s'il faut afficher les négatifs en rouge, etc. Cela ne nous intéresse pas, on fait défiler plus loin jusqu'à trouver la requête . La requête commence par la ligne

    TexteDemande = "...:

    Selon les conditions du problème, nous avons besoin des soldes de marchandises dans l'entrepôt, des soldes en réserve (ce qui est en réserve doit nécessairement se trouver dans un entrepôt) et des prix. Sans entrer dans les détails, la structure de notre requête sera la suivante : la table principale est la table du registre d'accumulation Marchandises dans les entrepôts, nous y attachons la table du registre d'accumulation avec une jointure gauche Articles en réserve et une autre table - la table du registre d'informations Prix ​​des articles.

    Remarque 1 : Si quelqu'un a des questions telles que « Qu'est-ce qu'une jointure gauche », alors ces questions dépassent le cadre de l'article. On suppose que le lecteur connaît le langage SQL dans l'interprétation dans laquelle il est utilisé dans la plateforme 1C 8.1.

    Passons donc à la demande. Déplaçons la souris sur le texte de la demande et appuyons sur le bouton droit de la souris. Dans le menu contextuel, sélectionnez Générateur de requêtes. La fenêtre suivante s'ouvrira :

    Sur le côté gauche se trouvent les sources de données possibles, au milieu - les tableaux que nous utiliserons, sur le côté droit - les champs que nous utiliserons lors de l'affichage des données du rapport.

    Effacons la partie centrale et sélectionnons les tableaux dont nous avons besoin : Produits dans les entrepôts restants, Marchandises en réserve dans les entrepôts restants et Prix des articles, un aperçu de ces derniers :

    Remplissons les champs (côté droit). Dans le tableau Marchandises en entrepôts, sélectionnez les champs Action, Nomenclature, Caractéristiques de la nomenclature, Série de nomenclatures, Quantité restante. Dans le tableau Marchandises en réserve dans les entrepôts, sélectionnez Quantité restante(il s'agit d'un autre solde - réserve), du tableau Prix des articles Type de prix Et Prix:

    Utilisez le bouton pour ajouter deux nouveaux champs : Quantité en stock Et Montant en réserve(prix multiplié par le solde en entrepôt et le solde en réserve). Après avoir cliqué sur le bouton indiqué, une fenêtre s'ouvrira dans laquelle vous pourrez construire l'expression dont nous avons besoin :

    Il s’agit du Montant en stock, de même que du Montant en réserve :

    En conséquence, dans les champs, j'ai obtenu ce qui suit :

    Pour les tableaux Produits en entrepôts, Produits en réserve en entrepôts, Prix des articles, il faut fixer les dates pour lesquelles on calcule les soldes et les prix. Pour ce faire, sélectionnez la table Marchandises dans les entrepôts et cliquez sur le bouton - paramètres de la table virtuelle. La fenêtre des options s'ouvrira. Dans la ligne Période, nous écrivons &DateCon :

    Nous avons indiqué par là que les soldes seront calculés à la fin de la période que nous fixerons lors de la génération du rapport. Faisons la même chose pour les autres tables.

    Les alias modifiés sont surlignés en noir. Nous nous souvenons des alias que nous avons attribués aux champs, nous en aurons besoin plus tard.

    Établissons des connexions entre les tables sur l'onglet « Liens » :

    Dans l'onglet « Résultats », sélectionnez les champs numériques et les totaux seront calculés à partir d'eux. Pour le champ Prix on prend le maximum, pour le reste on calcule les montants.

    Sélectionnons maintenant les champs qui seront utilisés dans les paramètres du générateur. Passons à l'onglet "Constructeur". L'onglet « Builder » contient cinq onglets supplémentaires. Dans l'onglet « Champs », sélectionnez les champs qui seront utilisés lors du paramétrage du rapport. Dans notre cas, sélectionnez tous les champs :

    Les coches dans la colonne du milieu « Utiliser l'enfant » signifient que nous pouvons sélectionner non seulement l'entrepôt, l'article, etc., mais également n'importe quel champ enfant : type d'entrepôt pour l'entrepôt, taux de TVA, SKU pour l'article, etc. Nous ne pouvons utiliser des enfants que pour des types de données complexes, mais pas pour des types de données simples (Prix, Quantité, Montant).

    Dans l'onglet « Conditions », sélectionnez les champs pour lesquels vous pouvez définir la sélection. Dans notre cas, les champs Type de prix, Entrepôt, Nomenclature :

    Dans l'onglet « Commande », sélectionnez les champs de commande. Sélectionnez le champ Nomenclature :

    Et enfin, l'onglet « Résultats ». Sélectionnons Entrepôt, Nomenclature - les totaux seront calculés à partir de ces champs :

    Veuillez noter qu'il y a ici une colonne « Utiliser des enfants », c'est-à-dire les totaux peuvent être calculés en utilisant les détails de ces champs.

    Cliquez sur OK - notre demande est terminée.

    Après le texte de la demande, il y a un paramètre pour les propriétés et les catégories. Commentons par souci de simplicité :

    Ci-dessous se trouve une section où vous pouvez configurer la présentation des champs. Configurons les vues pour les champs Entrepôt, Article, Caractéristiques de l'article, Série d'articles, Type de prix :

    Dans ce cas, le premier champ correspond à la manière dont nous avons configuré la vue dans l'onglet « Joindres / Alias », le deuxième champ correspond à la manière dont elle sera affichée dans le rapport. Par exemple, la caractéristique dans la demande est spécifiée comme « Caractéristiques de l'article » et la représentation sera spécifiée comme « Caractéristiques de l'article ».

    Configurons les champs calculés - indicateurs :

    Cela étant dit, le premier champ indique comment nous avons configuré la vue dans l'onglet Jointures/Alias. Le deuxième champ indique comment il apparaîtra dans le rapport. Troisièmement, cet indicateur sera-t-il activé par défaut ? Le quatrième est le format du champ. Les cinquième et sixième sont le nom et la présentation du groupe (plusieurs champs peuvent être combinés en un seul champ).

    Pour le champ Prix, définissez le format sur Nombre 15.2, groupe Prix. Pour les soldes - format 15.3, groupe Quantité. Pour les montants, format 15.2, groupe Montant.

    Constituons des groupes prédéfinis :

    Avec ces paramètres, nous avons établi que par défaut, les lignes seront regroupées d'abord par entrepôt, puis par article. Ils n'auraient pas pu le définir, mais l'ont configuré dans le rapport lui-même, mais je pense qu'il devrait y avoir des regroupements par défaut. De même, il existe un paramètre pour les haut-parleurs, mais nous ne les utiliserons pas.

    Maintenant les sélections prédéfinies :

    Ces champs apparaîtront dans des sélections rapides. Les chemins d'accès aux données doivent être ceux que nous avons spécifiés lors de la configuration du générateur dans l'onglet Sélections. De plus, il peut y avoir plus de lignes dans l'onglet Sélections que dans les sélections rapides.

    Et enfin, des champs supplémentaires. Ce que c'est? Nous avons indiqué que nous utiliserions Nomenclature dans le rapport, et avons également indiqué que nous utiliserions tous les champs enfants de ce champ. Si vous devez indiquer que l'article sera affiché, alors ce sera un champ supplémentaire et nous devrons écrire :

    De même, si nous avons des champs, et non des indicateurs, par lesquels nous ne regroupons pas les données, ils ne seront pas inclus par défaut dans le rapport. Mais nous pouvons les spécifier comme champs supplémentaires à afficher.

    En fait, c'est tout. Nous pouvons exécuter le rapport. Enregistrons les modifications et ouvrons en mode entreprise :

    Comme vous pouvez le constater, il y a une date et elle n'est pas renseignée (le calcul se fait à la fin de la journée en cours), trois sélections prédéfinies. Cliquer sur le bouton « Paramètres » ouvrira les paramètres :

    Il y a des indicateurs, des regroupements sont configurés. Et si vous cliquez sur le bouton « Paramètres avancés », vous verrez le numéro d'article dans les champs supplémentaires :

    J'ai choisi moi-même les caractéristiques et les séries. Ces champs seront affichés par regroupements (c'est notre nomenclature) et seront affichés après le Nom.

    Sélectionnons le type de prix dans la sélection et générons un rapport :

    Remarque 2 : Dans les paramètres de la demande, nous avons spécifié le paramètre DateCon. En plus de cet indicateur, il en existe trois autres prédéfinis : Date de depart, Date de début, Date de fin. Quelle est la différence? StartDate et EndDate sont exactement des dates, la première est la date de début de la période (si la date est vide, alors le début de la comptabilité), la seconde est la date de fin de la période (si la date est vide, alors la fin de le jour en cours). DateStart et DateEn sont des limites de période (date + indication d'inclusion ou d'exclusion de la valeur limite). Qu'est-ce que cela signifie? Par exemple, vous devez sélectionner les documents par dates. Si vous spécifiez Document.Date >= &StartDate dans le texte de la demande, alors tout ira bien, mais si vous comparez non pas avec StartDate, mais avec StartDate, alors l'exécution du rapport sera interrompue avec une erreur, car vous ne pouvez pas comparer Boundary et Date ! Les tableaux de données comprennent tous ces paramètres.

    Note 3 : Si le rapport est construit comme le nôtre On date, alors vous pouvez utiliser les indicateurs DateCon et DateEnd. Les indicateurs DateStart et DateStart indiqueront le début de la maintenance.

    Remarque 4 : Dans notre rapport, nous définissons la sélection par types de prix. Après y avoir réfléchi un peu, vous remarquerez qu'il ne sert à rien de générer un rapport sans sélectionner le type de prix. Si nous oublions de sélectionner un type de prix, le rapport ne se plaindra pas, mais il sera peu utile de voir ce qui apparaît dans les colonnes Prix et Montant. Comment gérer cela ? Vous pouvez sélectionner le type de prix sur le panneau de commande du formulaire, dans la zone de sélection de date, et interdire la génération d'un rapport sans sélectionner ce paramètre. Mais comment l’indiquer dans la demande ? Dans les paramètres du tableau virtuel Prix des articles nous indiquons :

    Procédure Générer un rapportça devrait être comme ça :

    PriceType doit être un attribut du rapport, sinon ce paramètre ne sera pas visible dans le module objet !

    Et enfin. Au début, tout peut sembler trop compliqué, mais si nous établissons un plan des travaux effectués, nous obtiendrons ce qui suit :

    1. Spécifié le paramètre de période ;
    2. Nous avons généré une demande et indiqué quels champs nous allions configurer avec le constructeur et comment (par lesquels nous pouvons regrouper les données, par lesquels nous pouvons les trier et comment les résultats peuvent être calculés) ;
    3. Configurer la présentation des champs ;
    4. Définissez les paramètres initiaux.

    Comme vous pouvez le constater, il n’y a que quatre points.

    Étape 1. Où se trouve le rapport universel dans 1C 8.3

    Le rapport universel dans 1C 8.3 est appelé via la section Rapports – Rapport universel :

    Le formulaire de rapport universel ressemble à ceci :

    Étape 2. Comment générer un rapport universel pour trouver les erreurs de comptabilité

    Il existe des situations où une transaction commerciale a été réalisée à l'aide d'une transaction saisie manuellement : le montant du compte 68.02 a été reflété, mais aucun mouvement n'a été effectué dans le registre d'accumulation de TVA des achats. De ce fait, le montant du Carnet d'Achat ne correspond pas au montant du bilan du compte 68.02.

    Important! Pour comprendre quel registre utiliser pour générer un rapport universel dans 1C 8.3, vous devez parcourir l'organigramme présenté ci-dessous et comprendre à la suite de quel document vous pouvez trouver le registre requis :

    Il suffit de savoir que les données du Carnet d'Achat sont collectées selon Registre TVA Achats pour générer un rapport universel à ce sujet. Puisque nous comparerons le rapport universel avec la fiche de compte 68.02, le rapport doit être configuré de manière à ce que les informations de la fiche et du rapport soient présentées dans une seule clé.

    Étape 3. Comment configurer un rapport universel dans 1C 8.3

    Configurons le rapport comme suit en cliquant sur le bouton Afficher les paramètres :

    • Dans l'onglet Regroupement, utilisez le bouton Ajouter pour ajouter les lignes Organisation et Registrar. Parallèlement, nous avons ajouté un regroupement par organisation pour voir le montant total par organisation afin de faciliter la comparaison avec le montant total de la carte :

    • Dans l'onglet Sélection, définissez la sélection pour l'organisation souhaitée à l'aide du bouton Ajouter :

    En conséquence, le rapport ressemblera à ceci :

    Sous cette forme, il est facile de comparer avec la fiche de compte 68.02, car elles ont une structure similaire. Cela nous permet de comprendre quel document n'a effectué aucun mouvement dans le registre d'accumulation de TVA sur les achats ou dans le registre comptable :

    Voici un exemple de tableau de registres qu'il convient de vérifier si une erreur est détectée dans une section comptable particulière :

    Attention! Très souvent, il ne suffit pas de corriger un registre : peut-être que l'erreur ne disparaîtra pas, mais deviendra plus cachée et plus problématique. Dans les cas particulièrement difficiles, il sera nécessaire de corriger un ensemble de registres, et dans ce cas il vaut mieux confier la base de données 1C 8.3 à un programmeur spécialisé 1C pour analyse.

    Étape 4. Comment corriger l'erreur trouvée

    Dans notre exemple, dans la fiche de compte 68.02, il y avait un document « supplémentaire » Transaction saisi manuellement, qui générait des montants dans les comptes comptables, mais ne générait pas de mouvements dans le registre d'accumulation de TVA sur les achats et ne se retrouvait pas dans le livre des achats. Autrement dit, dans ce cas, vous devez ajouter un mouvement le long de ce registre dans ce document. Comment procéder est décrit en détail dans.

    En conséquence, nous obtenons l'image suivante :

    Étape 5. Comment utiliser le rapport universel dans 1C 8.3

    Un rapport universel en 1C 8.3 peut être construit à l'aide d'annuaires, de registres d'informations, de documents et de registres comptables.

    D'après le registre comptable

    Par exemple, au lieu d'une fiche de compte, vous pouvez générer un rapport universel sur les registres comptables avec les paramètres suivants :

    Afin de ne pas encombrer le rapport dans l'onglet Indicateurs, décochez les cases des indicateurs inutiles :

    Utilisation des commandes de gestion de fenêtres suivantes :

    Vous pouvez placer les fenêtres de rapport côte à côte pour faciliter la comparaison des données :

    Par registre d'informations

    Par exemple, dans 1C 8.3, il est nécessaire de trouver des informations sur les salariés qui ont déjà des comptes bancaires personnels ouverts pour transférer les salaires.

    Nous générerons un rapport universel pour le registre d'informations du même nom, en effectuant les réglages suivants :

    S'il existe plusieurs organisations dans la base de données 1C 8.3, vous pouvez définir la sélection de l'organisation souhaitée dans l'onglet Sélection. Nous obtenons cette option :

    D'après l'annuaire

    Supposons que vous ayez besoin d'obtenir une liste d'acheteurs avec leurs adresses et numéros de téléphone à partir de la base de données 1C 8.3. Faisons les réglages suivants :

    Important! Nous avons effectué une sélection selon que la contrepartie était incluse dans le groupe Acheteurs du répertoire Contreparties, mais si l'utilisateur s'est trompé et a inclus la contrepartie acheteuse dans un autre groupe, alors cette contrepartie peut ne pas être incluse dans le rapport.


    La figure montre que les noms des indicateurs sont entre parenthèses, et à côté d'eux se trouve l'en-tête de colonne, plus compréhensible et lisible pour l'utilisateur, qui sera affiché dans le rapport. Pour modifier le titre, faites un clic droit sur la ligne avec l'indicateur et sélectionnez « Définir le titre » :

    En conséquence, nous obtenons un rapport comme celui-ci :

    Comment fonctionne le rapport universel dans 1C

    Examinons quelques questions supplémentaires, dont les réponses peuvent être obtenues à l'aide du rapport universel dans 1C 8.3.

    Question n°1

    Comment faire une sélection dans un rapport universel uniquement pour un acheteur spécifique et savoir quelle quantité d'une (certaine) gamme de produits lui a été vendue ?

    Répondre: Lors de la comptabilisation d'un document de Vente (acte, facture) en 1C 8.3, des mouvements sont constitués dans le registre comptable et TVA Ventes (nous ne le prenons pas en cas de comptabilité TVA séparée). Il n'y a pas d'analyse des marchandises dans le registre des ventes avec TVA, vous devrez donc extraire les données du registre comptable.

    Dans ce cas, le rapport Universel est configuré comme suit :

    • Période;
    • Registre comptable ;
    • Journal de comptabilisation (comptabilité et comptabilité fiscale) ;
    • Mouvements de sous-conto :
    1. Ensuite, cliquez sur le bouton Afficher les paramètres et ajoutez les valeurs suivantes dans l'onglet Sélection :
    • Compte Dt – Égal à – 62,01 ;
    • Compte Kt – Égal à – 90.01.1 :

    1. Dans l'onglet Regroupement, les valeurs suivantes sont ajoutées :
    • Sous-conto 1 Dt;
    • Sous-conto 3 Kt :

    1. Après ces paramètres, vous devez cliquer sur le bouton Générer et le rapport universel dans 1C 8.3 sera construit sous la forme requise :

    Question n°2

    Les dépenses n'incluent pas les salaires, les impôts et les cotisations. Ces dépenses ne sont pas visibles dans KUDiR. La fiscalité simplifiée de paiement est calculée sans ces dépenses. Comment trouver une erreur à l’aide du Rapport Universel ?

    Répondre: Construisons une analyse dans le Rapport Universel basée sur le registre d'accumulation des Dépenses sous le régime fiscal simplifié. Dans ce cas, le rapport Universel est configuré comme suit :

    1. Dans l'en-tête du rapport de sélection des informations, les valeurs suivantes sont indiquées :
    • Période;
    • Dépenses au titre du régime fiscal simplifié ;
    • Soldes et chiffre d'affaires :
    • Type de dépense ;
    • Élément de consommation :

    1. Dans l'onglet Indicateurs, les valeurs doivent être définies comme sur la figure :

    D'après le rapport, nous voyons que certaines dépenses dans la colonne Réflexion au NU répertorié comme Pas accepté. Cela signifie que ces dépenses ne seront pas automatiquement incluses par le programme dans KUDiR et qu'une erreur a été commise lors de la saisie des documents. Il est nécessaire de corriger les analyses dans ces documents, c'est-à-dire que l'élément de coût doit avoir la valeur Accepté en NU comme indiqué dans la figure :

    Après cela, vous devez réafficher les documents de paie et refermer les mois.

    Question 3

    Dans KUDiR, les dépenses NU n'incluent pas le coût des marchandises vendues. Comment trouver une erreur à l’aide du Rapport Universel ?

    Répondre: Dans 1C 8.3, les dépenses sont acceptées dans KUDiR conformément aux conditions fixées dans la politique comptable. Lors de la vente de marchandises conformément au Code des impôts de la Fédération de Russie, les conditions suivantes sont les suivantes : les marchandises doivent être capitalisées, leur paiement doit être effectué au fournisseur et la vente de ces marchandises doit être reflétée. Lorsque les trois conditions sont remplies, les coûts seront inclus dans le KUDiR.

    Construisons un rapport universel en 1C 8.3 pour le registre d'accumulation des dépenses au régime fiscal simplifié et clarifions les conditions qui ne sont pas remplies pour l'acceptation en dépenses au NU. Dans ce cas, le rapport Universel est configuré comme suit :

    1. Dans l'en-tête du rapport de sélection des informations, les valeurs suivantes sont indiquées :
    • Période;
    • Registre d'accumulation comptable ;
    • Dépenses au titre du régime fiscal simplifié ;
    • Soldes et chiffre d'affaires :
    1. Ensuite, cliquez sur le bouton Afficher les paramètres et ajoutez les valeurs suivantes dans l'onglet Regroupement :
    • Type de dépense ;
    • Élément de consommation :

    1. Dans l'onglet Indicateurs, les valeurs doivent être définies comme sur la figure :

    1. Après ces réglages, vous devez cliquer sur le bouton Générer et le rapport sera construit sous la forme requise :

    Comme le montre le rapport, la raison pour laquelle les dépenses pour les biens achetés ne rentrent pas dans KUDiR est le manque de paiement au fournisseur pour les marchandises.

    Par conséquent, soit le paiement des marchandises au fournisseur n'a pas été effectué correctement, soit il n'existait tout simplement pas, et donc les dépenses pour les marchandises achetées ne devraient pas tomber dans le KUDiR.

    Question n°4

    Comment visualiser le prix de l'entrée de marchandises dans 1C Enterprise 8.3 (8.3.8.1964) à l'aide du rapport universel ?

    Répondre: Il n'existe pas de rapport spécial pour suivre le prix de l'entrée des marchandises dans 1C, mais vous pouvez créer votre propre rapport à l'aide des documents Universal Report on Receipt (acte, facture). Dans ce cas, le rapport Universel est configuré comme suit :

    1. Dans l'en-tête du rapport de sélection des informations, les valeurs suivantes sont indiquées :
    • Période;
    • Document;
    • Récépissé (actes, factures) ;
    • Marchandises:
    1. Ensuite, cliquez sur le bouton Afficher les paramètres, et dans l'onglet Regroupement, ajoutez la valeur Nomenclature :

    1. Dans l'onglet Indicateurs, les valeurs doivent être définies comme sur la figure :

    1. Après ces réglages, vous devez cliquer sur le bouton Générer et le rapport sera construit sous la forme requise :

    ATTENTION! Veuillez noter que tous les problèmes ne peuvent pas être résolus à l’aide du rapport universel. Son principal inconvénient est qu'il ne fonctionne QUE avec un seul objet d'analyse : un annuaire, un document, un registre comptable, un registre d'information ou un registre d'accumulation.

    Il ne suit pas les connexions complexes entre les objets. À cet effet, il existe un outil DCS spécial – Data Composition System. Avec son aide, les programmeurs et les utilisateurs expérimentés peuvent générer des rapports complexes, sélectionner les informations nécessaires et ajouter leurs propres champs de calcul.