1 adaos de șiruri. Noi funcții șiruri

Există puține mecanisme pentru a lucra cu șiruri în interogările 1C. În primul rând, pot fi adăugate șiruri. În al doilea rând, un subșir poate fi luat dintr-un șir. În al treilea rând, șirurile pot fi comparate, inclusiv după model. Cam asta e tot ce poți face cu șiruri.

Adăugarea șirurilor

Operatorul „+” este folosit pentru a adăuga șiruri într-o interogare. Puteți adăuga doar șiruri de lungime limitată.

SELECTAȚI „Nume: ” + Contractors.Name AS Column1 FROM Directory.Contractors AS Contractors WHERE Contractors.Reference = &Referință

Funcția subșir

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

Un analog al funcției Environment() din modelul obiect. Funcția Substring() poate fi aplicată datelor de tip șir și vă permite să selectați un fragment <Строки> , începând cu un caracter numeric <НачальнаяПозиция> (caracterele dintr-un șir sunt numerotate de la 1) și lungime <Длина> personaje. Rezultatul evaluării funcției are un tip șir de lungime variabilă, iar lungimea va fi considerată nelimitată dacă <Строка> are lungime și parametri nelimitați <Длина> nu este o constantă sau mai mare decât 1024.

Dacă lungimea șirului este mai mică decât cea specificată în al doilea parametru, atunci funcția va returna un șir gol.

Atenţie! Utilizarea funcției SUBSTRING() pentru a converti șiruri de lungime nelimitată în șiruri de lungime limitată nu este recomandată. În schimb, este mai bine să utilizați operatorul de distribuție EXPRESS().

Funcție similară

Dacă trebuie să ne asigurăm că atributul șir îndeplinește anumite criterii, îl comparăm:

SELECTAȚI Counterparties.Name AS Column1 FROM Directory.Counterparties AS Counterparties WHERE Counterparties.Name = "Gazprom"

Dar dacă este nevoie de o comparație mai subtilă? Nu doar pentru egalitate sau inegalitate, ci pentru similitudine cu un anumit tipar? Exact pentru asta a fost creată funcția LIKE.

LIKE - Un operator pentru a verifica dacă un șir este similar cu un model. Analog de LIKE în SQL.

Operatorul LIKE vă permite să comparați valoarea expresiei specificate în stânga acesteia cu șirul șablon specificat în dreapta. Valoarea expresiei trebuie să fie de tip șir. Dacă valoarea expresiei se potrivește cu șablonul, rezultatul operatorului va fi TRUE, în caz contrar va fi FALS.

Următoarele caractere din șirul șablon sunt caractere de serviciu și au o semnificație diferită de caracterul șir:

  • % (procent): o secvență care conține orice număr de caractere arbitrare;
  • _ (subliniere): un caracter arbitrar;
  • […] (unul sau mai multe caractere între paranteze drepte): orice caracter unic enumerat între paranteze drepte. O enumerare poate conține intervale, cum ar fi a-z, adică orice caracter din interval, inclusiv capetele intervalului;
  • [^…] (în paranteze drepte un semn de negație urmat de unul sau mai multe caractere): Orice caracter unic, altul decât cele enumerate după semnul de negație.

Orice alt simbol înseamnă el însuși și nu poartă nicio sarcină suplimentară. Dacă este necesar să scrieți unul dintre caracterele listate ca el însuși, atunci acesta trebuie să fie precedat de<Спецсимвол>. Eu insumi<Спецсимвол>(orice caracter adecvat) este definit în aceeași declarație după cuvânt cheie SIMBOL SPECIAL.

Note de la Looking Glass

18.08.2014 Noi funcții pentru lucrul cu șiruri

Implementat în versiunea 8.3.6.1977.

Am extins setul de funcții pentru lucrul cu șiruri. Am făcut acest lucru pentru a vă oferi instrumente mai avansate pentru analizarea datelor șirurilor. Noile funcții vor fi convenabile și utile în sarcinile tehnologice de analiză a textului. În sarcinile legate de analizarea textului care conține date într-o formă formatată. Aceasta poate fi analiza unor fișiere primite de la echipament sau, de exemplu, analiza unui jurnal tehnologic.

Toate acțiunile pe care noile funcții le efectuează, le-ați putea efectua înainte. Cu ajutorul unor algoritmi mai mult sau mai puțin complecși scriși într-un limbaj încorporat. Prin urmare, noile funcții nu vă oferă oportunități fundamental noi. Cu toate acestea, vă permit să reduceți cantitatea de cod, să faceți codul mai simplu și mai ușor de înțeles. În plus, vă permit să accelerați execuția acțiunilor. Pentru că funcțiile implementate în platformă funcționează, desigur, mai rapid decât un algoritm similar scris în limbajul încorporat.

Funcția de format StrTemplate()

Această funcție înlocuiește parametrii într-un șir. Necesitatea unei astfel de conversii apare adesea, de exemplu, la afișarea mesajelor de avertizare. Sintaxa pentru această funcție este următoarea:

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

<Шаблон>este șirul în care se înlocuiesc reprezentările parametrilor.

<Значение1> , ... <Значение10>- aceștia sunt parametrii (maximum - zece), ale căror reprezentări trebuie înlocuite în șir.

Pentru a specifica un anumit loc în șablon la care doriți să efectuați înlocuirea, trebuie să utilizați marcatori de forma %1, ... %10. Numărul de markeri implicați în șablon și numărul de parametri care conțin valori trebuie să se potrivească.

De exemplu, rezultatul executării unui astfel de operator:

va fi o linie:

Eroare de date pe linia 2 (necesită tipul de dată)

Funcție șir StrCompare()

Această funcție compară două șiruri fără a ține seama de majuscule și minuscule. De exemplu, așa:

Puteți efectua aceeași acțiune înainte de a utiliza obiectul Compararea Valorilor:

Cu toate acestea, utilizarea noii funcție pare mai simplă. Și pe lângă asta, o funcție, spre deosebire de un obiect Compararea Valorilor, lucrează în client slab, și în clientul web.

Funcții șir StrBeginsC(), StrEndsTo()

Aceste funcții determină dacă un șir începe cu un subșir specificat sau dacă un șir se termină cu un subșir specificat. Algoritmul acestor funcții nu este greu de implementat într-un limbaj încorporat, dar prezența lor vă permite să scrieți un cod mai curat și mai ușor de înțeles. Și lucrează mai repede.

De exemplu, este convenabil să le folosiți în operator În cazul în care un:

Funcții pentru lucrul cu șiruri de caractere StrSplit(), StrJoin()

Aceste funcții împart șirul în părți conform delimitatorului specificat. Sau invers, combină mai multe linii într-una singură, inserând între ele separatorul selectat. Sunt convenabile pentru crearea sau analizarea jurnalelor, a unui jurnal tehnologic. De exemplu, puteți dezasambla cu ușurință o intrare de jurnal tehnologic în părți adecvate pentru analiză ulterioară:

Funcția de lucru cu șiruri de caractere StrFind()

În loc de vechea funcție Găsi() noi am implementat optiune noua, care are caracteristici suplimentare:

  • Caută în direcții diferite (de la început, de la sfârșit);
  • Căutați din poziția specificată;
  • Căutați o apariție cu numărul specificat(al doilea, al treilea etc.).

De fapt, dublează capacitățile vechii funcție. Acest lucru se face pentru a menține compatibilitatea cu modulele compilate în versiuni mai vechi. vechea functie Găsi() recomandat să nu mai fie folosit.

Mai jos este un exemplu de utilizare a noilor capabilități de căutare. Căutarea înapoi este utilă atunci când aveți nevoie de ultima parte dintr-un șir formalizat, cum ar fi numele complet al unui fișier într-o adresă URL. Și căutarea dintr-o poziție specificată ajută în cazurile în care trebuie să căutați într-un fragment cunoscut, și nu în întregul șir.

Tipul String se găsește în toate limbajele de programare. Este primitiv, iar în 1C există multe funcții pentru a lucra cu el. În acest articol, vom arunca o privire mai atentă diferite căi lucrați cu tipuri de șir în 1C 8.3 și 8.2 cu exemple.

Linia

Pentru a converti o variabilă de orice tip într-un șir, există funcția „String ()” cu același nume. Parametrul de intrare va fi variabila însăși, a cărei reprezentare în șir urmează să fie obținută.

String(False) // returnează „Nu”
String(12345) // returnează „12 345”
String(CurrentDate()) //"21.07.2017 11:55:36"

Este posibil să se convertească într-un șir nu numai tipurile primitive, ci și altele, de exemplu, elemente de directoare și documente.

LP abreviat, L abreviat, P abreviat

Parametrii de intrare ai acestor funcții sunt o variabilă de tip șir. Funcțiile îndepărtează caractere nesemnificative (spații, întoarceri de căruță etc.): din stânga și din dreapta, doar din stânga și, respectiv, numai din dreapta.

abbrl("Spatiile de pe ambele fete vor fi eliminate") // "Spatiile de pe ambele fete vor fi eliminate"
abbr("Spatiile de pe ambele fete vor fi eliminate") // "Spatiile din stanga vor fi eliminate"
abbr(" Spațiile de pe ambele părți vor fi eliminate ") // "Spațiile din dreapta vor fi eliminate"

Leu, corect, mijloc

Aceste funcții vă permit să tăiați o parte dintr-un șir. Funcția Lion() va returna partea din șir de pe partea stângă a lungimii specificate. Funcția „Right()” este similară, dar decuparea se face în dreapta. Funcția „Wed()” vă permite să specificați numărul caracterului din care va fi selectat șirul și lungimea acestuia.

Lion(„variabilă șir”, 4) // returnează „Stro”
Dreapta(„variabilă șir”, 7) // returnează „variabilă”
avg(„variabilă șir”, 2, 5)// returnează „troco”

StrLength

Funcția determină numărul de caractere care sunt conținute într-o variabilă șir.

StrLength("Cuvânt") // rezultatul execuției va fi numărul 5

Găsi

Funcția face posibilă căutarea unei părți a unui șir într-o variabilă șir. Valoarea returnată va fi un număr care indică poziția începutului șirului găsit. Dacă nu se găsesc potriviri, se returnează zero.

Rețineți că căutarea face distincție între majuscule și minuscule. Dacă există mai mult de o apariție a subșirului de căutare în șirul original, funcția va returna începutul primei apariții.

Găsiți ("unu, doi, unu, doi, trei", "două") // funcția va returna numărul 6

Linie goală

Utilizarea acestei funcții vă permite să determinați dacă un șir este gol. Caracterele nesemnificative, cum ar fi spațiul, întoarcerea căruciorului și altele, nu sunt luate în considerare.

EmptyString("Vasili Ivanovich Pupkin") // funcția va returna False
EmptyString(" ") // funcția va returna True

VReg, NReg, TReg

Aceste funcții sunt foarte utile atunci când se compară și se convertesc variabile șir. „Vreg()” va returna șirul original cu majuscule, „HReg()” cu litere mici, iar „TReg()” îl va formata astfel încât primul caracter al fiecărui cuvânt individual să fie scris cu majuscule, iar toate caracterele ulterioare să fie litere mici.

VReg("DIRECTOR GENERAL") // returnează valoarea - "DIRECTOR GENERAL"
HReg("DIRECTOR GENERAL") // returnează valoarea - "CEO"
TReg("DIRECTOR GENERAL") // returnează valoarea - "Director general"

StrReplace

Această funcție este analogă cu înlocuirea în editori de text. Vă permite să înlocuiți un caracter sau un set de caractere cu altul în variabile șir.

StrReplace("rosu, alb, galben", ",", ";") // returneaza "rosu; alb; galben"

StrNumberRows

Funcția vă permite să determinați numărul de linii separate printr-un întoarcere de cărucior într-o variabilă text.

Bucla din exemplul de mai jos va trece prin trei cercuri, deoarece funcția StrNumberRows va returna valoarea 3:

Pentru ind \u003d 1 după StrNumăr de linii ("Line1" + Symbols.PS + "String2" + Symbols.PS + "Line3") Bucla
<тело цикла>
EndCycle;

StrGetString

Această funcție funcționează cu textul cu mai multe linii în același mod ca și cea anterioară. Vă permite să obțineți un șir specific dintr-o variabilă text.

StrGetString(„Șir1” + Simboluri.PS + „Șir2” + Simboluri.PS + „Șir3”, 2) // returnează „Linia 2”

StrNumberOccurrences

Funcția numără numărul de apariții ale unui caracter sau subșir în șirul căutat.

StrNumberInstallations("a;b;c;d; ", ";") // funcția va returna numărul 4

Simbol și SymbolCode

Aceste funcții vă permit să obțineți un caracter prin codul său Unicode, precum și să determinați acest cod după caracterul însuși.

SymbolCode("A") // funcția va returna numărul 1 040
SymbolCode(1040) // funcția va returna „A”

Sarcini frecvente atunci când lucrați cu șiruri

Concatenarea șirurilor

Pentru a concatena mai multe șiruri de caractere (concatenare) trebuie doar să utilizați operatorul de adăugare.

„Linia 1” + „Linia 2” //rezultatul adăugării a două linii va fi „Linia 1 Linia 2”

Conversie de tip

Pentru a converti un tip într-un șir, de exemplu, o referință la un element de dicționar, un număr și așa mai departe, este suficient să folosiți funcția „String ()”. Funcții precum „ShortLP()” vor converti, de asemenea, variabilele într-un șir, dar imediat cu tăierea caracterelor nesemnificative.

String(1000) // va returna „1000”

Vă rugăm să rețineți că atunci când convertiți un număr într-un șir, programul a adăugat automat un spațiu care separă mie. Pentru a evita acest lucru, puteți utiliza următoarele structuri:

StrReplace(String(1000),Characters.NPP,"") // returnează "1000"

String(Format(1000,"CH=")) // va returna "1000"

Citate într-un șir

Destul de des va trebui să faceți față nevoii de a pune ghilimele într-o variabilă șir. Poate fi fie un text de cerere scris în configurator, fie doar o variabilă. Pentru a rezolva această problemă, trebuie doar să setați două ghilimele.

Antet = String("Horns and Hooves LLC suntem noi!") // returnează "Roga and Hooves LLC suntem noi!"

Multilinie, întrerupere de linie

Pentru a crea un text cu mai multe linii, este suficient să adăugați caractere de întrerupere de linie (Symbols.PS).

MultilineText = „Prima linie” + Caractere.PS + „A doua linie”

Cum să eliminați spațiile

Pentru a elimina spațiile din dreapta sau din stânga, puteți folosi funcția „Stretch()” (precum și „Scrpt()” și „ScreenP()”):

StringWithoutSpaces = ShortLP ("Multe litere") // funcția va returna valoarea "Multe litere"

Dacă, după convertirea unui număr într-un șir, trebuie să eliminați spațiile care nu se rup, utilizați următoarea construcție:

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

De asemenea, programatorii folosesc adesea următoarea construcție, care vă permite să eliminați sau să înlocuiți toate spațiile unei variabile text cu un alt caracter:

StringWithoutSpaces = StrReplace(" salut", " " ,"") // returnează "bună ziua"

Compararea șirurilor între ele

Puteți compara termenii cu semnul egal obișnuit. Comparația face distincție între majuscule și minuscule.

"hello" = "bună ziua" // va returna false
„Hello” = „Hello” // va returna True
„Hello” = „La revedere” // va returna False

String este unul dintre tipurile de date primitive din sistemele 1C:Enterprise 8. Variabile cu tip linia conţin text.

Tastați Valori variabile linia sunt cuprinse între ghilimele duble. Variabile multiple de acest tip poate fi pliat.

Per1 = „Cuvântul 1” ;
Per2 = „Cuvântul 2” ;
Per3 = Per1 + " " + Per2 ;

În cele din urmă Per3 va conta" Cuvântul 1 Cuvântul 2″.

În plus, sistemele 1C:Enterprise 8 oferă funcții pentru lucrul cu șiruri. Luați în considerare cele principale:

EnterString(<Строка>, <Подсказка>, <Длина>, <Многострочность>) — funcția este concepută pentru a afișa o casetă de dialog în care utilizatorul poate specifica valoarea unei variabile de tip Linia. Parametru <Строка> este obligatoriu și conține numele variabilei în care va fi scris șirul introdus. Parametru <Подсказка> opțional este titlul casetei de dialog. Parametru <Длина> opțional, indică lungimea maximă a șirului de intrare. Valoarea implicită este zero, ceea ce înseamnă lungime nelimitată. Parametru <Многострочность> opțional. Specifică modul de introducere a textului pe mai multe linii: Adevărat — introducerea textului pe mai multe linii cu separatoare de linii; False - Introduceți un șir simplu.

Se poate introduce un șir și, cunoscând codul caracterelor în Unicode:

Simbol(<КодСимвола>) — Codul este introdus ca număr.

Literă= Simbol(1103 ); // eu

De asemenea este si funcție inversă, care vă permite să aflați codul unui personaj.

CodSimbol(<Строка>, <НомерСимвола>) — Returnează numărul Unicode al caracterului specificat ca număr.

Funcții de conversie a majusculei textului:

VReg(<Строка>) - Convertește toate caracterele dintr-un șir în majuscule.

HReg(<Строка>) - Convertește toate caracterele dintr-un șir în minuscule.

TReg(<Строка>) - convertește toate caracterele șirului în majuscule pentru titlu. Adică, primele litere din toate cuvintele sunt convertite în majuscule, iar literele rămase sunt convertite în minuscule.

Funcții pentru căutarea și înlocuirea caracterelor dintr-un șir:

Găsi(<Строка>, <ПодстрокаПоиска>) - găsește numărul de caracter al apariției subșirului de căutare. De exemplu:

Găsiți („Șnur”, „ochi”); // patru

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) — găsește numărul de caracter al apariției subșirului de căutare, numărul apariției este specificat în parametrul corespunzător. În acest caz, căutarea începe de la caracterul, al cărui număr este specificat în parametru StartPosition. Căutarea este posibilă de la începutul sau de la sfârșitul șirului. De exemplu:

Număr4 intrare= StrFind( "Defensivitate", „o” , Direcția de căutare. În primul rând, 1, 4); // 7

StrInlocuire(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) Găsește toate aparițiile subșirului de căutare în șirul sursă și îl înlocuiește cu subșirul de înlocuire.

StrReplace("Șir", "ochi", "" ); // Pagina

Linie goală (<Строка>) - verifică șirul de caractere semnificative. Dacă nu există caractere semnificative sau nici un caracter, atunci valoarea este returnată. Adevărat. In caz contrar - Minciună.

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) – calculează numărul de apariții ale subșirului de căutare în șirul sursă.

StrNumberOccurrences ( „Studiați, studiați și studiați din nou”, "a studia" , "" ) ; // 3

StrTemplate(<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — înlocuiește parametrii în șir după număr. Șirul trebuie să conțină marcatori de substituție de forma: „%1..%N”. Numerotarea markerilor începe de la 1. Dacă valoarea parametrului Nedefinit, șirul gol este înlocuit.

StrPattern ( „Opțiunea 1 = %1, Opțiunea 2 = %2”, "1" , "2" ) ; // Parametrul 1= 1, Parametrul 2 = 2

Funcții de conversie a șirurilor de caractere:

Un leu(<Строка>, <ЧислоСимволов>) returnează primele caractere ale șirului.

Dreapta(<Строка>, <ЧислоСимволов>) - returnează ultimele caractere ale șirului.

Miercuri(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) - returnează un șir de lungime<ЧислоСимволов>, începând cu un personaj<НачальныйНомер>.

Abr(<Строка>) trunchiază caracterele nesemnificative la stânga primului caracter semnificativ din șir.

abreviat(<Строка>) — decupează caracterele nesemnificative din dreapta ultimului caracter semnificativ din șir.

Abbrl(<Строка>) - decupează caracterele nesemnificative din stânga primului caracter semnificativ din șir și din dreapta ultimului caracter semnificativ din șir.

StrGetString(<Строка>, <НомерСтроки>) – primește șirul unui șir cu mai multe linii după număr.

Alte caracteristici:

StrLength(<Строка>) - returnează numărul de caractere dintr-un șir.

StrNumăr de linii(<Строка>) - returnează numărul de rânduri dintr-un șir cu mai multe linii. O linie este considerată nouă dacă este separată de linia anterioară printr-un caracter newline.

StrCompare(<Строка1>, <Строка2> ) - compară două șiruri fără a ține seama de majuscule și minuscule. Funcția funcționează ca un obiect Compararea Valorilor. Se intoarce:

  • 1 - dacă prima linie este mai mare decât a doua
  • -1 - dacă a doua linie este mai mare decât prima
  • 0 - dacă șirurile sunt egale

StrCompare(„Primul rând” , „Al doilea rând” ); // unu

Caracteristicile de bază ale unui limbaj de programare includ de obicei lucrul cu numere și șiruri. De obicei, aceste caracteristici sunt conectate în codul compilatorului (sau sunt implementate clasele „de bază” ale limbajului de programare).

În 1C, capacitățile de lucru cu șiruri sunt programate chiar în platformă. Astăzi vom lua în considerare caracteristicile lucrului cu șiruri 1C în programele în limbajul 1C încorporat.

Valoarea liniei 1C

1. Să începem cu cel mai simplu. Crearea unei variabile și atribuirea unei valori constante a șirului acesteia arată astfel în 1C:

Variabilă = „Bună lume!”;

Dacă doriți să specificați un caracter de ghilimele într-o valoare constantă a șirului 1C, atunci trebuie să-l dublați „”

Variabilă = „Bună ziua, „lumea””!”;

2. Ruptura de linie 1C poate fi specificată în două moduri simultan. Primul folosește simbolul |

Variabilă = „Bună ziua,
| lume! ";

Al doilea folosește enumerarea sistemului Symbols. Vă permite să adăugați atât o întrerupere de linie 1C, cât și alte caractere care nu se imprimă, cum ar fi TAB.

Variabilă = „Bună” + Simboluri.ps + „pace!”;

3. Configurațiile în 1C pot fi dezvoltate nu numai pentru o limbă (rusă, engleză sau alta) - ci simultan pentru mai multe limbi. În acest caz, limba utilizată curent este selectată în partea de jos a ferestrei 1C.

Lista limbilor se află în fereastra de configurare din ramura General/Limbi. Fiecare limbă are un identificator scurt, cum ar fi ro sau ing.

Este clar că la programarea unei astfel de configurații, liniile 1C pot fi și multilingve. Pentru a face acest lucru, este posibil să creați o astfel de linie 1C specificând prin; opțiuni după codul de limbă:

Variabilă = "ru=""Bună ziua, lume!""; ro=""Bună ziua, lume! """;

Dacă utilizați linia 1C formată în acest fel ca de obicei, atunci va fi ceea ce este scris în ea. Pentru ca sistemul să îl împartă în două opțiuni și să o utilizeze pe cea dorită, trebuie să utilizați funcția NSt():

//corect pentru configurațiile bilingve
Raport(NStr(Variabilă));

Recuzită cu linie tip 1C

Cerința este un câmp din directorul/documentul 1C. Diferă de o variabilă dintr-un program în limbajul 1C prin faptul că tipul acesteia este indicat precis pentru atribut (număr, șir 1C etc.). Dacă trebuie să perfecționați ce sunt elementele de recuzită, consultați tutorialul de pe .

Dacă specificați tipul de atribut - linia 1C, atunci trebuie să specificați suplimentar parametrii.

Șirurile 1C au lungime nelimitată (indicată ca lungime = 0) și lungime limitată, indicând numărul exact de caractere. Șirurile 1C de lungime nelimitată sunt stocate într-un tabel SQL separat, astfel încât utilizarea lor este mai puțin productivă decât cele limitate.

De aceea, utilizarea șirurilor 1C de lungime nelimitată are limitările sale - nu este posibil să le folosiți peste tot. De exemplu, nu este posibil ca număr de document, cod de director, măsurare.

Lucrul cu linii 1C

Pentru a lucra cu șiruri, există mai multe funcții încorporate ale platformei 1C.

  • AbbrLP ("Incredibil, dar adevărat!")
    Îndepărtează de pe linia 1C spatii suplimentare. De asemenea, poate fi folosit pentru a converti orice tip într-un șir 1C (de exemplu, numere).
  • Variabilă = "Vasya" + Abbrl ("plus") + "Olya"; //va fi „Vasya plus Olya”
    Un exemplu de însumare a mai multor valori de șir 1C. Rezultatul este o linie 1C.
  • Variabilă = Leu ("Muzică", 2); // va fi "Mu"
    Variabilă = Avg(„Muzică”, 2, 2); // va fi "ps"
    Variabilă = Drepturi ("Muzică", 2); // va fi "ka"
    Diverse opțiuni pentru obținerea unui subșir dintr-un șir 1C.
  • Variabila = Find("Muzică", "ps"); //va fi 3
    Căutați un subșir în șirul 1C, începând cu caracterul 1.
  • Variabila = StrLength("Muzica"); //va fi 6
    Returnează numărul de caractere dintr-un șir 1C.
  • Notify("Bună") //în caseta de mesaj din partea de jos a ferestrei 1C
    alert(„bună ziua”) // dialog pop-up
    Stare(„Bună ziua”) //în linia de afișare a stării din stânga jos
    .

Aducerea obiectelor pe linia 1C

După cum știți, cel mai popular format pentru schimbul de informații structurate în prezent este XML. Chiar ultima versiune DOMNIȘOARĂ Office Wordși Excel salvează fișierele în acest format (docx și respectiv xlsx, schimbați extensia în zip, deschideți într-un arhivator).

Platforma 1C pentru schimbul de date oferă mai multe opțiuni, dintre care principala este și XML.

1. Cea mai simplă metodă este să folosiți funcția ShortLP() sau String(). Puteți utiliza funcția REPRESENTATION() în textul interogării. Rezultatul acțiunii lor este același - ei generează o reprezentare șir a oricărui obiect 1C pentru utilizator.

Pentru directorul implicit, acesta va fi numele acestuia. Pentru un document, numele documentului, numărul și data.

2. Orice obiect 1C (cu restricții) poate fi convertit în XML și invers. Procesul de conversie se numește serializare.

ViewStringXml = XMLString(Valoare); //obține XML de la valoarea 1C
Value1С = XMLValue(Type("CatalogReference.Nomenclature"),ViewStringXml); // obțineți valoarea 1C din șirul XML, trebuie să specificați tipul de 1C care ar trebui să fie primit

3. Există o modalitate nativă a platformei 1C de a converti orice obiect 1C într-un șir. A migrat de la versiunea 1C 7.7. Acest format nu este înțeles de alte programe, dar înțelege un alt 1C, ceea ce face ușor de utilizat pentru a face schimb între bazele de date 1C.

String = ValueInStringInt(Value1S); //obține șirul 1C din valoarea 1C
ValueToFile("C:\MyFile.txt", Value1C); //o altă opțiune, obținem un fișier cu un șir salvat din valoarea 1C
Value1C = ValueFromStringInt(String); //înapoi de la linia 1C
Value1C = ValueFromFile("C:\MyFile.txt"); //înapoi din fișier

Editarea liniilor 1C din formular

Pe lângă lucrul cu șiruri 1C într-un program 1C, desigur, aș dori ca utilizatorul să le poată edita. Există mai multe posibilități pentru aceasta:

1. Cel mai simplu mod este de a solicita intrarea liniei 1C la cerere. Această metodă este folosită atunci când predați programarea 1C, în viață este folosită mult mai rar (dar este folosit!).

Variabila = "";
String = EnterValue(Variabilă, „Introduceți numele complet”);

2. Pentru a afișa detaliile obiectului 1C (director/document) sau detaliile formularului (vezi), cel mai des este folosit câmpul de introducere. Acesta este cel mai comun instrument din 1C pentru ca utilizatorul să lucreze cu câmpuri de editare.

3. Posibilitățile câmpului de intrare pot fi extinse (vezi proprietățile câmpului de intrare, Click dreapta pe el, pentru mai multe detalii):

  • Casetă de selectare Modul de editare multilinie
  • Casetă de selectare Editare avansată (disponibilă dacă caseta de selectare anterioară este bifată)
  • Casetă de selectare Mod parolă (vezi ).

4. Dacă toate posibilitățile câmpului de introducere nu sunt suficiente pentru tine, există un editor încorporat. Pentru a-l adăuga în formular, trebuie să adăugați un câmp în meniul Formular / Inserare control document text. În proprietățile sale, puteți specifica modul de funcționare a acestuia - proprietatea Extensie.

Un câmp de document text nu poate fi legat direct la date. Este necesar să scrieți următoarea funcție în handlerul de evenimente al formularului OnOpening() (vezi ):

FormElements.ElementNameTextDocumentField.SetText(StringValue); //aici, ValueString este textul primit, de exemplu, de la atribut

Și în gestionarea de salvare - de exemplu, în butonul Salvare - adăugați o salvare:

ValueString = FormElements.ElementNameTextDocumentField.GetText(); //ValueString aici sunt elementele de recuzită în care salvăm valoarea

5. În versiunea 1C 8.2.11, în formulare gestionate, a apărut noua oportunitate reprezentare în linie 1C - Câmp document formatat.


Similar cu câmpul unui document text, este necesar să setați la deschidere și să scrieți atunci când salvați textul dvs. folosind programul.

  • În obiectul 1C, a cărui formă o facem (carte de referință, document, procesare etc.) - adăugați un atribut cu tipul Value Storage
  • În funcția OnReadOnServer(), setați textul din atribut

    //aici Requisite este atributul adăugat al obiectului 1C
    //aici FormattedDocument este numele câmpului din formularul de editare
    &Pe server

    FormattedDocument = CurrentObject.Attributes.Get();
    EndProcedure

  • În funcția BeforeWriteOnServer() sau apăsând butonul, scrieți textul din câmp

    &Pe server
    Procedura OnReadingOnServer(CurrentObject)
    CurrentObject.Attributes = NewValueStorage(FormattedDocument);
    EndProcedure



Se încarcă...
Top