Substring() функцын онцлог. Хүсэлт дэх substring() функц 1c string функцийг гүйцэтгэх онцлог


Сайн байцгаана уу, блог сайтын эрхэм уншигчид! Өнөөдөр жишээнүүдийн тусламжтайгаар бид 1С асуулгын функцийг практикт хэрхэн ашиглах талаар авч үзэх болно SUBSTRING. Энэ функцийг ашиглах нь зөвхөн бидний энд авч үзэх энгийн асуулгад төдийгүй асуулга, асуулгад ч хэрэгтэй.

Даалгавар бол баримт бичгийн нарийн ширийн зүйлээс шаардлагатай зүйл байв Дагаж мөрдөххоёр мөрийг сонгоод тэдгээрийн дагуу эрэмбэлэх. Энэ төрлийн дансанд нийцсэн байдал: 779000/004599. Энэ утгыг яаж хоёр хуваах вэ?

SUBSTRING функц нь гурван параметртэй. Эхнийх нь тэмдэгтүүдийн нэг хэсгийг задлахыг хүссэн эх мөр - дэд мөр юм. Энэ параметрийн утгын төрөл нь тодорхой байна Шугам. Анхаарна уу, энэ бол маш чухал тэмдэглэл бөгөөд хэрэв та мөрөөс өөр анхны параметрийн төрлийг ашиглавал функц ажиллахгүй, хүсэлт нь алдаа гаргах болно! Хоёрдахь параметр нь мөрийн хэсгийг сонгох эхлэлийн тэмдэгтийн байрлалыг тодорхойлох ба гурав дахь нь сонгосон дэд мөрийн урт юм. Хоёр ба гурав дахь параметрийн утгын төрөл нь тоо юм.

Дасгал руугаа явцгаая:

Typical.Recorder AS Нэр сонгох, SUBSTRING(Ердийн.Бүртгэгч.Нэр, 1, 6) AS Зардлын данс, SUBSTRING(Ердийн.Бүртгэгч.Нэр., 8, 11) Хэлтэс, ТҮГНИЙГ(САР ХЭЗЭЭ СОНГОХ(Ердийн.Хугацаа) = 3 ТЭГВЭЛ ИЛЭРХИЙЛ(Ердийн. Дүн. ДУГААР(15, 2)) БУСДАА 0 Төгсгөл) Гуравдугаар сарын бүртгэлээс .Ердийн AS Typical.AccountKt = &AccountKt AND Typical.Typical.Period HOTE &PeriodStart and PeriodEnGROUP BY SUBSTRING(Ердийн.Бичлэг.Нэр, 1, 6), SUBSTRING(Ердийн.Бүртгэгч.Нэр, 8, 11), Ердийн.Бүртгэгч Хэлтсийн ЗАХИАЛГА, Зардлын данс

Энэ асуулгын үр дүн дараах байдалтай байна.

Нэр Зардлын данс хэлтэс Гуравдугаар сар
2010.03.01-ний 14:42:54-ны өдрийн төлбөрийн даалгавар 00000000319 779000 004599 9 000
2010.03.02-ны 12:07:34-ны өдрийн төлбөрийн даалгавар 00000000320 779000 004599 4 721,6
2010.03.01-ний 12:28:52-ны өдрийн төлбөрийн даалгавар 00000000203 786500 004599 987 614,51
2010.03.03-ны 14:16:00-аас гарах төлбөрийн даалгавар 00000000227 786500 004599 400 000
2010.03.05-ны 12:37:57-ны өдрийн төлбөрийн даалгавар 00000000238 732000 004600 5 400
2010.03.01-ний 11:53:11-ны өдрийн төлбөрийн даалгавар 00000000197 732500 004600 12 100
2010.03.01-ний 11:55:39-ны өдрийн төлбөрийн даалгавар 00000000198 732500 004600 12 100
2010.03.26-ны 00:00:00-аас гарах төлбөрийн даалгавар 00000000279 734100 004600 19 609
2010.03.29-ний 14:15:36-ны өдрийн төлбөрийн даалгавар 00000000287 734100 004600 55 300
2010.03.30-ны 11:01:10-ны өдрийн төлбөрийн даалгавар 00000000291 734100 004600 18 090
2010.03.18-ны 10:34:25-ны өдрийн төлбөрийн даалгавар 00000000268 738000 004600 10 050
2010.03.18-ны 12:20:20-ны өдрийн төлбөрийн даалгавар 00000000276 750400 004600 13 060,98
2010.03.29-ний 12:33:46-ны өдрийн төлбөрийн даалгавар 00000000281 750400 004600 555 645,41
2010.03.04-ний 12:21:55-ны өдрийн төлбөрийн даалгавар 00000000234 754450 004600 24 120
2010.03.30-ны 10:44:39-ны өдрийн төлбөрийн даалгавар 00000000290 754450 004600 100 000
2010.03.09-ний 10:53:24-ны өдрийн төлбөрийн даалгавар 00000000240 786300 004600 20 800
2010.03.18-ны 10:58:04-ны өдрийн төлбөрийн даалгавар 00000000269 786300 004600 61 012
2010.03.30-ны 9:27:14-ны өдрийн төлбөрийн даалгавар 00000000289 786300 004600 6 000
2010.03.03-ны 12:13:38-ны өдрийн төлбөрийн даалгавар 00000000223 786500 004600 36 000
2010.03.04-ны 9:52:35-ны өдрийн төлбөрийн даалгавар 00000000228 786500 004600 378 138,85
2010.03.04-ны 9:57:50-ны өдрийн төлбөрийн даалгавар 00000000229 786503 004600 126 117,75
2010.03.01-ний 11:58:06-аас гарсан төлбөрийн даалгавар 00000000200 754422 004762 63 000
2010.03.29-ний 14:10:18-ны өдрийн төлбөрийн даалгавар 00000000286 764422 004762 10 000
2010.03.17-ны 00:00:00-аас гарах төлбөрийн даалгавар 00000000267 764423 004762 464 370
2010.03.15-ны 11:16:28-ны өдрийн төлбөрийн даалгавар 00000000261 764522 004762 81 357

Тиймээс, хэрэв бид 779000/004599 мөрийг авбал SUBSTRING(Typical.Recorder.Respective.Name, 1, 6) нь "779000" мөрийг тодруулах болно. SUBSTRING(Typical.Recorder.Respective.Name, 8, 11) нь “004599” гаргана.

Ижил асуулгад илэрхийлэлийг ашигладаг:

НИЙЛБЭЛ(СОНГОЛТ ХЭЗЭЭ СОНГОХ(Ердийн.Үе) = 3 ДАРААГ нь ИЛЭРХИЙЛЭЭД(Ердийн. НИЙТЛЭЛИЙГ ДУГААР(15, 2)) БУСДАА 0 ТӨГСГӨЛ) Гуравдугаар сар

Үүнтэй ижил даалгаварт саруудын нэр, тэдгээрийн хэмжээг харуулсан шинэ багана нэмэх шаардлагатай байв. Энэ илэрхийлэл нь энэ асуудлыг шийддэг. Хэрэв та бусад саруудыг, жишээлбэл 1-р сарыг ашиглах шаардлагатай бол дараах илэрхийллийг солино уу:

MONTH(САР ХЭЗЭЭ СОНГОХ(Ердийн.Үе) = 1 ТЭГЭЭД ИЛЭРХИЙЛ(Ердийн нийлбэрийг ТООН(15, 2)) БУСДАА 0 Төгсгөл) Нэгдүгээр сар

Би 3-р сараас 2-р сар хүртэл мөчлөг ашиглан сарын талбарууд (томоор) үүссэн хүсэлтийн текстийн жишээг өгөх болно.

Асуулгын текст = " |СОНГОХ |Ердийн.Бүртгэгчийн Нэр, |ДЭД СТРИНГ(Ердийн.Бүртгэгч.Тусгай.Нэр, 1, 6) Зардлын Дансны АС, |Дэд мөр (Ердийн.Бүртгэгч.Нэр, 8, 11) ) AS хэлтэс,"; For Sch = 1-ээс 12 Цикл Хэрэв Sch< 11 Тогда Мес = Сч + 2; Иначе Мес = Сч - 10; КонецЕсли; ТекстЗапроса = ТекстЗапроса + " |СУММА(ВЫБОР | КОГДА МЕСЯЦ(Типовой.Период) = " + Мес + " | ТОГДА ВЫРАЗИТЬ(Типовой.Сумма КАК ЧИСЛО(15, 2)) | ИНАЧЕ 0 |КОНЕЦ) КАК Поле" + Мес + ?(Сч=12,"",","); КонецЦикла; Асуулгын текст = Асуулгын текст + " | FROM | Нягтлан бодох бүртгэлийн бүртгэл." + Нэр -registrabirals + ". Moviationsubaconto (| & цөм, | & gunsiod,"; stroki хилийн маягтууд нь хайгуулчид = "(үйл ажиллагаа = үнэн) болон (шатлалын дансанд (& тоолох))"; тойм текст = тойм текст + үеийн strocation + "|) ердийн |"; Асуулгын текст = Асуулгын текст + " | ХААНА | Typical.AccountCt = &AnalysisAccount | БОЛОН ердийн.Эхлэх үе ба &Төгсгөлийн үе |БҮЛЭГЛЭХ. Хариулт Нэр, 8, 11), | Ердийн.Бүртгэгч | ЗАХИАЛГААР | Газар, | Зардлын данс";

Тиймээс дээрх кодыг ашиглан (томоор) хүсэлтийн хэдэн сартай хэсгийг харуулав. Тиймээс шинэ багануудыг саруудын нэр, тэдгээрийн дүнгээр нэмж оруулсан болно.

1С асуулгад мөртэй ажиллах механизм цөөн байдаг. Нэгдүгээрт, мөрүүдийг нэмж болно. Хоёрдугаарт, та мөрөөс дэд мөр авч болно. Гуравдугаарт, утсыг загвараар нь харьцуулж болно. Энэ нь утсаар хийж болох бүх зүйл байх.

Мөр нэмэх

Асуулгад мөр нэмэхийн тулд "+" үйлдлийг ашиглана. Та зөвхөн хязгаарлагдмал урттай мөрүүдийг нэмж болно.

"Нэр: " + Эсрэг талуудыг СОНГОХ. Лавлахаас 1-р багана гэж нэрлэнэ үү. Сөрөг талуудыг ХААНА Counterparties. Холбоос = &Холбоос

Дэд мөр функц

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

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

Хэрэв мөрийн урт нь хоёр дахь параметрт заасан хэмжээнээс бага байвал функц нь хоосон мөрийг буцаана.

Анхаар!Хязгааргүй урттай мөрүүдийг хязгаарлагдмал урттай мөр болгон хөрвүүлэхийн тулд SUBSTRING() функцийг ашиглахыг зөвлөдөггүй. Үүний оронд EXPRESS() дамжуулах операторыг ашиглах нь дээр.

Үүнтэй төстэй функц

Хэрэв бид мөрийн шинж чанар нь тодорхой шалгуурыг хангаж байгаа эсэхийг шалгах шаардлагатай бол бид үүнийг харьцуулна:

Харилцагч талуудыг СОНГО. Лавлахаас 1-р баганад нэрийг оруулна уу. Сөрөг талуудыг ХААНА ЭСРЭГ тал гэж үзнэ. Нэр = "Газпром"

Гэхдээ танд илүү нарийн харьцуулалт хэрэгтэй бол яах вэ? Зөвхөн тэгш байдал, тэгш бус байдал биш, харин тодорхой загвартай ижил төстэй байдал уу? Яг ийм зорилгоор СИМИLAR функц бүтээгдсэн.

LIKE — Мөрийг загвартай төстэй эсэхийг шалгах оператор. SQL дээрх LIKE-ийн аналог.

SIMILAR оператор нь түүний зүүн талд заасан илэрхийллийн утгыг баруун талд заасан загварын мөртэй харьцуулах боломжийг олгодог. Илэрхийллийн утга нь string төрлийн байх ёстой. Хэрэв илэрхийллийн утга загвартай тохирч байвал операторын үр дүн ҮНЭН, эс бөгөөс ХУДАЛ болно.

Загварын мөр дэх дараах тэмдэгтүүд нь үйлчилгээний тэмдэгтүүд бөгөөд тэмдэгт мөрийн тэмдэгтээс өөр утгатай байна.

  • % (хувь): дурын тооны дурын тэмдэгт агуулсан дараалал;
  • _ (доод зураас): нэг дурын тэмдэгт;
  • […] (дөрвөлжин хаалтанд нэг буюу хэд хэдэн тэмдэгт): дөрвөлжин хаалт дотор жагсаасан дурын нэг тэмдэгт. Тооцоолол нь мужийг агуулж болно, жишээ нь a-z, энэ нь мужид орсон дурын тэмдэгт, түүний дотор мужын төгсгөлүүд;
  • [^...] (дөрвөлжин хаалтанд үгүйсгэх тэмдэг, араас нь нэг буюу хэд хэдэн тэмдэгт): үгүйсгэх тэмдгийн дараа жагсаасан тэмдэгтүүдээс бусад ганц тэмдэгт.

Өөр ямар ч тэмдэг нь өөрөө гэсэн үг бөгөөд нэмэлт ачаа үүрдэггүй. Хэрэв жагсаасан тэмдэгтүүдийн аль нэгийг өөрийнхөөрөө бичих шаардлагатай бол өмнө нь бичих ёстой<Спецсимвол>. Би өөрөө<Спецсимвол>(ямар ч тохиромжтой тэмдэгт) нь SPECIAL CHARACTER түлхүүр үгийн дараа ижил хэллэгт тодорхойлогддог.

1С: Enterprise асуулгын хэлэнд функц SUBSTRING()В формат SUBSTRING(<Исходная строка>, <Начало>, <Длина>) мөр өгөгдөлд хэрэглэж болох ба фрагмент сонгох боломжийг танд олгоно<Исходной строки>, тэмдэгтийн дугаараас эхэлнэ<Начало>(мөр дэх тэмдэгтүүдийг 1-ээс эхлэн дугаарлана) ба урт<Длина>тэмдэгтүүд. SUBSTRING() функцийн тооцооллын үр дүн нь хувьсагчийн урттай мөрийн төрөлтэй байх ба уртыг хязгааргүй гэж үзнэ.<Исходная строка>хязгааргүй урт ба параметртэй<Длина>тогтмол биш эсвэл 1024-ээс ихгүй байна.

SQL сервер дээрх SUBSTRING() функцийн тооцоо:
Ажлын клиент-сервер хувилбарт SUBSTRING() функцийг SUBSTRING() функцийн үр дүнгийн төрлийг тооцдог SQL Server мэдээллийн сангийн серверт дамжуулсан харгалзах SQL мэдэгдлийн SUBSTRING() функцийг ашиглан хэрэгжүүлдэг. түүний параметрийн төрөл, утга, түүнчлэн түүнийг ашиглаж буй контекстээс хамааран нарийн төвөгтэй дүрмийг ашиглах.

Ихэнх тохиолдолд эдгээр дүрмүүд нь 1C: Enterprise асуулгын гүйцэтгэлд нөлөөлдөггүй боловч SQL Server-ийн тооцоолсон үр дүнгийн мөрийн хамгийн их урт нь асуулгын гүйцэтгэлд зайлшгүй шаардлагатай тохиолдол байдаг. Зарим нөхцөл байдалд SUBSTRING() функцийг ашиглах үед түүний үр дүнгийн хамгийн их урт нь SQL Server дээрх 4000 тэмдэгт бүхий хязгаарлагдмал урттай мөрийн хамгийн их урттай тэнцүү байж болохыг санах нь чухал юм. Энэ нь хүсэлтийг гэнэт зогсооход хүргэж болзошгүй.

Жишээлбэл, хүсэлт:
Код 1C v 8.x СОНГОХ
СОНГОЛТ

ELSE NULL
Төгсгөл нь танилцуулга,
СОНГОЛТ
ХЭЗЭЭ Төрөл = &Хууль ёсны хаяг Хувь хүн
Дараа нь SUBSTRING(Төлөөлөлт, 0, 200)
ELSE NULL
Танилцуулга1
FROM
АНХААРУУЛАХ
Гүйцэтгэл,
Гүйцэтгэл 1
DBMS алдаа гэсэн мессежээр хэвийн бусаар дуусгавар болно:
SQL серверт зориулсан Microsoft OLE DB Provider: Анхааруулга: GROUP BY эсвэл ORDER BY заалтын бүх баганын нийт урт нь 8000 байтаас хэтэрсэн тул асуулгын процессор оновчтой болгогчоос асуулгын төлөвлөгөө гаргаж чадсангүй.
HRESULT=80040E14, SQLSTATE=42000, уугуул=8618

Энэ нь Microsoft SQL Server нь дараах илэрхийллээс үүсэх мөрийн хамгийн их уртыг тооцоолдогтой холбоотой юм.
Код 1C v 8.x СОНГОН
ХЭЗЭЭ Төрөл = &Хууль ёсны хаяг Хувь хүн
Дараа нь SUBSTRING(Төлөөлөлт, 0, 200)
ELSE NULL
Төгсгөл нь танилцуулга,
4000 тэмдэгттэй тэнцэнэ. Иймээс ийм хоёр талбараас бүрдэх бичлэгийн урт нь эрэмбэлэх үйлдэлд зөвшөөрөгдсөн 8000 байтаас хэтэрсэн байна.

SQL Server дээрх SUBSTRING() функцийг гүйцэтгэх онцлогоос шалтгаалан хязгааргүй урттай мөрүүдийг хязгаарлагдмал урттай мөр болгон хөрвүүлэхийн тулд SUBSTRING() функцийг ашиглахыг зөвлөдөггүй. Үүний оронд EXPRESS() дамжуулах операторыг ашиглах нь дээр. Ялангуяа дээрх жишээг дараах байдлаар дахин бичиж болно.
Код 1C v 8.x СОНГОХ
СОНГОЛТ
ХЭЗЭЭ Төрөл = &Хууль ёсны хаяг Хувь хүн
ELSE NULL
Төгсгөл нь танилцуулга,
СОНГОЛТ
ХЭЗЭЭ Төрөл = &Хууль ёсны хаяг Хувь хүн
Дараа нь EXPRESS(Төлөөлөл AS String(200))
ELSE NULL
Танилцуулга1
FROM
Мэдээллийн бүртгэл.Холбоо барих мэдээлэл ХЭРХЭН Холбоо барих мэдээлэл
АНХААРУУЛАХ
Гүйцэтгэл,
Гүйцэтгэл 1

1С 8 дахь асуулгын хэл нь алдартай "бүтэцлэгдсэн програмчлалын хэл" (илүү их SQL гэж нэрлэдэг) -ийн хялбаршуулсан аналог юм. Гэхдээ 1С-д энэ нь зөвхөн өгөгдлийг уншихад ашиглагддаг бөгөөд өгөгдлийг өөрчлөхөд объектын өгөгдлийн загварыг ашигладаг.

Өөр нэг сонирхолтой ялгаа бол Оросын синтакс юм. Хэдийгээр үнэн хэрэгтээ та англи хэл дээрх барилга байгууламжийг ашиглаж болно.

Жишээ хүсэлт:

СОНГОХ
Банкууд.Нэр,
Banks.CorrAccount
FROM
лавлах.Банкууд ХЭРХЭН Банкууд

Энэхүү хүсэлт нь мэдээллийн санд байгаа бүх банкуудын нэр, корреспондент дансны мэдээллийг харах боломжийг олгоно.

Асуулгын хэл нь мэдээлэл олж авах хамгийн энгийн бөгөөд үр дүнтэй арга юм. Дээрх жишээнээс харахад асуулгын хэл дээр та мета өгөгдлийн нэрийг ашиглах хэрэгтэй (энэ нь тохиргоог бүрдүүлдэг системийн объектуудын жагсаалт, тухайлбал лавлах, баримт бичиг, бүртгэл гэх мэт).

Асуулгын хэлний бүтцийн тодорхойлолт

Асуулгын бүтэц

Мэдээлэл авахын тулд "SELECT" ба "FROM" бүтцийг ашиглахад хангалттай. Хамгийн энгийн хүсэлт дараах байдалтай байна.

Лавлахаас * СОНГОХ.Нэршил

Энд “*” гэдэг нь хүснэгтийн бүх талбарыг сонгохыг, Directories.Nomenclature – мэдээллийн сан дахь хүснэгтийн нэрийг хэлнэ.

Илүү төвөгтэй бөгөөд ерөнхий жишээг авч үзье.

СОНГОХ
<ИмяПоля1>ХЭРХЭН<ПредставлениеПоля1>,
нийлбэр(<ИмяПоля2>) ХЭРХЭН<ПредставлениеПоля2>
FROM
<ИмяТаблицы1>ХЭРХЭН<ПредставлениеТаблицы1>
<ТипСоединения>НИЙСЛЭЛ<ИмяТаблицы2>ХЭРХЭН<ПредставлениеТаблицы2>
BY<УсловиеСоединениеТаблиц>

ХААНА
<УсловиеОтбораДанных>

GROUP BY
<ИмяПоля1>

АНХААРУУЛАХ
<ИмяПоля1>

ҮР ДҮН
<ИмяПоля2>
BY
<ИмяПоля1>

Энэ асуулгад бид "Хүснэгтийн нэр1" ба "Хүснэгтийн нэр" хүснэгтүүдээс "Хүснэгтийн нэр1" ба "Хүснэгтийн нэр1" талбаруудын өгөгдлийг сонгож, "ХЭРХЭН" операторыг ашиглан талбаруудад синонимыг оноож, "Хүснэгтийн холболтын нөхцөл" гэсэн тодорхой нөхцөлийг ашиглан тэдгээрийг холбоно. ”.

Хүлээн авсан өгөгдлөөс "ХААНА"-аас "Өгөгдөл сонгох нөхцөл"-ээс зөвхөн нөхцөлийг хангасан өгөгдлийг сонгоно.Дараа нь "Талбарын нэр1" талбарт хүсэлтийг бүлэглэж, "Талбарын нэр2"-г нэгтгэн талбарт нийт дүнг гаргадаг. "Талбарын нэр1" ба эцсийн талбар "Талбарын нэр2".

Сүүлийн алхам бол ORDER BY бүтцийг ашиглан хүсэлтийг эрэмбэлэх явдал юм.

Ерөнхий загварууд

1С 8.2 асуулгын хэлний ерөнхий бүтцийг авч үзье.

НЭГДҮГЭЭРn

Энэ операторыг ашигласнаар та эхний бичлэгийн n тоог авах боломжтой. Бүртгэлийн дарааллыг асуулга дахь дарааллаар тодорхойлно.

ЭХНИЙ 100-г СОНГО
Банкууд.Нэр,
Банкууд. BIC AS код
FROM
лавлах.Банкууд ХЭРХЭН Банкууд
АНХААРУУЛАХ
Банкууд.Нэр

Хүсэлт нь цагаан толгойн дарааллаар эрэмблэгдсэн "Банкууд" лавлахын эхний 100 бичилтийг хүлээн авна.

ЗӨВШӨӨРӨЛТЭЙ

Энэхүү загвар нь механизмтай ажиллахад тохиромжтой. Механизмын мөн чанар нь хүснэгтийг бүхэлд нь биш харин мэдээллийн сангийн хүснэгтэд байгаа тодорхой бүртгэлийг хэрэглэгчдэд уншихыг (болон бусад үйлдлүүдийг) хязгаарлах явдал юм.

Хэрэв хэрэглэгч өөрт нь нэвтрэх боломжгүй бичлэгүүдийг уншихын тулд асуулга ашиглахыг оролдвол алдааны мэдэгдэл хүлээн авна. Үүнээс зайлсхийхийн тулд та "ЗӨВШӨӨРӨГДСӨН" бүтцийг ашиглах хэрэгтэй, өөрөөр хэлбэл хүсэлт нь зөвхөн зөвшөөрөгдсөн бүртгэлийг унших болно.

СОНГОХ ЗӨВШӨӨРӨЛ
Нэмэлт мэдээллийн сан. Холбоос
FROM
Лавлах.Нэмэлт мэдээллийн сан

ТӨРӨЛ

"ӨӨР"-ийг ашигласнаар 1С асуулгын үр дүнд давхардсан мөрүүд орохоос сэргийлнэ. Давхарга гэдэг нь бүх хүсэлтийн талбарууд таарч байна гэсэн үг.

ЭХНИЙ 100-г СОНГО
Банкууд.Нэр,
Банкууд. BIC AS код
FROM
лавлах.Банкууд ХЭРХЭН Банкууд

Хоосон хүснэгт

Асуултуудыг нэгтгэхийн тулд энэ бүтцийг маш ховор ашигладаг. Нэгдэх үед та хүснэгтүүдийн аль нэгэнд хоосон хүснэгтийг зааж өгөх хэрэгтэй. "EmptyTable" оператор нь үүнд тохиромжтой.

1С 8 тусламжийн жишээ:

Холбоосыг СОНГОХ.Дугаар, ХООСОН ХҮСНЭГТ.(No., Бараа, Тоо хэмжээ) БҮРДЭЛЭЭР
Баримтаас. Зардлын нэхэмжлэх
БҮХИЙГ НЭГДҮҮЛ
Холбоос СОНГОХ.Тоо, Агуулга.(Мөрийн дугаар, Бүтээгдэхүүн, Тоо хэмжээ)
Баримтаас.Нэхэмжлэх баримтаас.Нэхэмжлэхээс.Бүрдэл.*

ISNULL

Олон алдаанаас зайлсхийх боломжийг олгодог маш хэрэгтэй функц. YesNULL() нь NULL утгыг хүссэнээр солих боломжийг олгодог. Нэгдсэн хүснэгтэд утга байгаа эсэхийг шалгахад ихэвчлэн ашиглагддаг, жишээлбэл:

СОНГОХ
Нэршлийн лавлах холбоос,
IsNULL(Үлдсэн зүйл.Үлдсэн тоо,0) AS Тоо хэмжээ Үлдсэн
FROM


Бусад хэлбэрээр ашиглаж болно. Жишээлбэл, мөр бүрийн хувьд ямар хүснэгтэд утга байгаа нь тодорхойгүй байвал:

ISNULL(Хүлээн авсан нэхэмжлэх. Огноо, нэхэмжлэх олгосон. огноо)

HOW нь хүснэгт эсвэл талбарт нэр (синоним) өгөх боломжийг олгодог оператор юм. Дээрх хэрэглээний жишээг бид харсан.

Эдгээр бүтээцүүд нь маш төстэй - тэдгээр нь хүссэн утгын хэлхээний дүрслэлийг авах боломжийг танд олгоно. Цорын ганц ялгаа нь RREPRESENTATION нь дурын утгыг мөрийн төрөл болгон хувиргадаг бол REPRESENTATIONREF нь зөвхөн лавлах утгыг хөрвүүлдэгт л байгаа юм. Лавлагааны өгөгдлийн талбарыг сонгохдоо ашиглахаар төлөвлөөгүй л бол өгөгдлийн бүрдүүлэлтийг оновчтой болгох системийн асуулгад ашиглахыг зөвлөж байна.

СОНГОХ
View(Link), //string, жишээ нь “Урьдчилсан тайлан №123 10/10/2015
View(DeletionMark) AS DeleteMarkText, //string, "Тийм" эсвэл "Үгүй"
ViewReferences(DeletionMark) AS DeleteMarkBoolean //boolean, True or False
FROM
Document.Advance Report

ЭКСПРЕСС

Экспресс нь талбарын утгыг хүссэн өгөгдлийн төрөл болгон хувиргах боломжийг олгодог. Та утгыг анхдагч төрөл эсвэл лавлагааны төрөл болгон хувиргаж болно.

Лавлагааны төрлийн экспресс нь нарийн төвөгтэй төрлийн талбарт хүссэн өгөгдлийн төрлүүдийг хязгаарлахад ашиглагддаг бөгөөд системийн ажиллагааг оновчтой болгоход ихэвчлэн ашиглагддаг. Жишээ:

EXPRESS(TableCost. Subconto1 AS лавлах. Зардлын зүйл).Татварын нягтлан бодох бүртгэлийн зардлын үйл ажиллагааны төрөл

Анхдагч төрлүүдийн хувьд энэ функцийг ихэвчлэн хязгааргүй урттай талбар дахь тэмдэгтүүдийн тоог хязгаарлахад ашигладаг (ийм талбаруудыг харьцуулах боломжгүй). Алдаа гаргахгүйн тулд " Харьцуулах үйл ажиллагаанд хүчингүй параметрүүд. Та талбаруудыг харьцуулах боломжгүй
хязгааргүй урт, үл нийцэх төрлүүдийн талбарууд
", та ийм талбаруудыг дараах байдлаар илэрхийлэх хэрэгтэй:

EXPRESS(Мөр AS тайлбар(150))

ЗӨРҮҮЛЭХ огноо

1С дээр 267 видео хичээлийг үнэгүй аваарай:

1С хүсэлтэд IS NULL ашиглах жишээ:

СОНГОХ
Ref
ЗҮҮН ХОЛБОЛТ Хуримтлалыг бүртгэх.Агуулахад байгаа бүтээгдэхүүн.Үлдсэн бүтээгдэхүүн.
Програм хангамжийн нэршилRef.Link = Борлуулсан барааны хороо үлдэгдэл.Нэршил
Үлдсэн бүтээгдэхүүн ХААНА.Үлдсэн тоо хэмжээ NULL

Асуулгын өгөгдлийн төрлийг TYPE() ба VALUETYPE() функцууд эсвэл логик REFERENCE оператор ашиглан тодорхойлж болно. Хоёр функц нь ижил төстэй.

Урьдчилан тодорхойлсон утгууд

1С асуулгын хэл дээрх асуулгад дамжуулсан параметрүүдийг ашиглахаас гадна та урьдчилан тодорхойлсон утгуудыг ашиглаж болно. Жишээлбэл, шилжүүлэг, урьдчилан тодорхойлсон лавлах, дансны график гэх мэт.Үүний тулд "Value()" бүтцийг ашиглана.

Хэрэглээний жишээ:

ХААНА Нэршил.Нэршлийн төрөл = Утга(Лавлах.Нэршлийн төрөл.Бүтээгдэхүүн)

ХААНА Эсрэг талууд.Холбоо барих мэдээллийн төрөл = Утга(Тооцоо.Холбоо барих мэдээллийн төрөл.Утас)

ХААНА Дансны үлдэгдэл.Нягтлан бодох бүртгэлийн Данс = Үнэ цэнэ(Дансны график.Ашиг.Ашиг алдагдал)

Холболтууд

4 төрлийн холболт байдаг: ЗҮҮН, ЗӨВ, БҮРЭН, ДОТООД.

ЗҮҮН БА БАРУУН ХОЛБОО

Холболтыг тодорхой нөхцөл дээр үндэслэн хоёр хүснэгтийг холбоход ашигладаг. Хэзээ онцлог ЗҮҮН НЭГДЭХБид эхний заасан хүснэгтийг бүхэлд нь авч, хоёр дахь хүснэгтийг нөхцөлт байдлаар холбох явдал юм. Хоёрдахь хүснэгтийн нөхцөлөөр хязгаарлагдах боломжгүй талбарууд нь утгаараа дүүрсэн байна NULL.

Жишээлбэл:

Энэ нь эсрэг талуудын хүснэгтийг бүхэлд нь буцааж өгөх бөгөөд зөвхөн "Counterparties.Name = Banks.Name" нөхцөл хангагдсан газруудад "Банк" талбарыг бөглөнө. Хэрэв нөхцөл хангагдаагүй бол Банк талбарыг тохируулна NULL.

1С хэлээр ЗӨВ НЭГДЭХтуйлын төстэй ЗҮҮН холболт, нэг ялгааг эс тооцвол - in ХОЛБОГДОХ ЭРХ"Үндсэн" хүснэгт нь эхнийх биш харин хоёр дахь нь юм.

БҮРЭН ХОЛБООТОЙ

БҮРЭН ХОЛБООТОЙЭнэ нь хоёр хүснэгтийн бүх бичлэгийг харуулах ба зөвхөн нөхцөлөөр холбож чадахыг нь холбодогоороо зүүн ба баруунаас ялгаатай.

Жишээлбэл:

FROM

БҮРЭН ХОЛБООТОЙ
лавлах.Банкууд ХЭРХЭН Банкууд

BY

Асуулгын хэл нь бүртгэлд нэгдэх нөхцөл хангагдсан тохиолдолд л хоёр хүснэгтийг бүрэн буцаана. Зүүн/баруун холболтоос ялгаатай нь NULL нь хоёр талбарт гарч ирэх боломжтой.

ДОТООД НЭГДСЭН

ДОТООД НЭГДСЭНЭнэ нь зөвхөн тухайн нөхцөлийн дагуу холбогдож болох бичлэгүүдийг харуулдаг гэдгээрээ бүтэн бичлэгээс ялгаатай.

Жишээлбэл:

FROM
Лавлах.Харилцагч талууд AS Үйлчлүүлэгчид

ДОТООД НЭГДСЭН
лавлах.Банкууд ХЭРХЭН Банкууд

BY
Clients.Name = Banks.Name

Энэ асуулга нь зөвхөн банк болон эсрэг талын ижил нэртэй мөрүүдийг буцаана.

Холбоонууд

JOIN болон JOIN ALL бүтцүүд нь хоёр үр дүнг нэг болгон нэгтгэдэг. Тэдгээр. хоёрыг гүйцэтгэсний үр дүн нь нэг нийтлэг нэг болж "нийлэх" болно.

Өөрөөр хэлбэл, систем нь ердийнхтэй яг адилхан, зөвхөн түр зуурын ширээн дээр ажилладаг.

INDEX BY-г хэрхэн ашиглах вэ

Гэсэн хэдий ч нэг зүйлийг анхаарч үзэх хэрэгтэй. Түр зуурын хүснэгт дээр индексийг бүтээхэд бас цаг хугацаа шаардагдана. Тиймээс түр хүснэгтэд 1-2-оос илүү бичлэг байх нь тодорхой байгаа тохиолдолд л " " бүтцийг ашиглахыг зөвлөж байна. Үгүй бол үр нөлөө нь эсрэгээрээ байж болно - индексжүүлсэн талбаруудын гүйцэтгэл нь индексийг бүтээхэд зарцуулсан хугацааг нөхөхгүй.

СОНГОХ
Валютын ханш Сүүлийн үеийн хөндлөн огтлол.Currency AS Валют,
Валютын ханш Сүүлийн үеийн хөндлөн огтлол.
PUT валютын ханш
FROM
Мэдээллийн бүртгэл.Валютын ханш.Сүүлийн зүсмэл(&Үе,) AS Валютын ханшСүүлийн зүсмэл
INDEX BY
Валют
;
СОНГОХ
Үнийн нэршил.Нэршил,
Үнэ,Нэршил.Үнэ,
ҮнэНэршил.Валют,
Валютын ханш. ханш
FROM
Мэдээллийн бүртгэл.Нэршлийн үнэ.Сүүлийн зүсмэл(&Хугацаа,
Нэршил B (&Нэршил) БА Үнийн төрөл = &Үнийн төрөл) AS ҮнэНэршил
ЗҮҮН НЭГДСЭН Валютын ханшийг валютын ханш
Програм хангамжийн үнэНэршил.Валют = Валютын ханш.Валют

Бүлэглэх

1С асуулгын хэл нь асуулгын үр дүнг бүлэглэхдээ тусгай нэгтгэх функцийг ашиглах боломжийг олгодог. Бүлэглэлийг давхардлыг "арилгах" зорилгоор нэгтгэх функцгүйгээр ашиглаж болно.

Дараах функцууд байдаг:

Дүн, Тоо хэмжээ, Төрөл бүрийн тоо, Хамгийн их, Хамгийн бага, Дундаж.

Жишээ №1:

СОНГОХ
Бараа, үйлчилгээний борлуулалт Бараа.Нэршил,
SUM(Sales of GoodsServicesGoods.Quantity) AS Тоо хэмжээ,
SUM(Sales of GoodsServicesGoods.Amount) AS Дүн
FROM

GROUP BY
Бараа, үйлчилгээний борлуулалт Бараа.Нэршил

Хүсэлт нь бараатай бүх мөрийг хүлээн авч, тэдгээрийг тоо хэмжээ, дүнгээр нь нэгтгэн харуулав.

Жишээ №2

СОНГОХ
Банкны код,
QUANTITY(ӨӨРӨӨ Banks.Link) AS Тоо Давхардсан
FROM
лавлах.Банкууд ХЭРХЭН Банкууд
GROUP BY
Банкны код

Энэ жишээ нь "Банкууд" лавлах дахь BIC-ийн жагсаалтыг харуулах бөгөөд тэдгээр нь тус бүрдээ хичнээн давхардсан байгааг харуулах болно.

Үр дүн

Үр дүн нь шаталсан бүтэцтэй системээс мэдээлэл авах арга юм. Нэгтгэх функцийг бүлэглэхтэй адил хураангуй талбаруудад ашиглаж болно.

Үр дүнг практикт ашиглах хамгийн түгээмэл аргуудын нэг бол барааг багцаар нь хасах явдал юм.

СОНГОХ




FROM
Баримт бичиг.Бүтээгдэхүүн, үйлчилгээний борлуулалт.Бараа Бараа, үйлчилгээг ХЭРХЭН борлуулах вэ Бараа
АНХААРУУЛАХ

ҮР ДҮН
SUM(Тоо хэмжээ),
нийлбэр(нийлбэр)
BY
Нэршил

Асуулгын үр дүн нь дараах шатлалтай болно.

Ерөнхий үр дүн

Хэрэв та бүх "нийт"-ийн нийлбэр дүнг авах шаардлагатай бол "GENERAL" операторыг ашиглана уу.

СОНГОХ
Бараа, үйлчилгээний борлуулалт Бараа.Нэршил AS Нэршил,
Бараа, үйлчилгээний борлуулалт Бараа. AS Баримт бичгийн холбоос,
Бараа, үйлчилгээний борлуулалт Бараа.Тоо хэмжээ AS Тоо хэмжээ,
Бараа, үйлчилгээний борлуулалт Бараа.Дүн АС Дүн
FROM
Баримт бичиг.Бүтээгдэхүүн, үйлчилгээний борлуулалт.Бараа Бараа, үйлчилгээг ХЭРХЭН борлуулах вэ Бараа
АНХААРУУЛАХ
Бараа, үйлчилгээний борлуулалт Бараа Холбоос Огноо
ҮР ДҮН
SUM(Тоо хэмжээ),
нийлбэр(нийлбэр)
BY
НИЙТЛЭГ,
Нэршил

Хүсэлтийг гүйцэтгэсний үр дүнд бид дараах үр дүнг авна.

Бүлэглэлийн 1 түвшин нь шаардлагатай бүх талбаруудыг нэгтгэх явдал юм.

Зохион байгуулж байна

ORDER BY оператор нь асуулгын үр дүнг эрэмбэлэхэд ашиглагддаг.

Анхан шатны төрлүүдийг (мөр, тоо, логик) ангилах нь ердийн дүрмийг дагаж мөрддөг. Лавлагааны төрлийн талбаруудын хувьд код эсвэл лавлагааны дүрслэлээр бус холбоосын дотоод дүрслэлээр (өвөрмөц танигч) эрэмбэлдэг.

СОНГОХ

FROM
Лавлах.Нэршил AS Нэршил
АНХААРУУЛАХ
Нэр

Хүсэлт нь нэрсийн жагсаалтад цагаан толгойн дарааллаар эрэмблэгдсэн нэрсийн жагсаалтыг харуулах болно.

Автомат захиалга

Эрэмбэлэхгүйгээр асуулгын үр дүн нь эмх замбараагүй танилцуулсан мөрүүдийн багц юм. 1С платформ хөгжүүлэгчид ижил асуултуудыг гүйцэтгэх үед мөрүүд ижил дарааллаар гарна гэсэн баталгаа өгөхгүй.

Хэрэв та хүснэгтийн бичлэгүүдийг тогтмол дарааллаар харуулах шаардлагатай бол "Автоматаар захиалга" бүтцийг ашиглах ёстой.

СОНГОХ
Нэршил.Нэр AS Нэр
FROM
Лавлах.Нэршил AS Нэршил
АВТО ЗАХИАЛГА

Виртуал хүснэгтүүд

1С дахь виртуал хүснэгтүүд нь бусад ижил төстэй синтаксуудад байдаггүй 1С асуулгын хэлний өвөрмөц онцлог юм. Виртуал хүснэгт нь бүртгэлээс профайлын мэдээллийг хурдан авах арга юм.

Бүртгэлийн төрөл бүр өөрийн гэсэн виртуал хүснэгттэй бөгөөд бүртгэлийн тохиргооноос хамаарч өөр өөр байж болно.

  • эхний зүсэлт;
  • сүүлчийнх нь зүсэлт.
  • үлдэгдэл;
  • хувьсгал;
  • тэнцэл ба эргэлт.
  • дэд контооос хөдөлгөөн;
  • хувьсгал;
  • хурд Dt Kt;
  • үлдэгдэл;
  • тэнцэл ба эргэлт
  • дэд конто.
  • суурь;
  • график өгөгдөл;
  • хүчинтэй байх бодит хугацаа.

Шийдэл хөгжүүлэгчийн хувьд өгөгдлийг нэг (виртуал) хүснэгтээс авдаг боловч үнэн хэрэгтээ 1С платформ нь олон хүснэгтээс авдаг бөгөөд тэдгээрийг шаардлагатай хэлбэрт оруулдаг.

СОНГОХ
Агуулахад байгаа бүтээгдэхүүний үлдэгдэл, бараа эргэлт.Нэршил,
Агуулахад байгаа бүтээгдэхүүн, үлдэгдэл, эргэлт.Тоо хэмжээЭхний үлдэгдэл,
Агуулахад байгаа бүтээгдэхүүн, үлдэгдэл, бараа эргэлт.Тоо хэмжээ Эргэлтийн,
Агуулахад байгаа бараа, үлдэгдэл, бараа эргэлт.Тоо хэмжээИрж байгаа,
Агуулахад байгаа бараа, үлдэгдэл, бараа эргэлт.Тоо хэмжээ Хэрэглээ,
Агуулахад байгаа бүтээгдэхүүн, үлдэгдэл, бараа эргэлт.Тоо хэмжээЭцсийн үлдэгдэл
FROM
Хуримтлал.Агуулахад байгаа бараа.Үлдэгдэл, бараа эргэлт Агуулахад байгаа бараа, үлдэгдэл, бараа эргэлтийг бүртгэх

Энэ асуулга нь танд маш их хэмжээний өгөгдлийг хурдан авах боломжийг олгодог.

Виртуал хүснэгтийн сонголтууд

Виртуал хүснэгттэй ажиллах маш чухал тал бол параметрүүдийг ашиглах явдал юм. Виртуал хүснэгтийн параметрүүд нь сонгох, тохируулах тусгай параметрүүд юм.

Ийм хүснэгтийн хувьд "ХАААН" гэсэн констракшн дахь сонголтыг ашиглах нь буруу гэж үздэг. Асуулга нь оновчтой бус болохоос гадна буруу өгөгдөл хүлээн авах боломжтой.

Эдгээр параметрүүдийг ашиглах жишээ:

Хуримтлалын бүртгэл Агуулахад байгаа бараа үлдэгдэл ба эргэлт (& Хугацааны эхэн, & Хугацааны төгсгөл, сарын нүүдэл ба хил хязгаар, Нэршил = & Шаардлагатай нэршил)

Виртуал хүснэгтэд зориулсан алгоритм

Жишээлбэл, "Үлдэгдэл" төрлийн хамгийн түгээмэл виртуал хүснэгт нь тэнцвэр ба хөдөлгөөн гэсэн хоёр физик хүснэгтийн өгөгдлийг хадгалдаг.

Виртуал хүснэгтийг ашиглах үед систем нь дараах залруулга хийдэг.

  1. Бид нийт дүнгийн хүснэгтэд огноо, хэмжилтийн хувьд хамгийн ойр тооцоолсон утгыг авдаг.
  2. Бид хөдөлгөөний хүснэгтийн дүнг нийт дүнгийн хүснэгтийн дүн дээр "нэмдэг".


Ийм энгийн үйлдлүүд нь системийн ажиллагааг бүхэлд нь мэдэгдэхүйц сайжруулж чадна.

Query Builder ашиглах

Query Builder– 1С Enterprise системд суурилагдсан хэрэгсэл нь мэдээллийн сангийн асуулга боловсруулахад ихээхэн дэмжлэг болдог.

Асуулга үүсгэгч нь нэлээд энгийн, ойлгомжтой интерфэйстэй. Гэсэн хэдий ч асуулга үүсгэгчийг илүү нарийвчлан авч үзье.

Асуулгын текст үүсгэгчийг контекст цэснээс (хулганы баруун товч) програмын кодын хүссэн газраас ажиллуулна.

1С хүсэлт үүсгэгчийн тодорхойлолт

Загвар зохион бүтээгчийн таб бүрийг илүү нарийвчлан авч үзье. Үл хамаарах зүйл бол өөр хэлэлцүүлгийн сэдэв болох "Builder" таб юм.

Хүснэгт ба талбарууд таб

Энэ таб нь тайланд харуулах шаардлагатай мэдээллийн эх сурвалж болон талбаруудыг зааж өгдөг. Үндсэндээ SELECT.. FROM бүтээцүүдийг энд тайлбарласан болно.

Эх сурвалж нь өгөгдлийн сангийн физик хүснэгт, виртуал бүртгэлийн хүснэгт, түр зуурын хүснэгт, үүрлэсэн асуулга гэх мэт байж болно.

Виртуал хүснэгтийн контекст цэсэнд та виртуал хүснэгтийн параметрүүдийг тохируулж болно.

Холболтын таб

Таб нь хэд хэдэн хүснэгтийн холболтыг тодорхойлоход хэрэглэгддэг ба CONNECTION гэсэн үгээр бүтээц үүсгэдэг.

Бүлэглэх таб

Энэ таб дээр систем нь хүснэгтийн үр дүнгийн шаардлагатай талбаруудыг бүлэглэх, нэгтгэх боломжийг олгодог. БҮЛГЭЭР, НИЙЛҮҮЛЭХ, ДЭЭД, ДУНДЖ, ДЭЭД, ТОО, ТОО ӨӨРӨӨ БҮЛЭГИЙН ашиглалтыг тайлбарлана.

Нөхцөлүүдийн таб

WHERE барилгын ажил дууссаны дараа хүсэлтийн бичвэрт орсон бүх зүйлийг, өөрөөр хэлбэл хүлээн авсан өгөгдөлд ногдуулсан бүх нөхцлийг хариуцна.

Нарийвчилсан таб

Таб Нэмж хэлэхэдмаш чухал бүх төрлийн параметрүүдээр дүүргэгдсэн. Үл хөдлөх хөрөнгө тус бүрийг авч үзье.

Бүлэглэх Бичлэгүүдийг сонгож байна:

  • Эхлээд Н– асуулгад зөвхөн N бичлэг буцаадаг параметр (ЭХНИЙ оператор)
  • Давхардсан зүйл байхгүй- хүлээн авсан бичлэгийн өвөрмөц байдлыг баталгаажуулдаг (ӨӨР оператор)
  • Зөвшөөрөгдсөн- зөвхөн системээс сонгох боломжтой бичлэгүүдийг сонгох боломжийг танд олгоно (ЗӨВШӨӨРӨЛТТЭЙ барилга)

Бүлэглэх Хүсэлтийн төрөлямар төрлийн хүсэлт байхыг тодорхойлдог: өгөгдөл хайх, түр зуурын хүснэгт үүсгэх, түр зуурын хүснэгтийг устгах.

Доор нь туг байна Хүлээн авсан өгөгдлийг дараа нь өөрчлөхийн тулд түгжих. Энэ нь мэдээллийн түгжээг тохируулах боломжийг идэвхжүүлэх боломжийг олгодог бөгөөд энэ нь өгөгдлийг уншихаас эхлээд өөрчлөх хүртэл аюулгүй байдлыг хангадаг (зөвхөн Автомат түгжих горимд хамааралтай, ӨӨРЧЛӨЛТИЙН загвар).

Нэгдсэн/Алиа нэрийн таб

Асуулга зохион бүтээгчийн энэ таб дээр та өөр өөр хүснэгтүүд болон бусад нэрсийг (ХЭРХЭН бүтээх) холбох чадварыг тохируулж болно. Хүснэгтүүдийг зүүн талд нь зааж өгсөн болно. Хэрэв та тугуудыг хүснэгтийн эсрэг талд байрлуулбал UNITE бүтцийг ашиглах болно, эс тэгвээс - UNITE ALL (хоёр аргын ялгаа). Баруун талд, өөр өөр хүснэгтүүдийн талбаруудын захидал харилцааг зааж өгсөн бөгөөд хэрэв захидал харилцааг заагаагүй бол асуулга NULL утгыг буцаана.

Захиалгын таб

Энэ нь утгуудыг эрэмбэлэх дарааллыг (ORDER BY) - буурах (DESC) эсвэл өсөх (ASC) гэж тодорхойлдог.

Мөн сонирхолтой туг байна - Автомат захиалга(хүсэлтэд - АВТО ЗАХИАЛГА). Анхдагч байдлаар, 1С систем нь өгөгдлийг "эмх замбараагүй" дарааллаар харуулдаг. Хэрэв та энэ тугийг тохируулбал систем өгөгдлийг дотоод мэдээллээр ангилах болно.

Query Batch таб

Асуулга зохион бүтээгчийн таб дээр та шинээр үүсгэж, навигаци болгон ашиглаж болно. Хүсэлтийн текстэд пакетуудыг ";" (таслал) тэмдгээр тусгаарлана.

Асуулга зохион бүтээгч дэх "Асуулга" товч

Хүсэлтийн дизайнерын зүүн доод буланд Хүсэлтийн товчлуур байгаа бөгөөд та хүссэн үедээ хүсэлтийн текстийг үзэх боломжтой.

Энэ цонхонд та хүсэлтэд тохируулга хийж, гүйцэтгэх боломжтой.


Query Console ашиглах

Query Console нь нарийн төвөгтэй асуултуудыг дибаг хийх, мэдээллийг хурдан авах энгийн бөгөөд тохиромжтой арга юм. Энэ нийтлэлд би Query Console-г хэрхэн ашиглах талаар тайлбарлаж, Query Console-г татаж авах холбоосыг өгөхийг хичээх болно.

Энэ хэрэгслийг илүү нарийвчлан авч үзье.

1C query консолыг татаж авах

Юуны өмнө асуулгын консолтой ажиллахын тулд та үүнийг хаа нэг газраас татаж авах хэрэгтэй. Эмчилгээг ихэвчлэн хоёр төрөлд хуваадаг - хяналттай хэлбэр ба уламжлалт (эсвэл заримдаа тэдгээрийг 8.1 ба 8.2/8.3 гэж нэрлэдэг).

Би эдгээр хоёр үзэмжийг нэг боловсруулалтад нэгтгэхийг оролдсон - хүссэн хэлбэр нь хүссэн үйлдлийн горимд нээгддэг (удирдлагатай горимд консол нь зөвхөн зузаан горимд ажилладаг).

1С асуулгын консолын тодорхойлолт

Үндсэн боловсруулалтын самбарын тайлбар бүхий асуулгын консолыг харж эхэлцгээе.

Асуулгын консолын толгой хэсэгт та сүүлийн асуулгын гүйцэтгэлийн хугацааг миллисекундын нарийвчлалтайгаар харах боломжтой бөгөөд энэ нь гүйцэтгэлийн хувьд өөр өөр загваруудыг харьцуулах боломжийг олгодог.

Тушаалын мөрөнд байгаа эхний бүлэг товчлуурууд нь одоогийн хүсэлтийг гадаад файлд хадгалах үүрэгтэй. Энэ нь маш тохиромжтой тул та үргэлж нарийн төвөгтэй хүсэлтийг бичиж болно. Эсвэл, жишээлбэл, тодорхой загварын ердийн жишээнүүдийн жагсаалтыг хадгал.

Зүүн талд байгаа "Хүсэлт" талбарт та шинэ хүсэлт үүсгэж, тэдгээрийг модны бүтцэд хадгалах боломжтой. Хоёрдахь бүлгийн товчлуурууд нь хүсэлтийн жагсаалтыг удирдах үүрэгтэй. Үүнийг ашигласнаар та хүсэлт үүсгэх, хуулах, устгах, зөөх боломжтой.

  • Гүйцэтгэххүсэлт- энгийн гүйцэтгэл, үр дүн
  • Багцыг гүйцэтгэх– нь багц асуулга доторх бүх завсрын асуулгыг харах боломжийг танд олгоно
  • Түр зуурын хүснэгтүүдийг үзэж байна– түр зуурын асуулгад буцаж ирсэн үр дүнг хүснэгтэд харах боломжийг танд олгоно

Хүсэлтийн параметрүүд:

Хүсэлтийн одоогийн параметрүүдийг тохируулах боломжийг танд олгоно.

Асуулгын параметрийн цонхонд дараахь зүйл сонирхолтой байна.

  • Товчлуур Хүсэлтээс авна уухөгжүүлэгчийн тав тухтай байдлыг хангах үүднээс хүсэлтийн бүх параметрүүдийг автоматаар олдог.
  • туг Бүх хүсэлтийн нийтлэг параметрүүд– суулгасан үед түүний боловсруулалт нь хүсэлтийн ерөнхий жагсаалтад хүсэлтээс хүсэлт рүү шилжих үед параметрүүдийг арилгадаггүй.

Утгын жагсаалт бүхий параметрийг тохируулна ууЭнэ нь маш энгийн, зөвхөн параметрийн утгыг сонгохдоо утгыг арилгах товчийг (хөндлөн) дарахад систем нь өгөгдлийн төрлийг сонгохыг танаас хүсэх бөгөөд энд "Утгын жагсаалт" -ыг сонгох хэрэгтэй.

Мөн дээд самбарт асуулгын консолын тохиргоог дуудах товчлуур байна:

Энд та асуулга автоматаар хадгалах болон асуулгын гүйцэтгэлийн параметрүүдийг зааж өгч болно.

Хүсэлтийн текстийг консолын хүсэлтийн талбарт оруулна. Үүнийг зүгээр л асуулгын тест бичих эсвэл тусгай хэрэгсэл болох query designer руу залгах замаар хийж болно.

1C 8 асуулгын дизайнерыг оролтын талбар дээр дарахад контекст цэснээс (хулганы баруун товч) дуудагдана.

Энэхүү цэс нь хүсэлтэнд мөр таслах (“|”) нэмэх, арилгах, хүсэлтийн кодыг энэ тохиромжтой хэлбэрээр хүлээн авах зэрэг ашигтай функцуудтай.

Хүсэлт = Шинэ хүсэлт;
Хүсэлт.Текст = ”
|СОНГОХ
| Валютууд.Холбоос
|FROM
| Directory.Currencies AS Currencies”;
RequestResult = Request.Execute();

Асуулгын консолын доод талбар нь асуулгын үр дүнгийн талбарыг харуулдаг тул энэ боловсруулалтыг үүсгэсэн болно.



Мөн асуулгын консол нь жагсаалтаас гадна өгөгдлийг мод хэлбэрээр харуулах боломжтой - нийт дүнг агуулсан асуулгад.

Асуулгын оновчлол

1С аж ахуйн нэгжийн бүтээмжийг нэмэгдүүлэх хамгийн чухал цэгүүдийн нэг бол 8.3 юм оновчлолхүсэлтүүд. Энэ цэг нь бас маш чухал үед гэрчилгээг давж байна. Доор бид асуулгын оновчтой бус гүйцэтгэл, оновчлолын аргуудын ердийн шалтгаануудын талаар ярих болно.

WHERE бүтцийг ашиглан виртуал хүснэгтийн сонголтууд

Зөвхөн VT параметрээр дамжуулан виртуал хүснэгтийн дэлгэрэнгүй мэдээлэлд шүүлтүүр хэрэглэх шаардлагатай. Ямар ч тохиолдолд та WHERE бүтцийг виртуал хүснэгтээс сонгохдоо ашиглах ёсгүй, энэ нь оновчлолын үүднээс авч үзвэл ноцтой алдаа юм. WHERE ашиглан сонгосон тохиолдолд систем нь БҮХ бүртгэлийг хүлээн авах бөгөөд зөвхөн дараа нь шаардлагатай бичлэгүүдийг сонгоно.

ЗӨВ:

СОНГОХ

FROM
Хуримтлалын бүртгэл Байгууллагын оролцогчидтой хийсэн харилцан тооцоо.Үлдэгдэл (
,
Байгууллага = &Байгууллага
БА Хувь хүн = &Хувь хүн) Байгууллагын Оролцогчидтой ХЭРХЭН харилцан тооцоо хийх

БУРУУ:

СОНГОХ
Байгууллагын оролцогчидтой хийсэн тооцооны үлдэгдэл.Үнгийн үлдэгдэл
FROM
Хуримтлалын бүртгэл Байгууллагын оролцогчидтой хийсэн харилцан тооцоо Үлдэгдэл (,) ХЭРХЭН Байгууллагын оролцогчидтой хийсэн харилцан тооцоо Үлдэгдэл
ХААНА
Байгууллагын Оролцогчидтой харилцан тооцоо хийх Баланс Байгууллага = & Байгууллага
БОЛОН Байгууллагын Оролцогчидтой хийсэн харилцан төлбөр тооцоо Хувь хүн = &Хувь хүн

Цэг ашиглан цогц төрлийн талбарын утгыг авах

Цэгээр дамжуулан асуулгад нийлмэл төрлийн өгөгдлийг хүлээн авахдаа систем нь нарийн төвөгтэй төрлийн талбарт аль болох олон хүснэгтийг зүүн талын холболтоор холбодог.

Жишээлбэл, бүртгэлийн талбар болох бүртгэгч рүү нэвтрэх нь оновчлолд маш их тохиромжгүй байдаг. Бүртгүүлэгч нь нийлмэл өгөгдлийн төрөлтэй бөгөөд тэдгээрийн дотор бүртгэлд өгөгдөл бичих боломжтой бүх төрлийн баримт бичиг байдаг.

БУРУУ:

СОНГОХ
Бичлэгийн багц.Бичэгч.Огноо,
RecordSet.Тоо хэмжээ
FROM
Хуримтлал.Бүтээгдэхүүний Байгууллагуудыг Бүртгүүлэх AS SetRecords

Энэ нь үнэндээ ийм асуулга нь нэг хүснэгт биш, харин 22 мэдээллийн сангийн хүснэгтэд хандах болно (энэ бүртгэл нь 21 бүртгэгчийн төрөлтэй).

ЗӨВ:

СОНГОХ
СОНГОЛТ
ХЭЗЭЭ ProductsOrg.Registrar LINK Document.Бүтээгдэхүүн, үйлчилгээний борлуулалт
Дараа нь EXPRESS(БүтээгдэхүүнийБайгууллага.Бүртгэгч AS Баримт бичиг. Борлуулалт БарааныҮйлчилгээ).Огноо
ХЭЗЭЭ GoodsOrg.Registrator LINK Баримт бичиг.Барааны хүлээн авахҮйлчилгээ
ТЭГЭЭД ИЛЭРХИЙЛЭЭРЭЙ(GoodsOrg.Registrar AS Document. Receip of GoodsServices).Огноо
огноогоор дуусна,
ProductsOrg.Quantity
FROM
Хуримтлалыг бүртгүүлэх.БүтээгдэхүүнБайгууллага AS БүтээгдэхүүнБайгууллага

Эсвэл хоёр дахь сонголт бол ийм мэдээллийг дэлгэрэнгүй мэдээлэлд нэмэх, жишээлбэл, манай тохиолдолд огноо нэмэх явдал юм.

ЗӨВ:

СОНГОХ
БүтээгдэхүүнБайгууллага.Огноо,
БүтээгдэхүүнБайгууллага.Тоо хэмжээ
FROM
Хуримтлалын бүртгэл.Байгууллагын бараа AS Байгууллагын бараа

Нэгдэх нөхцөл дэх дэд асуулга

Оновчлолын хувьд нэгдэх нөхцөлд дэд асуулга ашиглахыг зөвшөөрөхгүй бөгөөд энэ нь асуулгын хурдыг ихээхэн удаашруулдаг. Ийм тохиолдолд VT ашиглах нь зүйтэй. Холбохын тулд та зөвхөн мета өгөгдөл болон VT объектуудыг өмнө нь холболтын талбараар индексжүүлсэн байх шаардлагатай.

БУРУУ:

СОНГОХ …

ЗҮҮН НЭГДЭХ (
RegisterInformation.Limits-аас СОНГОХ
ХААНА…
БҮЛЭГЛЭХ...
) BY …

ЗӨВ:

СОНГОХ …
PUT хязгаар
Мэдээллийн бүртгэлээс.Хязгаар
ХААНА…
БҮЛЭГЛЭХ...
INDEX BY...;

СОНГОХ …
Баримтаас.Бараа үйлчилгээний борлуулалт
ЗҮҮН НЭГДСЭН Хязгаар
BY …;

Виртуал хүснэгтээр бичлэгүүдийг нэгтгэх

Виртуал хүснэгтийг бусадтай холбоход систем оновчтой ажиллахгүй байх тохиолдол байдаг. Энэ тохиолдолд асуулгын гүйцэтгэлийг оновчтой болгохын тулд та виртуал хүснэгтийг түр зуурын хүснэгтэд байрлуулж, түр зуурын хүснэгтийн асуулгад холбогдсон талбаруудыг индексжүүлэхээ мартаж болохгүй. Энэ нь VT нь ихэвчлэн хэд хэдэн физик DBMS хүснэгтэд агуулагддагтай холбоотой бөгөөд үүний үр дүнд тэдгээрийг сонгох дэд асуулга эмхэтгэсэн бөгөөд асуудал нь өмнөх цэгтэй төстэй болж хувирдаг.

Индексжүүлээгүй талбарууд дээр суурилсан сонголтуудыг ашиглах

Асуулт бичихэд гардаг хамгийн нийтлэг алдаа бол индексжүүлээгүй талбарт нөхцөл ашиглах явдал юм. асуулга оновчтой болгох дүрэм.Хэрэв асуулгад индексжүүлэгдэхгүй талбарууд дээр сонголт орсон бол DBMS нь хайлтыг оновчтой гүйцэтгэж чадахгүй. Хэрэв та түр зуурын хүснэгт авбал холболтын талбаруудыг индексжүүлэх хэрэгтэй.

Нөхцөл бүрийн хувьд тохирох индекс байх ёстой. Тохиромжтой индекс нь дараахь шаардлагыг хангасан индекс юм.

  1. Индекс нь нөхцөл байдалд жагсаасан бүх талбаруудыг агуулна.
  2. Эдгээр талбарууд нь индексийн хамгийн эхэнд байдаг.
  3. Эдгээр сонголтууд нь дараалсан байна, өөрөөр хэлбэл асуулгын нөхцөлд хамааралгүй утгууд нь тэдгээрийн хооронд "шаантаг" байдаггүй.

Хэрэв DBMS зөв индексийг сонгоогүй бол хүснэгтийг бүхэлд нь сканнердах болно - энэ нь гүйцэтгэлд маш сөрөг нөлөө үзүүлж, бүхэл бүтэн бичлэгийг удаан хугацаагаар хаахад хүргэдэг.

Нөхцөл байдалд логик OR ашиглах

Энэ нийтлэлд 1С-ийн мэргэжилтэн бүрийн мэдэх ёстой асуулгын оновчлолын үндсэн асуудлуудыг авч үзсэн.

Асуулга боловсруулах, оновчтой болгох маш хэрэгтэй үнэгүй видео курс, Би маш их зөвлөж байнаэхлэгчдэд болон бусад!

Одоо үлдсэнийг нь харцгаая.

1С асуулга дахь мөрүүдтэй ажиллах функцууд

1С асуулгад мөрийн өгөгдөлтэй ажиллах цөөн тооны функц, операторууд байдаг.

Нэгдүгээрт, асуулгад мөрүүдийг нэмж болно. Үүнийг хийхийн тулд "+" операторыг ашиглана уу:

Хүсэлт. Текст = "СОНГОХ
" "Мөр:" " + Эх сурвалж.Нэр
;

Хоёрдугаарт, та шугамын хэсгийг сонгож болно. Үүнийг хийхийн тулд функцийг ашиглана уу ОРЛУУЛАХ.Функц нь суулгасан 1С хэлтэй төстэй. Энэ нь гурван параметртэй:

  1. Эх сурвалжийн мөр.
  2. Сонгосон мөр эхлэх тэмдэгтийн дугаар.
  3. Тэмдэгтүүд.

Хүсэлт. Текст = "СОНГО
SUBSTRING("
"Мөр:" ", 4, 3) Үр дүнд нь"; // Үр дүн: зүгээр

Чиг үүрэг ISNULL

NULL нь 1C: Enterprise платформ дээрх тусгай өгөгдлийн төрөл юм. Энэ нь бас энэ төрлийн цорын ганц боломжит үнэ цэнэ юм. NULL нь хэд хэдэн тохиолдолд асуулгад гарч ирж болно: асуулгын эх сурвалжийг холбох үед хүснэгтүүдийн аль нэгэнд тохирох утга олдоогүй бол; байхгүй объектын дэлгэрэнгүй мэдээлэлд хандах үед; хэрэв асуулгын талбаруудын жагсаалтад NULL заасан бол (жишээлбэл, хэд хэдэн хүснэгтээс сонгон авсан үр дүнг нэгтгэх үед) гэх мэт.

Учир нь NULL нь null ч биш, хоосон мөр ч биш, бүр утга ч биш юм Тэмдэглэгдээгүй,үүнийг илүү ашигтай өгөгдлийн төрлөөр солих нь ихэвчлэн ашигтай байдаг. Энэ функц нь үүнд зориулагдсан болно. ISNULL.

Энэ нь хоёр параметртэй:

  1. Шалгаж буй утга.
  2. Эхний параметр нь NULL болж хувирвал түүнийг солих утга.

Хүсэлт. Текст = "СОНГО
ISNULL(Source.Remainder, 0) AS Үлдэгдэл"
; // Хэрэв хүсэлтийн үр дүн талбарын үлдэгдэл = NULL бол,
// дараа нь 0-ээр солигдох бөгөөд та түүгээр математикийн үйлдлүүдийг хийж болно

Функцүүд ГҮЙЦЭТГЭЛТэгээд ТАНИЛЦУУЛГА ХОЛБООС

Эдгээр функцууд нь янз бүрийн утгын хэлхээний дүрслэлийг олж авахад зориулагдсан. Өөрөөр хэлбэл, тэд лавлагаа, тоо, логик гэх мэтийг хөрвүүлдэг. энгийн текст болгон. Тэдний хоорондох ялгаа нь функц юм ГҮЙЦЭТГЭЛаливаа өгөгдлийн төрлийг текст (мөр) болон функц болгон хувиргадаг ТАНИЛЦУУЛГА ХОЛБООС- зөвхөн холбоос хийж, үлдсэн утгуудыг хөрвүүлэхгүй байгаагаар нь буцаана.

Хүсэлт. Текст = "СОНГО
Boolean ТӨЛӨӨЛӨЛ(ҮНЭН),
ТӨЛӨӨЛӨЛ (4) ДУГААР,
ТӨЛӨӨЛӨЛ (Эх сурвалж.Link) AS Link,
ТӨЛӨӨЛӨЛ(DATETIME(2016,10,07)) Огноо"
;
// Boolean = "Тийм", Тоо = "4", Холбоос = "Баримт бичгийн бэлэн мөнгөний ордер No....-аас..."
// Огноо = "2016.10.07 0:00:00"

Хүсэлт. Текст = "СОНГО
ТӨЛӨӨЛӨЛИЙН ЛАВЛАГА(ҮНЭН) БУЛИЙН,
ТӨЛӨӨЛӨЛИЙНЛАВЛАГА(4) ДУГААР
PRESENTINGLINK(Source.Link) AS Link,
ТӨЛӨӨЛӨЛИЙНЛАВЛАГА(DATETIME(2016,10,07)) Огноо"
;
// Boolean = ҮНЭН, Тоо = 4, Холбоос = "Бэлэн мөнгөний баримтын захиалгын дугаар....-аас..."
// Огноо=2016.10.07 0:00:00

Функцүүд ТӨРӨЛТэгээд УТГА ТӨРӨЛ

Чиг үүрэг ТӨРӨЛ 1C: Enterprise платформын өгөгдлийн төрлийг буцаана.

Хүсэлт. Текст = "СОНГО
TYPE (Тоо)
TYPE (мөр),
ТӨРӨЛ (Баримт бичиг. Зардлын бэлэн мөнгөний захиалга)"
;

Чиг үүрэг УТГА ТӨРӨЛтүүнд дамжуулсан утгын төрлийг буцаана.

Хүсэлт. Текст = "СОНГО
УТГЫН ТӨРӨЛ (5) Тоо,
ТӨРӨЛ ("
"Мөр" ") AS мөр,
TYPE (Source.Link) AS лавлагаа
Лавлахаас. Эх сурвалж AS Эх сурвалж"
;
//Тоо=Дугаар, мөр=мөр, лавлах = DirectoryLink.Source

Эдгээр функцийг жишээлбэл, хүсэлтэд хүлээн авсан талбар нь ямар нэг төрлийн утгатай эсэхийг мэдэх шаардлагатай үед ашиглахад тохиромжтой. Жишээлбэл, харилцагч талуудын холбоо барих мэдээллийг Холбоо барих мэдээллийн бүртгэлээс авъя (зөвхөн эсрэг талууд төдийгүй байгууллага, хувь хүмүүс гэх мэт холбоо барих хаягууд энд хадгалагддаг):

Хүсэлт. Текст = "СОНГО

FROM

ХААНА
VALUES TYPE(ContactInformation.Object) = TYPE(Лавлах.Counterparties)"
;

Чиг үүрэг УТГА

Чиг үүрэг Утга 1С тохиргооны объектуудыг ашиглахгүйгээр шууд хүсэлтэд ашиглах боломжийг танд олгоно.

Өмнөх жишээн дээр дахиад нэг нөхцөл нэмье. Та зөвхөн түншүүдийнхээ утасны дугаарыг авах хэрэгтэй.

Хүсэлт. Текст = "СОНГО
Холбоо барих мэдээлэл.Танилцуулга
FROM
Мэдээллийн бүртгэл.Холбоо барих мэдээлэл ХЭРХЭН Холбоо барих мэдээлэл
ХААНА
ҮНЭ ТӨРӨЛ(Холбоо барих мэдээлэл.Объект) = TYPE(Лавлах.Харилцагч талууд)
БА ContactInfo.Type = VALUE(Enum.ContactInfoTypes.Phone)"
;

Энэ функцийг зөвхөн урьдчилан тодорхойлсон утгуудад ашиглах боломжтой гэдгийг тэмдэглэх нь зүйтэй, i.e. тохируулагчаас шууд хандах боломжтой утгуудтай. Энэ нь функц юм УТГАХэрэглэгчийн үүсгэсэн лавлах элементүүдтэй ашиглах боломжгүй, гэхдээ тооллого, урьдчилан тодорхойлсон лавлах элементүүд, утгуудтай ажиллах боломжтой. EmptyLink.

Оператор ХОЛБООС

Оператор ХОЛБООСхүсэлтээр буцаасан утгуудыг тодорхой лавлагааны төрөлд хамаарах эсэхийг шалгах зорилготой юм. Үүнтэй ижил ажлыг функцуудыг ашиглан хийж болно ТӨРӨЛТэгээд УТГА ТӨРӨЛ(илүү өргөн хүрээтэй бөгөөд дээр хэлэлцсэн).

Жишээлбэл, эсрэг талуудын холбоо барих мэдээллийг сонгох ажлыг дараахь байдлаар шийдэж болно.

Хүсэлт. Текст = "СОНГО
Холбоо барих мэдээлэл.Танилцуулга
FROM
Мэдээллийн бүртгэл.Холбоо барих мэдээлэл ХЭРХЭН Холбоо барих мэдээлэл
ХААНА
Холбоо барих мэдээлэл.Object LINK лавлах.Харилцагч талууд"
;

Оператор ЭКСПРЕСС

Оператор ЭКСПРЕСС 1С асуулгад хоёр тохиолдолд ашиглагддаг:

  • анхдагч төрлийн шинж чанарыг өөрчлөх шаардлагатай үед;
  • нийлмэл өгөгдлийн төрөл бүхий талбарыг нэг төрлийн талбар болгон хувиргах шаардлагатай үед.

Анхдагч өгөгдлийн төрлүүд нь: тоо, мөр, огноо, логик.Эдгээр өгөгдлийн төрлүүдийн зарим нь нэмэлт шинж чанартай байдаг. Төрөл Тооурт ба нарийвчлалтай, төрөл Шугам -урт эсвэл хязгааргүй.

Оператор ЭКСПРЕССөгөгдлийн төрлийг бус харин нэмэлт шинж чанарыг өөрчлөх боломжийг танд олгоно. Жишээлбэл, тэрээр хязгааргүй урттай утсыг хязгаарлагдмал урттай утас болгон хувиргаж чадна. Хэрэв та асуулгын үр дүнг ийм талбараар бүлэглэх шаардлагатай бол энэ нь хэрэг болно. Та хязгааргүй урттай талбаруудаар бүлэглэх боломжгүй тул бид үүнийг 200 тэмдэгтийн урттай мөр болгон хөрвүүлдэг.

Хүсэлт. Текст = "СОНГО
ТООО (ӨӨР ӨӨР БҮТЭЭГДЭХҮҮН ирэх. Холбоос) AS Холбоос
FROM
Баримт бичиг.Бараа, үйлчилгээний хүлээн авалт ХЭРХЭН Бараа, үйлчилгээг хүлээн авах
GROUP BY
EXPRESS(Бараа, үйлчилгээний хүлээн авалт. Сэтгэгдэл AS ROW (200))"
;

Зарим тохиолдолд нийлмэл өгөгдлийн төрөл бүхий талбаруудын хүсэлтийг 1С платформ оновчтой боловсруулахгүй байж болно. Үүний үр дүнд асуулгын хугацааг уртасгадаг тул нийлмэл төрлийг нэг төрөлд урьдчилан хөрвүүлэх нь ашигтай байж болох юм.

Хүсэлт. Текст = "СОНГО
EXPRESS(Хөдөлгөөн барааны эргэлт.Order AS Document. Хэрэглэгчийн захиалга). Date AS Захиалгын огноо,
Барааны эргэлт.Нэршил
FROM
Хуримтлалыг бүртгэх.Барааны хөдөлгөөн.Барааны эргэлт AS Барааны эргэлт.
ХААНА
Барааны эргэлт.Захиалгын LINK Баримт бичиг.Үйлчлүүлэгчийн захиалга"
;

Операторууд СОНГОЛТТэгээд IS NULL

Оператор СОНГОЛТоператортой төстэй ХЭРВЭЭсуулгасан 1С хэл дээр, гэхдээ бага зэрэг буурсан функцтэй.

Бид Холбоо барих мэдээллийн бүртгэлээс холбоо барих мэдээллийг хүлээн авахыг хүсч байгаа бөгөөд үүний зэрэгцээ энэ нь эсрэг талын эсвэл хувь хүнийх эсэхийг тусдаа хүсэлтийн талбарт зааж өгөхийг хүсч байна гэж бодъё.

Хүсэлт. Текст = "СОНГО
Холбоо барих мэдээлэл.Танилцуулга,
СОНГОЛТ
ХЭЗЭЭ ҮНЭ ТӨРӨЛ(Холбоо барих мэдээлэл.Объект) = TYPE(Лавлах.Харилцагч талууд)
ТЭГЭЭД "
Эсрэг тал "
ӨӨР СОНГОЛТ
ХЭЗЭЭ ҮНЭ ТӨРӨЛ(Холбоо барих мэдээлэл. Объект) = TYPE (Лавлах. Хувь хүн)
ТЭГЭЭД "
Хувь хүн"
ӨӨР "Өөр хэн нэгэн" "
ТӨГСГӨЛ
ЭЗЭН БОЛОХ
FROM
Мэдээллийн бүртгэл. Холбоо барих мэдээлэл AS Холбоо барих мэдээлэл"
;

Дизайн дээр жишээн дээрээс харж болно СОНГОЛТгэдэг үгийн ард үргэлж нөхцөл байдаг ХЭЗЭЭ;үгийн дараа нөхцөл үнэн байвал утга хэрэглэнэ ТЭГВЭЛнөхцөл хангагдаагүй тохиолдолд тухайн үгийн дараа хэрэглэх утга ҮГҮЙ БОЛ.Бүх гурван дизайны элемент СОНГОЛТзаавал байх ёстой. Элементийг орхих ҮГҮЙ БОЛ, операторыг ашиглахтай адил арга ХЭРВЭЭсуулгасан 1С хэл дээр энэ нь боломжгүй юм. Мөн оператороос СОНГОЛТдизайны аналог байхгүй ЭЛСЕЙФ, гэхдээ та нэг хөрөнгө оруулалт хийж болно СОНГОЛТөөр нэг жишээнд бидний жишээнд хийсэн шиг.

Оператор IS NULLдизайнд ашигладаг СОНГОЛТ NULL төрлийн асуулгын талбарыг харьцуулах.

Хүсэлт. Текст = "СОНГО
СОНГОЛТ
УТГА ХҮМҮҮС БАЙХ ҮЕД 0
БУСДАА гэсэн утгатай
ТӨГСГӨЛ"
;

Үүнээс гадна оператор IS NULLөгүүлбэр зэрэг асуултын нөхцөлд ашиглаж болно ХААНА.

Редакторын сонголт
Амьдрал үүсч болох гараг нь хэд хэдэн тодорхой шалгуурыг хангасан байх ёстой. Хэд хэдэн нэрлэвэл: she should...

Амьдрал үүсч болох гараг нь хэд хэдэн тодорхой шалгуурыг хангасан байх ёстой. Хэд хэдэн нэрлэвэл: she should...

Телепортацын боломж бол хамгийн халуухан маргаантай паранормаль ба парантикийн асуудлуудын нэг юм. Үүнээс гадна, энэ нь тулгуурладаг ...

Удирдлагын авторитар-хүнд суртлын аргууд (тушаал-захиргааны тогтолцоо) давамгайлж, дарангуйлах чиг үүргийг хэт хүчирхэгжүүлсэн...
Элемент ба цаг агаар Шинжлэх ухаан, технологи Ер бусын үзэгдэл Байгаль орчны хяналт Зохиогчийн хэсэг Түүхийг нээх...
Загалмайтны аян дайн гэж юу байсан, оролцогчид ямар үр дүнд хүрсэн талаар дэлхийн түүхчид маргалдсаар байна. Хэдийгээр...
Богдан Хмельницкийн польшуудын эсрэг хийсэн олон кампанит ажил, тулалдаанд Татарын арми холбоотон болж байсан нь мэдэгдэж байна. Татараас...
Чернобылийн атомын цахилгаан станцад гарсан осол нь цөмийн эрчим хүчний салбарын хамгийн том осол юм. Энэ нь байгаль орчны ноцтой гамшигт хүргэж, ...
Дэлхийн 2-р дайны зургаан жилийн хугацаанд Нисдэг Үл мэдэгдэх нисдэг биетүүдтэй тулгарсан түүх олон байсан ч шуугиан тарьсан мэдээллүүдээс гадна...