Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Vijesti
  • Ukloni dodatne razmake 1s. Uklanjanje neprekidnih razmaka

Ukloni dodatne razmake 1s. Uklanjanje neprekidnih razmaka

FAQ ili platforma 8 za lutke.

Sudeći po forumima posvećenim 1C, programeri koji su se prvi put susreli sa platformom 1C v 8 ili koji su prešli sa 7.7 često imaju ista pitanja. Ovdje sam odlučio prikupiti najčešće, po mom mišljenju ...

U: Kako ukloniti razmak u broju 12.600,00?
O: Važno je shvatiti da se ovdje ne koristi razmak, već takozvani "neprekidni razmak", stoga, na primjer, sljedeća konstrukcija:

StrReplace(VariableNumber," ","");

neće raditi. Postoje dvije opcije za rješavanje problema, ili navedite Symbols.NPP za zamjenu umjesto razmaka, ili pomoću funkcije Format ().

StrReplace(VariableNumber, Symbols.NPP,""); // 1. opcija
Format (Broj varijabli,"CH="); // 2. opcija

U: Kako postaviti uslov u upitu na način da samo dokumenti određene vrste budu uključeni u rezultirajuću selekciju?
O: Ovo se može učiniti pomoću operatora jezika upita REFERENCE, koji vam omogućava da provjerite da li je vrijednost izraza navedenog lijevo od njega referenca na tablicu specificiranu s desne strane. Razmotrimo primjer, izaberite iz registra akumulacije Realizacija usluga samo one evidencije za koje je registrator dokument Realizacija dobara i usluga:

Zahtjev=Novi zahtjev("
|CHOOSE
| Implementacija usluga. Registrator,
| Implementacija usluga Iznos
OD
| Registar akumulacije Implementacija usluga AS Implementacija usluga
|WHERE
| Registrar LINK Dokument. Prodaja robe i usluga");

U: Kako prenijeti određene dokumente/direktorije između identičnih konfiguracija?
O: Ovo se može učiniti uz pomoć uzorka obrade UploadUploadDataXML.epf koji se nalazi na ITS diskovima.

U: Kako prenijeti podatke između različitih konfiguracija (ili od 7.7 do 8)?
O: Najbolja opcija, po mom mišljenju, je korištenje tipične konfiguracije "Data Conversion", koja se isporučuje na ITS diskovima, postoji i nekoliko članaka koji opisuju upotrebu ove konfiguracije.

U: Kako dodati određeni string u polje tipa koji nije niz u upitu, na primjer, SELECT Realizacija robe usluga Iznos + "rub."?
O: Nema šanse. Konverzija tipa nije moguća u upitu. Konstrukcija EXPRESS jezika upita neke dovodi u zabludu, ali samo baca vrijednost kompozitnog tipa na jedan od tipova komponenti te vrijednosti i ni na koji način ne pretvara tip, tako da nije primjenjiv u ovoj situaciji.

U: Kako postaviti uslov u upitu na polje sa vrstom stringa neograničene dužine, na primjer, odabrati sve dokumente sa određenim komentarom?
O: Da biste to učinili, morate ograničiti dužinu polja pomoću operatora jezika upita EXPRESS. Na primjer:

Zahtjev=Novi zahtjev("
|CHOOSE
| Realizacija roba i usluga Link
OD
| Dokument.Prodaja robe/usluga KAKO Realizacija roba/usluga
|WHERE
| EXPRESS(ImplementationProductsServices.Komentar KAO STRING(100)) = &Komentar");

U: Postoji li analog funkcije 7.7 CatalogIB() u v 8?
O: Ne, pošto takva funkcija ne bi imala smisla za klijent-server način rada. Međutim, za način rada datoteke možete dobiti direktorij infobaze koristeći sljedeću konstrukciju:

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

U: Kako isključiti čvor iz distribuirane baze podataka?
O: Sa sljedećom konstrukcijom:

Planovi razmjene.SetMainNode(Nedefinirano);

Ili pokrenite konfigurator s parametrom komandne linije /ResetMasterNode (ne koristi se za osnovne verzije).

U: Kako dobiti naziv dokumenta (analogno metodi 7.7 View())?
O: Uz pomoć metapodataka. Na primjer:

U: Kako odabrati dokumente svih vrsta jednim upitom?
O: Korišćenje metapodataka i mogućnost kombinovanja upita U:

Zahtjev=Novi zahtjev;
Text="";
Za svaki dokument iz petlje Metadata.Documents
Text=Text+"IZABERITE vezu IZ dokumenta."+Document.Name+"JOIN";
EndCycle;
Query.Text=Lev(Text, StrLength(Text)-StrLength(" UNITE"));
Selection=Query.Execute().Select();

U: Kako prekinuti izvršenje izvještaja/obrade?
O: Sa operatorom UserInterruptHandle(), preporučuje se da ga koristite unutar petlji. Kada korisnik pritisne kombinaciju tipki Ctrl+Break, izvršenje se prekida i prikazuje se odgovarajuća poruka. Na primjer:

Dok Selection.Next() petlja
HandlingUserInterrupt();

EndCycle;

U: Obrazac ima TableField sa tipom ValueTree i skupom svojstava Tree. Zašto se stablo vrijednosti ne prikazuje?
O: Također je potrebno postaviti svojstvo DisplayHierarchy za jednu od kolona.

U: Kako koristiti zakazane zadatke u načinu rada sa datotekama baze podataka?
O: Za razliku od klijent-server režima, u režimu datoteka, programer je odgovoran za implementaciju automatskog pokretanja zakazanih zadataka. Za implementaciju automatskog pokretanja poslova, potreban vam je Wait Handler koji periodično provjerava da li postoje "kasne" poslove i pokreće ih. Za to je preporučljivo koristiti posebnu sesiju. primjer:

Procedura Provjere zadataka().
ExecuteProcessingJobs();
EndProcedure
ConnectWaitingHandler("Provjera zadataka",3);

U: Kako dobiti niz iz razgraničenog niza?
O: Kao primjer dat ću svoju verziju funkcije koja radi "u oba smjera", tj. prilikom prosljeđivanja razgraničenog niza formira niz, a kada se prosljeđuje niz, formira razgraničeni niz od njega.

Funkcija StringArray(vrijednost vrijednost, separator)
Ako TypeValue(Value)=Type("String") Onda
MnStr=StrReplace(Vrijednost, Separator, Simboli.PS);
Array=Novi niz;
Za n=1 po StrBroj redova (MnStr) ciklus
Array.Add(StrGetString(MnStr,n));
EndCycle;
Return Array;
ElseIf TypeValue(Value)=Tip("Niz") Zatim
String="";
Za svaki element iz petlje vrijednosti
String=String+?(String"",Separator,"")+Element;
EndCycle;
Return String;
Inače
Return Undefined;
EndIf;
EndFunctions

U: Kako omogućiti mogućnost izmjena u konfiguratoru u tipičnoj konfiguraciji?
O: Budući da su podržane tipične konfiguracije (što omogućava automatsko ažuriranje), po defaultu, mogućnost izmjene konfiguracije je onemogućena. Da biste omogućili ovu funkciju, izaberite stavku menija "Konfiguracija > Podrška > Postavke podrške" u konfiguratoru i kliknite na dugme "Omogući mogućnost promene" u prozoru koji se otvori.

U: Kako postaviti lozinku za obradu/konfiguraciju?
O: U 1C v 8, lozinke se mogu postaviti samo na objektnim modulima. Za postavljanje lozinke potrebno je otvoriti objektni modul i odabrati stavku menija „Tekst > Postavi lozinku“. Također je moguće isporučiti konfiguraciju bez izvornog koda objektnih modula (konfigurirati "Konfiguracija > Isporuka konfiguracije > Postavke isporuke"). Želio bih napomenuti da u ovom trenutku nijedna od ovih metoda nije pouzdana zaštita od pregleda izvornog koda modula.

U: Zašto pretraga dokumenta ne radi pomoću FindByNumber(<Номер документа>)?
O: Treba imati na umu da ako je za ovu vrstu dokumenata u konfiguratoru postavljeno periodično numeriranje, pored broja dokumenta, kao drugi parametar potrebno je navesti i datum intervala. U suprotnom će se pretraživati ​​dokument sa praznim datumom, što očito neće dovesti do željenog rezultata.

U: U 1C 8.1, ako se trebate povezati s već pokrenutom aplikacijom za otklanjanje grešaka (Konfigurator > Otklanjanje grešaka > Veza), dostupne stavke za otklanjanje grešaka su prazne. Šta je razlog?
O:Činjenica je da za aplikaciju koju ćemo otklanjati greške morate eksplicitno omogućiti otklanjanje grešaka. Meni Alati > Opcije > Kartica Sistem > Oznaka omogućeno za otklanjanje grešaka.

U: Kako sortirati redove dinamičke liste (na primjer, DirectoryList ili DocumentList)?
O: To se može učiniti pomoću Report Buildera, na primjer:

Builder=Novi graditelj izvještaja;
Builder.DataSource=NewDataSourceDescription(DocumentList);
Selection=Builder.Result.Select();
Dok Selection.Next() petlja
Izvještaj (Izbor. Link);
EndCycle;

Napomena: odabir će uključivati ​​redove u skladu sa trenutno postavljenim odabirom.

U: Kako provjeriti vrijednosti svojstava metapodataka objekata? Na primjer, tip hijerarhije imenika ili način unosa u registar, ili učestalost broja dokumenta?
O: Sva ova svojstva su nabrojana svojstva objekata metapodataka. Također možete dobiti vrijednosti ove vrste putem metapodataka. primjeri:

// Primjer 1. Pregled hijerarhije pregleda
Ako Metadata.Catalogs[CatalogName].HierarchyView = Metadata.ObjectProperties.HierarchyView.HierarchyGroupsAndItems onda...
// Primjer 2. RegisterWriteMode
Ako Metadata.InformationRegisters[RegisterName].RegisterWriteMode = Metadata.ObjectProperties.RegisterWriteMode.RegisterSubordinate Onda...
// Primjer 3. Periodični broj dokumenta
Ako Metadata.Documents[DocumentName].Periodnost broja = Metadata.ObjectProperties.DocumentNumber Periodicity.Non-periodic Onda...

U: Kako implementirati checkbox sa tri stanja u stablu vrijednosti?
O: Razmotrimo detaljnije iskaz problema. Obrazac ima polje tabele čiji je izvor podataka stablo vrijednosti. Jedna od kolona sadrži kontrolu polja za potvrdu. Neophodno je da može imati tri stanja "Uključeno", "Isključeno" i "Nedefinisano". U ovom slučaju, stanje je "Nedefinisano" ili takozvana "siva zastava", tj. djelomično odabrano, postavite ako svi podređeni redovi nemaju isto stanje zastavice. Takođe, ako red ima podređene redove, onda kada se promeni njegova zastavica, zastavice svih podređenih redova treba da se promene u skladu sa tim.
Prvo, dodajmo našu kolonu za potvrdu stablu vrijednosti:

Tree.Columns.Add("Mark",NewTypeDescription("Broj"));
FormElements.Tree.CreateColumns();
TreeColumns=FormElements.Tree.Columns;
TreeColumns.Mark.FlagData="Oznaka";
TreeColumns.Mark.SetControlItem(Type("Checkbox"));
TreeColumns.Mark.EditMode=EditModeColumns.Immediate
enno;
TreeColumns.Tag.ThreeFlagStates=Tačno;

Drugo, kada mijenjate zastavu, morate postaviti odgovarajuće vrijednosti u podređene redove i kontrolirati vrijednost zastave u "nadređenom redu":

Procedura TreeOnChanging a Flag (Element, Column)
CurrentRow=Element.CurrentRow;
Ako je CurrentLine.Mark=2 Onda
CurrentLine.Mark=0;
EndIf;
SettingFlags(CurrentRow,CurrentRow.Mark);
Dok CurrentRow.ParentUndefined Loop
CurrentRow.Parent.Label=?(SetForAll(CurrentRow),CurrentRow.Label,2);
CurrentRow=TrenutniRow.Parent;
EndCycle;
EndProcedure

Ovdje procedura SetFlags() rekurzivno postavlja zastavice u podredovima:

Procedura SetFlags(CurrentRow,Value)
Za svaku stranicu CurrentRow.Rows petlje
PageMark=Vrijednost;
SetFlags(Pg,Pg.Mark);
EndCycle;
EndProcedure

A funkcija SetForAll() provjerava da li je ista vrijednost postavljena za sve redove na trenutnom nivou:

Funkcija SetForAll(String)
Za svaku stranicu Row.Parent.Row petlje
Ako Page.MarkString.Mark Onda
return false;
EndIf;
EndCycle;
return true;
EndFunctions

U: Kako implementirati sortiranje po atributu u obliku liste?
O: Ako je atribut primitivnog tipa, dovoljno je svojstvo atributa "Index" postaviti na "Indeks" ili "Indeks sa dodatnim naručivanje” (nije dostupno za atribute tipa ValueStorage). Ako je atribut referentnog tipa, potrebno je eksplicitno omogućiti sortiranje za njega. Na primjer:

ElementUE=Form Elements.DirectoryList.Order Settings.Find("Attribute1");
Ako je ElementUE nedefiniran onda
ItemUE.Availability=true;
EndIf;

Često se dešava da pri učitavanju i istovaru podataka iz 1C 8.2 i 8.3 ima razmaka u brojevima koji sprečavaju normalnu obradu podataka. Rješenje ovog problema je vrlo jednostavno.

Razmotrite koje su vrste praznina.

Prostori mogu biti dva tipa:

  • neprekidni prostor;
  • "običan" prostor.

Uklanjanje neprekidnih razmaka

StringRepresentation = String(broj); // sistem će pisati u varijablu "10 000"

Uklanjanje takvih razmaka u 1C vrlo je jednostavno kroz funkciju formata brojeva:

Broj = Format(10000, "CH=");

StringRepresentation = String(broj); // sistem će pisati u varijablu "10000"

Grupiranje u stringu formata postavljamo na praznu vrijednost (možete napisati i "0").

Ako je tip podataka već "string", onda se može koristiti sljedeća metoda:

StringRepresentation = StrReplace(String(StringRepresentation), Characters.NPP, ""); // varijabla StringRepresentation je bila "10 000", postala "10000"

To jest, jednostavno smo zamijenili neprekidni razmak (Symbols.NPP) u nizu praznom vrijednošću.

Regularni prostori

Uklanjanje razmaka u nizu je jednostavno kao i ljuštenje krušaka. Dovoljno je izvršiti sljedeću funkciju:

StringRepresentation = StrReplace(String(StringRepresentation), " ", ""); // "10.000" je postalo "10.000"

Primjer je sličan prethodnoj metodi. Međutim, umjesto Symbols.npp, koristimo niz s jednim razmakom.

Ako počinjete učiti 1C programiranje, preporučujemo naš besplatni kurs (ne zaboravite pretplatite se na youtube - Redovno se objavljuju novi spotovi.

String tip se nalazi u svim programskim jezicima. Primitivan je, a u 1C postoji mnogo funkcija za rad s njim. U ovom članku ćemo detaljno razmotriti različite načine rada sa tipovima nizova u 1C 8.3 i 8.2 koristeći primjere.

Linija

Da biste konvertovali varijablu bilo koje vrste u string, postoji funkcija "String ()" istog imena. Ulazni parametar će biti sama varijabla, čiji se nizovski prikaz treba dobiti.

String(False) // vraća "Ne"
String(12345) // vraća "12 345"
String(CurrentDate()) //"21.07.2017 11:55:36"

Moguće je pretvoriti u string ne samo primitivne tipove, već i druge, na primjer, elemente direktorija i dokumenata.

Skraćeno LP, Skraćeno L, Skraćeno P

Ulazni parametri ovih funkcija su varijabla tipa string. Funkcije uklanjaju beznačajne znakove (razmake, povratne znakove itd.): s lijeve i desne strane, samo s lijeve strane i samo s desne strane.

abbrl("Razmaci na obje strane će biti uklonjeni") // "Razmaci na obje strane će biti uklonjeni"
abbr("Razmaci na obje strane će biti uklonjeni") // "Razmaci s lijeve strane će biti uklonjeni"
abbr(" Razmaci sa obe strane će biti uklonjeni ") // "Razmaci sa desne strane će biti uklonjeni"

Leo, desno, sredina

Ove funkcije vam omogućavaju da odsiječete dio niza. Funkcija Lion() će vratiti dio stringa na njegovoj lijevoj strani određene dužine. Funkcija "Right()" je slična, ali se izrezivanje vrši na desnoj strani. Funkcija "Wed()" vam omogućava da odredite broj karaktera iz kojeg će niz biti odabran i njegovu dužinu.

Lion("String varijabla", 4) // vraća "Stro"
Right("String varijabla", 7) // vraća "varijabla"
avg("String varijabla", 2, 5)// vraća "troco"

StrLength

Funkcija određuje broj znakova koji su sadržani u varijabli stringa.

StrLength("Word") // rezultat izvršenja će biti broj 5

Nađi

Funkcija omogućava traženje dijela stringa u varijabli stringa. Povratna vrijednost će biti broj koji označava poziciju početka pronađenog niza. Ako nema podudaranja, vraća se nula.

Imajte na umu da je pretraga osjetljiva na velika i mala slova. Ako postoji više od jednog pojavljivanja podniza pretraživanja u originalnom nizu, funkcija će vratiti početak prvog pojavljivanja.

Find("jedan, dva, jedan, dva, tri", "dva") // funkcija će vratiti broj 6

Prazna linija

Korištenje ove funkcije vam omogućava da odredite je li niz prazan. Beznačajni znakovi, kao što su razmak, povratak na vagu i drugi se ne uzimaju u obzir.

EmptyString("Vasily Ivanovich Pupkin") // funkcija će vratiti False
EmptyString(" ") // funkcija će vratiti True

VReg, NReg, TReg

Ove funkcije su vrlo korisne kada se uspoređuju i pretvaraju niz varijabli. "Vreg()" će vratiti originalni niz velikim slovima, "HReg()" malim slovima, a "TReg()" će ga formatirati tako da je prvi znak svake pojedinačne riječi napisan velikim slovima, a svi sljedeći znakovi su mala.

VReg("GENERALNI DIREKTOR") // povratna vrijednost - "GENERALNI DIREKTOR"
HReg("GENERALNI DIREKTOR") // povratna vrijednost - "CEO"
TReg("GENERALNI DIREKTOR") // povratna vrijednost - "Generalni direktor"

StrReplace

Ova funkcija je slična zamjeni u uređivačima teksta. Omogućava vam da zamijenite jedan znak ili skup znakova drugim u string varijablama.

StrReplace("crveno, bijelo, žuto", ",", ";") // vraća "crveno; bijela; žuto"

StrNumberRows

Funkcija vam omogućava da odredite broj redova razdvojenih povratnim znakom u tekstualnoj varijabli.

Petlja u primjeru ispod će proći kroz tri kruga jer će funkcija StrNumberRows vratiti vrijednost 3:

Za ind \u003d 1 po StrBroj redova ("Line1" + Symbols.PS + "String2" + Symbols.PS + "Line3") Petlja
<тело цикла>
EndCycle;

StrGetString

Ova funkcija radi s višerednim tekstom na isti način kao i prethodna. Omogućava vam da dobijete određeni niz iz tekstualne varijable.

StrGetString("String1" + Symbols.PS + "String2" + Symbols.PS + "String3", 2) // vraća "Line2"

StrNumberOccurrences

Funkcija broji broj pojavljivanja znaka ili podniza u traženom nizu.

StrNumberInstallations("a;b;c;d; ", ";") // funkcija će vratiti broj 4

Simbol i SymbolCode

Ove funkcije vam omogućavaju da dobijete znak po njegovom Unicode kodu, kao i da odredite ovaj kod po samom karakteru.

SymbolCode("A") // funkcija će vratiti broj 1 040
SymbolCode(1040) // funkcija će vratiti "A"

Česti zadaci pri radu sa stringovima

Konkatenacija nizova

Za spajanje više nizova (konkatenacija) samo koristite operator zbrajanja.

"Line 1" + "Line 2" //rezultat dodavanja dva reda će biti "Line 1 Line 2"

Konverzija tipa

Da biste pretvorili tip u string, na primjer, referencu na element rječnika, broj i tako dalje, dovoljno je koristiti funkciju "String ()". Funkcije poput "ShortLP()" će također pretvoriti varijable u niz, ali odmah sa odsijecanjem beznačajnih znakova.

String(1000) // će vratiti "1000"

Imajte na umu da kada konvertuje broj u niz, program automatski dodaje razmak koji razdvaja hiljadu. Da biste to izbjegli, možete koristiti sljedeće strukture:

StrReplace(String(1000),Characters.NPP,"") // vraća "1000"

String(Format(1000,"CH=")) // će vratiti "1000"

Navodnici u nizu

Vrlo često ćete morati da se nosite sa potrebom da stavite navodnike u niz varijabli. To može biti ili tekst zahtjeva napisan u konfiguratoru ili samo varijabla. Da biste riješili ovaj problem, trebate samo postaviti dva znaka navodnika.

Header = String("Horns and Hooves LLC smo mi!") // vraća "Roga and Hooves LLC smo mi!"

Višelinijski, prijelom reda

Da biste kreirali višeredni tekst, dovoljno je u njega dodati znakove za prijelom reda (Symbols.PS).

MultilineText = "Prvi red" + znakovi.PS + "Drugi red"

Kako ukloniti razmake

Da biste uklonili razmake s desne ili lijeve strane, možete koristiti funkciju "Stretch()" (kao i "Scrpt()" i "ScreenP()"):

StringWithoutSpaces = ShortLP(" Mnogo slova ") // funkcija će vratiti vrijednost "Mnogo slova"

Ako, nakon pretvaranja broja u niz, trebate ukloniti razmake bez prekida, koristite sljedeću konstrukciju:

StringWithoutSpaces = StrReplace(String(99999),Characters.NPP,"") // vraća "99999"

Takođe, programeri često koriste sljedeću konstrukciju, koja vam omogućava da uklonite ili zamijenite sve razmake tekstualne varijable drugim karakterom:

StringWithoutSpaces = StrReplace(" zdravo", " " ,"") // vraća "zdravo"

Poređenje žica međusobno

Možete uporediti pojmove sa uobičajenim znakom jednakosti. Poređenje je osjetljivo na velika i mala slova.

"hello" = "hello" // će vratiti false
"Hello" = "Hello" // će vratiti Tačno
"Hello" = "Zbogom" // će vratiti False

Nizovi u 1C 8.3 u ugrađenom jeziku 1c su vrijednosti primitivnog tipa Linija. Vrijednosti ovog tipa sadrže Unicode niz proizvoljne dužine. Varijable tipa string su skup znakova zatvorenih u navodnike.

Primjer 1. Kreirajmo varijablu niza sa tekstom.

StringVariable = "Zdravo svijete!";

Funkcije za rad sa nizovima u 1s 8.3

Ovaj odjeljak će pružiti glavne funkcije koje vam omogućavaju da mijenjate linije u 1s ili analizirate informacije sadržane u njima.

StrLength

Snaga(<Строка>) . Vraća broj znakova sadržanih u nizu koji je proslijeđen u parametru.

Primjer 2. Izbrojimo broj znakova u nizu "Hello world!".

String = "Zdravo svijete!"; Broj znakova = StrLength(String); Izveštaj (broj karaktera);

Rezultat izvršavanja ovog koda će biti prikaz broja znakova u nizu: 11.

Skraćeno

skraćeno(<Строка>) . Sječe znakove koji nisu značajni lijevo od prvog značajnog znaka u nizu.
Beznačajni likovi:

  • prostor;
  • neprekidni prostor;
  • tabela;
  • povrat kočije;
  • prijevod redaka;
  • prevod obrasca (stranica).

Primjer 3. Uklonite sve razmake s lijeve strane niza "mir!" i dodajte string "Hello" na njega.

String = abbr("svijet!"); String = "Bok"+String; Obavijesti (niz);

Rezultat izvršenja ovog koda će biti prikaz stringa "Hello world!".

Skraćenica

skraćeno(<Строка>) . Sječe nebitne znakove desno od prvog značajnog znaka u nizu.

Primjer 4. Formirajte iz nizova "Hello" i "world!" fraza "Zdravo svijete!"

String = abbr("Bok")+" "+abbr("svijet!"); Obavijesti (niz);

Skraćeno LP

Abbrl(<Строка>) . Sječe nebitne znakove desno od prvog značajnog znaka u nizu, također skraćuje nebitne znakove lijevo od prvog značajnog znaka u nizu. Ova funkcija se koristi češće od prethodne dvije, jer je svestranija.

Primjer 5. Uklonite beznačajne znakove s lijeve i desne strane u nazivu druge strane.

Izvođač = Direktoriji.Izvođači.Pronađi po detaljima("TIN", "0777121211"); ContractorObject = Contractor.GetObject(); ContractorObject.Description = Skraćeni LP(ContractorObject.Description); ContractorObject.Write();

lav

lav (<Строка>, <ЧислоСимволов>) . Dobiva prve znakove niza, broj znakova je naveden u parametru Broj znakova.

Primjer 6. Neka struktura Zaposleni sadrži ime, prezime i patronimiju zaposlenog. Nabavite niz sa prezimenom i inicijalima.

PočetnoIme = Lav(Ime zaposlenog, 1); Patronim Inicijal = Lav(Zaposleni.Patronim, 1); Puno ime = Employee.Prezime + " " + Početno ime + "." + Patronimsko inicijalo + ".";

Prava

tačno (<Строка>, <ЧислоСимволов>) . Dobiva posljednje znakove niza, broj znakova je naveden u parametru Broj znakova. Ako navedeni broj znakova premašuje dužinu niza, onda se vraća cijeli niz.

Primjer 7. Neka se datum napiše na kraju string varijable u formatu “ggggmmdd”, dobijete niz s datumom i pretvorite ga u tip datum.

String = "Trenutni datum: 20170910"; StringData = Prava(String, 8); Datum = Datum(StringDate);

srijeda

srijeda(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) . Dobiva podniz iz niza proslijeđenog u parametru Linija, počevši od znaka čiji je broj naveden u parametru InitialNumber i dužina proslijeđena parametru Broj znakova. Numeracija znakova u nizu počinje od 1. Ako parametar InitialNumber specificirana je vrijednost manja ili jednaka nuli, tada parametar uzima vrijednost 1. Ako je parametar Broj znakova nije navedeno, selektiraju se znakovi do kraja niza.

Primer 8. Neka string varijabla sadrži kod regiona počevši od devete pozicije, trebalo bi da ga dobijete i upišete u poseban red.

String = "Regija: 99 Moskva"; Region = Prosjek(Red, 9, 2);

PageFind

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) . Traži navedeni podniz u nizu, vraća broj pozicije prvog znaka pronađenog podniza. Uzmite u obzir parametre ove funkcije:

  • Linija. Izvorni niz;
  • SubstringSearch. Željeni podniz;
  • DirectionSearch. Određuje smjer traženja podniza u nizu. Može uzeti vrijednosti:
    • Smjer pretraživanja. Od početka;
    • Smjer pretraživanja. Od kraja;
  • StartPosition. Određuje poziciju u nizu na kojoj treba započeti pretragu;
  • Entry Number. Određuje broj pojavljivanja traženog podniza u izvornom nizu.

Primjer 9. U redu "Zdravo svijete!" odredite poziciju posljednjeg pojavljivanja znaka "i".

PositionNumber = StrFind("Hello World!", "and", SearchDirection.From End); Obavijesti (broj pozicije);

Rezultat izvršenja ovog koda bit će prikaz broja posljednjeg pojavljivanja simbola "i" na ekranu: 9.

VReg

VReg(<Строка>) . Pretvara sve znakove navedenog niza u 1s 8 u velika slova.

Primjer 10. Konvertirajte string "hello world!" na velika slova.

StringVreg = Vreg("zdravo svijet!"); Izvještaj(StringVreg);

Rezultat izvršenja ovog koda će biti prikaz stringa "HELLO WORLD!"

HReg

HReg(<Строка>) . Pretvara sve znakove navedenog niza u 1s 8 u mala slova.

Primjer 11. Pretvorite string "HELLO WORLD!" na mala slova.

StringNreg = NReg("HELLO WORLD!"); Izvještaj(StringVreg);

Rezultat izvršenja ovog koda će biti prikaz stringa "zdravo svijet!"

TReg

TReg(<Строка>) . Konvertuje string na sledeći način: prvi znak svake reči se konvertuje u velika slova, a preostali znakovi reči se pretvaraju u mala slova.

Primjer 12. Napišite velika slova riječi u nizu "zdravo svijet!".

StringTreg = TReg("zdravo svijet!"); Izvještaj(StringTreg);

Rezultat izvršenja ovog koda će biti prikaz stringa "Hello World!"

Simbol

simbol(<КодСимвола>) . Dobiva znak pomoću svog Unicode koda.

Primjer 13. Dodajte lijevo i desno u red "Hello World!" simbol ★

StringWithStars = Character("9733")+"Hello World!"+Character("9733"); Izvještaj(StringWithStars);

Rezultat izvršenja ovog koda će biti prikaz stringa "★Hello World!★"

SymbolCode

SymbolCode(<Строка>, <НомерСимвола>) . Dobiva kod Unicode karaktera iz niza specificiranog u prvom parametru, koji se nalazi na poziciji navedenoj u drugom parametru.

Primjer 14. Saznajte kod posljednjeg znaka u nizu "Hello World!".

String = "Hello World!"; CharacterCode =CharacterCode(String, StrLength(String)); Obavijesti (CharacterCode);

Rezultat izvršenja ovog koda će biti prikaz koda simbola "!" — 33.

Prazna linija

Prazan red (<Строка>) . Provjerava da li se niz sastoji samo od znakova koji nisu značajni, odnosno da li je prazan.

Primjer 15. Provjerite da li je string prazan i da li se sastoji od tri razmaka.

Empty = EmptyString(" "); Izvještaj (prazan);

Rezultat izvršenja ovog koda će biti prikaz riječi "Yes" (string izraz booleove vrijednosti Tačno).

StrReplace

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . Pronalazi sva pojavljivanja podniza za pretraživanje u izvornom nizu i zamjenjuje ga zamjenskim podnizom.

Primjer 16. U redu "Hello World!" zamijenite riječ "Svijet" riječju "Prijatelji".

String = StrReplace("Hello World!", "World", "Friends"); Obavijesti (niz);

Rezultat izvršenja ovog koda će biti prikaz stringa "Hello Friends!"

StrNumberRows

StrBroj linija(<Строка>) . Omogućava vam da prebrojite broj redova u višelinijskom nizu. Za prelazak na novi red za 1s 8 koristi se simbol PS(znak za prijelaz na red).

Primjer 17. Odredite broj redova u tekstu:
"Prva linija
Druga linija
Treća linija"

Broj = StrBroj redova("Prvi red"+Simboli.PS +"Drugi red"+Simboli.PS +"Treći red"); Izvještaj (broj);

Rezultat izvršenja ovog koda će biti prikaz broja redova u tekstu: 3

StrGetString

StrGetString(<Строка>, <НомерСтроки>) . Dobiva niz u višelinijskom nizu po broju. Numerisanje redova počinje od 1.

Primjer 18. Dobijte zadnji red u tekstu:
"Prva linija
Druga linija
Treća linija"

Tekst = "Prva linija"+Znakovi.PS +"Drugi red"+Znakovi.PS +"Treći red"; LastLine = StrGetLine(tekst, strBroj redova(tekst)); Obavijesti (poslednja linija);

Rezultat izvršenja ovog koda će biti prikaz reda "Third line".

StrNumberOccurrences

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) . Vraća broj pojavljivanja navedenog podniza u nizu. Funkcija je osjetljiva na velika i mala slova.

Primjer 19. Odredite koliko puta slovo “c” ulazi u red “Linije u 1s 8.3 i 8.2”, bez obzira na veličinu slova.

String = "Linije u 1s 8.3 i 8.2"; Broj pojavljivanja = StrBroj pojavljivanja(Vreg(String), "C"); izvještaj (broj pojava);

Rezultat izvršavanja ovog koda će prikazati broj pojavljivanja na ekranu: 2.

PageBeginsFrom

StrBeginsFrom(<Строка>, <СтрокаПоиска>) . Provjerava da li niz dat u prvom parametru počinje nizom u drugom parametru.

Primjer 20. Odredite da li PIB odabrane druge ugovorne strane počinje brojem 1. Neka varijabla druga strana Counterparties.

PIB = Izvođač.TIN; StartsCUnits = StrStartsC(TIN, "1"); If StartsFROM1 Then //Vaš kod EndIf;

Stranica se završava

StrEndsOn(<Строка>, <СтрокаПоиска>) . Provjerava da li se niz proslijeđen u prvom parametru završava nizom u drugom parametru.

Primjer 21. Odredite da li se PIB odabrane druge ugovorne strane završava brojem 2. Neka varijabla druga strana sprema se veza do elementa direktorija Counterparties.

PIB = Izvođač.TIN; Završava sa dva = Str se završava sa (TIN, "2"); Ako se završava sa dva then //Vaš kod EndIf;

PageSplit

StrDivide(<Строка>, <Разделитель>, <ВключатьПустые>) . Razdvaja string na dijelove prema specificiranim graničnim znakovima i upisuje rezultirajuće nizove u niz. Prvi parametar pohranjuje originalni niz, drugi parametar sadrži niz koji sadrži graničnik, treći parametar pokazuje da li prazne nizove treba upisati u niz (podrazumevano Tačno).

Primjer 22. Pretpostavimo da imamo niz koji sadrži brojeve odvojene simbolom ";", dobijemo niz brojeva iz niza.

String = "1; 2; 3"; Niz = StrSplit(String, ";"); Za Count = 0 By Array.Quantity() - 1 Loop Attempt Niz[Broj] = Broj(Ablp(Niz[Broj])); Niz izuzetaka[W] = 0; EndTry EndCycle;

Kao rezultat izvršenja, dobiće se niz s brojevima od 1 do 3.

StrConnect

StrConnect(<Строки>, <Разделитель>) . Pretvara niz nizova iz prvog parametra u niz koji sadrži sve elemente niza koristeći graničnik specificiran u drugom parametru.

Primjer 23. Koristeći niz brojeva iz prethodnog primjera, dobiti originalni niz.

Za Count = 0 By Array.Quantity() - 1 Loop Niz[Broj] = String(Niz[Broj]); EndCycle; String = StrConnect(Niz, "; ");

Top Related Articles