Come configurare smartphone e PC. Portale informativo
  • casa
  • notizia
  • Rimuovi gli spazi extra 1s. Eliminazione degli spazi unificatori

Rimuovi gli spazi extra 1s. Eliminazione degli spazi unificatori

FAQ o piattaforma 8 per manichini.

A giudicare dai forum dedicati a 1C, i programmatori che per primi hanno incontrato la piattaforma 1C v 8 o che sono passati dalla 7.7 hanno spesso le stesse domande. Qui ho deciso di raccogliere i più comuni, secondo me...

IN: Come rimuovere uno spazio nel numero 12.600,00?
DI:È importante capire che qui non viene utilizzato il carattere spazio, ma il cosiddetto "spazio non divisibile", quindi, ad esempio, la seguente costruzione:

StrReplace(NumeroVariabile," ","");

non funzionerà. Sono disponibili due opzioni per risolvere il problema: specificare Symbols.NPP per la sostituzione anziché uno spazio o utilizzare la funzione Format().

StrReplace(VariableNumber, Symbols.NPP,""); // 1a opzione
Formato(NumeroVariabile,"CH="); // 2a opzione

IN: Come impostare una condizione in una query in modo tale che solo i documenti di un certo tipo vengano inclusi nella selezione risultante?
DI: Questo può essere fatto utilizzando l'operatore del linguaggio di query REFERENCE, che consente di verificare se il valore dell'espressione specificata a sinistra di essa è un riferimento alla tabella specificata a destra. Considera un esempio, seleziona dal registro di accumulo Realizzazione di servizi solo quei record per i quali il registrar è il documento Realizzazione di beni e servizi:

Richiesta=Nuova richiesta("
|SCEGLI
| Implementazione dei Servizi Registrar,
| Attuazione dei servizi Importo
| DA
| Registro di Accumulo Implementazione di Servizi AS Implementazione di Servizi
|DOVE
| Documento LINK Registrar. Vendita di beni e servizi");

IN: Come trasferire determinati documenti/directory tra configurazioni identiche?
DI: Questo può essere fatto con l'aiuto dell'elaborazione di esempio UploadUploadDataXML.epf fornita sui dischi ITS.

IN: Come trasferire i dati tra diverse configurazioni (o da 7.7 a 8)?
DI: L'opzione migliore, secondo me, è quella di utilizzare la tipica configurazione "Conversione Dati", che viene fornita sui dischi ITS, ci sono anche diversi articoli che descrivono l'uso di questa configurazione.

IN: Come aggiungere una determinata stringa a un campo di tipo non stringa in una query, ad esempio SELECT Realizzazione di beni di servizi Importo + "sfregamento."?
DI: Non c'è modo. La conversione del tipo non è possibile in una query. Il costrutto del linguaggio di query EXPRESS è fuorviante per alcuni, ma esegue il cast solo di un valore di un tipo composto su uno dei tipi di componenti di quel valore e non converte in alcun modo il tipo, quindi non è applicabile in questa situazione.

IN: Come impostare una condizione in una query su un campo con il tipo stringa di lunghezza illimitata, ad esempio selezionare tutti i documenti con un determinato commento?
DI: A tale scopo, è necessario limitare la lunghezza del campo utilizzando l'operatore del linguaggio di query EXPRESS. Per esempio:

Richiesta=Nuova richiesta("
|SCEGLI
| Realizzazione di Beni e Servizi Link
| DA
| Documento.Vendita di Beni/Servizi COME Realizzazione di Beni/Servizi
|DOVE
| EXPRESS(ImplementationProductsServices.Comment AS STRING(100)) = &Comment");

IN: Esiste un analogo della funzione 7.7 CatalogIB() nella v 8?
DI: No, poiché una tale funzione non avrebbe senso per una modalità operativa client-server. Tuttavia, per la modalità di funzionamento del file, è possibile ottenere la directory di infobase utilizzando la seguente costruzione:

DirectoryIB=NSstr(InfobaseConnectionString(),"File");

IN: Come disconnettere un nodo da un infobase distribuito?
DI: Con il seguente costrutto:

Exchange Plans.SetMainNode(Undefined);

Oppure eseguire il configuratore con il parametro della riga di comando /ResetMasterNode (non utilizzato per le versioni base).

IN: Come ottenere il nome del documento (analogo al metodo 7.7 View())?
DI: Con l'aiuto dei metadati. Per esempio:

IN: Come selezionare documenti di tutti i tipi con una query?
DI: Utilizzo dei metadati e capacità di combinare le query IN:

Richiesta=Nuova Richiesta;
Testo="";
Per ogni documento da Metadata.Documents Loop
Testo=Testo+"SCEGLI Collegamento DA Documento."+Nome.Documento+"UNISCI";
ciclo finale;
Query.Text=Lev(Testo, LunghezzaString(testo)-StrLength(" UNITE "));
Selezione=Query.Esegui().Seleziona();

IN: Come interrompere l'esecuzione di una segnalazione/elaborazione?
DI: Con l'operatore UserInterruptHandle(), si consiglia di utilizzarlo all'interno dei loop. Quando l'utente preme la combinazione di tasti Ctrl+Break, l'esecuzione viene interrotta e viene visualizzato un messaggio corrispondente. Per esempio:

Mentre Selection.Next() Loop
HandlingUserInterrupt();

ciclo finale;

IN: Il modulo ha un TableField con il tipo ValueTree e il set di proprietà Tree. Perché l'albero dei valori non viene visualizzato?
DI:È inoltre necessario impostare la proprietà DisplayHierarchy per una delle colonne.

IN: Come utilizzare le attività pianificate nella modalità file infobase?
DI: A differenza della modalità client-server, in modalità file, lo sviluppatore è responsabile dell'implementazione dell'avvio automatico delle attività pianificate. Per implementare l'avvio automatico dei lavori, è necessario un gestore di attesa che controlli periodicamente i lavori "scaduti" e li avvii. Si consiglia vivamente di utilizzare una sessione separata per questo. Esempio:

Procedura Task Check()
ExecuteProcessingJobs();
EndProcedura
ConnectWaitingHandler("Verifica attività",3);

IN: Come ottenere un array da una stringa delimitata?
DI: Ad esempio, fornirò la mia versione di una funzione che funziona "in entrambe le direzioni", ovvero quando si passa una stringa delimitata, forma un array e quando si passa un array, ne forma una stringa delimitata.

Funzione StringArray(Valore, Separatore)
Se TipoValore(Valore)=Tipo("Stringa") Allora
MnStr=StrReplace(Valore, Separatore, Simboli.PS);
Matrice=Nuova Matrice;
For n=1 Per StrNumber of Rows (MnStr) Ciclo
Array.Add(StrGetString(MnStr,n));
ciclo finale;
Matrice di ritorno;
ElseIf TypeValue(Value)=Type("Array") Allora
Stringa="";
Per ogni elemento da Value Loop
Stringa=Stringa+?(Stringa"",Separatore,"")+Elemento;
ciclo finale;
Stringa di ritorno;
Altrimenti
Ritorno indefinito;
Finisci se;
Funzioni finali

IN: Come abilitare la possibilità di apportare modifiche al configuratore in una configurazione tipica?
DI: Poiché sono supportate le configurazioni tipiche (che consentono gli aggiornamenti automatici), per impostazione predefinita, la possibilità di apportare modifiche alla configurazione è disabilitata. Per abilitare questa funzionalità, seleziona la voce di menu "Configurazione > Supporto > Impostazioni supporto" nel configuratore e clicca sul pulsante "Abilita la possibilità di modifica" nella finestra che si apre.

IN: Come impostare una password per l'elaborazione/configurazione?
DI: In 1C v 8, le password possono essere impostate solo sui moduli oggetto. Per impostare una password è necessario aprire il modulo oggetto e selezionare la voce di menu "Testo > Imposta password". È anche possibile consegnare la configurazione senza il codice sorgente dei moduli oggetto (configurazione "Configurazione > Consegna configurazione > Impostazioni consegna"). Vorrei sottolineare che al momento nessuno di questi metodi è una protezione affidabile contro la visualizzazione del codice sorgente del modulo.

IN: Perché la ricerca di un documento non funziona utilizzando FindByNumber(<Номер документа>)?
DI: Si ricorda che se per questo tipo di documenti è impostata nel configuratore una numerazione periodica, oltre al numero del documento, è necessario indicare come secondo parametro la data dell'intervallo. In caso contrario verrà ricercato un documento con data vuota, che ovviamente non porterà al risultato desiderato.

IN: In 1C 8.1, se è necessario connettersi a un'applicazione già in esecuzione per il debug (Configuratore > Debug > Connessione), gli elementi di debug disponibili sono vuoti. Qual è la ragione?
DI: Il fatto è che per l'applicazione di cui eseguiremo il debug, è necessario abilitare esplicitamente il debug. Menu Strumenti > Opzioni > scheda Sistema > flag Debug abilitato.

IN: Come ordinare le righe di un elenco dinamico (ad esempio DirectoryList o DocumentList)?
DI: Questo può essere fatto utilizzando Report Builder, ad esempio:

Generatore=Nuovo generatore di report;
Builder.DataSource=NewDataSourceDescription(Elenco documenti);
Selezione=Builder.Result.Select();
Mentre Selection.Next() Loop
Report(Selezione. Link);
ciclo finale;

Nota: la selezione includerà righe in base alla selezione attualmente impostata.

IN: Come controllare i valori delle proprietà degli oggetti di metadati? Ad esempio, il tipo di gerarchia di directory o la modalità di inserimento nel registro o la frequenza del numero del documento?
DI: Tutte queste proprietà sono proprietà enumerate di oggetti di metadati. Puoi anche ottenere valori di questo tipo tramite i metadati. Esempi:

// Esempio 1. Visualizzazione della gerarchia di ricerca
Se Metadata.Catalogs[CatalogName].HierarchyView = Metadata.ObjectProperties.HierarchyView.HierarchyGroupsAndItems Allora...
// Esempio 2. RegisterWriteMode
Se Metadata.InformationRegisters[RegisterName].RegisterWriteMode = Metadata.ObjectProperties.RegisterWriteMode.RegisterSubordinate Allora...
// Esempio 3. Numero documento periodico
Se Metadata.Documents[DocumentName].Number Periodicity = Metadata.ObjectProperties.DocumentNumber Periodicity.Non-Periodic Allora...

IN: Come implementare una casella di controllo con tre stati nell'albero dei valori?
DI: Consideriamo l'affermazione del problema in modo più dettagliato. Il modulo ha un campo tabella la cui origine dati è un albero dei valori. Una delle colonne contiene un controllo casella di controllo. È necessario che possa assumere tre stati "On", "Off" e "Undefined". In questo caso, lo stato è "Non definito" o la cosiddetta "bandiera grigia", cioè parzialmente selezionato, impostato se non tutte le righe subordinate hanno lo stesso stato di flag. Inoltre, se una riga ha righe subordinate, quando il relativo flag viene modificato, i flag di tutte le righe subordinate dovrebbero essere modificati di conseguenza.
Innanzitutto, aggiungiamo la nostra colonna casella di controllo all'albero dei valori:

Tree.Columns.Add("Segna",NewTypeDescription("Numero"));
FormElements.Tree.CreateColumns();
TreeColumns=FormElements.Tree.Columns;
TreeColumns.Mark.FlagData="Segna";
TreeColumns.Mark.SetControlItem(Tipo("Casella di controllo"));
TreeColumns.Mark.EditMode=EditModeColumns.Immediate
enno;
TreeColumns.Tag.ThreeFlagStates=Vero;

In secondo luogo, quando si cambia il flag, è necessario impostare i valori appropriati nelle righe subordinate e controllare il valore del flag nella "riga padre":

Procedura TreeOnChanging a Flag(Element, Column)
RigaCorrente=Elemento.RigaCorrente;
Se CurrentLine.Mark=2 Allora
CurrentLine.Mark=0;
Finisci se;
ImpostazioneFlags(RigaCorrente,RigaCorrente.Marco);
Mentre CurrentRow.ParentUndefined Loop
CurrentRow.Parent.Label=?(SetForAll(CurrentRow),CurrentRow.Label,2);
CurrentRow=CurrentRow.Parent;
ciclo finale;
EndProcedura

Qui, la procedura SetFlags() imposta ricorsivamente i flag nelle sottorighe:

Procedura SetFlags(RigaCorrente,Valore)
Per ogni pagina di CurrentRow.Rows Loop
PageMark=Valore;
Imposta Flag(Pag,Pag.Mark);
ciclo finale;
EndProcedura

E la funzione SetForAll() controlla se lo stesso valore è impostato per tutte le righe al livello corrente:

Funzione SetForAll(Stringa)
Per Ogni Pagina Di Row.Parent.Row Loop
Se Page.MarkString.Mark allora
restituire falso;
Finisci se;
ciclo finale;
restituisce vero;
Funzioni finali

IN: Come implementare l'ordinamento per attributo in forma di elenco?
DI: Se l'attributo è di tipo primitivo, è sufficiente impostare la proprietà dell'attributo "Indice" su "Indice" o "Indice con ordering” (non disponibile per attributi di tipo ValueStorage). Se l'attributo è di un tipo di riferimento, è necessario abilitare esplicitamente l'ordinamento per esso. Per esempio:

ElementUE=Form Elements.DirectoryList.Order Settings.Find("Attribute1");
Se ElementUE è Undefined Allora
ItemUE.Availability=true;
Finisci se;

Accade spesso che durante il caricamento e lo scaricamento di dati da 1C 8.2 e 8.3, ci siano spazi nei numeri che impediscono la normale elaborazione dei dati. La soluzione a questo problema è molto semplice.

Considera quali sono i tipi di gap.

Gli spazi possono essere di due tipi:

  • spazio unificatore;
  • divario "regolare".

Eliminazione degli spazi unificatori

Rappresentazione Stringa = Stringa(Numero); // il sistema scriverà nella variabile "10 000"

Rimuovere tali spazi in 1C è molto semplice attraverso la funzione di formato numerico:

Numero = Formato(10000, "CH=");

Rappresentazione Stringa = Stringa(Numero); // il sistema scriverà nella variabile "10000"

Impostiamo il raggruppamento nella stringa di formato su un valore vuoto (puoi anche scrivere "0").

Se il tipo di dati è già "string", è possibile utilizzare il metodo seguente:

StringRepresentation = StrReplace(String(StringRepresentation), Characters.NPP, ""); // la variabile StringRepresentation era "10 000", è diventata "10000"

Cioè, abbiamo semplicemente sostituito lo spazio unificatore (Symbols.NPP) nella stringa con un valore vuoto.

Spazi regolari

Rimuovere uno spazio regolare in una stringa è facile come sgusciare le pere. È sufficiente eseguire la seguente funzione:

StringRepresentation = StrReplace(String(StringRepresentation), " ", ""); // "10.000" è diventato "10.000"

L'esempio è simile al metodo precedente. Tuttavia, invece di Symbols.npp, utilizziamo una stringa a spazio singolo.

Se stai iniziando a imparare la programmazione 1C, ti consigliamo il nostro corso gratuito (non dimenticare iscriviti a youtube - Nuovi video vengono pubblicati regolarmente.

Il tipo String si trova in tutti i linguaggi di programmazione. È primitivo e in 1C ci sono molte funzioni per lavorarci. In questo articolo considereremo in dettaglio i vari modi di lavorare con i tipi di stringa in 1C 8.3 e 8.2 usando degli esempi.

Linea

Per convertire una variabile di qualsiasi tipo in una stringa, esiste la funzione "Stringa ()" con lo stesso nome. Il parametro di input sarà la variabile stessa, la cui rappresentazione in stringa deve essere ottenuta.

String(False) // restituisce "No"
String(12345) // restituisce "12 345"
Stringa(DataCorrente()) //"21.07.2017 11:55:36"

È possibile convertire in una stringa non solo tipi primitivi, ma anche altri, ad esempio elementi di directory e documenti.

LP abbreviato, L abbreviato, P abbreviato

I parametri di input di queste funzioni sono una variabile di tipo stringa. Le funzioni rimuovono i caratteri insignificanti (spazi, ritorni a capo, ecc.): rispettivamente dai lati sinistro e destro, solo dal lato sinistro e solo da destra.

abbrl("Gli spazi su entrambi i lati verranno rimossi") // "Gli spazi su entrambi i lati verranno rimossi"
abbr("Gli spazi su entrambi i lati verranno rimossi") // "Gli spazi a sinistra verranno rimossi"
abbr("Gli spazi su entrambi i lati verranno rimossi") // "Gli spazi sulla destra verranno rimossi"

Leone, Destra, Medio

Queste funzioni consentono di tagliare parte di una stringa. La funzione Lion() restituirà la parte della stringa sul lato sinistro della lunghezza specificata. La funzione "Right()" è simile, ma il ritaglio viene eseguito a destra. La funzione "Mer()" consente di specificare il numero del carattere da cui verrà selezionata la stringa e la sua lunghezza.

Leone("Variabile stringa", 4) // restituisce "Stro"
Right("Variabile stringa", 7) // restituisce "variabile"
avg("Variabile stringa", 2, 5)// restituisce "troco"

StrLength

La funzione determina il numero di caratteri contenuti in una variabile stringa.

StrLength("Word") // il risultato dell'esecuzione sarà il numero 5

Trovare

La funzione permette di cercare una parte di una stringa in una variabile stringa. Il valore restituito sarà un numero che indica la posizione dell'inizio della stringa trovata. Se non vengono trovate corrispondenze, viene restituito zero.

Tieni presente che la ricerca fa distinzione tra maiuscole e minuscole. Se nella stringa originale è presente più di un'occorrenza della sottostringa di ricerca, la funzione restituirà l'inizio della prima occorrenza.

Find("uno, due, uno, due, tre", "due") // la funzione restituirà il numero 6

Riga vuota

L'utilizzo di questa funzione consente di determinare se una stringa è vuota. I caratteri insignificanti, come spazio, ritorno a capo e altri non vengono presi in considerazione.

EmptyString("Vasily Ivanovich Pupkin") // la funzione restituirà False
EmptyString(" ") // la funzione restituirà True

VReg, NReg, TReg

Queste funzioni sono molto utili durante il confronto e la conversione di variabili stringa. "Vreg()" restituirà la stringa originale in maiuscolo, "HReg()" in minuscolo e "TReg()" lo formatterà in modo che il primo carattere di ogni singola parola sia in maiuscolo e tutti i caratteri successivi siano minuscoli.

VReg("DIRETTORE GENERALE") // valore restituito - "DIRETTORE GENERALE"
HReg("DIRETTORE GENERALE") // valore restituito - "CEO"
TReg("DIRETTORE GENERALE") // valore restituito - "Direttore Generale"

StrSostituisci

Questa funzione è analoga alla sostituzione negli editor di testo. Consente di sostituire un carattere o un insieme di caratteri con un altro nelle variabili stringa.

StrReplace("rosso, bianco, giallo", ",", ";") // restituisce "rosso; Bianco; giallo"

StrNumberRows

La funzione consente di determinare il numero di righe separate da un ritorno a capo in una variabile di testo.

Il ciclo nell'esempio seguente passerà attraverso tre cerchi perché la funzione StrNumberRows restituirà il valore 3:

Per ind \u003d 1 per StrNumber of Lines ("Linea1" + Symbols.PS + "String2" + Symbols.PS + "Line3") Ciclo
<тело цикла>
ciclo finale;

StrGetString

Questa funzione funziona con il testo multilinea allo stesso modo della precedente. Ti permette di ottenere una stringa specifica da una variabile di testo.

StrGetString("Stringa1" + Simboli.PS + "Stringa2" + Simboli.PS + "Stringa3", 2) // restituisce "Linea2"

StrNumberOccurrences

La funzione conta il numero di occorrenze di un carattere o di una sottostringa nella stringa cercata.

StrNumberInstallations("a;b;c;d; ", ";") // la funzione restituirà il numero 4

Simbolo e CodiceSimbolo

Queste funzioni ti consentono di ottenere un carattere dal suo codice Unicode, oltre a determinare questo codice dal carattere stesso.

SymbolCode("A") // la funzione restituirà il numero 1 040
SymbolCode(1040) // la funzione restituirà "A"

Attività frequenti quando si lavora con le stringhe

Concatenazione di stringhe

Per concatenare più stringhe (concatenare) basta usare l'operatore di addizione.

"Riga 1" + "Riga 2" //il risultato dell'aggiunta di due righe sarà "Riga 1 Riga 2"

Digita la conversione

Per convertire un tipo in una stringa, ad esempio un riferimento a un elemento del dizionario, un numero e così via, è sufficiente utilizzare la funzione "Stringa ()". Funzioni come "ShortLP()" convertono anche le variabili in una stringa, ma immediatamente tagliando i caratteri insignificanti.

String(1000) // restituirà "1000"

Si noti che quando si converte un numero in una stringa, il programma aggiunge automaticamente uno spazio che separa le migliaia. Per evitare ciò, è possibile utilizzare le seguenti strutture:

StrReplace(String(1000),Characters.NPP,"") // restituisce "1000"

String(Format(1000,"CH=")) // restituirà "1000"

Citazioni in una stringa

Abbastanza spesso dovrai fare i conti con la necessità di mettere le virgolette in una variabile stringa. Può essere sia un testo di richiesta scritto nel configuratore, sia solo una variabile. Per risolvere questo problema, devi solo impostare due virgolette.

Header = String("Horns and Hooves LLC siamo noi!") // restituisce "Roga and Hooves LLC siamo noi!"

Multilinea, interruzione di riga

Per creare un testo multilinea, è sufficiente aggiungere caratteri di interruzione di riga (Symbols.PS).

MultilineText = "Prima riga" + Caratteri.PS + "Seconda riga"

Come rimuovere gli spazi

Per rimuovere gli spazi a destra o a sinistra, puoi utilizzare la funzione "Stretch()" (oltre a "Scrpt()" e "ScreenP()"):

StringWithoutSpaces = ShortLP("Molte lettere") // la funzione restituirà il valore "Molte lettere"

Se, dopo aver convertito un numero in una stringa, è necessario rimuovere gli spazi unificatori, utilizzare la seguente costruzione:

StringWithoutSpaces = StrReplace(String(99999),Characters.NPP,"") // restituisce "99999"

Inoltre, i programmatori usano spesso la seguente costruzione, che consente di rimuovere o sostituire tutti gli spazi di una variabile di testo con un altro carattere:

StringWithoutSpaces = StrReplace(" ciao", " " ,"") // restituisce "ciao"

Confrontando le stringhe tra loro

Puoi confrontare i termini con il solito segno di uguale. Il confronto fa distinzione tra maiuscole e minuscole.

"ciao" = "ciao" // restituirà false
"Hello" = "Hello" // restituirà True
"Hello" = "Goodbye" // restituirà False

Le stringhe in 1C 8.3 nel linguaggio integrato 1c sono valori di tipo primitivo Linea. I valori di questo tipo contengono una stringa Unicode di lunghezza arbitraria. Le variabili di tipo stringa sono un insieme di caratteri racchiusi tra virgolette.

Esempio 1. Creiamo una variabile stringa con testo.

StringVariable = "Ciao mondo!";

Funzioni per lavorare con le stringhe in 1s 8.3

In questa sezione verranno fornite le principali funzioni che consentono di modificare le righe in 1s o di analizzare le informazioni in esse contenute.

StrLength

StrLength(<Строка>) . Restituisce il numero di caratteri contenuti nella stringa passata nel parametro.

Esempio 2. Contiamo il numero di caratteri nella stringa "Hello world!".

String = "Ciao mondo!"; Numero di caratteri = StrLength(Stringa); Rapporto(Numero di caratteri);

Il risultato dell'esecuzione di questo codice visualizzerà il numero di caratteri nella stringa: 11.

Abbreviato

Abbr(<Строка>) . Taglia i caratteri non significativi a sinistra del primo carattere significativo in una stringa.
Personaggi insignificanti:

  • spazio;
  • spazio unificatore;
  • tabulazione;
  • ritorno in carrozza;
  • traduzione di riga;
  • traduzione del modulo (pagina).

Esempio 3. Rimuovere tutti gli spazi dal lato sinistro della stringa "pace!" e aggiungi la stringa "Hello".

Stringa = abbr("mondo!"); Stringa = "Ciao"+Stringa; Notifica(Stringa);

Il risultato dell'esecuzione di questo codice sarà la visualizzazione della stringa "Hello world!".

Abbreviazione

abbr(<Строка>) . Taglia i caratteri non significativi a destra del primo carattere significativo in una stringa.

Esempio 4. Modulo dalle stringhe "Hello" e "world!" frase "Ciao mondo!"

Stringa = abbr("Ciao")+" "+abbr("mondo!"); Notifica(Stringa);

LP abbreviato

Abbrl(<Строка>) . Taglia i caratteri non significativi a destra del primo carattere significativo nella stringa, taglia anche i caratteri non significativi a sinistra del primo carattere significativo nella stringa. Questa funzione viene utilizzata più spesso delle due precedenti, in quanto è più versatile.

Esempio 5. Rimuovere i caratteri insignificanti a sinistra ea destra nel nome della controparte.

Appaltatore = Directories.Contractors.FindBy Details("TIN", "0777121211"); ContractorObject = Contractor.GetObject(); ContractorObject.Description = LP abbreviato(ContractorObject.Description); ContractorObject.Write();

un leone

Un leone(<Строка>, <ЧислоСимволов>) . Ottiene i primi caratteri di una stringa, il numero di caratteri è specificato nel parametro Numero di caratteri.

Esempio 6. Passiamo alla struttura Dipendente contenere il nome, cognome e patronimico del dipendente. Ottieni una stringa con cognome e iniziali.

NomeIniziale = Leone(Dipendente.Nome, 1); Iniziale patronimico = Leone(Dipendente.Patronimico, 1); NomeCompleto = Impiegato.Cognome + " " + Nome Iniziale + "." + Iniziale patronimica + ".";

Diritti

Destra(<Строка>, <ЧислоСимволов>) . Ottiene gli ultimi caratteri di una stringa, il numero di caratteri è specificato nel parametro Numero di caratteri. Se il numero di caratteri specificato supera la lunghezza della stringa, viene restituita l'intera stringa.

Esempio 7. Scrivi una data alla fine di una variabile stringa nel formato "aaaammgg", prendi una stringa con una data e convertila in tipo data di.

Stringa = "Data attuale: 20170910"; StringData = Diritti (Stringa, 8); Data = Data(StringDate);

Mercoledì

Mercoledì(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) . Ottiene una sottostringa dalla stringa passata nel parametro Linea, a partire dal carattere il cui numero è specificato nel parametro Numero Iniziale e la lunghezza passata al parametro Numero di caratteri. La numerazione dei caratteri in una stringa parte da 1. Se il parametro Numero Iniziale viene specificato un valore minore o uguale a zero, il parametro assume il valore 1. Se il parametro Numero di caratteri non è specificato, vengono selezionati i caratteri fino alla fine della stringa.

Esempio 8. Lascia che la variabile stringa contenga il codice della regione a partire dalla nona posizione, dovresti ottenerlo e scriverlo in una riga separata.

String = "Regione: 99 Mosca"; Regione = Media(Riga, 9, 2);

Trova pagina

StrTrova(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) . Cerca la sottostringa specificata in una stringa, restituisce il numero di posizione del primo carattere della sottostringa trovata. Considera i parametri di questa funzione:

  • Linea. Stringa di origine;
  • SottostringaCerca. La sottostringa desiderata;
  • Ricerca di direzione. Specifica la direzione in cui cercare una sottostringa in una stringa. Può assumere valori:
    • Cerca Direzione.Dall'inizio;
    • Cerca Direzione.Dalla fine;
  • Posizione di partenza. Specifica la posizione nella stringa da cui iniziare la ricerca;
  • Numero di ingresso. Specifica il numero di occorrenze della sottostringa cercata nella stringa di origine.

Esempio 9. Nella riga "Hello world!" determinare la posizione dell'ultima occorrenza del carattere "e".

PositionNumber = StrFind("Hello World!", "and", SearchDirection.From End); Notifica(NumeroPosizione);

Il risultato dell'esecuzione di questo codice sarà la visualizzazione del numero dell'ultima occorrenza del simbolo "e" sullo schermo: 9.

VReg

VReg(<Строка>) . Converte tutti i caratteri della stringa specificata in 1s 8 in maiuscolo.

Esempio 10. Converti la stringa "hello world!" in maiuscolo.

StringVreg = Vreg("ciao mondo!"); Report(StringVreg);

Il risultato dell'esecuzione di questo codice sarà la visualizzazione della stringa "HELLO WORLD!"

HReg

HReg(<Строка>) . Converte tutti i caratteri della stringa specificata in 1s 8 in minuscolo.

Esempio 11. Converti la stringa "HELLO WORLD!" in minuscolo.

StringNreg = NReg("CIAO MONDO!"); Report(StringVreg);

Il risultato dell'esecuzione di questo codice sarà la visualizzazione della stringa "hello world!"

TReg

TReg(<Строка>) . Converte una stringa come segue: il primo carattere di ogni parola viene convertito in maiuscolo, i restanti caratteri della parola vengono convertiti in minuscolo.

Esempio 12. Metti in maiuscolo le prime lettere delle parole nella stringa "hello world!".

StringTreg = TReg("ciao mondo!"); Report(StringTreg);

Il risultato dell'esecuzione di questo codice sarà la visualizzazione della stringa "Hello World!"

Simbolo

Simbolo(<КодСимвола>) . Ottiene un carattere in base al relativo codice Unicode.

Esempio 13. Aggiungi sinistra e destra alla riga "Hello World!" simbolo ★

StringWithStars = Carattere("9733")+"Hello World!"+Carattere("9733"); Report(StringWithStars);

Il risultato dell'esecuzione di questo codice sarà la visualizzazione della stringa "★Hello World!★"

CodiceSimbolo

CodiceSimbolo(<Строка>, <НомерСимвола>) . Ottiene il codice del carattere Unicode dalla stringa specificata nel primo parametro, situata nella posizione specificata nel secondo parametro.

Esempio 14. Scopri il codice dell'ultimo carattere nella stringa "Hello World!".

String = "Ciao mondo!"; CodiceCarattere =CodiceCarattere(Stringa, LunghezzaStringa(Stringa)); Notifica(CodiceCarattere);

Il risultato dell'esecuzione di questo codice sarà la visualizzazione del codice del simbolo "!" — 33.

Riga vuota

Riga vuota(<Строка>) . Verifica se la stringa è composta solo da caratteri non significativi, ovvero se è vuota.

Esempio 15. Verifica se la stringa è vuota e consiste di tre spazi.

Vuoto = Stringa Vuota(" "); Rapporto (vuoto);

Il risultato dell'esecuzione di questo codice sarà la visualizzazione della parola "Sì" (espressione stringa di un valore booleano Vero).

StrSostituisci

StrSostituisci(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . Trova tutte le occorrenze della sottostringa di ricerca nella stringa di origine e la sostituisce con la sottostringa di sostituzione.

Esempio 16. Nella riga "Hello World!" sostituire la parola "Mondo" con la parola "Amici".

String = StrReplace("Ciao Mondo!", "Mondo", "Amici"); Notifica(Stringa);

Il risultato dell'esecuzione di questo codice sarà la visualizzazione della stringa "Hello Friends!"

StrNumberRows

StrNumero di righe(<Строка>) . Consente di contare il numero di righe in una stringa multilinea. Per passare a una nuova riga in 1s 8, viene utilizzato il simbolo PS(carattere di avanzamento riga).

Esempio 17. Determina il numero di righe nel testo:
"Prima linea
Seconda linea
Terza riga"

Number = StrNumber of Lines("Prima riga"+Symbols.PS +"Seconda riga"+Symbols.PS +"Terza riga"); Rapporto(Numero);

Il risultato dell'esecuzione di questo codice sarà la visualizzazione del numero di righe nel testo: 3

StrGetString

StrGetString(<Строка>, <НомерСтроки>) . Ottiene una stringa in una stringa multilinea in base al suo numero. La numerazione delle righe inizia da 1.

Esempio 18. Ottieni l'ultima riga nel testo:
"Prima linea
Seconda linea
Terza riga"

Testo = "Prima riga"+Caratteri.PS +"Seconda riga"+Caratteri.PS +"Terza riga"; LastLine = StrGetLine (testo, numero di righe (testo)); Notifica (ultima riga);

Il risultato dell'esecuzione di questo codice sarà la visualizzazione della riga "Terza riga".

StrNumberOccurrences

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) . Restituisce il numero di occorrenze della sottostringa specificata in una stringa. La funzione fa distinzione tra maiuscole e minuscole.

Esempio 19. Determina quante volte la lettera "c" entra nella riga "Righe in 1s 8.3 e 8.2", indipendentemente dal suo caso.

String = "Linee in 1s 8.3 e 8.2"; Numero di occorrenze = StrNumero di occorrenze(Vreg(String), "C"); rapporto (numero di occorrenze);

Il risultato dell'esecuzione di questo codice mostrerà il numero di occorrenze sullo schermo: 2.

La pagina inizia da

StrBeginsFrom(<Строка>, <СтрокаПоиска>) . Verifica se la stringa data nel primo parametro inizia con la stringa nel secondo parametro.

Esempio 20. Determinare se il TIN della controparte selezionata inizia con il numero 1. Sia la variabile controparte Controparti.

TIN = CIF contraente; StartsCUnits = StrStartsC(TIN, "1"); If StartsFROM1 Then //Il tuo codice EndIf;

La pagina finisce il

StrEndsOn(<Строка>, <СтрокаПоиска>) . Verifica se la stringa passata nel primo parametro termina con la stringa nel secondo parametro.

Esempio 21. Determinare se il TIN della controparte selezionata termina con il numero 2. Sia la variabile controparte il collegamento all'elemento della directory viene memorizzato Controparti.

TIN = CIF contraente; Termina con due = Str finisce con (TIN, "2"); Se finisce con due allora //Il tuo codice EndIf;

Dividi pagina

StrDivide(<Строка>, <Разделитель>, <ВключатьПустые>) . Divide una stringa in parti in base ai caratteri delimitatori specificati e scrive le stringhe risultanti in una matrice. Il primo parametro memorizza la stringa originale, il secondo parametro contiene la stringa contenente il delimitatore, il terzo parametro indica se le stringhe vuote devono essere scritte nell'array (per impostazione predefinita Vero).

Esempio 22. Supponiamo di avere una stringa contenente numeri separati dal simbolo ";", ottenere un array di numeri dalla stringa.

Stringa = "1; 2; 3"; Matrice = StrSplit(Stringa, ";"); For Count = 0 per Array.Quantity() - 1 tentativo di loop Array[Count] = Number(Ablp(Array[Count])); Eccezione Array[W] = 0; EndProva EndCycle;

Come risultato dell'esecuzione, si otterrà un array con numeri da 1 a 3.

StrConnect

StrConnect(<Строки>, <Разделитель>) . Converte una matrice di stringhe dal primo parametro in una stringa contenente tutti gli elementi della matrice utilizzando il delimitatore specificato nel secondo parametro.

Esempio 23. Usando l'array di numeri dell'esempio precedente, ottieni la stringa originale.

For Count = 0 per Array.Quantity() - 1 Loop Array[Count] = String(Array[Count]); ciclo finale; Stringa = StrConnect(Array, "; ");

Articoli correlati in alto