La condition est similaire dans la demande 1c. Semblable aux conditions de requête. Paramètres invalides comme

Dans cet article, nous voulons discuter de tout avec vous Fonctions du langage de requête 1C, et constructions de langage de requête. Quelle est la différence entre fonction et design ? La fonction est appelée avec des parenthèses et les paramètres possibles, et la construction est écrite sans parenthèses. Indubitablement toutes les structures et fonctions du langage de requête 1C rendre le processus d'acquisition de données flexible et multifonctionnel. Ces fonctions et constructions s'appliquent aux champs de requête, et certaines s'appliquent également aux conditions.

Fonctions du langage de requête 1C

Parce qu'une description claire Fonctions du langage de requête 1C est beaucoup moins courant que les descriptions de structures, nous avons décidé de commencer à nous intéresser aux fonctions. Examinons maintenant chacun séparément, en décrivant son objectif, sa syntaxe et son exemple d'utilisation, donc :

1. Fonction DATE HEURE- cette fonction crée un champ constant de type "Date".

Syntaxe: DATE HEURE (<Год>,<Месяц>,<День>,<Час>,<Минута>,<Секунда>)

Exemple d'utilisation :

2. Fonction DIFFÉRENCE DE DATE- renvoie la différence entre deux dates dans l'une des dimensions (année, mois, jour, heure, minute, seconde). La mesure est passée en paramètre.

Syntaxe: DATE DE DIFFÉRENCE (<Дата1>, <Дата2>, <Тип>)

Exemple d'utilisation :

Query.Text = "SELECT | DIFFERENCEDATE(DATETIME(2015, 4, 17), DATETIME(2015, 2, 1), DAY) | AS Qty.Days";

3. Fonction VALEUR- définit un champ constant avec un enregistrement prédéfini de la base de données, vous pouvez également obtenir un lien vide de n'importe quel type ;

Syntaxe : VALEUR(<Имя>)

Exemple d'utilisation :

Request.Text = "SELECT //élément prédéfini | VALUE(Directory.Currencies.Dollar) AS Dollar, //lien vide | VALUE(Document.Receipt of Goods and Services.EmptyLink) AS Receipt, //valeur du transfert | VALUE(Transfert . Particulier Juridique.) AS Particulier, //compte prédéfini VALUE(Plan comptable. Auto-comptable.Matériaux) AS Compte_10" ;

4. Fonction SÉLECTIONNER- nous avons devant nous un analogue de la construction IF, qui est utilisée dans le code, seule celle-ci est utilisée dans les requêtes 1C.

Syntaxe: CHOIX QUAND<Выражение>ALORS<Выражение>SINON<Выражение>FIN

Exemple d'utilisation :

Request.Text = //si le montant est supérieur à 7 500, alors il devrait y avoir une remise de 300 roubles, //donc si la condition est déclenchée alors la fonction //renvoie Somme - 300 //sinon la demande renverra simplement Somme "SELECT | SELECT | QUAND TCReceipts.Amount > 7500 | ALORS TCReceipts.Amount - 300 | ELSE TCReceipts.Amount | END AS AmountWithDiscount | FROM |

5. Fonction EXPRESSE- permet d'exprimer un champ constant avec un type spécifique.

Syntaxe: EXPRESS (Nom de champ AS Nom de type)

Exemple d'utilisation :

Query.Text = "SELECT DIVERS | Sales.Registrar.Number, | SELECT | WHEN Sales.Registrar LINK Document.Consumable | ALORS EXPRESS (Sales.Registrar AS Document.Consumable) | ELSE SELECT | WHEN Sales.Registrar LINK Document.Implementation | ALORS EXPRESS(Sales.Registrar AS Document.Implementation) | END | END AS Numéro | Accumulation Registre AS Achats";

Existe-t-il une autre option pour utiliser la fonction EXPRESS dans des champs de types mixtes, où se produisent-ils ? L'exemple le plus simple est le « registraire » pour n'importe quel registre. Alors pourquoi pourrions-nous avoir besoin de qualifier le type dans le registraire ? Considérons la situation lorsque nous sélectionnons le champ « Numéro » du registraire, dans quelle table le numéro sera-t-il sélectionné ? La bonne réponse de tous ! Par conséquent, pour que notre requête fonctionne rapidement, nous devons spécifier un type explicite à l'aide de la fonction EXPRESS

Exemple d'utilisation :

Query.Text = "SELECT | EXPRESS(Nomenclature.Comment AS Line(300)) AS Comment, | EXPRESS(Nomenclature.Sum AS Number(15,2)) AS Sum |FROM | Directory.Nomenclature AS Nomenclature";

6. Fonction ISNULL(orthographe alternative ISNULL) - si le champ est de type NULL, alors il est remplacé par le deuxième paramètre de la fonction.

Syntaxe: EST NULL(<Поле>, <ПодставляемоеЗначение>)

Exemple d'utilisation :

Notez également qu'il est conseillé de TOUJOURS remplacer le type NULL par une valeur, car la comparaison avec le type NULL renvoie toujours FALSE même si vous comparez NULL avec NULL. Le plus souvent, les valeurs NULL sont formées à la suite de jointures de tables (tous types de jointures sauf internes).

Query.Text = //Sélectionnez l'article entier et ses soldes //s'il n'y a pas de solde dans un article, alors il y aura un champ //NULL qui sera remplacé par la valeur 0 "SELECT | No. Link, | ISNULL (ProductsInStockRemains.InStockRemaining, 0) AS Restant | FROM | Directory.Nomenclature AS No. | CONNEXION GAUCHE RegisterAccumulations.GoodsInWarehouses.Remainings AS GoodsInWarehousesRemainings | PO (GoodsInWarehousesRemainings.Nomenclature = No.Link)";

7. Fonction REPRÉSENTATION- permet d'obtenir une représentation du champ de la requête.

Syntaxe: PERFORMANCE(<НаименованиеПоля>)

Exemple d'utilisation :

Query.Text = "SELECT | REPRÉSENTATION(FreeRemainingRemains.Nomenclature) AS Nomenclature, | REPRÉSENTATION(FreeRemainingRemaining.Warehouse) AS Entrepôt, | FreeRemainingRemaining.InStockRemaining |FROM |Accumulation Register.FreeRemaining.Remaining AS FreeRemainingRemaining";

Constructions dans le langage de requête 1C

Nous en avons discuté avec vous ci-dessus Fonctions du langage de requête 1C, il est maintenant temps de réfléchir constructions dans le langage de requête 1C, ils n’en sont pas moins importants et utiles, commençons.

1. LIEN Construction- est un opérateur logique pour vérifier un type de référence. Le plus souvent rencontré lors de la vérification d'un champ d'un type complexe par rapport à un type spécifique. Syntaxe: LIEN<Имя таблицы>

Exemple d'utilisation :

Request.Text = //si le type de valeur de l'enregistreur est le document Reçu, // alors la requête renverra "Réception de marchandises", sinon "Ventes de marchandises" "SELECT | SELECT | WHEN Remaining.Registrar LINK Document.Receipt of GoodsServices | ALORS ""Réception"" | ELSE ""Consommation"" | FIN AS Type de mouvement | Registre des produits restants dans les entrepôts AS Restant" ;

2. Conception ENTRE- cet opérateur vérifie si la valeur est dans la plage spécifiée.

Syntaxe: ENTRE<Выражение>ET<Выражение>

Exemple d'utilisation :

Request.Text = //récupère la nomenclature complète dont le code est compris entre 1 et 100 "SELECT | Nomenclature.Link |FROM | Directory.Nomenclature AS Nomenclature |WHERE | Nomenclature.Code BETWEEN 1 AND 100" ;

3. Construction B et B HIÉRARCHIE- vérifier si la valeur est dans la liste transférée (les tableaux, tableaux de valeurs, etc. peuvent être transférés sous forme de liste). L'opérateur DANS LA HIÉRARCHIE permet de visualiser la hiérarchie (un exemple d'utilisation du Plan Comptable).

Syntaxe: DANS(<СписокЗначений>), DANS LA HIÉRARCHIE (<СписокЗначений>)

Exemple d'utilisation :

Request.Text = //sélectionnez tous les sous-comptes du compte "SELECT | Autonome. Lien AS Compte | DE | Plan comptable. Autonome AS Autonome | OÙ | Autonome. Lien DANS LA VALEUR DE LA HIÉRARCHIE (Graphique de Comptes. Marchandises autonomes) ;

4. Conception SIMILAIRE- Cette fonction nous permet de comparer une chaîne avec un motif de chaîne.

Syntaxe: COMME "<ТекстШаблона>"

Options de modèle de ligne :

% - une séquence contenant un nombre quelconque de caractères arbitraires.

Un caractère arbitraire.

[...] - tout caractère unique ou séquence de caractères répertoriés entre crochets. L'énumération peut spécifier des plages, par exemple a-z, ce qui signifie un caractère arbitraire inclus dans la plage, y compris les extrémités de la plage.

[^...] - tout caractère ou séquence de caractères répertoriés entre crochets, à l'exception de ceux répertoriés après le signe de négation.

Exemple d'utilisation :

Query.Text = //trouver la nomenclature entière qui contient la racine TABUR et commence //soit par une lettre minuscule ou majuscule t "SELECT | Nomenclature. Lien | FROM | Répertoire. Nomenclature AS Nomenclature | WHERE | Produits. Nom LIKE "" [Tt ]abur%""" ;

5. Conception AUTORISÉE- cet opérateur vous permet de sélectionner uniquement les enregistrements de la base de données pour lesquels l'appelant dispose d'une autorisation de lecture. Ces droits sont configurés au niveau de l'enregistrement (RLS).

Syntaxe: ALLOWED est écrit après le mot-clé SELECT

Exemple d'utilisation :

Request.Text = "SELECT ALLOWED | Contreparties. Lien | FROM | Annuaire. Contreparties COMME Contreparties";

6. Conception DIVERS- vous permet de sélectionner des enregistrements dans lesquels il n'y a pas d'enregistrements en double.

Syntaxe: DIVERS s'écrit après le mot-clé SELECT

Exemple d'utilisation :

Request.Text = //sélectionne les enregistrements sur lesquels le lecteur a des droits "SELECT VARIOUS | Counterparties.Name |FROM | Directory. Counterparties AS Counterparties" ;

De plus, la construction DIVERS peut être utilisée avec l'opérateur AUTORISÉ et d'autres opérateurs.

Exemple d'utilisation :

Request.Text = //sélectionne divers enregistrements sur lesquels le lecteur a des droits "SELECT ALLOWED DIVERS | Counterparties.Name |FROM | Directory. Counterparties AS Counterparties";

7. Concevoir EN PREMIER- sélectionne le nombre d'enregistrements spécifiés dans le paramètre à partir du résultat de la requête.

Syntaxe : PREMIER<число>

Exemple d'utilisation :

Request.Text = //sélectionnez les 4 premiers numéros CCD du répertoire "SELECT FIRST 4 | Numéros CCD. Lien | FROM | Répertoire. Numéros CCD COMME numéros CCD";

8. Concevoir POUR LE CHANGEMENT- vous permet de verrouiller une table, fonctionne uniquement dans les transactions (pertinent uniquement pour les verrouillages automatiques).

Syntaxe: POUR CHANGER<НаименованиеТаблицы>

Exemple d'utilisation :

Query.Text = "SELECT | Restes libres Restes. Nomenclature, | Restes libres Restes. Entrepôt, | Restes libres Restes. En stock Restant | DE | Registre des accumulations. Restes libres. Restes AS Restes libres Restes | POUR CHANGEMENT | Registre des accumulations . Restes libres.

9. COMMANDER PAR- organise les données par un champ spécifique. Si le champ est un lien, alors lors de la définition du drapeau COMMANDE AUTOMATIQUE Le tri s'effectuera par représentation des liens ; si l'indicateur est désactivé, alors les liens sont triés selon l'ancienneté de l'adresse du lien en mémoire.

Syntaxe: TRIER PAR<НаименованиеПоля>COMMANDE AUTOMATIQUE

Exemple d'utilisation :

Query.Text = "SELECT | Restes libres Restes. Nomenclature AS Nomenclature, | Restes libres Restes. Entrepôt AS Entrepôt, | Restes libres Restes. En stock Restant | DE | Enregistrer les accumulations. Restes libres. Restant AS Restes restants libres | | ORDER BY | Nomenclature | LECTURE AUTOMATIQUE DES COMMANDES" ;

10. Conception GROUPE PAR- utilisé pour regrouper les chaînes de requête par champs spécifiques. Les champs numériques doivent être utilisés avec toute fonction d'agrégation.

Syntaxe: PAR GROUPE<НаименованиеПоля1>, .... , <НаименованиеПоляN>

Exemple d'utilisation :

Query.Text = "SELECT | ProductsInWarehouses.Nomenclature AS Nomenclature, | ProductsInWarehouses.Warehouse, | SUM(GoodsInWarehouses.InStock) AS INSTOCK |FROM | RegisterAccumulations.ProductsInWarehouses AS ProductsInWarehouses | |GROUP BY | ProductsInWarehouses.Nomenclature, | Treasurys.Warehouse";

11. Conception AVOIR- vous permet d'appliquer une fonction d'agrégation à une condition de sélection de données, similaire à la construction WHERE.

Syntaxe: AYANT<агрегатная функция с условием>

Exemple d'utilisation :

Query.Text = //sélectionne les enregistrements groupés où le champ InStock est supérieur à 3 "SELECT | ItemsInStocks.Nomenclature AS Nomenclature, | ItemsInWarehouses.Warehouse, | SUM(ItemsInStocks.InStock) AS INSTOCK |FROM | RegisterAccumulations.ItemsInStocks AS ItemsInStocks | | GROUPER PAR | ProduitsDansEntrepôts.Nomenclature, | ProduitsDansEntrepôts.Entrepôt |DISPONIBLE |

12. INDICE DE CONSTRUCTION PAR- utilisé pour indexer le champ de requête. Une requête avec indexation prend plus de temps, mais accélère la recherche dans les champs indexés. Ne peut être utilisé que dans les tables virtuelles.

Syntaxe: INDEX PAR<Поле1, ... , ПолеN>

Exemple d'utilisation :

Query.Text = "SELECT | Ts.NameOS, | Ts.FolderNumber, | Ts.CodeOS, | Ts.Term, | Ts.Type | PLACE DataTs | FROM | &Ts AS Ts | | INDEX BY | Ts.NameOS, | Ts .CodeOS" ;

13. Conception OÙ- vous permet d'imposer une condition sur n'importe quel champ de sélection. Le résultat inclura uniquement les enregistrements qui satisfont à la condition.

Syntaxe: OÙ<Условие1 ОператорЛогСоединения УсловиеN>

Exemple d'utilisation :

Query.Text = //tous les enregistrements avec CompensationRemaining sont sélectionnés<>0 et //AmountForCalcCompRemaining > 100 "SELECT | CompensationRPORemains.Counterparty, |CompensationRPORemains.Child, | CompensationRPORemains.CompensationRemaining, | CompensationRPORemains.AmountForCalcCompRemains |Place DataTz |FROM | Accumulation Register.CompensationRP.Remains AS CompensationRPORemains |WHERE |Compensation RPORemaining.CompensationRemaining<>0 | Et CompensationRPORemains.AmountForCalcCompRemaining> 100" ;

14. RÉSULTATS DE CONCEPTION... GÉNÉRAL- utilisé pour calculer les totaux ; la conception spécifie les champs par lesquels les totaux seront calculés et les fonctions d'agrégation appliquées aux champs de totaux. Lorsque vous utilisez des totaux pour chaque champ après la construction TOTAL, les données sont regroupées. Il existe une construction GÉNÉRALE facultative ; son utilisation fournit également un regroupement supplémentaire. Vous verrez un exemple du résultat de la demande ci-dessous.

Syntaxe: RÉSULTATS<АгрегатнаяФункция1, ... , АгрегатнаяФункцияN>PAR<ОБЩИЕ> <Поле1, ... , ПолеN>

Exemple d'utilisation :

Request.Text = "SELECT | Calculs. Accord de contrepartie. Type d'accord AS Type de contrat, | Calculs. Accord de contrepartie AS Contrat, | Calculs. Contrepartie, | Calculs. Montant du règlement mutuel Solde AS Solde | FROM | Registre des accumulations. Mutuelle Règlement AVEC Contreparties. Soldes AS Calculs | MONTANT TOTAL (Solde) |ON |GÉNÉRAL, |Type d'accord" ;

La figure présente les regroupements qui ont été formés lors de l'exécution de la demande, celui du haut fait référence à la section GÉNÉRAL et le second au champ Type d'accord d'accord de contrepartie.

Opérateur COMME vous permet de comparer les données de type chaîne dans une requête située à gauche de l'opérateur avec les données de type chaîne situées à droite de l'opérateur. Le résultat de la comparaison est évalué à True ou False, la comparaison peut donc être appliquée comme condition.

Pour l'opérateur COMME Il existe des caractères de service spéciaux qui ne sont pas perçus comme une chaîne :

  • Symbole de pourcentage "%" : indique la présence d'un nombre quelconque de caractères arbitraires dans une chaîne
  • « [...] » un ou plusieurs caractères entre crochets : indique la présence de l'un (unique) des caractères répertoriés. En outre, une plage de caractères peut être spécifiée (par exemple)
  • "_" trait de soulignement : indique la présence de tout caractère arbitraire
  • Caractère de négation "[^...]" : indique la présence de tout caractère autre que ceux spécifiés entre crochets
Si vous devez spécifier l'un des caractères spéciaux ci-dessus à des fins de comparaison, vous devez utiliser le mot-clé « SYMBOLE SPÉCIAL »

Fonctionnalités d'utilisation avec divers SGBD

IBM DB2"Seul un paramètre peut être placé à droite de l'opérateur SIMILAR. Les seuls caractères génériques sont "_" (trait de soulignement signifiant n'importe quel caractère) et "%" (pourcentage signifiant une séquence de n'importe quel caractère).
En cas d'utilisation d'un SGBD " PostgreSQL" ou " Base de données Oracle Les "caractères spéciaux "crochets [...]" ne sont acceptés que s'ils sont spécifiés dans le texte de la requête, et ne sont PAS passés en paramètre à la requête.

Ainsi, dans la base de données fichiers, les caractères spéciaux seront toujours perçus de la même manière, et différemment selon le SGBD utilisé dans la version client-serveur.

Exemple : sélectionner des produits contenant le symbole "%" dans le nom

SÉLECTIONNER | Réf.Lien |DE | Annuaire COMMENT Réf | Ref.Name LIKE "%\%" CARACTÈRE SPÉCIAL "\"

Exemple : sélectionnez des produits dont le nom commence par le mot "Tank"

SÉLECTIONNER | Réf.Lien |DE | Annuaire COMMENT Réf | Nom de référence SIMILAIRE à "Bak%"

Exemple : sélectionner des produits dont les noms se terminent par un chiffre

SÉLECTIONNER | Réf.Lien |DE | Annuaire COMMENT Réf | Nom de référence LIKE "%"

Regardons le but et l'utilisation de l'opérateur conditionnel COMME(eng. COMME) dans le langage de requête 1C dans des exemples.

Passage rapide

But

Vérifiez si la valeur de chaîne dans la requête correspond au modèle spécifié - renvoie une valeur booléenne (VRAI ou FAUX).

  • Le contrôle est indépendant du cas.
  • La requête utilise des index de table, sans rapport avec les index de recherche en texte intégral.
  • Cela peut prendre beaucoup de temps pour terminer avec de grandes tables.
  • Les chaînes de longueur illimitée doivent être converties à l'aide de la fonction SUBSTRING

Lieux d'utilisation

  • Aux termes de l'opérateur OÙ
  • Dans les conditions de conception CHOIX QUAND<>PUIS "" AUTRE "" FIN
  • Dans les champs de sélection (par exemple : Nom LIKE &ParameterSimilar to StringSuitable)

Description de la syntaxe de l'opérateur LIKE

Le paramètre de l'opérateur doit être une chaîne : il peut être spécifié comme constante, ou passé comme paramètre de requête.

Les littéraux (masques) répertoriés ci-dessous peuvent être utilisés ensemble ou séparément.

Spécification exacte de la chaîne

SÉLECTIONNER les 10 premiers
Clés.Nom
DEPUIS
Répertoire.Keys AS Clés

Keys.Name SIMILAIRE à "1" // Équivalent à Keys.Name ="1"

Résultat:

% est un littéral signifiant un nombre arbitraire de caractères

SÉLECTIONNER les 10 premiers
Clés.Nom
DEPUIS
Répertoire.Keys AS Clés

Clés.Nom COMME "%"

Résultat : 10 articles au choix

_ (trait de soulignement) : littéral correspondant à n'importe quel caractère

Exemple 1:

SÉLECTIONNER les 10 premiers
Clés.Nom
DEPUIS
Répertoire.Keys AS Clés

Clés.Nom COMME "_"

Exemple n°2 : en commençant par n'importe quel caractère, suivi de "1", puis de n'importe quel caractère

SÉLECTIONNER les 10 premiers
Clés.Nom
DEPUIS
Répertoire.Keys AS Clés

Keys.Name SIMILAIRE à "_1%"

Résultat:

(un ou plusieurs caractères entre crochets)

  • Chaque littéral correspondant à un caractère est utilisé comme OU.
    Il est acceptable de spécifier une plage, par exemple a-z,0-5, ce qui signifie un caractère arbitraire de la plage spécifiée

Exemple

SÉLECTIONNER les 10 premiers
Clés.Nom
DEPUIS
Répertoire.Keys AS Clés

Keys.Name SIMILAIRE à "[l]%"

Résultat: 10 commençant par "l" ou "z"

Exemple: commençant par 5,6,7

SÉLECTIONNER les 10 premiers
Clés.Nom
DEPUIS
Répertoire.Keys AS Clés

Clés.Nom COMME "%"

Résultat:

[^] (entre crochets il y a un signe d'échappement ^ suivi d'un ou plusieurs caractères)

Équivalent à n'importe quel caractère (_) sauf ceux spécifiés ()

Exemple

SÉLECTIONNER les 10 premiers
Clés.Nom
DEPUIS
Répertoire.Keys AS Clés

Keys.Name SIMILAIRE à "8.[^012]%"//n'inclut pas 8.0,8.1,8.2

Résultat: tout commence par "8". à l'exclusion de ceux indiqués

CARACTÈRE SPÉCIAL - commande pour spécifier les caractères enregistrés ci-dessus dans la requête

Comme symbole de service, il est acceptable d'utiliser au moins : #,~,/,\

Exemple:

SÉLECTIONNER les 10 premiers
Clés.Nom
DEPUIS
Répertoire.Keys AS Clés

Keys.Name COMME "#_" CARACTÈRE SPÉCIAL "#"

Résultat:

Applicabilité dans les plateformes

Paramètres incorrects COMME<>

  • Un paramètre de type non-chaîne est passé : par exemple, le chiffre 1 au lieu de la chaîne « 1 »
  • Un champ de type non chaîne est comparé à un masque valide (par exemple, un lien) ou lors de la connexion, la valeur n'est pas vérifiée pour IsNUL

Faites attention au texte d'erreur où la question est affichée :

Clés.Nom SIMILAIRE<>&L

L'opérateur SIMILAR dans une requête vérifie la similitude des valeurs de chaîne des tables avec un modèle.
Il s'utilise de la manière suivante : la chaîne à vérifier est placée à gauche de cet opérateur, et le motif est placé à droite.

Après vérification, il renvoie True ou False en conséquence, il est activement utilisé dans les conditions.
Les caractères de service suivants sont utilisés pour créer un modèle :

  • % (pourcentage) - une séquence contenant un nombre quelconque de caractères arbitraires
  • _ (trait de soulignement) - un caractère arbitraire
  • […] (un ou plusieurs caractères entre crochets) - tout caractère unique répertorié entre crochets
    De plus, en plus de divers symboles, vous pouvez utiliser des plages, par exemple a-z(A-z), ce qui signifie la présence d'un symbole arbitraire inclus dans la plage, y compris les extrémités de la plage.
  • [^...] (entre crochets, un signe de négation suivi d'un ou plusieurs caractères) - tout caractère autre que ceux répertoriés après le signe de négation

Les symboles restants sont utilisés conformément à leur destination.
S'il est nécessaire de transmettre l'un des caractères de service ci-dessus sous forme de symbole, il doit alors être précédé de<Спецсимвол>. Moi-même<Спецсимвол>(tout caractère approprié) est défini dans la même instruction après le mot clé SPECIAL CHARACTER.
Par exemple, le modèle « %ABV[abvg]\_abv% » CARACTÈRE SPÉCIAL « \ » désigne une sous-chaîne constituée d'une séquence de caractères :
lettres A; lettres B; lettres B; Un chiffre; une des lettres a, b, c ou d ; souligner; lettres a; lettres b; lettres v.
De plus, cette séquence peut être précédée d'un ensemble arbitraire de caractères.

Procédure Sélectionnez AgreementContainingInNameText(mText)
//Dans la requête, nous utiliserons un modèle comme "%" + mText + "%" Request = New Request; Query.SetParameter("Nom", "%" + Texte + "%"); Request.Text = "SELECT | Accords. Lien, | Accords. Propriétaire | DE | Répertoire. Contrats des contreparties AS Accords | | OÙ | Accords. Nom SIMILAIRE et Nom"; Résultat = Query.Run(); Sélection = Résultat.Select(); Report("Les accords contenant dans le nom : " + mText + " ont les contreparties suivantes"); While Selection.Next() Cycle Report("Contrepartie : " + Selection.Owner + " ; Accord : " + Selection. Link EndIf ; EndProcedure

Parfois, une situation se présente lorsque dans 1C 8.3 ou 8.2, vous devez faire une sélection, par exemple, dans un répertoire de tous les éléments qui ont le mot « glaçage » dans leur nom. Ou, dans l'annuaire, sélectionnez tous les entrepreneurs dont le nom de famille contient le mot « Ivan ». En général, vérifiez une valeur de chaîne.

A cet effet, il existe un opérateur dans les requêtes 1C 8.3 et 8.2 - « Similaire ». Il est utilisé respectivement dans les conditions suivantes :

Obtenez 267 leçons vidéo sur 1C gratuitement :

Comment utiliser des modèles dans les requêtes 1C ?

Pour générer une condition de sélection, vous devez passer un certain modèle en paramètre. Pour créer un modèle, il existe des symboles dits de service.

Par exemple, le caractère "%" autorise toute séquence de caractères arbitraires :

Il existe d'autres caractères spéciaux :

  • % (pourcentage) - autorise toute séquence de caractères arbitraires ;
  • _ (trait de soulignement) - n'importe quel caractère ;
  • […] – un caractère arbitraire parmi ceux répertoriés entre parenthèses. En plus de lister les caractères, vous pouvez utiliser des plages. Exemple : a-o ;
  • [^...] – le même que le précédent, mais à l'envers. Le signe "^" signifie négation.


Avoir des questions?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :