1c жолда екінші ретті табу. Жолдармен жұмыс істеуге арналған жаңа функциялар

💖 Сізге ұнайды ма?Сілтемені достарыңызбен бөлісіңіз

8.3.6.1977 нұсқасында жүзеге асырылды.

Біз жолдармен жұмыс істеуге арналған функциялар жинағын кеңейттік. Біз мұны сізге жол деректерін талдауға арналған кеңейтілген құралдарды беру үшін жасадық. Жаңа функциялар мәтінді талдаудың технологиялық тапсырмаларында ыңғайлы және пайдалы болады. Пішімделген пішіндегі деректерді қамтитын мәтінді талдауға қатысты тапсырмаларда. Бұл жабдықтан алынған кейбір файлдарды талдау немесе, мысалы, технологиялық журналды талдау болуы мүмкін.

Бұрын жаңа функцияларды орындайтын барлық әрекеттерді орындауға болады. Кірістірілген тілде жазылған азды-көпті күрделі алгоритмдерді пайдалану. Сондықтан жаңа функциялар сізге ешқандай жаңа мүмкіндіктер бермейді. Дегенмен, олар кодтың көлемін азайтуға және кодты қарапайым және түсінікті етуге мүмкіндік береді. Сонымен қатар, олар әрекеттерді орындауды тездетуге мүмкіндік береді. Өйткені платформада іске асырылатын функциялар, әрине, кірістірілген тілде жазылған ұқсас алгоритмге қарағанда жылдамырақ жұмыс істейді.

StrTemplate() пішімдеу функциясы

Бұл функция параметрлерді жолға ауыстырады. Мұндай түрлендіру қажеттілігі, мысалы, ескерту хабарламаларын көрсету кезінде жиі туындайды. Бұл функцияның синтаксисі келесідей:

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

<Шаблон>- бұл параметр көрсетілімдерін ауыстыру қажет жол.

<Значение1> , ... <Значение10>- бұл параметрлер (ең көбі он), олардың көрсетілімдері жолға ауыстырылуы керек.

Үлгідегі ауыстыруды орындағыңыз келетін белгілі орынды көрсету үшін % 1, ... % 10 сияқты маркерлерді пайдалану керек. Үлгіге енгізілген маркерлер саны мен мәндері бар параметрлердің саны сәйкес болуы керек.

Мысалы, мұндай операторды орындау нәтижесі:

сызық болады:

2-жолдағы деректер қатесі (Күн түрі қажет)

StrCompare() жолдарымен жұмыс істеу функциясы

Бұл функция екі жолды регистрді сезбейтін жолмен салыстырады. Мысалы, келесідей:

Мәнді салыстыру нысанын пайдаланып, дәл сол әрекетті бұрын орындауға болады:

Дегенмен, жаңа мүмкіндікті пайдалану оңайырақ көрінеді. Бұған қоса, функция Құнды салыстыру нысанынан айырмашылығы жұқа клиентте де, веб-клиентте де жұмыс істейді.

StrStartsWith(), StrEndsAt() жолдарымен жұмыс істеу функциялары

Бұл функциялар жолдың көрсетілген ішкі жолдан басталатынын немесе жолдың көрсетілген ішкі жолмен аяқталатынын анықтайды. Бұл функциялардың алгоритмін ендірілген тілде жүзеге асыру қиын емес, бірақ олардың болуы таза және түсінікті код жазуға мүмкіндік береді. Және олар тезірек жұмыс істейді.

Мысалы, олар If операторында қолдануға ыңғайлы:

StrDivide(), StrConnect() жолдарымен жұмыс істеу функциялары

Бұл функциялар жолды белгіленген бөлгішті пайдаланып бөліктерге бөледі. Немесе керісінше, олар бірнеше жолды біреуіне біріктіріп, олардың арасына таңдалған бөлгішті кірістіреді. Олар журналдар мен технологиялық журналдарды құруға немесе талдауға ыңғайлы. Мысалы, технологиялық журнал жазбасын әрі қарай талдау үшін қолайлы бөліктерге оңай талдауға болады:

StrFind() жолдарымен жұмыс істеу функциясы

Ескі Find() функциясының орнына біз қосымша мүмкіндіктерге ие жаңа функцияны енгіздік:

  • Әртүрлі бағытта іздеу (басынан бастап, соңынан);
  • Белгіленген позициядан іздеу;
  • Көрсетілген саны бар оқиғаны іздеңіз (екінші, үшінші, т.б.).

Шын мәнінде, ол ескі функцияның мүмкіндіктерін қайталайды. Бұл ескі нұсқаларда құрастырылған модульдермен үйлесімділікті сақтау үшін жасалады. Ескі Find() функциясын енді пайдаланбау ұсынылады.

Төменде жаңа іздеу мүмкіндіктерін пайдаланатын мысал берілген. Кері іздеу URL мекенжайындағы толық файл атауы сияқты ресімделген жолдың соңғы бөлігі қажет болғанда пайдалы. Ал көрсетілген позициядан іздеу бүкіл жолда емес, белгілі фрагментте іздеу қажет болған жағдайда көмектеседі.

1С сұраныстарында жолдармен жұмыс істеу механизмдері аз. Біріншіден, жолдарды қосуға болады. Екіншіден, жолдан ішкі жолды алуға болады. Үшіншіден, жолдарды, соның ішінде үлгі бойынша салыстыруға болады. Жіптермен жасауға болатын нәрсенің бәрі осы шығар.

Жолды қосу

Сұраудағы жолдарды қосу үшін «+» операциясы қолданылады. Сіз тек шектеулі ұзындықтағы жолдарды қоса аласыз.

"Аты:" + Қарсы тараптар Сілтеме = &Сілтеме

Ішкі жол функциясы

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

Объектілік үлгідегі Environment() функциясының аналогы. Substring() функциясы жол деректеріне қолданылуы мүмкін және фрагментті таңдауға мүмкіндік береді <Строки> , таңба нөмірінен басталады <НачальнаяПозиция> (жолдағы таңбалар 1-ден бастап нөмірленеді) және ұзындығы <Длина> кейіпкерлер. Функцияны есептеу нәтижесі айнымалы ұзындықты жол түріне ие және ұзындығы шектеусіз болып саналады, егер <Строка> шектеусіз ұзындығы мен параметрі бар <Длина> тұрақты немесе 1024-тен үлкен емес.

Егер жолдың ұзындығы екінші параметрде көрсетілгеннен аз болса, онда функция бос жолды қайтарады.

Назар аударыңыз!Шексіз ұзындықтағы жолдарды шектеулі ұзындықтағы жолдарға түрлендіру үшін SUBSTRING() функциясын пайдалану ұсынылмайды. Оның орнына EXPRESS() трансляциялау операторын қолданған дұрыс.

Ұқсас функция

Егер жол төлсипаты белгілі бір критерийлерге сәйкес келетініне көз жеткізу қажет болса, біз оны салыстырамыз:

1-баған контрагенттерді ТАҢДАҢЫЗ.

Бірақ неғұрлым нәзік салыстыру қажет болса ше? Тек теңдік немесе теңсіздік емес, белгілі бір үлгіге ұқсастық? SIMILAR функциясы дәл осы үшін жасалған.

LIKE — жолды үлгіге ұқсастығын тексеруге арналған оператор. SQL тіліндегі LIKE аналогы.

SIMILAR операторы оның сол жағында көрсетілген өрнектің мәнін оң жағында көрсетілген үлгі жолымен салыстыруға мүмкіндік береді. Өрнектің мәні жол түрінде болуы керек. Өрнектің мәні үлгіге сәйкес келсе, оператордың нәтижесі ШЫН болады, әйтпесе ЖАЛҒАН болады.

Үлгі жолындағы келесі таңбалар қызметтік таңбалар болып табылады және жол таңбасынан басқа мағынаға ие:

  • % (пайыз): ерікті таңбалардың кез келген санын қамтитын реттілік;
  • _ (астын сызу): бір ерікті таңба;
  • […] (тік жақшадағы бір немесе бірнеше таңба): төртбұрышты жақшаның ішінде тізімделген кез келген бір таңба. Тізімде ауқымдар болуы мүмкін, мысалы, a-z, бұл ауқымға енгізілген ерікті таңбаны білдіреді, соның ішінде ауқымның соңы;
  • [^...] (төртбұрышты жақшадағы терістеу белгісі, одан кейін бір немесе бірнеше таңба): терістеу белгісінен кейін тізімделгендерден басқа кез келген жалғыз таңба.

Кез келген басқа таңба өзін білдіреді және ешқандай қосымша жүк көтермейді. Тізімдегі таңбалардың біреуін өзі ретінде жазу қажет болса, оның алдынан таңба болуы керек<Спецсимвол>. Өзім<Спецсимвол>(кез келген қолайлы таңба) кейін сол мәлімдемеде анықталады кілт сөзАРНАЙЫ СИМВОЛ.

Бәріне сәлем
Бүгін олар іске асыру құжатын басып шығару кезінде құжат префиксін көрсетпеуімді сұрады, мен мәселені келесідей шештім.

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

Мен синтаксистік көмекшіге қараған кезде оның маған ұнағаны сонша, мен бұл туралы жазғым келді 1С: Enterprise жүйесінде жолдармен жұмыс.

1C-дегі жол қарапайым деректер түріне жатады.

Егер сіз 1С анықтамасын қарасаңыз, біз String түрінің келесі сипаттамасын көреміз:
Мәндер осы түрдегіерікті ұзындықтағы Юникод жолын қамтиды.
Егер сіз жолдар туралы өз сөздеріңізді қолдансаңыз, ол жұмыс істейді. Жол – әр түрлі таңбалардан тұратын, әрқашан тырнақшалармен қоршалған тұрақты шама.

Сызық орнату
Сәлемдесу = «Сәлем жолаушы»;

Әдеттегі конфигурациялардағы көп жолдар көбінесе тік бөлгіш «|» арқылы жасалады:
Жол = «Көп жол
|жол
|жазу
|мәтін»;

Жолдағы тырнақша қос тырнақша арқылы белгіленеді.
Жол = ""Тырнақшадағы мәтін"";

Жолдарда көптеген амалдар бар (жолдың ішінен іздеу, біріншілерін анықтау, т.б.), Синтаксистік көмекшіге қараған дұрыс.
Синтаксистік көмекші - Кірістірілген тілдің жалпы сипаттамасы -> кірістірілген функциялар -> жолдармен жұмыс істеу функциялары.

Жолдармен жұмыс істеуге арналған функциялар

Мұнда мен жолдармен жұмыс істеу функцияларының қысқаша мазмұнын беремін:

VReg(<Строка>) — Функция жолдағы барлық таңбаларды бас әріпке түрлендіреді.

Таңба коды(<Строка>, <НомерСимвола>) – Функция жіберілген жолда орналасқан таңбаның кодын көрсетілген нөмірмен позицияда алады.

арыстан(<Строка>, <ЧислоСимволов>) – Функция жолдың бірінші сол жақ таңбаларын таңдайды.

табу(<Строка>, <ПодстрокаПоиска>) — Функция бастапқы жолда ішкі жол ретінде іздеу жолының пайда болуын табады.

NReg(<Строка>) — Функция жолдағы барлық таңбаларды кіші әріпке түрлендіреді.

Оң(<Строка>, <ЧислоСимволов>) Бұл функцияСол жақ функцияларынан жолдың оң жағындағы соңғы таңбаларды таңдайтындығымен ерекшеленеді.

EmptyString(<Строка>) — Функция маңызды таңбалардың бар-жоғын жолды тексереді.

Таңба(<КодСимвола>) — Функция таңба кодын таңбаны қамтитын жолға түрлендіреді.

AbbrL(<Строка>) — Функция жолдағы бірінші маңызды таңбаның сол жағындағы елеусіз таңбаларды кесіп тастайды.

AbbrLP(<Строка>) — Функция жолдағы бірінші маңызды таңбаның сол жағындағы маңызды емес таңбаларды және жолдағы соңғы маңызды таңбаның оң жағындағы бос орындарды кеседі.

аббревиатура(<Строка>) — Функция жолдағы соңғы маңызды таңбаның оң жағындағы елеусіз таңбаларды кесіп тастайды.

сәрсенбі(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) — Функция таңбадан бастап таңбалар жолын таңдайды<НачальныйНомер>, жалпы саны<ЧислоСимволов>.

StrLength(<Строка>) — Функция жолдағы таңбалар санын алады.

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) — Функция бастапқы жолдағы іздеу ішкі жолының барлық қайталануларын табады және оны ауыстыру ішкі жолымен ауыстырады.

StrGetString(<Строка>, <НомерСтроки>) - Функция сан бойынша көп жолды жолды алады.

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) — Функция бастапқы жолдағы іздеу ішкі жолының қайталану санын есептейді.

StrNumberRow(<Строка>) — Функция көп жолды жолдағы жолдардың санын санайды. Көп жолды жолда жолдар жаңа жолдармен бөлінеді.

TReg(<Строка>) — Функция жолды тақырып регистріне түрлендіреді. Бұл әрбір сөздің бірінші таңбасы тақырып регистріне немесе таңба үшін тақырып регистрі көрсетілмесе, бас әріпке түрленетінін білдіреді. Қалған таңбалар кіші әріпке түрлендіріледі.

Түрлендірулер түрі
Деректер түрлерін анық түрлендіру үшін түрлендіру жүріп жатқан деректер түрімен аттас функциялар бар: String(<Значение>)

StringFromNumbers = String(Number);

Барлық осы функциялар Синтаксистік көмекшіде егжей-тегжейлі сипатталған, мен мақалада синтаксистік көмекші жаңадан келген бағдарламашыға қалай көмектесетінін сипаттадым.

Жолдармен жұмыс істеу мысалдары

Санды жолға және кері түрлендіру.

Жылдың жол көрінісін алу үшін Пішім функциясын пайдаланыңыз.

Жыл = Формат(CurrentDate(), "DF=yyyy") // Жыл = "2012"

Топты бөлгіш таңбаны кірістірмей, санды жолға түрлендіру үшін ( үзілмейтін кеңістік), BH=0 параметрімен Формат функциясын қолдану керек:

Сан = 2012 Жол = Пішім(Сан, "NH=0" );

//Жол = «2012»

Жол Бос орындар жоқ.

Көзілдірік арқылы жазбалар

8.3.6.1977 нұсқасында жүзеге асырылды.

Біз жолдармен жұмыс істеуге арналған функциялар жинағын кеңейттік. Біз мұны сізге жол деректерін талдауға арналған кеңейтілген құралдарды беру үшін жасадық. Жаңа функциялар мәтінді талдаудың технологиялық тапсырмаларында ыңғайлы және пайдалы болады. Пішімделген пішіндегі деректерді қамтитын мәтінді талдауға қатысты тапсырмаларда. Бұл жабдықтан алынған кейбір файлдарды талдау немесе, мысалы, технологиялық журналды талдау болуы мүмкін.

Бұрын жаңа функцияларды орындайтын барлық әрекеттерді орындауға болады. Кірістірілген тілде жазылған азды-көпті күрделі алгоритмдерді пайдалану. Сондықтан жаңа функциялар сізге ешқандай жаңа мүмкіндіктер бермейді. Дегенмен, олар кодтың көлемін азайтуға және кодты қарапайым және түсінікті етуге мүмкіндік береді. Сонымен қатар, олар әрекеттерді орындауды тездетуге мүмкіндік береді. Өйткені платформада іске асырылатын функциялар, әрине, кірістірілген тілде жазылған ұқсас алгоритмге қарағанда жылдамырақ жұмыс істейді.

StrTemplate() пішімдеу функциясы

Бұл функция параметрлерді жолға ауыстырады. Мұндай түрлендіру қажеттілігі, мысалы, ескерту хабарламаларын көрсету кезінде жиі туындайды. Бұл функцияның синтаксисі келесідей:

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

<Шаблон>- бұл параметр көрсетілімдерін ауыстыру қажет жол.

<Значение1> , ... <Значение10>- бұл параметрлер (ең көбі он), олардың көрсетілімдері жолға ауыстырылуы керек.

Үлгідегі ауыстыруды орындағыңыз келетін белгілі орынды көрсету үшін % 1, ... % 10 сияқты маркерлерді пайдалану керек. Үлгіге енгізілген маркерлер саны мен мәндері бар параметрлердің саны сәйкес болуы керек.

Мысалы, мұндай операторды орындау нәтижесі:

сызық болады:

2-жолдағы деректер қатесі (Күн түрі қажет)

StrCompare() жолдарымен жұмыс істеу функциясы

Бұл функция екі жолды регистрді сезбейтін жолмен салыстырады. Мысалы, келесідей:

18.08.2014 Жолдармен жұмыс істеуге арналған жаңа функциялар Нысанды пайдаланып, дәл сол әрекетті бұрын орындауға болады:

Құндылықтарды салыстыру Нысанды пайдаланып, дәл сол әрекетті бұрын орындауға боладыДегенмен, жаңа мүмкіндікті пайдалану оңайырақ көрінеді. Бұдан басқа, объектке қарағанда функция

StrStartsWith(), StrEndsAt() жолдарымен жұмыс істеу функциялары

Бұл функциялар жолдың көрсетілген ішкі жолдан басталатынын немесе жолдың көрсетілген ішкі жолмен аяқталатынын анықтайды. Бұл функциялардың алгоритмін ендірілген тілде жүзеге асыру қиын емес, бірақ олардың болуы таза және түсінікті код жазуға мүмкіндік береді. Және олар тезірек жұмыс істейді.

, жұқа клиентте де, веб-клиентте де жұмыс істейді. Мысалы, оларды операторда пайдалану ыңғайлы:

StrDivide(), StrConnect() жолдарымен жұмыс істеу функциялары

Бұл функциялар жолды белгіленген бөлгішті пайдаланып бөліктерге бөледі. Немесе керісінше, олар бірнеше жолды біреуіне біріктіріп, олардың арасына таңдалған бөлгішті кірістіреді. Олар журналдар мен технологиялық журналдарды құруға немесе талдауға ыңғайлы. Мысалы, технологиялық журнал жазбасын әрі қарай талдау үшін қолайлы бөліктерге оңай талдауға болады:

StrFind() жолдарымен жұмыс істеу функциясы

Егер Ескі функцияның орнынатабу()

  • Әртүрлі бағытта іздеу (басынан бастап, соңынан);
  • Белгіленген позициядан іздеу;
  • Көрсетілген саны бар оқиғаны іздеңіз (екінші, үшінші, т.б.).

Біз қосымша мүмкіндіктерге ие жаңа функцияны енгіздік: Ескі функцияның орнынаШын мәнінде, ол ескі функцияның мүмкіндіктерін қайталайды. Бұл ескі нұсқаларда құрастырылған модульдермен үйлесімділікті сақтау үшін жасалады. Ескі функция

Төменде жаңа іздеу мүмкіндіктерін пайдаланатын мысал берілген. Кері іздеу URL мекенжайындағы толық файл атауы сияқты ресімделген жолдың соңғы бөлігі қажет болғанда пайдалы. Ал көрсетілген позициядан іздеу бүкіл жолда емес, белгілі фрагментте іздеу қажет болған жағдайда көмектеседі.

Қайта қолданбау ұсынылады.

Бағдарламалау тілінің негізгі мүмкіндіктері әдетте сандармен және жолдармен жұмыс істеуді қамтиды. Әдетте, бұл мүмкіндіктер компилятор кодына қатты кодталған (немесе бағдарламалау тілінің «негізгі» сыныптары жүзеге асырылады).

1С тілінде жолдармен жұмыс істеу мүмкіндігі платформаның өзінде бағдарламаланған. Бүгін біз ендірілген 1С тіліндегі бағдарламаларда 1С жолдарымен жұмыс істеу ерекшеліктерін қарастырамыз.

Жолдың мәні 1С

1. Ең қарапайымынан бастайық. Айнымалыны жасау және оған тұрақты жол мәнін тағайындау 1С-те келесідей көрінеді:

Айнымалы = «Сәлем, әлем!»;

Егер 1С жолының тұрақты мәнінде тырнақша таңбасын көрсету қажет болса, оны екі есе көбейту керек «»

Айнымалы = "Сәлем, әлем"!;

2. 1С жол үзілісін бірден екі жолмен көрсетуге болады. Біріншісі | белгісін пайдалану
Айнымалы = «Сәлеметсіз бе,

Екіншісі - Symbols жүйесінің санауын пайдалану. Ол 1С жол үзілімдерін және TAB сияқты басып шығарылмайтын басқа таңбаларды қосуға мүмкіндік береді.

Айнымалы = "Сәлем" + Таңбалар.PS + "бейбітшілік!";

3. 1С-тегі конфигурацияларды тек бір тіл (орыс, ағылшын немесе басқа) үшін ғана емес, сонымен қатар бірнеше тіл үшін де жасауға болады. Бұл жағдайда 1С терезесінің төменгі жағында қазіргі уақытта қолданылатын тіл таңдалады.

Тілдер тізімі Жалпы/Тілдер бөліміндегі конфигурация терезесінде орналасқан. Әр тілдің қысқа идентификаторы болады, мысалы ruнемесе қазақ.

Мұндай конфигурацияны бағдарламалау кезінде 1С желілері де көптілді болуы мүмкін екені анық. Ол үшін арқылы көрсету арқылы осындай 1С жолын құруға болады; тіл идентификаторы бойынша опциялар:

Айнымалы = "ru=""Сәлем, әлем! ""; en=""Сәлем, әлем! """;

Егер сіз әдеттегідей осылай қалыптасқан 1С жолын қолдансаңыз, онда ол онда жазылған болады. Жүйе оны екі опцияға бөліп, қалағанын пайдалану үшін НStr() функциясын пайдалану керек:

//екі тілді конфигурациялар үшін дұрыс
Есеп(NStr(Айнымалы));

1С типті сызығы бар реквизиттер

Атрибут 1С каталогындағы/құжатындағы өріс болып табылады. Оның 1С тіліндегі бағдарламадағы айнымалыдан ерекшелігі атрибут үшін оның түрі нақты көрсетілген (сан, 1С жолы және т.б.). Егер сізге тіреуіш не екенін есте сақтау қажет болса, сабақты қараңыз.

Егер сіз атрибут түрін көрсетсеңіз - 1С жолы, онда сіз қосымша параметрлерді көрсетуіңіз керек.

1С жолдары шектеусіз ұзындықта (ұзындық = 0 ретінде көрсетілген) және таңбалардың нақты санын көрсететін шектеулі ұзындықта келеді. Шексіз ұзындықтағы 1С жолдары жеке SQL кестесінде сақталады, сондықтан оларды пайдалану шектеуліге қарағанда өнімділігі төмен.

Сондықтан шектеусіз ұзындықтағы 1С жолдарын пайдаланудың шектеулері бар - оларды барлық жерде пайдалану мүмкін емес. Мысалы, құжат нөмірі, анықтамалық код немесе өлшем ретінде рұқсат етілмейді.

1С жолдарымен жұмыс

Жолдармен жұмыс істеуге арналған 1С платформасының бірнеше кіріктірілген функциялары бар.

  • AbbrLP («Таңғажайып, бірақ шын!»)
    1С жолынан алып тастайды қосымша бос орындар. Кез келген түрлерді 1С жолына түрлендіру үшін де пайдалануға болады (мысалы, сандар).
  • Айнымалы = "Вася" + AbbrLP("плюс") + "Оля"; //"Вася плюс Оля" болады
    Бірнеше 1С жолының мәндерін қосу мысалы. Нәтиже бір жол 1С болады.
  • Айнымалы = Lev("Музыка", 2); //"Му" болады
    Айнымалы = Орта («Музыка», 2, 2); //"қауіп" болады
    Айнымалы = Құқықтар («Музыка», 2); //"ка" болады
    1С жолынан ішкі жолды алудың әртүрлі нұсқалары.
  • Айнымалы = Find («Музыка», «zy»); //3 болады
    1С жолында 1 таңбадан бастап ішкі жолды іздеңіз.
  • Айнымалы = StrLength («Музыка»); //6 болады
    1С жолындағы таңбалар санын қайтарады.
  • Есеп («Сәлеметсіз бе») //1С терезесінің төменгі жағындағы хабарлама терезесінде
    Ескерту("Сәлеметсіз бе") //қалқымалы диалогтық терезе
    Status("Hello") //төменгі сол жақтағы күйді көрсету жолында
    .

Объектілерді 1С жолына келтіру

Өздеріңіз білетіндей, қазіргі уақытта құрылымдық ақпарат алмасудың ең танымал форматы XML болып табылады. Тіпті соңғы нұсқасыХАНЫМ Office Wordжәне Excel файлдарды осы пішімде сақтайды (docx және xlsx тиісінше кеңейтімді zip форматына өзгертеді, мұрағатта ашылады).

Деректер алмасуға арналған 1С платформасы бірнеше опцияларды ұсынады, олардың негізгісі де XML болып табылады.

1. Ең қарапайым әдіс - Abbreviation() немесе String() функциясын пайдалану. Сұрау мәтінінде REPRESENTATION() функциясын пайдалануға болады. Олардың әрекетінің нәтижесі бірдей – олар пайдаланушы үшін кез келген 1С объектісінің жолдық көрінісін жасайды.

Әдепкі бойынша каталог үшін бұл оның аты болады. Құжат үшін – құжаттың аты, нөмірі және күні.

2. Кез келген 1С объектісін (шектеулері бар) XML-ге және керісінше түрлендіруге болады. Түрлендіру процесі сериялау деп аталады.

StringViewXml = XMLString(Мән); //1С мәнінен XML алыңыз
Value1C = XMLValue(Type("DirectoryLink.Nomenclature"), TypeStringXml); //XML жолынан 1С мәнін алу, қабылданатын 1С түрін көрсету керек

3. Бар өз жолы 1С платформасы кез келген 1С нысанын жолға түрлендіреді. Ол 1С 7.7 нұсқасынан көшірілді. Бұл форматты басқа бағдарламалар түсінбейді, бірақ басқа 1С оны түсінеді, бұл оны 1С дерекқорлары арасында алмасу үшін пайдалануды жеңілдетеді.

Жол = ValueInRowInt(Value1C); //1С мәнінен 1С жолын алу
ValueVFile("C:\MyFile.txt", Value1C); //басқа опция, біз 1С мәнінен сақталған жолы бар файлды аламыз
Value1C = ValueFromStringInt(String); //1С жолынан кері
Value1C = ValueFile("C:\MyFile.txt"); //файлдан кері

Формада 1С жолдарын өңдеу

1С тіліндегі бағдарламада 1С жолдарымен жұмыс істеуден басқа, мен әрине пайдаланушының оларды өңдей алатынын қалаймын. Бұл үшін бірнеше мүмкіндіктер бар:

1. Ең оңай жолы - сұраныс бойынша 1С желісін енгізуді сұрау. Бұл әдіс 1С бағдарламалауды оқытуда қолданылады; өмірде ол әлдеқайда аз қолданылады (бірақ ол қолданылады!).

Айнымалы = "";
Жол = EnterValue(Айнымалы, «Толық атын енгізіңіз»);

2. 1С объектісінің мәліметтерін (каталог/құжат) немесе пішін мәліметтерін (қараңыз) көрсету үшін көбінесе енгізу өрісі қолданылады. Бұл пайдаланушының өңдеу өрістерімен жұмыс істеуі үшін 1С-те ең көп таралған құрал.

3. Енгізу өрісінің мүмкіндіктерін кеңейтуге болады (енгізу өрісінің қасиеттерін қараңыз, оны тінтуірдің оң жақ түймешігімен басыңыз, толығырақ):

  • Көп жолды өңдеу режимі құсбелгісін қойыңыз
  • Кеңейтілген өңдеу құсбелгісі (алдыңғы құсбелгі қойылған жағдайда қолжетімді)
  • Құпия сөз режимі (қараңыз).

4. Енгізу өрісінің барлық мүмкіндіктері сізге жеткіліксіз болса, кірістірілген редактор бар. Оны пішінге қосу үшін Пішін/Кірістіру басқару мәзіріне Өрісті қосу керек мәтіндік құжат. Оның қасиеттерінде оның жұмыс режимін – Extension сипатын көрсетуге болады.

Мәтіндік құжат өрісін деректермен тікелей байланыстыруға болмайды. Пішіннің OnOpen() оқиға өңдегішінде функция жазу қажет (қараңыз):

Form Elements.ElementNameTextDocumentField.SetText(StringValue); //мұнда ValueString – мысалы, төлсипаттан алынған мәтін

Ал сақтау өңдегішінде - мысалы, Сақтау түймешігінде - сақтауды қосыңыз:

ValueString = FormElements.ElementNameTextDocumentField.GetText(); //Мән Мұндағы жол – мәнді сақтайтын төлсипат

5. 1С 8.2.11 нұсқасында басқарылатын пішіндерде болды жаңа мүмкіндік 1С желісін көрсету – Пішімделген құжат өрісі.


Мәтіндік құжаттың өрісіне ұқсас, оны ашқан кезде орнату керек және оны бағдарламаның көмегімен өзіңіз сақтаған кезде жазып алуыңыз керек.

  • Пішіні біз жасап жатқан 1С нысанында (каталог, құжат, өңдеу және т.б.) - Құнды сақтау түрі бар атрибут қосыңыз
  • OnReadOnServer() функциясында атрибуттан мәтінді орнатамыз

    //мұнда Атрибут 1С объектісінің қосылған атрибуты болып табылады
    //мұнда FormattedDocument - өңдеуге арналған пішіндегі өрістің атауы
    &OnServer

    FormattedDocument = CurrentObject.Attributes.Get();
    Процедураның соңы

  • BeforeWritingOnServer() функциясында немесе түймені пайдалану арқылы біз мәтінді өрістен жазамыз

    &OnServer
    ReadingOnServer(CurrentObject) кезіндегі процедура
    CurrentObject.Props = NewValueStorage(FormattedDocument);
    Процедураның соңы

Достарға айт