1C აღრიცხვის ბოლო ჩანაწერის პოვნის ფუნქცია. ტექსტის ქეისის კონვერტაციის ფუნქციები

1C 8.3-ში რიგები ჩაშენებულ 1C ენაში არის პრიმიტიული ტიპის მნიშვნელობები. ხაზი. ამ ტიპის მნიშვნელობები შეიცავს თვითნებური სიგრძის Unicode სტრიქონს. სტრიქონის ტიპის ცვლადები წარმოადგენს ბრჭყალებში ჩასმული სიმბოლოების ერთობლიობას.

მაგალითი 1. შევქმნათ სტრიქონის ცვლადი ტექსტით.

StringVariable = "გამარჯობა სამყარო!";

სტრიქონებთან მუშაობის ფუნქციები 1-ში 8.3

ამ განყოფილებაში მოცემულია ძირითადი ფუნქციები, რომლებიც საშუალებას გაძლევთ შეცვალოთ ხაზები 1c-ში, ან გააანალიზოთ მათში შემავალი ინფორმაცია.

სიძლიერის სიგრძე

სიძლიერის სიგრძე (<Строка>) . აბრუნებს პარამეტრად გადაცემულ სტრიქონში შემავალი სიმბოლოების რაოდენობას.

მაგალითი 2. მოდით დავთვალოთ სიმბოლოების რაოდენობა სტრიქონში "Hello World!"

სტრიქონი = "გამარჯობა სამყარო!"; სიმბოლოების რაოდენობა = StrLength(სტრიქონი); ანგარიში (ნომერი სიმბოლოები);

ამ კოდის შესრულების შედეგი იქნება სიმბოლოების რაოდენობის ჩვენება ხაზში: 11.

AbbrL

AbbrL(<Строка>) . წყვეტს არამნიშვნელოვან სიმბოლოებს სტრიქონის პირველი მნიშვნელოვანი სიმბოლოს მარცხნივ.
მცირე პერსონაჟები:

  • სივრცე;
  • არამტვრევადი სივრცე;
  • ცხრილების შედგენა;
  • ვაგონის დაბრუნება;
  • ხაზის კვება;
  • ფორმის (გვერდის) თარგმანი.

მაგალითი 3. წაშალეთ ყველა სივრცე სტრიქონის მარცხენა მხრიდან "მსოფლიო!" და დაამატეთ მას ხაზი "გამარჯობა".

სტრიქონი = აბრევიატურა ("მსოფლიო!"); String = "გამარჯობა"+სტრიქონი; ანგარიში (სტრიქონი);

ამ კოდის შესრულების შედეგი იქნება სტრიქონის "Hello World!" ჩვენება ეკრანზე.

შემოკლებით

Abbr(<Строка>) . წყვეტს არამნიშვნელოვან სიმბოლოებს სტრიქონის პირველი მნიშვნელოვანი სიმბოლოს მარჯვნივ.

მაგალითი 4. ჩამოაყალიბეთ სტრიქონებიდან "გამარჯობა" და "მშვიდობა!" ფრაზა "გამარჯობა სამყარო!"

Line = Abbreviation("Hello")+" "+ Abbreviation(" world!"); ანგარიში (სტრიქონი);

AbbrLP

AbbrLP(<Строка>) . წყვეტს არამნიშვნელოვან სიმბოლოებს სტრიქონის პირველი მნიშვნელოვანი სიმბოლოს მარჯვნივ და ასევე წყვეტს არამნიშვნელოვან სიმბოლოებს სტრიქონის პირველი მნიშვნელოვანი სიმბოლოს მარცხნივ. ეს ფუნქცია უფრო ხშირად გამოიყენება, ვიდრე წინა ორი, რადგან ის უფრო უნივერსალურია.

მაგალითი 5. ამოიღეთ უმნიშვნელო სიმბოლოები მარცხნივ და მარჯვნივ კონტრაგენტის სახელზე.

Counterparty = Directories.Find By Details("TIN", "0777121211"); AccountObject = Account.GetObject(); CounterpartyObject.Name = AbbrLP(CounterpartyObject.Name); AccountObject.Write();

ლომი

ლომი (<Строка>, <ЧислоСимволов>) . იღებს სტრიქონის პირველ სიმბოლოებს, სიმბოლოების რაოდენობა მითითებულია პარამეტრში პერსონაჟების რაოდენობა.

მაგალითი 6. შეუშვით სტრუქტურაში თანამშრომელიშეიცავს თანამშრომლის სახელს, გვარს და გვარს. მიიღეთ სტრიქონი გვარით და ინიციალებით.

NameInitial = Lev(Employee.Name, 1); პატრონიმი საწყისი = ლომი(დასაქმებული. პატრონიმი, 1); FullName = Employee.LastName + " " + FirstName Initial + "."

+ შუა საწყისი + ".";

უფლება<Строка>, <ЧислоСимволов>) მარჯვენა ( პერსონაჟების რაოდენობა.. იღებს სტრიქონის ბოლო სიმბოლოებს, პარამეტრში მითითებულ სიმბოლოთა რაოდენობას

თუ სიმბოლოების მითითებული რაოდენობა აღემატება სტრიქონის სიგრძეს, მაშინ მთელი სტრიქონი ბრუნდება. მაგალითი 7. დაე, თარიღი ფორმატში „yyyymmdd“ დაიწეროს სტრიქონის ცვლადის ბოლოს, მიიღეთ სტრიქონი თარიღთან და გადააკეთეთ ის ტიპად..

თარიღი

String = "მიმდინარე თარიღი: 20170910"; StringDate = უფლებები (სტრიქონი, 8); თარიღი = თარიღი (StringDate);

ოთხშაბათი<Строка>, <НачальныйНомер>, <ЧислоСимволов>) ოთხშაბათი ( ხაზი. იღებს ქვესტრინგს პარამეტრად გადაცემული სტრიქონიდან , დაწყებული სიმბოლოდან, რომლის ნომერიც მითითებულია პარამეტრშისაწყისი ნომერი პერსონაჟების რაოდენობა.და სიგრძე გადავიდა პარამეტრში , დაწყებული სიმბოლოდან, რომლის ნომერიც მითითებულია პარამეტრშიხაზში სიმბოლოების ნუმერაცია იწყება 1-დან. თუ პარამეტრში მითითებულია ნულზე ნაკლები ან ტოლი მნიშვნელობა, მაშინ პარამეტრი იღებს მნიშვნელობას 1. თუ პარამეტრიპერსონაჟების რაოდენობა

არ არის მითითებული, შემდეგ არჩეულია სიმბოლოები ხაზის ბოლომდე.

მაგალითი 8. მეცხრე პოზიციიდან დაწყებული სიმებიანი ცვლადი შეიცავდეს რეგიონის კოდს, უნდა მიიღოთ და ჩაწეროთ ცალკე სტრიქონში.

String = "რეგიონი: 99 მოსკოვი"; რეგიონი = საშუალო (სტრიქონი, 9, 2);

გვერდის ძებნა<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) StrFind (

  • ხაზი. ეძებს მითითებულ ქვესტრინგს სტრიქონში, აბრუნებს ნაპოვნი ქვესტრიქონის პირველი სიმბოლოს პოზიციის ნომერს. მოდით შევხედოთ ამ ფუნქციის პარამეტრებს:
  • . წყაროს სტრიქონი;ქვესტრინგის ძიება
  • . საძიებო ქვესტრიქონი;ძიების მიმართულება
    • . განსაზღვრავს მიმართულებას სტრიქონში ქვესტრიქონის მოსაძებნად. შეუძლია მიიღოს მნიშვნელობები:;
    • ძიება მიმართულებით. დასაწყისიდან;
  • ძიება.დასრულების მიმართულებასაწყისი პოზიცია
  • . განსაზღვრავს პოზიციას სტრიქონში, საიდანაც იწყება ძიება; NumberOccurrences

. განსაზღვრავს მოძიებული ქვესტრიქონის კლების რიცხვს წყაროს სტრიქონში.

მაგალითი 9. სტრიქონში "გამარჯობა სამყარო!" განსაზღვრეთ "და" სიმბოლოს ბოლო გაჩენის პოზიცია.

PositionNumber = StrFind("Hello World!", "and", SearchDirection.End); ანგარიში (პოზიციის ნომერი);

ამ კოდის შესრულების შედეგი იქნება "და" სიმბოლოს ბოლო გაჩენის რიცხვის ჩვენება: 9.

ვრეგ<Строка>) VReg(

. გარდაქმნის ყველა სიმბოლოს მითითებულ სტრიქონში 1s8-ში დიდ ასოებად.

მაგალითი 10: გადააკეთეთ სტრიქონი "hello world!" ზემოდან.

StringVreg = VReg ("გამარჯობა სამყარო!"); ანგარიში (StringVreg);

ამ კოდის შესრულების შედეგი იქნება ხაზის "HELLO WORLD!" ჩვენება.

ნრეგ<Строка>) NReg(

მაგალითი 11: გადააკეთეთ სტრიქონი "HELLO WORLD!" მცირე ასოებით.

StringNreg = NReg ("HELLO WORLD!"); ანგარიში (StringVreg);

ამ კოდის შესრულების შედეგი იქნება ხაზის ჩვენება "გამარჯობა სამყარო!"

ტრეგ

Treg(<Строка>) . გარდაქმნის სტრიქონს შემდეგნაირად: თითოეული სიტყვის პირველი სიმბოლო გარდაიქმნება დიდ რეგისტრში, სიტყვის დარჩენილი სიმბოლოები გარდაიქმნება მცირე რეგისტრში.

მაგალითი 12: დაწერეთ სიტყვების პირველი ასოები სტრიქონში "გამარჯობა სამყარო!"

StringTreg = Treg ("გამარჯობა სამყარო!"); ანგარიში (StringTreg);

ამ კოდის შესრულების შედეგი იქნება ხაზის "Hello World!" ჩვენება.

სიმბოლო

სიმბოლო (<КодСимвола>) . იღებს სიმბოლოს მისი Unicod კოდით.

მაგალითი 13. დაამატეთ მარცხნივ და მარჯვნივ ხაზს "Hello World!" სიმბოლო ★

StringWithStars = Symbol("9733")+"Hello World!"+Symbol("9733"); ანგარიში (StringWithStars);

ამ კოდის შესრულების შედეგი იქნება ხაზის ჩვენება "★Hello World!★"

სიმბოლო კოდი

სიმბოლური კოდი (<Строка>, <НомерСимвола>) . იღებს უნიკოდის სიმბოლოს კოდს პირველ პარამეტრში მითითებული სტრიქონიდან, რომელიც მდებარეობს მეორე პარამეტრში მითითებულ პოზიციაზე.

მაგალითი 14. გაიგეთ ბოლო სიმბოლოს კოდი სტრიქონში "Hello World!"

სტრიქონი = "გამარჯობა სამყარო!"; CharacterCode = CharacterCode(String, StrLength(String)); შეატყობინე (სიმბოლო კოდი);

ამ კოდის შესრულების შედეგი იქნება სიმბოლოს კოდის ჩვენება "!" - 33.

EmptyString

EmptyString (<Строка>) . ამოწმებს, შედგება თუ არა სტრიქონი მხოლოდ უმნიშვნელო სიმბოლოებისგან, ანუ ცარიელია თუ არა.

მაგალითი 15. შეამოწმეთ არის თუ არა სამი სივრცისგან შემდგარი სტრიქონი ცარიელი.

Empty = EmptyString(" "); ანგარიში (ცარიელი);

ამ კოდის შესრულების შედეგი იქნება სიტყვის „დიახ“ ჩვენება (ლოგიკური მნიშვნელობის სტრიქონი მართალია).

გვერდის ჩანაცვლება

StrReplace (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . პოულობს საძიებო ქვესტრიქონის ყველა შემთხვევას წყაროს სტრიქონში და ანაცვლებს მას შემცვლელი ქვესტრიქონით.

მაგალითი 16. სტრიქონში "Hello World!" შეცვალეთ სიტყვა "მშვიდობა" სიტყვით "მეგობრები".

String = StrReplace("Hello World!", "World", "Friends"); ანგარიში (სტრიქონი);

ამ კოდის შესრულების შედეგი იქნება ხაზის ჩვენება "გამარჯობა მეგობრებო!"

StrNumberLines

StrNumberRow(<Строка>) . საშუალებას გაძლევთ დათვალოთ ხაზების რაოდენობა მრავალხაზოვანი სტრიქონში. 1s 8-ში ახალ ხაზზე გადასასვლელად გამოიყენეთ სიმბოლო PS(ახალი ხაზის სიმბოლო).

მაგალითი 17. განსაზღვრეთ ტექსტში სტრიქონების რაოდენობა:
"პირველი ხაზი
მეორე ხაზი
მესამე ხაზი"

Number = StrNumberString("პირველი ხაზი"+სიმბოლოები.PS +"მეორე ხაზი"+Symbols.PS +"მესამე ხაზი"); ანგარიში (ნომერი);

ამ კოდის შესრულების შედეგი იქნება ტექსტში ხაზების რაოდენობის ჩვენება: 3

StrGetString

StrGetString (<Строка>, <НомерСтроки>) . იღებს ხაზს მრავალსტრიქონულ სტრიქონში თავისი რიცხვით. ხაზის ნუმერაცია იწყება 1-დან.

მაგალითი 18. მიიღეთ ბოლო სტრიქონი ტექსტში:
"პირველი ხაზი
მეორე ხაზი
მესამე ხაზი"

ტექსტი = "პირველი ხაზი" + სიმბოლოები PS + "მეორე სტრიქონი" + "მესამე ხაზი". LastRow = StrGetRow(ტექსტი, StrNumberLines(ტექსტი)); ანგარიში (LastLine);

ამ კოდის შესრულების შედეგი იქნება ხაზის "მესამე ხაზის" ჩვენება.

PageNumberOccurrences

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) . აბრუნებს სტრიქონში მითითებული ქვესტრინგის შემთხვევების რაოდენობას. ფუნქცია რეგისტრირებულია.

მაგალითი 19. დაადგინეთ რამდენჯერ გამოჩნდება ასო „c“ სტრიქონში „ხაზები 1s 8.3-ში და 8.2-ში“, განურჩევლად მისი რეგისტრისა.

Line = "ხაზები 1s 8.3 და 8.2"; NumberOccurrences = StrNumberOccurrences(Vreg(String), "C"); ანგარიში (NumberOccurrences);

ამ კოდის შესრულების შედეგი იქნება შემთხვევების რაოდენობის ჩვენება: 2.

Page StartsWith

StrStartsWith(<Строка>, <СтрокаПоиска>) . ამოწმებს, იწყება თუ არა პირველ პარამეტრში გადაცემული სტრიქონი მეორე პარამეტრის სტრიქონით.

მაგალითი 20. დაადგინეთ, იწყება თუ არა არჩეული კონტრაგენტის TIN რიცხვი 1-ით. შეუშვით ცვლადი კონტრაპარტიული კონტრაგენტები.

TIN = Counterparty.TIN; StartsUNits = StrStartsWith(TIN, "1"); თუ იწყება ერთეულებით შემდეგ //თქვენი კოდი EndIf;

PageEndsOn

StrendsWith(<Строка>, <СтрокаПоиска>) . ამოწმებს, მთავრდება თუ არა პირველ პარამეტრში გადაცემული სტრიქონი მეორე პარამეტრის სტრიქონით.

მაგალითი 21. დაადგინეთ, მთავრდება თუ არა არჩეული კონტრაგენტის TIN რიცხვი 2-ით. შეიტანეთ ცვლადი კონტრაპარტიულიდირექტორიაში ელემენტის მითითება ინახება კონტრაგენტები.

TIN = Counterparty.TIN; EndsWithTwo = StrEndsWith(TIN, "2"); If EndsInTwo მაშინ //თქვენი კოდი EndIf;

PageSplit

StrDivide (<Строка>, <Разделитель>, <ВключатьПустые>) . ყოფს სტრიქონს ნაწილებად განსაზღვრული გამიჯვნის სიმბოლოების გამოყენებით და მიღებულ სტრიქონებს წერს მასივში. პირველი პარამეტრი ინახავს წყაროს სტრიქონს, მეორე შეიცავს სტრიქონს, რომელიც შეიცავს გამყოფს, მესამე მიუთითებს, უნდა ჩაიწეროს თუ არა ცარიელი სტრიქონები მასივში (ნაგულისხმევად მართალია).

მაგალითი 22. მივიღოთ რიცხვების შემცველი სტრიქონი, რომლებიც გამოყოფილია სიმბოლოთი „;“, სტრიქონიდან მივიღოთ რიცხვების მასივი.

სტრიქონი = "1; 2; 3"; Array = StrDivide(String, ";"); For Count = 0 By Array.Quantity() - 1 Cycle Attempt Array[Count] = Number(AbbrLP(Array[Count]));

გამონაკლისი მასივი[Sch] = 0;

EndAttemptsEndCycle;

შესრულების შედეგად მიიღება მასივი 1-დან 3-მდე რიცხვებით.<Строки>, <Разделитель>) PageConnect

მაგალითი 23. წინა მაგალითის რიცხვების მასივის გამოყენებით მიიღეთ ორიგინალური სტრიქონი.

Account = 0 By Array.Quantity() - 1 Cycle Array[Act] = String(Array[Act]); საბოლოო ციკლი; Row = StrConnect(Array, "; ");

ამ სტატიაში მე გეტყვით 1C Enterprise 8-ის სწრაფი ძიების ფუნქციის შესახებ. რა არის სწრაფი ძებნა?ძალიან მარტივი. სწრაფი ძებნა არის 1C ჩანაწერების დიდი სიების ნავიგაციის ერთ-ერთი გზა. ეს შეიძლება იყოს დოკუმენტების, დირექტორიების, რეგისტრების სიები - ყველაფერი, რაც მოცემულია ცხრილებში.

რა არის სწრაფი ძებნა?

1C Enterprise დოკუმენტებში სწრაფი ძიების ფუნქცია ძალზე მოსახერხებელია და საშუალებას გაძლევთ არ გადაახვიოთ უზარმაზარი რაოდენობით მონაცემები (მაგალითად, გადახვევის ზოლის გამოყენებით), არამედ დაუყოვნებლივ გადახვიდეთ სიაში სასურველ ადგილზე. სამწუხაროდ, 1C Enterprise 8-ის ახალბედა მომხმარებლები (მათ შორის 1C Accounting 8) თავდაპირველად არ იყენებენ სწრაფი ძიების შესაძლებლობებს, ურჩევნიათ ხელით გადაახვიონ დოკუმენტების სიებში (და ეს შეიძლება იყოს ძალიანდიდი). ეს სტატია დაგეხმარებათ გაიგოთ სწრაფი ძიების გამოყენება 1C-ში.

უპირველეს ყოვლისა, უნდა აღინიშნოს, რომ მართულ ფორმებზე აგებულ 1C Enterprise 8 კონფიგურაციაში, სწრაფი ძებნა განსხვავებულად მუშაობს, ვიდრე 1C-ის წინა ვერსიებში. ამიტომ, ჩვენ ცალკე გავაანალიზებთ სწრაფი ძიების გამოყენებას მართულ და ჩვეულებრივ ფორმებში.

სწრაფი ძებნა 1C ბუღალტერიაში 8.2

1C Accounting-ის ვერსიებში 8.0-დან 8.2-მდეეს ფუნქცია განკუთვნილია სპეციალურად გარდამავალისიის სასურველ ნაწილამდე. მაგალითად, შეხედეთ ანგარიშების სქემას, რომელიც ნაჩვენებია ფიგურაში.


ფანჯარაში ხაზგასმულია გარკვეული ხაზი. ყურადღება მიაქციეთ ზოლების დახვეწილ სამკუთხედს, რომელიც მითითებულია წითელი ისრით. როგორც Windows-ის სხვა პროგრამებში, სადაც არის სიები (მაგალითად, Explorer-ში), ამ მარკერის (სამკუთხედის) პოზიცია განსაზღვრავს სიის მთლიანობაში დახარისხებას - რომელ სვეტშია მოთავსებული მარკერი, მთელი სია დალაგდება ამ სვეტის მიხედვით.ნახატზე მარკერი არის კოდის სვეტში, შესაბამისად ანგარიშთა სქემაში ანგარიშები დალაგდება კოდის მიხედვით.

მარკერის გადატანა შესაძლებელია ერთი სვეტიდან მეორეზე სასურველ სვეტზე დაწკაპუნებით ( სვეტზე HEADING!) მაუსით. თუ მარკერი უკვე არის მიმდინარე სვეტში, მაშინ დაწკაპუნება შეცვლის დახარისხების მიმართულებას საპირისპიროდ (ანუ დიდიდან პატარაზე ან პირიქით).

ეს არის სტანდარტული ქცევა ნებისმიერი Windows პროგრამისთვის. რა არის ამ მარკერის თავისებურება 1C Enterprise-ში და როგორ უკავშირდება ის სწრაფ ძიებას?ამ შემთხვევაში, ანგარიშთა სქემაში სწრაფი ძიება განხორციელდება კოდის სვეტის გამოყენებით.

იყო სტატიის მნიშვნელოვანი ნაწილი, მაგრამ JavaScript-ის გარეშე ის არ ჩანს!

როგორ გამოვიყენოთ სწრაფი ძებნა 1C-ში?მარტივად! უბრალოდ დაიწყეთ აკრიფეთ ის, რისი პოვნაც გსურთ ამ სვეტში, ე.ი. სადაც არის მარკერი. ზემოთ მოცემულ სურათზე მოცემულ მაგალითში, თქვენ უნდა შეიყვანოთ ანგარიშის ნომერი. მაგალითად, გსურთ იპოვოთ ანგარიში 50 Cash. ამ შემთხვევაში, შეიყვანეთ ( არ არის საჭირო სადმე დაწკაპუნება!) ნომერი 50 კლავიატურიდან და თუ ამ სვეტში არის ამ ნომრის ანგარიში (და, რა თქმა უნდა, არის ერთი), მაშინ სია გადავა ამ სტრიქონზე და თავად ხაზი იქნება მონიშნული. შედეგი ნაჩვენებია ქვემოთ მოცემულ ანგარიშთა სქემაში.

საიტი_

ტექსტი, რომელზეც ისარი მიუთითებს, არის არ არის საჭირო შემდეგ დაბანა- თავისით გაქრება.

ზემოთ მოყვანილ მაგალითში, თუ დაიწყებთ სიტყვის „მოლარეს“ აკრეფას, ფანჯრის ბოლოში ტექსტი შეიტანება და შემდეგ წაიშლება. ეს იმიტომ ხდება, რომ როგორც კი დაწყებაშეყვანილი სწრაფი ძიების სტრიქონი აღარ ემთხვევა ამ სვეტის მინიმუმ ერთი ხაზის დასაწყისს, 1C Enterprise ასკვნის, რომ მოძიებული სტრიქონი ვერ მოიძებნა და ავტომატურად წაშლის მას. ამის გამო ორი წესია დასამახსოვრებელი.

1C Enterprise 8-ში სწრაფი ძიება ხორციელდება ხაზის დასაწყისში, ე.ი. სვეტში იძებნება შეყვანილი ტექსტის შესაბამისობა ამ სვეტის ერთ-ერთი სტრიქონის დასაწყისთან.
ეს იწვევს მნიშვნელოვან რეკომენდაციას: მონაცემთა დირექტორიაში შეყვანისას დაასახელეთ ელემენტები ისე, რომ მათი მოხერხებულად პოვნა სწრაფი ძიების გამოყენებით. მაგალითად, უმჯობესია კონტრაგენტის სახელი დაწეროთ, როგორც "Firm Name LLC", ვიდრე "Firm Name LLC". და კიდევ უფრო მეტიც, თქვენ არ უნდა გამოიყენოთ ციტატები და სხვა არასაჭირო სიმბოლოები სახელში (საუბარია სახელის ველის შევსებაზე ფორმებში).

თუ დაიწყებთ ტექსტის აკრეფას და ის წაიშლება, რასაც ეძებთ ამ სვეტში არ არის!ამ შემთხვევაში, შეამოწმეთ შეყვანის ენა, ასევე სვეტი, რომელშიც შესრულებულია სწრაფი ძებნა. ტიპიური შეცდომა ის არის, რომ არასწორი სვეტი არჩეულია. მაგალითად, მარკერი დაყენებულია კოდის სვეტში, ხოლო ძიება ხორციელდება ანგარიშის სახელით.

სწრაფი ძიება 1C ბუღალტერიაში 8.3

ახლა ვნახოთ, რამდენად განსხვავდება სწრაფი ძებნა 1C Enterprise 8.3 ვერსიაში. გამოყენება ძირითადად 8.2 ვერსიის მსგავსია, მაგრამ დასამახსოვრებელი ერთი მნიშვნელოვანი განსხვავებაა.

1C Accounting 8.3-ში, ისევე როგორც ნებისმიერ სხვა კონფიგურაციაში მართულ ფორმებზე (იგივე ახალი ინტერფეისი), ის მუშაობს როგორც ფილტრი. მარტივად რომ ვთქვათ, სწრაფი ძიების ფუნქციის შედეგად, სიის ნაწილი.

ახლა ჩვენ გავარკვევთ, თუ როგორ გამოვიყენოთ ეს. პირველ რიგში, შეხედეთ ქვემოთ მოცემულ 1C Accounting 8.3 ანგარიშების ფანჯრის ეკრანის სურათს.

საიტი_

როგორც ხედავთ, იგივე მარკერი არის ერთ-ერთ სვეტში. ძიება ასევე ხორციელდება იმ სვეტში, რომელშიც დაყენებულია მარკერი. ეს ყველაფერი უცვლელი რჩება. თუმცა, თუ დაიწყებთ ტექსტის შეყვანას (მაგალითად, ანგარიშის ნომერი), მოხდება შემდეგი.

საიტი_

როგორც ხედავთ, საძიებო ფანჯარა უბრალოდ ავტომატურად იხსნება. ზუსტად იგივე ფანჯარა გაიხსნება, თუ დააწკაპუნებთ ძიების ღილაკზე ფანჯრის ხელსაწყოთა პანელზე (ხაზგასმულია სურათზე). შედეგად, როდესაც დააწკაპუნებთ Find ღილაკს საძიებო ფანჯარაში (სურათზე დამალული ჩამოსაშლელი მენიუს უკან) ან უბრალოდ Enter-ს, მიიღებთ შემდეგ შედეგს.

საიტი_

აქედან ირკვევა, რომ 1C Accounting 8.3-ში სწრაფი ძიება უბრალოდ ხილულს ტოვებს სიის იმ ნაწილს, რომელიც აკმაყოფილებს საძიებო პირობებს.ამ შემთხვევაში, Find ღილაკი ქრება და მის ნაცვლად ჩნდება ჯვრის მქონე ობიექტივი (ხაზგასმულია ნახატზე), დაწკაპუნებისას სია უბრუნდება თავდაპირველ მდგომარეობას (სწრაფი ძიების შედეგად აღმოჩენილი ხაზი რჩება გამოკვეთილი).

სწრაფი ძიების კიდევ ერთი მნიშვნელოვანი ფუნქცია 1C ბუღალტერიაში 8.3- შესატყვისი არ მოიძებნება სტრიქონის დასაწყისში, როგორც 8.2 ვერსიაში, მაგრამ იძებნება შესატყვისი სვეტის ხაზების რომელიმე ნაწილთან შესატყვისად. ამრიგად, თუ თქვენ დაასახელებთ კონტრაგენტს "Firm Name LLC" და ძებნისას დაიწყებთ "Firm Name LLC" შეყვანას, მაშინ ხაზი მაინც მოიძებნება!

დასკვნების გამოტანა

ამრიგად, 1C Accounting 8.2-ში და უფრო ადრეულ ვერსიებში სწრაფი ძიება გამიზნულია სიის სასურველ ხაზზე გადახვევისთვის, ხოლო 1C Accounting 8.3-ში სწრაფი ძებნა მუშაობს ჩვეულებრივი ფილტრის მსგავსად, იმალება სიის ნაწილი, რომელიც არ გჭირდებათ.

მთავარი შენიშვნები სათვალე შუშიდან

02/07/2013 ძიება სტრიქონით

განხორციელებული ვერსია 8.3.3.641.

ჩვენ სერიოზულად გავაუმჯობესეთ ხაზის შეყვანა. ამისათვის ჩვენ მოგვიწია ახალი მძლავრი საძიებო მექანიზმის დანერგვა შეყვანის ველში. ახლა მას შეუძლია სწრაფად იმუშაოს მონაცემთა ბაზაში შემავალ მილიონობით ჩანაწერში.

ჩვენ გავაანალიზეთ საძიებო ამოცანები, რომლებიც წარმოიქმნება მომხმარებლებისთვის. ჩვენ ჩავატარეთ პლატფორმაზე არსებული მექანიზმების „აუდიტი“, რომლებიც იყენებენ სხვადასხვა საძიებო ალგორითმს. შედეგად, ხაზის შეყვანამ შეიძინა სრულიად ახალი შესაძლებლობები.

ახლა მომხმარებლებს შეუძლიათ მოძებნონ სათაურის ნებისმიერ ადგილას, არა მხოლოდ ხაზის დასაწყისში. მათ შეუძლიათ გამოიყენონ სრული ტექსტის ძებნა და ძიების შესრულებაც კი ფონური სამუშაოს გამოყენებით. იმის უზრუნველსაყოფად, რომ სრული ტექსტის ძიება ეფექტურად მუშაობს სტრიქონ-სტრიქონში შეყვანისთვის, ჩვენ კიდევ უფრო გავაუმჯობესეთ საძიებო სისტემა და გავაუმჯობესეთ მისი შესრულება.

ჩვენ შევაგროვეთ ყველა ახალი თვისება, რომელიც საშუალებას გაძლევთ დააკონფიგურიროთ შეყვანა ხაზების მიხედვით კონფიგურაციის ობიექტის რედაქტირების ფანჯრის ცალკეულ ჩანართზე:

მაგალითად, შეგიძლიათ მიუთითოთ, რომ ძიება განხორციელდება სტრიქონის ნებისმიერ ადგილას და არა მხოლოდ დასაწყისში:

შემდეგ მომხმარებელს შეუძლია აკრიფოს სიტყვების ნებისმიერი ფრაგმენტი და არა მხოლოდ ის სიმბოლოები, რომლებითაც იწყება მოძიებული სტრიქონი:

ხაზში შესვლისას სრული ტექსტის ძიების გამოყენება გააქტიურებულია ცალკეული თვისებით:

სრული ტექსტის ძიების გამოყენებით, მომხმარებლებს შეუძლიათ სწრაფად იპოვონ შესაბამისი მონაცემები დიდი მოცულობის მონაცემებს შორის, ნებისმიერი სიტყვის გამოყენებით, რომელიც შეიცავს, მაგალითად, სახელში:

მათ ასევე შეუძლიათ მოძებნონ რამდენიმე ცნობილი სიტყვის გამოყენებით. დაუმთავრებელი სიტყვები ავტომატურად შეივსება შესაძლო კომბინაციებით:

თუ მონაცემთა რაოდენობა დიდია, მაშინ ორივე შემთხვევაში შეგიძლიათ მიუთითოთ, რომ ძიება უნდა განხორციელდეს ფონური სამუშაოს გამოყენებით:

შემდეგ, შეყვანის ველის გვერდით, მომხმარებლებისთვის გამოჩნდება ანიმაციური სურათი, სურათის მსგავსი, რომელიც ნაჩვენებია ანგარიშის ფონზე გაშვებისას:

  • თუ ობიექტი, რომელიც გამოიყენება შეყვანის ველში მოსალოდნელია, რომ არ შეიცავდეს დიდი რაოდენობით მონაცემებს, მაშინ ჩვენ გირჩევთ ჩართოთ სტრიქონების ძიება სადმე;
  • თუ ობიექტში დაგეგმილია დიდი რაოდენობით მონაცემები, მაშინ:
    • ჩვენ გირჩევთ ჩართოთ სრული ტექსტი და ფონის ძიება;
    • ამავდროულად, თქვენ ასევე შეგიძლიათ გამოიყენოთ სიმებიანი ძებნა ნებისმიერ ადგილას, მაგრამ ფონურ ძიებასთან ერთად და სასურველია სრული ტექსტის ძიებასთან ერთად; ისე, რომ ძიებების უმეტესობა ხორციელდება სრული ტექსტის ძიების საშუალებით.

თქვენ შეგიძლიათ, საჭიროების შემთხვევაში, ხელახლა განსაზღვროთ ყველა ჩამოთვლილი თვისება აპლიკაციის გადაწყვეტის შესრულებისას.

კლიენტზე - კლიენტის შეყვანის ველში მოვლენის დამმუშავებლები ავტომატური შერჩევა და EndInputText :

სერვერზე - ობიექტის მენეჯერის მოდულში, რომლის მონაცემებიც იძებნება. ღონისძიების დამმუშავებელში ProcessingReceiveSelectionData :

ბუნებრივია, ამ ადგილას, სერვერზე, თქვენ არ შეგიძლიათ უარყოთ ძიების პროცესი "პირდაპირ" ან "ფონური სამუშაო" . რადგან კოდის შესრულება უკვე გადატანილია სერვერზე.

გამარჯობა ყველას
დღეს მთხოვეს, განხორციელების დოკუმენტის დაბეჭდვისას დოკუმენტის პრეფიქსი არ გამომეჩინა, პრობლემა შემდეგნაირად მოვაგვარე.

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

როცა სინტაქსის ასისტენტს შევხედე, იმდენად მომეწონა, რომ მინდოდა დამეწერა სტრინგებთან მუშაობა 1C: Enterprise-ში.

სტრიქონი 1C-ში მიუთითებს მონაცემთა პრიმიტიულ ტიპზე.

თუ გადავხედავთ 1C დახმარებას, ჩვენ ვნახავთ String ტიპის შემდეგ აღწერას:
ამ ტიპის მნიშვნელობები შეიცავს თვითნებური სიგრძის Unicode სტრიქონს.
თუ იყენებთ საკუთარ სიტყვებს სიმების შესახებ, ის იმუშავებს. სტრიქონი არის მუდმივი, რომელიც შედგება სხვადასხვა სიმბოლოებისგან, ყოველთვის გარშემორტყმული ციტატებით.

ხაზის დაყენება
სალამი = "გამარჯობა მგზავრო";

მრავალხაზოვანი ხაზები ტიპიურ კონფიგურაციებში ყველაზე ხშირად იქმნება ვერტიკალური გამყოფის "|" გამოყენებით:
სტრიქონი = "მრავალხაზოვანი
|სტრიქონი
|ჩაწერა
|ტექსტი“;

ციტატა სტრიქონში მითითებულია ორმაგი ბრჭყალებით.
String = ""ტექსტი ბრჭყალებში"";

სტრიქონებზე ბევრი ოპერაციაა (სტრიქონის შიგნით ძებნა, პირველის დადგენა და ა.შ.), ჯობია სინტაქსის ასისტენტს გადახედოთ.
სინტაქსის დამხმარე - ჩაშენებული ენის ზოგადი აღწერა -> ჩაშენებული ფუნქციები -> სტრიქონებთან მუშაობის ფუნქციები.

სტრინგებთან მუშაობის ფუნქციები

აქ მოცემულია სტრინგებთან მუშაობის ფუნქციების მოკლე მიმოხილვა:

ვრეგ<Строка>) — ფუნქცია გარდაქმნის სტრიქონში არსებულ ყველა სიმბოლოს ზევით.

სიმბოლური კოდი (<Строка>, <НомерСимвола>) – ფუნქცია იღებს სიმბოლოს კოდს, რომელიც მდებარეობს გადაცემულ სტრიქონში მითითებული ნომრის პოზიციაზე.

ლომი (<Строка>, <ЧислоСимволов>) – ფუნქცია ირჩევს სტრიქონის პირველ მარცხენა სიმბოლოებს.

იპოვე(<Строка>, <ПодстрокаПоиска>) — ფუნქცია პოულობს საძიებო სტრიქონის გამოჩენას, როგორც ქვესტრიქონი წყაროს სტრიქონში.

ნრეგ<Строка>) — ფუნქცია გარდაქმნის სტრიქონში არსებულ ყველა სიმბოლოს პატარებად.

უფლება<Строка>, <ЧислоСимволов>) – ეს ფუნქცია განსხვავდება მარცხენა ფუნქციებისგან იმით, რომ ირჩევს ბოლო სიმბოლოებს სტრიქონის მარჯვნივ.

EmptyString (<Строка>) — ფუნქცია ამოწმებს სტრიქონს მნიშვნელოვანი სიმბოლოების არსებობისთვის.

სიმბოლო (<КодСимвола>) — ფუნქცია გარდაქმნის სიმბოლოს კოდს სიმბოლოს შემცველ სტრიქონში.

AbbrL(<Строка>) — ფუნქცია წყვეტს სტრიქონში პირველი მნიშვნელოვანი სიმბოლოს მარცხნივ უმნიშვნელო სიმბოლოებს.

AbbrLP(<Строка>) — ფუნქცია წყვეტს არამნიშვნელოვან სიმბოლოებს სტრიქონში პირველი მნიშვნელოვანი სიმბოლოს მარცხნივ და სტრიქონის ბოლო მნიშვნელოვანი სიმბოლოს მარჯვნივ.

Abbr(<Строка>) — ფუნქცია წყვეტს უმნიშვნელო სიმბოლოებს სტრიქონის ბოლო მნიშვნელოვანი სიმბოლოს მარჯვნივ.

ოთხშაბათი<Строка>, <НачальныйНомер>, <ЧислоСимволов>) — ფუნქცია ირჩევს სიმბოლოების სტრიქონს, სიმბოლოდან დაწყებული<НачальныйНомер>, საერთო რაოდენობა<ЧислоСимволов>.

სიძლიერის სიგრძე (<Строка>) — ფუნქცია იღებს ხაზში სიმბოლოების რაოდენობას.

StrReplace (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) — ფუნქცია პოულობს საძიებო ქვესტრიქონის ყველა შემთხვევას წყაროს სტრიქონში და ანაცვლებს მას შემცვლელი ქვესტრიქონით.

StrGetString (<Строка>, <НомерСтроки>) - ფუნქცია იღებს მრავალხაზოვან სტრიქონს რიცხვის მიხედვით.

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) — ფუნქცია ითვლის წყაროს სტრიქონში საძიებო ქვესტრიქონის შემთხვევების რაოდენობას.

StrNumberRow(<Строка>) — ფუნქცია ითვლის ხაზების რაოდენობას მრავალხაზოვანი სტრიქონში. მრავალხაზოვანი სტრიქონში ხაზები გამოყოფილია ახალი ხაზებით.

Treg(<Строка>) — ფუნქცია გარდაქმნის სტრიქონს სათაურში. ეს ნიშნავს, რომ ყოველი სიტყვის პირველი სიმბოლო გარდაიქმნება სათაურის რეგისტრის ან ზედ, თუ სათაურის ასო არ არის მითითებული სიმბოლოსთვის. დარჩენილი სიმბოლოები გარდაიქმნება მცირე რეესტრში.

ტიპის კონვერტაციები
მონაცემთა ტიპების აშკარა კონვერტაციისთვის, არსებობს ამავე სახელწოდების ფუნქციები მონაცემთა ტიპთან, რომლითაც ხდება კონვერტაცია: String(<Значение>)

StringFromNumbers = String(Number);

ყველა ეს ფუნქცია დეტალურად არის აღწერილი სინტაქსის ასისტენტში.

სიმებიანი მუშაობის მაგალითები

რიცხვის სტრიქონად გადაქცევა და უკან.

წლის სიმებიანი გამოსახულების მისაღებად გამოიყენეთ ფორმატის ფუნქცია.

წელი = ფორმატი(მიმდინარე თარიღი(), "DF=yyyy") // წელი = "2012"

რიცხვის სტრიქონად გადასაყვანად ჯგუფის გამყოფი სიმბოლოს ჩასმის გარეშე (უწყვეტი სივრცე), თქვენ უნდა გამოიყენოთ ფორმატის ფუნქცია NG=0 პარამეტრით:

Number = 2012 Line = Format(Number, "NH=0" );

//String = "2012"

სტრიქონი სივრცეების გარეშე.

1C შეკითხვებში სტრინგებთან მუშაობის რამდენიმე მექანიზმი არსებობს. პირველ რიგში, ხაზების დამატება შეიძლება. მეორეც, შეგიძლიათ აიღოთ ქვესტრიქონი სტრიქონიდან. მესამე, სტრიქონების შედარება შესაძლებელია, მათ შორის ნიმუშის მიხედვით. ეს არის ალბათ ყველაფერი, რაც შეიძლება გაკეთდეს სიმებით.

სიმებიანი დამატება

მოთხოვნაში რიგების დასამატებლად გამოიყენება "+" ოპერაცია. თქვენ შეგიძლიათ დაამატოთ მხოლოდ შეზღუდული სიგრძის სტრიქონები.

აირჩიეთ "სახელი:"

ქვესტრიქონის ფუნქცია<Строка>, <НачальнаяПозиция>, <Длина>)

SUBSTRING( <Строки> Environment() ფუნქციის ანალოგი ობიექტის მოდელიდან. Substring() ფუნქცია შეიძლება გამოყენებულ იქნას სტრიქონების მონაცემებზე და საშუალებას გაძლევთ აირჩიოთ ფრაგმენტი <НачальнаяПозиция> , დაწყებული სიმბოლოს ნომრით <Длина> (სტრიქონის სიმბოლოები დანომრილია 1-დან) და სიგრძე <Строка> პერსონაჟები. ფუნქციის გამოთვლის შედეგს აქვს ცვლადი სიგრძის სტრიქონის ტიპი და სიგრძე ჩაითვლება შეუზღუდავად, თუ <Длина> აქვს შეუზღუდავი სიგრძე და პარამეტრი

არ არის მუდმივი ან 1024-ზე მეტი.

თუ სტრიქონის სიგრძე ნაკლებია, ვიდრე მითითებულია მეორე პარამეტრში, მაშინ ფუნქცია დააბრუნებს ცარიელ სტრიქონს.ყურადღება!

SUBSTRING() ფუნქციის გამოყენება შეუზღუდავი სიგრძის სტრიქონების შეზღუდული სიგრძის სტრიქონებში გადასაყვანად არ არის რეკომენდებული. ამის ნაცვლად, უმჯობესია გამოიყენოთ cast ოპერატორი EXPRESS().

ფუნქცია მსგავსი

თუ ჩვენ უნდა დავრწმუნდეთ, რომ სიმებიანი ატრიბუტი აკმაყოფილებს გარკვეულ კრიტერიუმებს, ჩვენ ვადარებთ მას:

SELECT Counterparties დასახელება AS სვეტი 1 FROM Counterparties AS Counterparties.

მაგრამ რა მოხდება, თუ უფრო დახვეწილი შედარება გჭირდებათ? არა მხოლოდ თანასწორობა ან უთანასწორობა, არამედ გარკვეული ნიმუშის მსგავსება? ზუსტად ამისთვის შეიქმნა SIMILAR ფუნქცია.

SIMILAR ოპერატორი საშუალებას გაძლევთ შეადაროთ მის მარცხნივ მითითებული გამოხატვის მნიშვნელობა მარჯვნივ მითითებულ შაბლონის სტრიქონთან. გამოხატვის მნიშვნელობა უნდა იყოს string ტიპის. თუ გამოხატვის მნიშვნელობა ემთხვევა შაბლონს, ოპერატორის შედეგი იქნება TRUE, წინააღმდეგ შემთხვევაში იქნება FALSE.

შაბლონის სტრიქონში შემდეგი სიმბოლოები არის სერვისის სიმბოლოები და აქვთ სტრიქონის სიმბოლოსგან განსხვავებული მნიშვნელობა:

  • % (პროცენტი): თანმიმდევრობა, რომელიც შეიცავს ნებისმიერი რაოდენობის თვითნებურ სიმბოლოებს;
  • _ (ხაზგასმით): ერთი თვითნებური სიმბოლო;
  • [...] (ერთი ან მეტი სიმბოლო კვადრატულ ფრჩხილებში): ნებისმიერი სიმბოლო, რომელიც ჩამოთვლილია კვადრატულ ფრჩხილებში. ჩამოთვლა შეიძლება შეიცავდეს დიაპაზონებს, მაგალითად a-z, რაც ნიშნავს თვითნებურ სიმბოლოს, რომელიც შედის დიაპაზონში, დიაპაზონის ბოლოების ჩათვლით;
  • [^...] (კვადრატულ ფრჩხილებში უარყოფის ნიშანი, რომელსაც მოჰყვება ერთი ან მეტი სიმბოლო): ნებისმიერი ცალკეული სიმბოლო, გარდა იმ სიმბოლოებისა, რომლებიც ჩამოთვლილია უარყოფის ნიშნის შემდეგ.

ნებისმიერი სხვა სიმბოლო ნიშნავს თავის თავს და არ ატარებს რაიმე დამატებით დატვირთვას. თუ ჩამოთვლილთაგან ერთ-ერთი სიმბოლო უნდა დაიწეროს როგორც თავად, მაშინ მას წინ უნდა უძღოდეს<Спецсимвол>. მე თვითონ<Спецсимвол>(ნებისმიერი შესაფერისი სიმბოლო) განისაზღვრება იმავე განცხადებაში SPECIAL CHARACTER საკვანძო სიტყვის შემდეგ.