Nuove funzioni per lavorare con le stringhe. Nuove funzioni per lavorare con le stringhe 1c conversione in stringa

Le funzionalità di base di un linguaggio di programmazione solitamente includono l'utilizzo di numeri e stringhe. Di solito queste funzionalità sono codificate nel codice del compilatore (o vengono implementate le classi “base” del linguaggio di programmazione).

In 1C, la capacità di lavorare con le stringhe è programmata nella piattaforma stessa. Oggi esamineremo le caratteristiche di lavorare con le stringhe 1C nei programmi nel linguaggio 1C integrato.

Valore della linea 1C

1. Cominciamo con il più semplice. La creazione di una variabile e l'assegnazione di un valore di stringa costante assomiglia a questa in 1C:

Variabile = "Ciao mondo!";

Se è necessario specificare un carattere di virgoletta in un valore di stringa 1C costante, è necessario raddoppiarlo ""

Variabile = "Ciao mondo"!;

2. L'interruzione di riga 1C può essere specificata in due modi contemporaneamente. Il primo utilizza il simbolo |

Variabile = "Ciao,
| mondo! ";

Il secondo utilizza l'enumerazione del sistema Simboli. Ti consente di aggiungere sia interruzioni di riga 1C che altri caratteri non stampabili, come TAB.

Variabile = "Ciao" + Simboli.PS + "pace!";

3. Le configurazioni in 1C possono essere sviluppate non solo per una lingua (russo, inglese o un'altra) - ma contemporaneamente per più lingue. In questo caso, la lingua attualmente utilizzata viene selezionata nella parte inferiore della finestra 1C.

L'elenco delle lingue si trova nella finestra di configurazione nel ramo Generale/Lingue. Ogni lingua ha un breve identificatore come ru O ing.

È chiaro che programmando tale configurazione le linee 1C possono essere anche multilingue. Per fare ciò, è possibile creare una linea 1C specificando through; opzioni per identificatore della lingua:

Variabile = "ru=""Ciao mondo! ""; en=""Ciao mondo! """;

Se usi la linea 1C formata in questo modo come al solito, sarà ciò che è scritto in essa. Affinché il sistema lo divida in due opzioni e utilizzi quella desiderata, è necessario utilizzare la funzione ÍStr():

//corretto per configurazioni bilingue
Rapporto(NStr(Variabile));

Puntelli con linea tipo 1C

L'attributo è un campo nella directory/documento 1C. Si differenzia da una variabile in un programma in linguaggio 1C in quanto per l'attributo è indicato con precisione il suo tipo (numero, stringa 1C, ecc.). Se hai bisogno di rinfrescarti la memoria su cosa sia un oggetto di scena, guarda la lezione su.

Se specifichi il tipo di attributo - riga 1C, devi inoltre specificare i parametri.

Le righe 1C sono di lunghezza illimitata (indicata come lunghezza = 0) e di lunghezza limitata, indicando il numero esatto di caratteri. Le righe 1C di lunghezza illimitata vengono archiviate in una tabella SQL separata, quindi il loro utilizzo è meno produttivo di quelle limitate.

Ecco perché l'uso di stringhe 1C di lunghezza illimitata ha i suoi limiti: non è possibile utilizzarle ovunque. Ad esempio, non è consentito come numero di documento, codice di riferimento o misurazione.

Lavorare con corde 1C

Esistono diverse funzioni integrate della piattaforma 1C per lavorare con le stringhe.

  • AbbrLP (“Incredibile, ma vero!”)
    Rimuove gli spazi extra dalla linea 1C. Può essere utilizzato anche per convertire qualsiasi tipo in una stringa 1C (ad esempio numeri).
  • Variabile = "Vasya" + AbbrLP(" più") + "Olya"; //ci sarà "Vasya più Olya"
    Un esempio di somma di diversi valori stringa 1C. Il risultato sarà una riga 1C.
  • Variabile = Lev("Musica", 2); //sarà "Mu"
    Variabile = Medio("Musica", 2, 2); //ci sarà una "minaccia"
    Variabile = Diritti("Musica", 2); //ci sarà "ka"
    Varie opzioni per ottenere una sottostringa da una stringa 1C.
  • Variabile = Trova("Musica", "zy"); //ce ne saranno 3
    Cerca una sottostringa nella stringa 1C, a partire dal carattere 1.
  • Variabile = StrLength("Musica"); //ce ne saranno 6
    Restituisce il numero di caratteri nella riga 1C.
  • Report("Ciao") //nella finestra del messaggio nella parte inferiore della finestra 1C
    Avviso("Ciao") //finestra di dialogo popup
    Status("Hello") //nella riga di visualizzazione dello stato in basso a sinistra
    .

Portare oggetti sulla linea 1C

Come sapete, attualmente il formato più popolare per lo scambio di informazioni strutturate è XML. Anche l'ultima versione di MS Office Word ed Excel salva i file in questo formato (docx e xlsx, rispettivamente, cambiano l'estensione in zip, si aprono in un archiviatore).

La piattaforma 1C per lo scambio dati offre diverse opzioni, la principale delle quali è anche XML.

1. Il metodo più semplice consiste nell'utilizzare la funzione Abbreviation() o String(). È possibile utilizzare la funzione REPRESENTATION() nel corpo della richiesta. Il risultato della loro azione è lo stesso: generano una rappresentazione di stringa di qualsiasi oggetto 1C per l'utente.

Per impostazione predefinita, questo sarà il nome di una directory. Per un documento – nome, numero e data del documento.

2. Qualsiasi oggetto 1C (con restrizioni) può essere convertito in XML e viceversa. Il processo di conversione è chiamato serializzazione.

StringViewXml = XMLString(Valore); //ottieni XML dal valore 1C
Valore1C = XMLValue(Type("DirectoryLink.Nomenclature"),TypeStringXml); //ottiene il valore 1C dalla stringa XML, è necessario specificare il tipo 1C che deve essere ricevuto

3. Esiste un modo proprio della piattaforma 1C per convertire qualsiasi oggetto 1C in una stringa. È migrato dalla versione 1C 7.7. Questo formato non è compreso da altri programmi, ma altri 1C lo comprendono, il che ne facilita l'utilizzo per lo scambio tra database 1C.

Riga = ValoreInRigaInt(Valore1C); //ottiene la stringa 1C dal valore 1C
ValoreVFile("C:\MioFile.txt", Valore1C); //un'altra opzione, otteniamo un file con una stringa salvata dal valore 1C
Valore1C = ValoreFromStringInt(Stringa); //torna indietro dalla linea 1C
Valore1C = ValoreFile("C:\MioFile.txt"); //torna indietro dal file

Modifica delle righe 1C nel modulo

Oltre a lavorare con le stringhe 1C in un programma in linguaggio 1C, ovviamente vorrei che l'utente potesse modificarle. Ci sono diverse possibilità per questo:

1. Il modo più semplice è richiedere l'inserimento di una linea 1C su richiesta. Questo metodo viene utilizzato quando si insegna la programmazione 1C, nella vita viene utilizzato molto meno spesso (ma viene utilizzato!).

Variabile = "";
Riga = InserisciValore(Variabile, "Inserisci nome completo");

2. Per visualizzare i dettagli di un oggetto 1C (directory/documento) o i dettagli del modulo (vedi), viene spesso utilizzato un campo di input. Questo è lo strumento più comune in 1C per consentire all'utente di lavorare con i campi di modifica.

3. Le funzionalità del campo di input possono essere espanse (vedi proprietà del campo di input, clic destro su di esso, maggiori dettagli):

  • Casella di controllo Modalità di modifica multilinea
  • Casella di controllo Modifica avanzata (disponibile se la casella di controllo precedente è selezionata)
  • Casella di controllo Modalità password (vedi).

4. Se tutte le funzionalità del campo di input non ti bastano, c'è un editor integrato. Per aggiungerlo al modulo, è necessario aggiungere un campo documento di testo al menu Controllo modulo/inserisci. Nelle sue proprietà puoi specificare la sua modalità operativa: la proprietà Estensione.

Un campo del documento di testo non può essere associato direttamente ai dati. E' necessario scrivere una funzione nel gestore eventi OnOpen() della form (vedi):

Modulo Elements.ElementNameTextDocumentField.SetText(StringValue); //qui ValueString è il testo ricevuto, ad esempio, dall'attributo

E nel gestore del salvataggio, ad esempio nel pulsante Salva, aggiungi un salvataggio:

ValueString = FormElements.ElementNameTextDocumentField.GetText(); //ValoreLa riga qui è l'attributo in cui salviamo il valore

5. Nella versione 1C 8.2.11, nei moduli gestiti, è apparsa una nuova opzione per rappresentare una linea 1C: il campo Documento formattato.


Similmente al campo di un documento di testo, è necessario impostarlo all'apertura e annotarlo manualmente quando lo si salva utilizzando il programma.

  • Nell'oggetto 1C di cui stiamo creando il modulo (directory, documento, elaborazione, ecc.) - aggiungi un attributo con il tipo di archiviazione valore
  • Nella funzione OnReadOnServer() impostiamo il testo dall'attributo

    //qui l'Attributo è l'attributo aggiunto dell'oggetto 1C
    //qui FormattedDocument è il nome del campo nel modulo per la modifica
    &Sul server

    FormattedDocument = CurrentObject.Attributes.Get();
    Fine della procedura

  • Nella funzione BeforeWritingOnServer() o utilizzando il pulsante, scriveremo il testo dal campo

    &Sul server
    Procedura durante la letturaOnServer(CurrentObject)
    CurrentObject.Props = NewValueStorage(FormattedDocument);
    Fine della procedura

Le righe in 1C 8.3 nel linguaggio integrato 1C rappresentano 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 stringhe in 1s 8.3

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

StrLength

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

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

String = "Ciao mondo!"; NumerodiCaratteri = StrLength(String); Rapporto(NumeroCaratteri);

Il risultato dell'esecuzione di questo codice sarà la visualizzazione del numero di caratteri nella riga: 11.

AbbrL

AbbrL(<Строка>) . Taglia i caratteri non significativi a sinistra del primo carattere significativo nella stringa.
Personaggi secondari:

  • spazio;
  • spazio unificatore;
  • tabulazione;
  • ritorno a capo;
  • traslazione di linea;
  • traduzione del modulo (pagina).

Esempio 3. Rimuovi tutti gli spazi dal lato sinistro della riga "world!" e aggiungi la riga "Ciao".

String = Abbreviazione("mondo!"); Stringa = "Ciao"+Stringa; Rapporto(Stringa);

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

Abbreviato

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

Esempio 4. Forma dalle righe "Ciao" e "pace!" la frase "Ciao mondo!"

Linea = Abbreviazione("Ciao ")+" "+ Abbreviazione("mondo!"); Rapporto(Stringa);

AbbrLP

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

Esempio 5. Rimuovere i caratteri non significativi a sinistra e a destra nel nome della controparte.

Controparte = Directory.Controparti.Trova per dettagli("TIN", "0777121211"); AccountObject = Account.GetObject(); ControparteOggetto.Nome = AbbrLP(ControparteOggetto.Nome); AccountObject.Write();

un leone

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

Esempio 6. Lascia entrare la struttura Dipendente contenere il nome, il cognome e il patronimico del dipendente. Ottieni una stringa con cognome e iniziali.

NomeIniziale = Lev(Dipendente.Nome, 1); Iniziale Patronimico = Leone(Dipendente. Patronimico, 1); NomeCompleto = Dipendente.Cognome + " " + Nome Iniziale + "." + Iniziale centrale + ".";

Giusto

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

Esempio 7. Lascia che una data nel formato "aaaammgg" venga scritta alla fine di una variabile stringa, ottieni una stringa con la data e convertila nel tipo data.

String = "Data corrente: 20170910"; StringDate = Diritti(String, 8); Data = Data(StringDate);

Mercoledì

Mercoledì(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) . Ottiene una sottostringa dalla stringa passata come parametro Linea, a partire dal carattere il cui numero è specificato nel parametro NumeroIniziale e la lunghezza passata nel parametro Numero di caratteri. La numerazione dei caratteri in una riga inizia da 1. Se nel parametro NumeroIniziale 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 riga.

Esempio 8. Lascia che la variabile stringa che inizia dalla nona posizione contenga il codice regionale, dovresti ottenerlo e scriverlo in una riga separata.

String = "Regione: 99 Mosca"; Regione = Avg(Stringa, 9, 2);

Pagina Trova

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

  • Linea. Stringa di origine;
  • Cerca sottostringa. Cerca sottostringa;
  • Direzione della ricerca. Specifica la direzione in cui cercare una sottostringa in una stringa. Può assumere valori:
    • Direzione della ricerca. Dall'inizio;
    • Direzione ricerca.Fine;
  • Posizione iniziale. Specifica la posizione nella stringa in cui inizia la ricerca;
  • NumeroOccorrenze. Specifica il numero di occorrenze della sottostringa cercata nella stringa di origine.

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

PositionNumber = StrFind("Ciao mondo!", "e", SearchDirection.End); Rapporto(NumeroPosizione);

Il risultato dell'esecuzione di questo codice sarà quello di visualizzare il numero dell'ultima occorrenza del simbolo "e": 9.

VReg

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

Esempio 10: Converti la stringa "ciao mondo!" al maiuscolo.

StringVreg = VReg("ciao mondo!"); Rapporto(StringVreg);

Il risultato dell’esecuzione di questo codice sarà la visualizzazione della riga “HELLO WORLD!”

NReg

NReg(<Строка>) . 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!"); Rapporto(StringVreg);

Il risultato dell'esecuzione di questo codice sarà la visualizzazione della riga "ciao mondo!"

Tregg

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

Esempio 12: Scrivi in ​​maiuscolo le prime lettere delle parole nella riga "ciao mondo!"

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

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

Simbolo

Simbolo(<КодСимвола>) . Ottiene un carattere tramite il relativo codice Unicod.

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

StringWithStars = Simbolo("9733")+"Ciao Mondo!"+Simbolo("9733"); Rapporto(StringWithStars);

Il risultato dell'esecuzione di questo codice sarà la visualizzazione della riga “★Hello World!★”

Codice simbolo

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 riga "Hello World!"

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

Il risultato dell’esecuzione di questo codice sarà la visualizzazione del codice simbolo “!” - 33.

Riga vuota

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

Esempio 15. Controlla se una stringa composta da tre spazi è vuota.

Vuoto = StringaVuota(" "); Rapporto(Vuoto);

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

PaginaSostituisci

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 “Pace” con la parola “Amici”.

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

Il risultato dell'esecuzione di questo codice sarà la visualizzazione della riga "Ciao amici!"

StrNumeroLinee

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

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

Numero = StrNumeroString("Prima riga"+Caratteri.PS +"Seconda riga"+Simboli.PS +"Terza riga"); Rapporto(Numero);

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

StrGetString

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

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

Testo = "Prima riga" + Simboli PS + "Seconda riga" + Simboli PS + "Terza riga"; LastRow = StrGetRow(Testo, StrNumberLines(Testo)); Report(UltimaRiga);

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

PageNumberOccorrenze

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

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

Linea = "Linee in 1s 8.3 e 8.2"; NumeroOccurrences = StrNumberOccurrences(Vreg(Stringa), "C"); Rapporto(Numerooccorrenze);

Il risultato dell'esecuzione di questo codice sarà la visualizzazione del numero di occorrenze: 2.

La pagina inizia con

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

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

TIN = Controparte.TIN; StartsUNits = StrStartsWith(TIN, "1"); Se inizia con le unità Then //Il tuo codice EndIf;

Fine della pagina

StrEndsWith(<Строка>, <СтрокаПоиска>) . Controlla 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. Inserire la variabile Controparte viene memorizzato un riferimento a un elemento della directory Controparti.

TIN = Controparte.TIN; TerminaConDue = StrFineCon(TIN, "2"); If EndsInTwo Then //Il tuo codice EndIf;

Pagina divisa

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

Esempio 22. Prendiamo una stringa contenente numeri separati dal simbolo “;”, otteniamo un array di numeri dalla stringa.

Stringa = "1; 2; 3"; Array = StrDivide(Stringa, ";"); Per Count = 0 Per Array.Quantity() - 1 tentativo di ciclo Array[Count] = Number(AbbrLP(Array[Count])); Matrice di eccezioni[Sch] = 0; EndAttemptsEndCycle;

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

PaginaConnetti

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

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

Per Account = 0 Per Array.Quantity() - 1 Ciclo Array[Act] = String(Array[Act]); FineCiclo; Riga = StrConnect(Array, "; ");

Implementato nella versione 8.3.6.1977.

Abbiamo ampliato l'insieme di funzioni progettate per funzionare con le stringhe. Lo abbiamo fatto per offrirti strumenti più avanzati per l'analisi dei dati delle stringhe. Le nuove funzioni saranno comode e utili nei compiti tecnologici di analisi del testo. Nelle attività relative all'analisi del testo che contiene dati in formato formattato. Potrebbe trattarsi dell'analisi di alcuni file ricevuti dall'apparecchiatura o, ad esempio, dell'analisi di un registro tecnologico.

Potresti eseguire tutte le azioni che eseguono nuove funzioni prima. Utilizzando algoritmi più o meno complessi scritti in un linguaggio integrato. Pertanto, le nuove funzioni non forniscono funzionalità fondamentalmente nuove. Tuttavia, consentono di ridurre la quantità di codice e renderlo più semplice e comprensibile. Inoltre, consentono di accelerare l'esecuzione delle azioni. Perché le funzioni implementate nella piattaforma funzionano, ovviamente, più velocemente di un algoritmo simile scritto in un linguaggio integrato.

Funzione di formattazione StrTemplate()

Questa funzione sostituisce i parametri in una stringa. La necessità di una tale conversione si presenta spesso, ad esempio, quando si visualizzano messaggi di avviso. La sintassi per questa funzione è la seguente:

StrTemplate(<Шаблон>, <Значение1-Значение10>)

<Шаблон>- questa è la stringa in cui è necessario sostituire le rappresentazioni dei parametri.

<Значение1> , ... <Значение10>- si tratta di parametri (massimo dieci), le cui rappresentazioni devono essere sostituite nella stringa.

Per indicare un punto specifico nel modello in cui desideri eseguire la sostituzione, devi utilizzare marcatori come %1, ... %10. Il numero di marcatori coinvolti nel modello e il numero di parametri contenenti valori devono corrispondere.

Ad esempio, il risultato dell'esecuzione di tale operatore:

ci sarà una riga:

Errore dati sulla riga 2 (tipo di data richiesto)

Funzione per lavorare con le stringhe StrCompare()

Questa funzione confronta due stringhe senza distinzione tra maiuscole e minuscole. Ad esempio, in questo modo:

Potresti eseguire la stessa azione in precedenza utilizzando l'oggetto Value Comparison:

Tuttavia, l’utilizzo della nuova funzionalità sembra più semplice. Inoltre, la funzione, a differenza dell'oggetto Value Comparison, funziona sia nel thin client che nel web client.

Funzioni per lavorare con le stringhe StrStartsWith(), StrEndsAt()

Queste funzioni determinano se una stringa inizia con una sottostringa specificata o se termina con una sottostringa specificata. L'algoritmo per queste funzioni non è difficile da implementare in un linguaggio embedded, ma la loro presenza consente di scrivere un codice più pulito e comprensibile. E funzionano più velocemente.

Ad esempio, sono convenienti da utilizzare nell'istruzione If:

Funzioni per lavorare con le stringhe StrDivide(), StrConnect()

Queste funzioni dividono una stringa in parti utilizzando un delimitatore specificato. O viceversa, uniscono più righe in una, inserendo tra di loro il separatore selezionato. Sono utili per creare o analizzare registri e giornali tecnologici. Ad esempio, puoi facilmente analizzare una voce di registro tecnologico in parti adatte per ulteriori analisi:

Funzione per lavorare con le stringhe StrFind()

Invece della vecchia funzione Find(), abbiamo implementato una nuova funzione che ha funzionalità aggiuntive:

  • Cerca in diverse direzioni (dall'inizio, dalla fine);
  • Cerca da una posizione specificata;
  • Cerca un'occorrenza con un numero specificato (seconda, terza, ecc.).

In effetti, duplica le capacità della vecchia funzione. Questo viene fatto per mantenere la compatibilità con i moduli compilati nelle versioni precedenti. Si consiglia di non utilizzare più la vecchia funzione Trova().

Di seguito è riportato un esempio che utilizza le nuove funzionalità di ricerca. La ricerca inversa è utile quando è necessaria l'ultima parte di una stringa formalizzata, ad esempio il nome file completo in un URL. E la ricerca da una posizione specifica aiuta nei casi in cui è necessario cercare in un frammento noto e non nell'intera riga.

Ciao a tutti
Oggi mi hanno chiesto di non visualizzare il prefisso del documento durante la stampa di un documento implementativo, ho risolto il problema come segue.

StrReplace(Numero, Lev(Numero, 3), "" );

Quando ho esaminato l'assistente di sintassi mi è piaciuto così tanto che volevo scriverne lavorare con le stringhe in 1C:Enterprise.

Una stringa in 1C si riferisce a un tipo di dati primitivo.

Se guardi l'aiuto 1C, vedremo la seguente descrizione del tipo String:
I valori di questo tipo contengono una stringa Unicode di lunghezza arbitraria.
Se usi parole tue riguardo alle stringhe, funzionerà. Una stringa è una costante composta da vari caratteri, sempre racchiusi tra virgolette.

Impostazione di una linea
Saluto = "Ciao passeggero";

Le linee multilinea nelle configurazioni tipiche vengono spesso create utilizzando il separatore verticale “|”:
String = "Multilinea
|stringa
|scrivi
|testo";

Una virgoletta all'interno di una stringa è specificata da virgolette doppie.
String = ""Testo tra virgolette"";

Ci sono molte operazioni sulle stringhe (ricerca all'interno della stringa, determinazione delle prime, ecc.), è meglio guardare l'Assistente sintassi.
Assistente sintassi - Descrizione generale del linguaggio integrato -> funzioni integrate -> funzioni per lavorare con le stringhe.

Funzioni per lavorare con le stringhe

Ecco un breve riepilogo delle funzioni per lavorare con le stringhe:

VReg(<Строка>) — La funzione converte tutti i caratteri della stringa in maiuscolo.

CodiceSimbolo(<Строка>, <НомерСимвола>) – La funzione riceve il codice del carattere che si trova nella stringa trasmessa nella posizione con il numero specificato.

Un leone(<Строка>, <ЧислоСимволов>) – La funzione seleziona i primi caratteri a sinistra della stringa.

Trovare(<Строка>, <ПодстрокаПоиска>) — La funzione trova un'occorrenza della stringa di ricerca come sottostringa nella stringa di origine.

NReg(<Строка>) — La funzione converte tutti i caratteri della stringa in minuscolo.

Giusto(<Строка>, <ЧислоСимволов>) – Questa funzione differisce dalle funzioni Left in quanto seleziona gli ultimi caratteri da destra della stringa.

Riga vuota(<Строка>) — La funzione controlla la presenza di caratteri significativi nella stringa.

Simbolo(<КодСимвола>) — La funzione converte il codice carattere in una stringa contenente il carattere.

AbbrL(<Строка>) — La funzione taglia i caratteri non significativi a sinistra del primo carattere significativo della stringa.

AbbrLP(<Строка>) — La funzione taglia i caratteri non significativi a sinistra del primo carattere significativo nella riga e gli spazi a destra dell'ultimo carattere significativo nella riga.

Abbreviazione(<Строка>) — La funzione taglia i caratteri non significativi a destra dell'ultimo carattere significativo nella stringa.

Mercoledì(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) — La funzione seleziona una stringa di caratteri, iniziando con il carattere<НачальныйНомер>, numero totale<ЧислоСимволов>.

ForzaLunghezza(<Строка>) — La funzione ottiene il numero di caratteri nella riga.

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

StrGetString(<Строка>, <НомерСтроки>) - La funzione ottiene una stringa su più righe in base al numero.

StrNumberOccorrenze(<Строка>, <ПодстрокаПоиска>) — La funzione calcola il numero di occorrenze della sottostringa di ricerca nella stringa di origine.

StrNumeroRiga(<Строка>) — La funzione conta il numero di righe in una stringa multilinea. In una stringa su più righe, le righe sono separate da ritorni a capo.

TReg(<Строка>) — La funzione converte la stringa in maiuscole e minuscole. Ciò significa che il primo carattere di ogni parola viene convertito in maiuscolo o maiuscolo se il titolo non è specificato per il carattere. I restanti caratteri vengono convertiti in minuscolo.

Conversioni di tipo
Per la conversione esplicita dei tipi di dati esistono funzioni con lo stesso nome del tipo di dati nel quale avviene la conversione: String(<Значение>)

StringFromNumbers = String(Numero);

Tutte queste funzioni sono descritte in dettaglio nell'Assistente alla sintassi; nell'articolo ho descritto come l'Assistente alla sintassi può aiutare un programmatore alle prime armi.

Esempi per lavorare con le stringhe

Conversione di un numero in una stringa e viceversa.

Per ottenere una rappresentazione in formato stringa dell'anno, utilizzare la funzione Format.

Anno = Formato(DataCorrente(), "DF=aaaa") // Anno = "2012"

Per convertire un numero in una stringa senza inserire un carattere separatore di gruppo (spazio unificatore), è necessario utilizzare la funzione Format con il parametro NG=0:

Numero = Riga 2012 = Formato(Numero, "NH=0" ); //Stringa = "2012"

Stringa Nessuno spazio.