Comment effectuer un traitement externe dans 1C 8.3. Ajout d'un traitement externe à la base de données

2016-12-08T15:04:29+00:00

Je vais vous le raconter en utilisant l'exemple de mon traitement, que je publie sur mon site Internet.

1. Téléchargez l'archive avec traitement sur votre bureau.

2. Double-cliquez sur l'archive téléchargée et vous serez redirigé vers l'intérieur.

Attention! Si vous ne parvenez pas à accéder à l'archive (l'erreur « Application introuvable » s'affiche), cliquez avec le bouton droit sur l'archive et sélectionnez l'une des options :

      • Extraire tout
      • Ouvrir avec 7-Zip
      • Ouvrir avec WinRar
      • Ou quelque chose de similaire...

3. Il existe un fichier en cours de traitement (et déjà avec un nom russe). Faites un clic droit dessus et sélectionnez "Copier".

4. Revenez sur le bureau, faites à nouveau un clic droit sur un espace vide de la table et sélectionnez "Coller" ( ou vous pouvez simplement faire glisser le fichier de traitement de l'archive vers votre bureau).

5. Le fichier de l'archive devrait apparaître sur le bureau.

Pour une interface normale

Dans le menu, sélectionnez "Fichier->Ouvrir..." :

Pour une interface gérée (taxi, etc.)

Ouvrir directement à partir d'un fichier

Dans le menu, sélectionnez "Fichier" -> "Ouvrir..." :

Dans la fenêtre qui apparaît, allez sur le bureau, sélectionnez le fichier traité et cliquez sur le bouton "Ouvrir".

Prêt! Le traitement devrait s'ouvrir dans le programme et vous pouvez l'utiliser. Pour plus de commodité, vous pouvez créer un dossier spécial « Traitement » sur votre bureau et y stocker ces fichiers.

Enregistrement du traitement dans la base de données

Si, au stade de l'ouverture du fichier, vous obtenez l'erreur « Violation des droits d'accès ! » :

Ensuite, vous devrez autoriser l'ouverture de processeurs externes (plus d'informations à ce sujet) ou enregistrer le traitement dans la base de données - ce n'est pas difficile à faire, pour cela :

Rendez-vous dans la rubrique « Administration », « Impression des formulaires, rapports et traitements » :

Dans la fenêtre qui s'ouvre, cochez la case « Rapports et traitements supplémentaires » et ouvrez le lien « Rapports et traitements supplémentaires » :

Dans la fenêtre qui s'ouvre, cliquez sur le bouton "Créer" :

Lisez l'avertissement et cliquez sur le bouton « Continuer » :

Dans la fenêtre qui apparaît, allez sur le bureau, sélectionnez le fichier à traiter et cliquez sur le bouton « Ouvrir » :

Si à ce stade l'erreur "Il est impossible de connecter un traitement supplémentaire à partir du fichier..." apparaît, alors il n'y a plus rien pour ouvrir le traitement sauf pour autoriser l'ouverture des fichiers à partir du menu "Fichier" -> "Ouvrir" - c'est-à-dire à ce sujet.

Recherchez et cliquez sur « Placement » :

Dans la fenêtre suivante, vérifiez la section « Opérations » et cliquez sur « OK ».

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 sélectionné le fichier souhaité, précisez si nécessaire un nom de 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->Traitements externes complémentaires.

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 :

Auparavant, un traitement externe a été écrit qui permet de visualiser le nombre de documents dans la base de données saisis pour la journée en cours par date du document. La raison pour laquelle il a été créé n’a pas d’importance. Le formulaire de traitement est assez simple, tout comme la mise en œuvre :

Vous pouvez consulter le code de traitement en le téléchargeant à partir du lien à la fin de l'article. Nous allons résoudre un autre problème. Nous devons démarrer ce traitement depuis le menu "Outils":

En cliquant sur le bouton, le traitement démarre avec la date du jour déjà renseignée dans le champ « Date de contrôle ».

Lancement

Tout d'abord, ajoutons le bouton "Nombre de documents par jour" à l'interface "Complète" et créons une procédure de gestion pour celui-ci dans le module général.

Le code de programme de la procédure du gestionnaire est présenté dans la liste suivante :

Procédure FullAction() Exportation // Récupère un lien vers l'élément du répertoire "Processeurs externes", //qui contient le fichier de traitement requis LinkToProcessing = Répertoires. Traitement externe. RechercherParNom(" Nombre de documents saisis", Vrai); // Écrit les données binaires du fichier de traitement dans un fichier temporaire NomFichier = GetTemporaryFileName() ; BinaryData = ProcessingRef. Stockage de traitement externe. Obtenir() ; Données binaires. Écrire(NomFichier) ; // Récupère le formulaire de traitement externe Formulaire = Processus Externes. GetForm(NomFichier) ; // Ouvre le formulaire pour l'utilisateur Formulaire. Ouvrir(); Fin de la procédure

De manière générale, la séquence d'actions est la suivante :

  1. Nous obtenons un lien vers l'élément de répertoire "Traitements externes".
  2. Nous extrayons les données binaires du fichier de traitement stocké dans l'élément de répertoire trouvé.
  3. Nous écrivons les données binaires reçues dans un fichier temporaire.
  4. A l'aide du fichier créé, nous obtenons le formulaire de traitement externe et l'ouvrons.

De cette façon, nous pouvons exécuter des traitements/rapports externes à partir de n'importe quel module de configuration où le contexte client est disponible.

Avantages

Pourquoi cela pourrait-il être nécessaire ? N'est-il pas plus simple d'ajouter du traitement ou de la comptabilité directement dans la configuration ?

Oui, c'est plus facile. Mais que se passe-t-il si vous modifiez fréquemment le traitement ? Faut-il mettre à jour la base d’informations à chaque fois qu’elle change ? Utiliser la mise à jour dynamique avec tous les risques qui en découlent ?

Dans de tels cas, il sera utile de déplacer la fonctionnalité vers des traitements/rapports externes, qui après modification, nous pourrons simplement les remplacer dans le répertoire « Traitements externes », et les utilisateurs n'auront qu'à les redémarrer. Aucune mise à jour requise.

Le traitement « Comptage du nombre de documents » utilisé dans l'article.

Le traitement externe est un outil très pratique pour les entreprises utilisant des configurations standards sur 1C:Enterprise 8.3. Ils vous permettent de ne pas gaspiller d'efforts et d'argent sur les mises à jour 1C, permettant de mettre à jour les bases de données avec un seul bouton en mode utilisateur simple. À l'aide du mécanisme de bibliothèque de sous-système standard, vous pouvez ajouter divers boutons aux documents et ouvrages de référence sans modifier la configuration standard. Considérons un exemple de création et de connexion de traitements externes dans l'une des configurations 1C.

Nous créons un traitement externe dans 1C 8.3

Pour créer un nouveau traitement externe, nous utilisons le configurateur. Dans le menu "Fichier", sélectionnez la commande de création "Nouveau..." et déterminez que nous allons créer un traitement externe. Dans la fenêtre qui s'ouvre, définissez le nom, et lorsque vous appuyez sur « Entrée », il est automatiquement renseigné. Le système vous proposera également ce nom comme nom de fichier lors de l'enregistrement.

Ajoutons un formulaire de traitement en cliquant sur le bouton avec une loupe dans la fenêtre correspondante. Par exemple, créons un traitement montrant quelles commandes clients utilisent un certain article. Pour ce faire, nous devons placer sur le formulaire :

  • Attributs – champ pour définir la nomenclature ;
  • Un bouton qui appellera le code.

Ajoutez l'attribut « Nomenclature » avec le type de données « DirectoryLink.Nomenclature » dans la section correspondante et le bouton « Afficher » dans le menu « Commandes » -> « Commandes de formulaire ».

Pour que les données ajoutées soient reflétées sur le formulaire, vous devez les faire glisser vers les éléments du formulaire situés dans la partie supérieure gauche. Il est possible d'échanger des éléments à l'aide des flèches bleues. Pour que le bouton que nous avons créé fasse ce à quoi il est destiné, une procédure doit lui être attribuée. Dans le menu contextuel, sélectionnez « Action de commande », et lorsqu'on nous demandera où le gestionnaire est nécessaire, nous répondrons : « Créer sur le client et une procédure sur le serveur. »


Fragment 1

&OnClient Procédure Show(Command) ShowOnServer(); Fin de la procédure &OnServer Procedure ShowOnServer() //Insère le contenu du handler. Fin de la procédure

Nous avons choisi de créer une procédure sur le serveur car nous souhaitons ainsi recevoir un échantillon de la base de données. Nous n'avons pas cette option sur le client, nous devrons donc nous connecter au serveur, qui échange des données avec la base de données. Nous devons maintenant écrire du code qui implémente ce que nous avons prévu. La demande et la sortie de tous les documents via la fonction « Report() » seront utilisées.


Fragment 2

&OnClient Procédure Show(Command) ShowOnServer(Nomenclature); EndProcedure &OnServer Procedure ShowOnServer(Nomenclature) Request = Nouvelle demande ; Query.Text = "SELECT DIVERS | Customer OrderComposition.Link AS Link | FROM | Document.Customer Order.Composition AS Customer OrderComposition | OÙ | Customer OrderComposition.Nomenclature = &Nomenclature"; Request.SetParameter("Nomenclature", Nomenclature); RequestResult = Request.Execute(); SelectionDetailRecords = QueryResult.Select(); While SelectionDetailedRecords.Next() Rapport de boucle (SelectionDetailedRecords.Link); Fin du cycle ; Fin de la procédure

Au stade actuel, nous pouvons ouvrir un traitement externe dans une base de données 1C en cours d'exécution en tant que fichier ordinaire, et il sera déjà opérationnel. Mais si nous avons de nombreux utilisateurs, nous devrons leur envoyer ce fichier à tous, en leur fournissant des instructions sur la façon de l'ouvrir réellement dans 1C, ce qui est extrêmement gênant. Pour éviter cela, notre traitement doit être situé à l'intérieur de l'une des sections 1C. Pour ce faire, il faut le modifier un peu plus via le configurateur, en précisant certains paramètres.

Pour placer le traitement externe dans la section 1C, il est nécessaire d'enregistrer la procédure « Informations SUR le traitement externe » dans le module objet. Dans le menu de traitement principal, cliquez sur Actions et sélectionnez Module objet. Ici, vous devez enregistrer tous les paramètres nécessaires à 1C afin que le système comprenne ce qui est attendu de lui et quel type de fichier se trouve devant lui. La capture d'écran montre le code de la fonction « Informations SUR le traitement externe ».

Fonction InformationOnExternalProcessing() Export DataForReg = New Structure(); DataForReg.Insert("Nom","Nouveau traitement externe"); DataForReg.Insert("SafeMode", True); DataForReg.Insert("Version", "ver.: 1.001"); DataForReg.Insert("View", "AdditionalProcessing"); CommandTable = NouvelleValueTable ; TabZnCommands.Columns.Add("Identifiant"); TabZnCommands.Columns.Add("Utilisation"); TabZnCommands.Columns.Add("Vue"); NewRow = TabZnCommands.Add(); NewString.Identifier = "NewExternalProcessing"; NewRow.Use = "OpenForm" ; NewRow.View = "Nouveau traitement externe"; DataForReg.Insert("Commandes", TabZnCommands); Renvoie DataForReg ; FinFonction

Fragment 3

Connexion du traitement externe dans 1C

Avant de connecter un traitement externe à une configuration standard, vous devez activer l'utilisation de cet outil. Dans « Administration », dans la sous-rubrique « Formulaires imprimés, rapports et traitements », placez le drapeau en face du mécanisme dont nous avons besoin. Un bouton permettant d'accéder au répertoire des traitements complémentaires et des rapports devient à notre disposition.


Lorsque nous accèderons à la liste, nous y créerons une nouvelle ligne et le système vous demandera de sélectionner un fichier. Nous sélectionnons le traitement que nous avons effectué et enregistré, et la configuration 1C remplit indépendamment la plupart des champs. En utilisant le bouton « Exécuter », nous pouvons déjà vérifier la fonctionnalité de notre traitement, mais ce n'est pas très pratique pour les autres utilisateurs. Pour que les utilisateurs disposent de notre commande et puissent passer un appel, nous devons :

  • Spécifiez l'emplacement de l'objet. En cliquant sur « Non défini », nous ouvrons la fenêtre des sections et indiquons dans quelles sections l'opération sera disponible ;
  • Sélectionnez les utilisateurs pour lesquels cette commande apparaîtra dans le menu « Traitement supplémentaire » des sections sélectionnées sans paramètres inutiles. Pour ce faire, dans la section tableau, vous devez sélectionner l'élément « Accès rapide » et ajouter les utilisateurs responsables dans la moitié droite ;
  • Dans l'onglet « Informations complémentaires », vous pouvez préciser le dossier dans lequel se trouvera le traitement téléchargé ;
  • Après avoir appuyé sur le bouton « Écrire » dans la section sélectionnée du menu « Traitement supplémentaire », les utilisateurs trouveront notre commande et pourront l'utiliser.

Si nous souhaitons apporter des modifications à notre traitement, nous devons d'abord le décharger de la base de données. Pour ce faire, recherchez la ligne souhaitée dans le répertoire « Traitements et rapports supplémentaires » et utilisez la commande « Télécharger dans un fichier... ». Apportez des modifications, enregistrez le traitement et utilisez le bouton « Charger à partir du fichier... » pour rechercher le fichier epf modifié sans modifier les paramètres. Après l'enregistrement, tous les utilisateurs verront les modifications apportées.

Si vous utilisez une base de données 1C non standard ou abandonnée, profitez de la possibilité de télécharger le traitement via le configurateur. Dans l'arborescence des objets, dans la section « Traitements », créez un nouveau traitement et, via le menu contextuel, sélectionnez « Remplacer par un traitement externe, état... ». Il ne reste plus qu'à configurer le lancement des traitements externes depuis la section souhaitée, y compris les traitements ajoutés dans le sous-système souhaité.


Travailler avec un traitement externe est très pratique et permet d'éviter de nombreux conflits. Leur seul inconvénient majeur est qu’ils ne sont pas mis à jour automatiquement en même temps que la configuration. Autrement dit, si les développeurs ont modifié le nom du document ou de l'ouvrage de référence dans la configuration principale, nous devrons configurer manuellement le traitement.

Souvent, lorsque l'on travaille avec 1C, il est nécessaire d'effectuer des opérations similaires qui se répètent systématiquement au fil du temps et détournent simplement l'attention du travail principal. Il peut s'agir de divers téléchargements et déchargements, de la génération de certaines données pour une analyse externe, etc. Il existe un moyen assez simple d'automatiser ces opérations et de les oublier, en recevant périodiquement des fichiers journaux par e-mail pour contrôle.

C’est bien si vous avez déjà ces opérations écrites par des processeurs externes, pas de problème si ce n’est pas le cas, créez et déplacez tout là-bas. Ensuite, pour vérifier sa fonctionnalité, je recommande de tester tout cela en mode manuel puis, si tout fonctionne comme il se doit, de réécrire le code du traitement principal pour que lors du chargement du traitement externe, il démarre automatiquement, sans cliquer sur le bouton d'exécution et sur le comme. Le plus simple est de déplacer le code dans une procédure SurOuvert().

L'étape suivante consiste à fermer automatiquement le programme après avoir exécuté le traitement externe que nous avons créé et qui fonctionne déjà pour nous. Pour ce faire, dans la procédure SurOuvert() A la toute fin nous insérons la commande suivante : Système d'arrêt (Faux); dans ce cas le paramètre Demander une opportunité nous transmettons la valeur « False » afin de couper diverses options pour des questions système supplémentaires lors de la fermeture, déclenchant ainsi l'arrêt inconditionnel de 1C une fois ce traitement externe terminé. Pour être sûr, nous exécutons à nouveau le programme, effectuons le traitement et nous assurons qu'il a fonctionné et que le programme s'est fermé.

« C:\Program Files (x86)\1cv8\8.3.5.xxxx\bin\1cv8.exe » ENTERPRISE /DisableStartupMessages /FC:\chemin d'accès à la base de données /N « Nom d'utilisateur » /P « Mot de passe utilisateur » /Exécuter à partir de :\ chemin d'accès au traitement\self-processing.epf

Décryptons :

1. « C:\Program Files (x86)\1cv8\8.3.5.xxxx\bin\1cv8.exe » ENTERPRISE - le moteur 1C lui-même dans ce cas est 8.3, vérifiez vous-même le chemin, il diffère selon la version et moteur y compris n’oubliez pas de le modifier après la mise à jour du dernier.

2. /DisableStartupMessages - désactivez tous les messages au démarrage du système.

4. /N"UserName" /P"UserPassword" - respectivement /N nom d'utilisateur, également immédiatement sans espace et /P mot de passe.

5. /Execute from:\path to Processing\self-processing.epf - /Execute démarre notre traitement, le chemin et le nom doivent suivre cette clé.

Voilà, il ne reste plus qu’à ajouter notre fichier cmd au planificateur de tâches : avtozapusk1c.cmd, indiquant le calendrier de son lancement.

Pour surveiller le travail du traitement externe, je recommande de créer un utilisateur distinct pour celui-ci ; il est également optimal que le traitement lui-même crée un fichier journal, qui est également périodiquement envoyé à votre courrier électronique.

Ces outils simples aident à automatiser les opérations de routine quotidiennes, bonne chance à vous !

mob_info