1s 8.2 rakstzīmes sērijas numurs rindā. Jaunas funkcijas darbam ar stīgām. Formatēšanas funkcija StrTemplate()

1. DAĻA. METODES (26).

1.1. Pamatmetodes (10). Neatkarīgi, balstīti uz saviem vienkāršiem algoritmiem.

Page_Add() (labās un kreisās puses pievienošana ar norādītajām rakstzīmēm).

Page_Inverse () (inversija - rakstzīmes no labās puses uz kreiso).

Page_Codes() (rakstzīmju kodi līdz "," un masīvs ar kodiem)

Page_Characters() (kodu virkne, kas atdalīta ar "," vai no masīva ar kodiem)

Page_ReplaceSymbols() (dažu rakstzīmju aizstāšana ar citām).

String_FromArray() (virkne no fragmentu masīva, kas atdalīts ar atdalītāju)

Page_FindIn() (meklējiet apakšvirkni (tostarp labajā pusē) ar noteiktu gadījuma numuru).

Page_FindGr() (Meklēt rakstzīmju grupu, kas iekļauta norādītajā rakstzīmju kopā)

Page_FindNumber() (Meklēt numuru, tostarp labajā pusē ar norādītais numurs notikumi)

Page_Interpret() (masīvā saskaņā ar noteikto sintaksi)

1.2. Atvasinātās metodes (12). Faktiski tas ir četru vispārinātu algoritmu metožu izmantošana (sk. 2. daļu)

Page_Number() (no rindas sākuma un beigām, nebaidieties no rakstzīmēm, kas nav ciparu.

Page_Find() (meklējiet apakšvirkni (tostarp reģistrjutīgo un labajā pusē) ar noteiktu gadījuma numuru).

Page_Replace() (meklējiet (tostarp reģistrjutīgos un labos) un aizstājiet atdalītāju apakšvirknes).

String_Piece() (virknes gabals starp norādītajiem norobežotāja gadījumiem (pa kreisi vai pa labi)).

Page_ReplacePiece() (aizstāj “gabals” avota virknē ar norādīto virkni).

Page_ВArray() (starp norādītajiem atdalītāja gadījumiem (ieskaitot tos, kas atrodas labajā pusē un bez reģistra).

Page_TransferBySyllables() (sadalīts apakšvirknēs “Hardly”, ar defisi).

Page_MoveByWords() (sadalīts apakšvirknēs “Softly”)

Page_Cut() (“Izgriezt” noteikta garuma apakšvirknēs)

Str_Shorten() (aizstāt kreiso "saīsināto" rakstzīmju grupu ar "aizvietošanas virkni"

Page_Abbreviation() (labo “samazināto” rakstzīmju grupu aizstājiet ar “aizvietošanas virkni”

Str_ShortenS() (aizstāt “saīsināto” rakstzīmju grupas vidū ar “aizvietošanas virkni”

Page_Extend (paplašināšana līdz noteiktam garumam, palielinot norādīto rakstzīmju skaitu)

1.3. Detalizētas metodes (3). Rindas "sadalīšana" ar pārsūtīšanu uz tabulu ar detalizētu informāciju.

Page_vTableIn() (tabulā saskaņā ar ligzdoto atdalītāju sistēmu).

Page_vTableGr (uz tabulu saskaņā ar daudzlīmeņu filtru).

Page_inTableNumbers (tabulā ar cipariem un fragmentiem starp tiem).

2. DAĻA. VISPĀRĪGĀS METODES — ALGORIMI (3).

Page_Occurrence() (metodes “Atrast” un “Aizstāt”).

Page_Fragments() (metodes “Piece”,”ReplacePiece,”InArray”,”inTableIn”).

Page_Abcr() (metodes "AbcrL", "AbcrP", "AbcrS", "Izvērst".

Page_Split() (metodes “Pārvietot pa zilbēm”, “Pārvietot pēc vārdiem”, “Izgriezt”).

3. DAĻA. UNIVERSĀLĀ FUNKCIJA.

Šis ir sava veida nosacījuma programmēšanas interfeiss, kas ļauj

piemērot virknei vairākas metodes vienlaikus. Īstenots kā

funkcijas ar septiņiem parametriem ("Demo" ir veidots uz šīs funkcijas):

Lapa_(Metodes, Apakšmetodes, Ievade, Param1, Param2, Length_Number_Position, Papildu izvade)

Iespējas:

- "Metodes" - vairākas "kombinētas" un (vai) viena "ekskluzīva" metode

(vienas rakstzīmes kodi vai nosaukumi, iespējams, izmantojot ",")

- “Apakšmetodes” - vairākas “kombinētas” un (vai) “ekskluzīvas” iespējas

“ekskluzīva” metode (viena rakstzīmes kodi vai nosaukumi);

- "Ievade" - virkne, masīvs vai vērtību tabula;

- “Param1” - meklēšanas virkne, aizstāšanas, atdalītāji, filtri;

- "Param2" - aizvietošanas virkne vai rakstzīmes;

- "Length_Number_Position" - Skaitlis, skaitļi, izmantojot atdalītāju vai masīvu ar cipariem;

- "Papildu izvade" - numurs vai virkne, masīvs vai vērtību tabula;

Apakšmetožu nosaukumi un/vai vienas rakstzīmes kodi, kā arī skaitļi

(Length_Number_Position) var būt jebkurā gadījumā un atdalīts

kāds no šiem norobežotājiem: ”, :;”.

4. DAĻA. DAŽI PIEMĒRI.

There areNumbersInLine=(Str_FindNumber(InLine)<>Nenoteikts);

Rindā ir skaitļi = (String_FindGr(Inline,"+0123456789")>0);

Ir latīņu valoda = (Str_FindGr(InStr, Str_Interpret("lL"))>0);

Ir norādītas zīmes = (Str_NfindGr(VxStr, "+to rogYu.0p9")>0);

IsNotPrinted=(Str_FindGr(InxStr, Line_Interpret("-l-L-r-R-P-Z-C"))>0);

5. DAĻA. SECINĀJUMS.

Kur iespējams, iztiku ar vienu piegājienu pa līniju. Otrā pāreja parasti ir fragmentāri. Es neizmantoju iebūvēto funkciju StrNumberOccurrences().

Tiek izmantotas iebūvētās funkcijas: Left (), Right (), Middle (), StrLength ()

- (pozicionēšanai un līnijas daļas iegūšanai jābūt “ātrai”).

Ir daži mehānismi darbam ar virknēm 1C vaicājumos. Pirmkārt, rindas var pievienot. Otrkārt, jūs varat ņemt apakšvirkni no virknes. Treškārt, virknes var salīdzināt, tostarp pēc raksta. Tas, iespējams, ir viss, ko var izdarīt ar stīgām.

Stīgu pievienošana

Lai vaicājumam pievienotu rindas, tiek izmantota darbība “+”. Varat pievienot tikai ierobežota garuma virknes.

ATLASĪT "Nosaukums: " + Darījuma partneri. Nosaukums AS 1. sleja FROM Katalogs. Darījuma partneri AS Darījuma partneri WHERE Darījuma partneri. Saite = &Saite

Apakšvirknes funkcija

SUBSTRING(<Строка>, <НачальнаяПозиция>, <Длина>)

Funkcijas Environment() analogs no objekta modeļa. Funkciju Apakšstring () var lietot virknes datiem, un tā ļauj atlasīt fragmentu <Строки> , sākot ar rakstzīmes numuru <НачальнаяПозиция> (rakstzīmes rindā ir numurētas, sākot no 1) un garumu <Длина> rakstzīmes. Funkcijas aprēķina rezultātam ir mainīga garuma virknes tips, un garums tiks uzskatīts par neierobežotu, ja <Строка> ir neierobežots garums un parametri <Длина> nav konstante vai lielāka par 1024.

Ja virknes garums ir mazāks nekā norādīts otrajā parametrā, funkcija atgriezīs tukšu virkni.

Uzmanību! Nav ieteicams izmantot funkciju SUBSTRING(), lai neierobežota garuma virknes pārveidotu par ierobežota garuma virknēm. Tā vietā labāk ir izmantot apraides operatoru EXPRESS().

Funkcija līdzīga

Ja mums ir jāpārliecinās, vai virknes atribūts atbilst noteiktiem kritērijiem, mēs to salīdzinām:

ATLASĪT darījumu partnerus. Nosaukums AS 1. sleja FROM Katalogs. Darījumu partneri AS Darījuma partneri WHERE Darījuma partneri. Nosaukums = "Gazprom"

Bet ko darīt, ja jums ir nepieciešams smalkāks salīdzinājums? Ne tikai vienlīdzība vai nevienlīdzība, bet līdzība ar noteiktu modeli? Tieši šim nolūkam tika izveidota funkcija LĪDZĪGS.

LIKE — operators virknes līdzības ar paraugu pārbaudei. LIKE analogs SQL.

LĪDZĪGS operators ļauj salīdzināt izteiksmes vērtību, kas norādīta pa kreisi no tās, ar raksta virkni, kas norādīta labajā pusē. Izteiksmes vērtībai ir jābūt tipa virknei. Ja izteiksmes vērtība atbilst modelim, operatora rezultāts būs TRUE, pretējā gadījumā tas būs FALSE.

Šīs veidnes virknes rakstzīmes ir pakalpojumu rakstzīmes, un to nozīme atšķiras no virknes rakstzīmes:

  • % (procenti): secība, kas satur jebkādu skaitu patvaļīgu rakstzīmju;
  • _ (pasvītrojums): viena patvaļīga rakstzīme;
  • […] (V kvadrātiekavās viena vai vairākas rakstzīmes): jebkura atsevišķa rakstzīme, kas norādīta kvadrātiekavās. Uzskaitījums var saturēt diapazonus, piemēram, a–z, kas nozīmē diapazonā iekļautu patvaļīgu rakstzīmi, ieskaitot diapazona galus;
  • [^...] (kvadrātiekavās nolieguma zīme, kam seko viena vai vairākas rakstzīmes): jebkura atsevišķa rakstzīme, kas nav norādīta aiz nolieguma zīmes.

Jebkurš cits simbols nozīmē sevi un nenes nekādu papildu slodzi. Ja kāda no uzskaitītajām rakstzīmēm ir jāraksta kā pati, tad pirms tās ir jāieraksta<Спецсимвол>. Es pats<Спецсимвол>(jebkurš piemērots simbols) ir definēts tajā pašā paziņojumā pēc atslēgvārdsĪPAŠAIS SIMBOLS.

String tips ir atrodams visās programmēšanas valodās. Tas ir primitīvs, un 1C ir daudz funkciju darbam ar to. Šajā rakstā mēs to aplūkosim tuvāk dažādi veidi darbs ar virkņu veidiem 1C 8.3 un 8.2, izmantojot piemērus.

Līnija

Lai pārvērstu jebkura veida mainīgo par virkni, ir tāda paša nosaukuma funkcija “String()”. Ievades parametrs būs pats mainīgais, kura virknes attēlojums jāiegūst.

String(False) // atgriež "Nē"
String(12345) // atgriež "12,345"
Virkne(PašreizējaisDatums()) //"07/21/2017 11:55:36"

Par virkni iespējams pārvērst ne tikai primitīvus tipus, bet arī citus, piemēram, direktoriju un dokumentu elementus.

SokrLP, SokrL, SokrP

Šo funkciju ievades parametri ir virknes tipa mainīgie. Funkcijas noņem nenozīmīgas rakstzīmes (atstarpes, ratiņu atgriešanas utt.): attiecīgi no kreisās un labās puses, tikai no kreisās puses un tikai no labās puses.

Saīsinājums(" Atstarpes tiks noņemtas abās pusēs ") // "Atstarpes tiks noņemtas abās pusēs"
Saīsinājums(" Atstarpes abās pusēs tiks noņemtas ") // " Atstarpes kreisajā pusē tiks noņemtas "
Saīsinājums(" Atstarpes abās pusēs tiks noņemtas ") // " Labajā pusē esošās atstarpes tiks noņemtas"

Lauva, pa labi, vidējais

Šīs funkcijas ļauj apgriezt daļu no virknes. Funkcija "Left()" atgriezīs virknes daļu no tās kreisās puses norādītajā garumā. Funkcija "Right()" ir līdzīga, bet apgriež no labās puses. Funkcija “Avg()” ļauj norādīt rakstzīmes numuru, no kuras tiks atlasīta rindiņa, un tās garumu.

Lev ("String mainīgais", 4) // atgriež "Str"
Right ("String mainīgais", 7) // atgriež "mainīgo"
Medium ("String mainīgais", 2, 5) // atgriež "troco"

Stiprums

Funkcija nosaka rakstzīmju skaitu, kas ietvertas virknes mainīgajā.

StrongLength("Word") // izpildes rezultāts būs skaitlis 5

Atrast

Funkcija dod iespēju virknes mainīgajā meklēt daļu no virknes. Atgriešanas vērtība būs skaitlis, kas parāda atrastās virknes sākuma pozīciju. Ja atbilstība netiek atrasta, tiek atgriezta nulle.

Lūdzu, ņemiet vērā, ka meklēšana ir reģistrjutīga. Ja sākotnējā virknē ir vairāk nekā viens meklēšanas apakšvirknes gadījums, funkcija atgriezīs pirmās gadījuma sākumu.

Funkcija Find ("viens, divi, viens, divi, trīs", "divi") // atgriezīs skaitli 6

Tukša rinda

Izmantojot šo funkciju, varat noteikt, vai virkne ir tukša. Nelielas rakstzīmes, piemēram, atstarpe, karietes atgriešana un citas, netiek ņemtas vērā.

Funkcija EmptyString("Kirbis Vasilijs Ivanovičs") // atgriezīs vērtību False
Funkcija EmptyString(" ") // atgriezīs vērtību True

VReg, NReg, TReg

Šīs funkcijas ir ļoti noderīgas, salīdzinot un konvertējot virknes mainīgos. "Vreg()" atgriezīs sākotnējo virkni ar lielajiem burtiem, "HPreg()" - ar mazajiem burtiem, un "TReg()" formatēs to tā, lai katra atsevišķā vārda pirmā rakstzīme tiktu rakstīta ar lielo burtu un visas nākamās rakstzīmes tiktu rakstītas ar lielo burtu.

VReg("GENERAL DIRECTOR") // atgriež vērtību - "GENERAL DIRECTOR"
NReg(“CEO DIRECTOR”) // atgriešanas vērtība – “CEO”
TREG (“CEO DIRECTOR”) // atgriešanas vērtība – “Ģenerāldirektors”

Lapas aizstāšana

Šī funkcija ir līdzīga aizstāšanai teksta redaktori. Tas ļauj virknes mainīgajos aizstāt vienu rakstzīmi vai rakstzīmju kopu ar citu.

StrReplace("sarkans, balts, dzeltens", ","", ";") // atgriež "sarkanu; balts; dzeltens"

StrNumberLines

Funkcija ļauj noteikt rindiņu skaitu, kas ir atdalītas ar karietes atgriešanas atdevi teksta mainīgajā.

Tālāk esošajā piemērā cilpa veiks trīs kārtas, jo funkcija LineNumberRow atgriezīs vērtību 3:

Ja ind = 1 pēc StrNumber of String ("Line1" + Symbols.PS + "Line2" + Symbols.PS + "Line3") cikls
<тело цикла>
EndCycle;

StrGetString

Šī funkcija darbojas ar vairāku rindiņu tekstu tāpat kā iepriekšējā. Tas ļauj iegūt noteiktu virkni no teksta mainīgā.

StrGetString("Virkne1" + rakstzīmes.PS + "virkne2" + rakstzīmes.PS + "virkne3", 2) // atgriezt "String2"

PageNumberOccurrences

Funkcija uzskaita rakstzīmes vai apakšvirknes gadījumu skaitu meklēšanas virknē.

StrNumberAttachments("a;b;c;d; ", ";") // funkcija atgriezīs skaitli 4

Simbols un simbolu kods

Šīs funkcijas ļauj iegūt rakstzīmi pēc tās koda Unicode kodējumā, kā arī noteikt šo kodu pēc pašas rakstzīmes.

Funkcija SymbolCode("A") // atgriezīs skaitli 1040
CharacterCode(1040) // funkcija atgriezīs “A”

Izplatīti uzdevumi, strādājot ar stīgām

Virkņu savienošana

Lai apvienotu vairākas virknes (lai veiktu konkatenāciju), pietiek ar pievienošanas operatoru.

"Line 1" + "Line 2" // divu rindu pievienošanas rezultāts būs "Line 1 Line 2"

Veids Conversion

Lai pārvērstu tipu par virkni, piemēram, saiti uz direktorija elementu, skaitli utt., pietiek ar funkciju “String()”. Funkcijas, piemēram, “ScrLP()”, arī pārveidos mainīgos par virkni, taču nekavējoties nogriežot nenozīmīgas rakstzīmes.

String(1000) // atgriež "1000"

Lūdzu, ņemiet vērā, ka, pārvēršot skaitli virknē, programma automātiski pievienoja atstarpi, kas atdala tūkstoti. Lai no tā izvairītos, varat izmantot šādas konstrukcijas:

StrReplace(String(1000),rakstzīmes.NPP,"") // atgriež "1000"

String(Format(1000,"HG=")) // atgriež "1000"

Citāti virknē

Diezgan bieži nāksies saskarties ar nepieciešamību norādīt pēdiņas virknes mainīgajā. Tas var būt vai nu pieprasījuma teksts, kas rakstīts konfiguratorā, vai vienkārši mainīgais. Lai atrisinātu šo problēmu, jums vienkārši jāievieto divas pēdiņas.

Header = String("Horns and Hooves LLC - tie esam mēs!") // atgriezīs "Horns and Hooves LLC - tie esam mēs!"

Vairākas rindas, rindiņas pārtraukums

Lai radītu daudzrindu teksts Pietiek tam pievienot rindiņu pārtraukumus (Symbols.PS).

MultilineText = “Pirmā rinda” + simboli.PS + “Otrā rinda”

Kā noņemt atstarpes

Lai noņemtu atstarpes labajā vai kreisajā pusē, varat izmantot funkciju “ScrAP()” (kā arī “ScrL()” un “ScrP()”):

StringNoSpaces = Saīsinājums(" Daudzi burti ") // funkcija atgriezīs vērtību "Daudzi burti"

Ja pēc skaitļa pārveidošanas par virkni jums ir jānoņem nedalāmās atstarpes, izmantojiet šādu konstrukciju:

StringNoSpaces = StrReplace(String(99999),Characters.NPP,"") // atgriež "99999"

Programmētāji bieži izmanto arī šādu konstrukciju, kas ļauj noņemt vai aizstāt ar citu rakstzīmi visas atstarpes teksta mainīgajā:

StringNoSpaces = StrReplace("hello","") // atgriež "sveiki"

Stīgu salīdzināšana savā starpā

Jūs varat salīdzināt terminus ar parasto vienādības zīmi. Salīdzinājums ir reģistrjutīgs.

"Hello" = "hello" // atgriež False
"Hello" = "Hello" // atgriež True
"Hello" = "Ardievu" // atgriezīsies False

Ieviests versijā 8.3.6.1977.

Mēs esam paplašinājuši funkciju kopu, kas paredzēta darbam ar virknēm. Mēs to darījām, lai sniegtu jums sarežģītākus rīkus virkņu datu parsēšanai. Jaunās funkcijas būs ērtas un noderīgas teksta analīzes tehnoloģiskajos uzdevumos. Uzdevumos, kas saistīti ar teksta parsēšanu, kas satur datus formatētā formā. Tā varētu būt dažu no iekārtas saņemto failu analīze vai, piemēram, tehnoloģiskā žurnāla analīze.

Iepriekš jūs varētu veikt visas darbības, kas veic jaunas funkcijas. Izmantojot vairāk vai mazāk sarežģītus algoritmus, kas rakstīti iebūvētajā valodā. Tāpēc jaunas funkcijas nedod jums nekādas principiāli jaunas iespējas. Tomēr tie ļauj samazināt koda daudzumu un padarīt kodu vienkāršāku un saprotamāku. Turklāt tie ļauj paātrināt darbību izpildi. Jo platformā realizētās funkcijas, protams, darbojas ātrāk nekā līdzīgs algoritms, kas rakstīts iebūvētajā valodā.

Formatēšanas funkcija StrTemplate()

Šī funkcija aizstāj parametrus virknē. Šādas pārveidošanas nepieciešamība bieži rodas, piemēram, parādot brīdinājuma ziņojumus. Šīs funkcijas sintakse ir šāda:

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

<Шаблон>- šī ir virkne, kurā jāaizstāj parametru attēlojumi.

<Значение1> , ... <Значение10>- tie ir parametri (maksimums desmit), kuru attēlojumi ir jāaizvieto virknē.

Lai norādītu noteiktu vietu veidnē, kur vēlaties veikt aizstāšanu, jums ir jāizmanto tādi marķieri kā %1, ... %10. Veidnē iesaistīto marķieru skaitam un parametru skaitam, kas satur vērtības, ir jāsakrīt.

Piemēram, šāda operatora izpildes rezultāts:

būs rinda:

Datu kļūda 2. rindiņā (nepieciešams datuma veids)

Funkcija darbam ar virknēm StrCompare()

Šī funkcija salīdzina divas virknes bez reģistrjutības. Piemēram, šādi:

Varat veikt to pašu darbību agrāk, izmantojot vērtību salīdzināšanas objektu:

Tomēr jaunās funkcijas izmantošana šķiet vienkāršāka. Turklāt šī funkcija atšķirībā no vērtību salīdzināšanas objekta darbojas gan plānā klientā, gan tīmekļa klientā.

Funkcijas darbam ar virknēm StrStartsWith(), StrEndsAt()

Šīs funkcijas nosaka, vai virkne sākas ar noteiktu apakšvirkni vai virkne beidzas ar noteiktu apakšvirkni. Šo funkciju algoritmu nav grūti ieviest iegultā valodā, taču to klātbūtne ļauj rakstīt tīrāku un saprotamāku kodu. Un viņi strādā ātrāk.

Piemēram, tos ir ērti izmantot If paziņojumā:

Funkcijas darbam ar virknēm StrDivide(), StrConnect()

Šīs funkcijas sadala virkni daļās, izmantojot noteiktu atdalītāju. Vai otrādi, tās apvieno vairākas rindas vienā, ievietojot starp tām atlasīto atdalītāju. Tie ir ērti, lai izveidotu vai analizētu žurnālus un tehnoloģiskos žurnālus. Piemēram, varat viegli parsēt tehnoloģiskā žurnāla ierakstu daļās, kas piemērotas turpmākai analīzei:

Funkcija darbam ar virknēm StrFind()

Vecās Find() funkcijas vietā mēs ieviesām jauna funkcija, kam ir papildu funkcijas:

  • Meklēt dažādos virzienos (no sākuma, no beigām);
  • Meklēt no noteiktas pozīcijas;
  • Meklējiet notikumu ar noteiktu numuru (otrais, trešais utt.).

Faktiski tas dublē vecās funkcijas iespējas. Tas tiek darīts, lai saglabātu saderību ar moduļiem, kas apkopoti vecākās versijās. Ieteicams vairs neizmantot veco Find() funkciju.

Tālāk ir sniegts piemērs jauno meklēšanas iespēju izmantošanai. Apgrieztā meklēšana ir noderīga, ja nepieciešams formalizētas virknes pēdējais fragments, piemēram, pilnais vārds failu URL. Un meklēšana no noteiktas pozīcijas palīdz gadījumos, kad jāmeklē zināmā fragmentā, nevis visā rindā.

UZ pamata iespējas Programmēšanas valodas parasti ietver darbu ar cipariem un virknēm. Parasti šīs funkcijas tiek iekodētas kompilatora kodā (vai tiek ieviestas programmēšanas valodas “bāzes” klases).

1C versijā iespēja strādāt ar stīgām ir ieprogrammēta pašā platformā. Šodien mēs aplūkosim iespējas strādāt ar 1C virknēm programmās iebūvētajā 1C valodā.

Līnijas vērtība 1C

1. Sāksim ar vienkāršāko. Mainīgā izveidošana un nemainīgas virknes vērtības piešķiršana 1C izskatās šādi:

Mainīgais = "Sveika, pasaule!";

Ja jums ir jānorāda citāta rakstzīme nemainīgā 1C virknes vērtībā, tā ir jādubulto “”

Mainīgais = "Sveika, pasaule"!;

2. Līnijas pārtraukumu 1C var norādīt uzreiz divos veidos. Pirmais izmanto simbolu |

Mainīgais = "Sveiki!
| pasaule! ";

Otrais ir simbolu sistēmas uzskaitījuma izmantošana. Tas ļauj pievienot gan 1C rindiņas pārtraukumus, gan citas nedrukājamas rakstzīmes, piemēram, TAB.

Mainīgais = "Sveiki" + Symbols.PS + "miers!";

3. 1C konfigurācijas var izstrādāt ne tikai vienai valodai (krievu, angļu vai citai), bet vienlaikus vairākām valodām. Šajā gadījumā 1C loga apakšā tiek atlasīta pašlaik izmantotā valoda.

Valodu saraksts atrodas konfigurācijas logā sadaļā Vispārīgi/valodas. Katrai valodai ir īss identifikators, piemēram, ru vai eng.

Ir skaidrs, ka, programmējot šādu konfigurāciju, 1C līnijas var būt arī daudzvalodu. Lai to izdarītu, ir iespējams izveidot šādu 1C līniju, norādot cauri; opcijas pēc valodas identifikatora:

Mainīgais = "ru=""Sveika, pasaule! ""; en=""Sveika, pasaule! """;

Ja jūs izmantojat šādā veidā izveidoto 1C līniju kā parasti, tad tas būs tas, kas tajā ir rakstīts. Lai sistēma to sadalītu divās opcijās un izmantotu vēlamo, jums jāizmanto funkcija НStr():

//labots divvalodu konfigurācijām
Report(NStr(Mainīgs));

Balsti ar līniju tipu 1C

Atribūts ir lauks 1C direktorijā/dokumentā. Tas atšķiras no mainīgā programmā 1C valodā ar to, ka atribūtam ir precīzi norādīts tā veids (skaitlis, 1C virkne utt.). Ja vēlaties atsvaidzināt atmiņu par to, kas ir rekvizīts, skatieties nodarbību.

Ja norādāt atribūta veidu - rinda 1C, tad papildus jānorāda parametri.

1C rindiņām ir neierobežots garums (norādīts kā garums = 0) un ierobežots garums, norādot precīzu rakstzīmju skaitu. 1C neierobežota garuma līnijas tiek glabātas atsevišķā SQL tabula, tāpēc to izmantošana ir mazāk produktīva nekā ierobežota.

Tieši tāpēc neierobežota garuma 1C stīgu izmantošanai ir savi ierobežojumi – tās nav iespējams izmantot visur. Piemēram, tas nav atļauts kā dokumenta numurs, atsauces kods vai mērījums.

Darbs ar 1C stīgām

1C platformā ir vairākas iebūvētas funkcijas darbam ar stīgām.

  • AbbrLP (“Neticami, bet patiesi!”)
    Noņem papildu atstarpes no līnijas 1C. Var izmantot arī, lai pārvērstu jebkādus veidus par 1C virkni (piemēram, skaitļiem).
  • Mainīgais = "Vasya" + AbbrLP(" plus") + "Olya"; //būs "Vasya plus Olya"
    Piemērs vairāku 1C virkņu vērtību summēšanai. Rezultāts būs viena rinda 1C.
  • Mainīgais = Lev("Mūzika", 2); //būs "Mu"
    Mainīgais = Vidējs ("Mūzika", 2, 2); //būs "draudi"
    Mainīgais = Tiesības ("Mūzika", 2); //būs "ka"
    Dažādas iespējas apakšvirknes iegūšanai no 1C virknes.
  • Mainīgais = Find("Mūzika", "zy"); //būs 3
    Meklējiet apakšvirkni virknē 1C, sākot ar rakstzīmi 1.
  • Mainīgais = StrLength("Mūzika"); //būs 6
    Atgriež rakstzīmju skaitu 1C rindā.
  • Report("Sveiki") //ziņojuma logā 1C loga apakšā
    Alert("Sveiki") //uznirstošais dialoglodziņš
    Statuss("Sveiki") //statusa displeja rindiņā apakšējā kreisajā stūrī
    .

Objektu ievietošana rindā 1C

Kā zināms, šobrīd vispopulārākais strukturētas informācijas apmaiņas formāts ir XML. Pat jaunākā versija JAUNKUNDZE Office Word un Excel saglabā failus šajā formātā (attiecīgi docx un xlsx, mainiet paplašinājumu uz zip, atveriet arhivētājā).

1C platforma datu apmaiņai nodrošina vairākas iespējas, no kurām galvenā ir arī XML.

1. Vienkāršākā metode ir izmantot funkciju Abreviation() vai String(). Pieprasījuma pamattekstā varat izmantot funkciju REPRESENTATION(). Viņu darbības rezultāts ir vienāds - viņi lietotājam ģenerē jebkura 1C objekta virknes attēlojumu.

Direktorijai pēc noklusējuma tas būs tā nosaukums. Dokumentam – dokumenta nosaukums, numurs un datums.

2. Jebkuru 1C objektu (ar ierobežojumiem) var konvertēt uz XML un otrādi. Konversijas procesu sauc par serializāciju.

StringViewXml = XMLString(Vērtība); //iegūstiet XML no 1C vērtības
Value1C = XMLVvērtība(Tips("DirectoryLink.Nomenclature"),TypeStringXml); //iegūstiet 1C vērtību no XML virknes, jums jānorāda 1C veids, kas jāsaņem

3. Pastāv 1C platformas veids, kā pārvērst jebkuru 1C objektu virknē. Tas tika migrēts no versijas 1C 7.7. Šo formātu citas programmas nesaprot, bet citi 1C to saprot, kas ļauj to ērti izmantot apmaiņai starp 1C datu bāzēm.

Rinda = ValueInRowInt(Vērtība1C); //iegūstiet virkni 1C no vērtības 1C
ValueVFile("C:\MyFile.txt", Value1C); //cita iespēja, mēs iegūstam failu ar saglabātu virkni no 1C vērtības
Value1C = ValueFromStringInt(String); //atpakaļ no 1C līnijas
Value1C = ValueFile("C:\MyFile.txt"); //atpakaļ no faila

1C līniju rediģēšana veidlapā

Papildus darbam ar 1C virknēm programmā 1C valodā, protams, es vēlētos, lai lietotājs varētu tās rediģēt. Tam ir vairākas iespējas:

1. Vienkāršākais veids ir pieprasīt 1C līnijas ievadi pēc pieprasījuma. Šo metodi izmanto, mācot 1C programmēšanu, dzīvē to izmanto daudz retāk (bet izmanto!).

Mainīgais = "";
Rinda = EnterValue(Mainīgais, "Ievadiet pilno nosaukumu");

2. Lai parādītu informāciju par 1C objektu (direktoriju/dokumentu) vai veidlapas detaļas (sk.), visbiežāk tiek izmantots ievades lauks. Šis ir visizplatītākais rīks 1C, lai lietotājs varētu strādāt ar rediģēšanas laukiem.

3. Ievades lauka iespējas var tikt paplašinātas (skatiet ievades lauka īpašības, ar peles labo pogu noklikšķiniet par to, sīkāka informācija):

  • Izvēles rūtiņa Daudzrindu rediģēšanas režīms
  • Papildu rediģēšanas izvēles rūtiņa (pieejama, ja ir atzīmēta iepriekšējā izvēles rūtiņa)
  • Izvēles rūtiņa Paroles režīms (sk.).

4. Ja ar visām ievades lauka iespējām jums nepietiek, ir iebūvēts redaktors. Lai to pievienotu veidlapai, izvēlnē Form/Insert Control ir jāpievieno lauks teksta dokuments. Tā rekvizītos var norādīt tā darbības režīmu – rekvizītu Extension.

Teksta dokumenta lauku nevar tieši saistīt ar datiem. Formas OnOpen() notikumu apdarinātājā ir jāieraksta funkcija (sk.):

Veidlapas elementi.ElementaNosaukumsTekstsDokumenta lauks.SetText(StringValue); //šeit ValueString ir teksts, kas saņemts, piemēram, no atribūta

Un saglabāšanas apstrādātājā - piemēram, pogā Saglabāt - pievienojiet saglabāšanu:

ValueString = FormElements.ElementNameTextDocumentField.GetText(); //VērtībaŠeit ir atribūts, kurā mēs saglabājam vērtību

5. 1C versijā 8.2.11, in kontrolētas formas, parādījās jauna iespēja 1C līnijas attēlojums — formatēta dokumenta lauks.


Līdzīgi kā teksta dokumenta laukā, tas ir jāiestata to atverot un jāpieraksta, kad pats to saglabā, izmantojot programmu.

  • 1C objektā, kura formu mēs veidojam (direktorijs, dokuments, apstrāde utt.) - pievienojiet atribūtu ar vērtību krātuves veidu
  • Funkcijā OnReadOnServer() mēs iestatām tekstu no atribūta

    //šeit atribūts ir 1C objekta pievienotais atribūts
    //šeit FormattedDocument ir rediģējamās veidlapas lauka nosaukums
    &Serverī

    FormattedDocument = CurrentObject.Attributes.Get();
    Procedūras beigas

  • Funkcijā BeforeWritingOnServer() vai izmantojot pogu, mēs ierakstīsim tekstu no lauka

    &Serverī
    Procedūra lasīšanas laikā serverī (pašreizējais objekts)
    CurrentObject.Props = NewValueStorage(FormattedDocument);
    Procedūras beigas