Хүсэлт үүсгэх, ажиллах (эхлэгчдэд). Хүсэлт үүсгэх, түүнтэй ажиллах (анхан хүмүүст) 1s 8.3 хүсэлт байгаа бол

1С програмчлал нь зөвхөн програм бичихээс илүү зүйлээс бүрддэг. 1С бол түүний ажилладаг хэрэглэгчийн үйлдэл, өгөгдлийн ембүү юм.

Өгөгдөл нь мэдээллийн санд хадгалагддаг. 1С асуулга нь өгөгдлийн сангаас өгөгдлийг хэрэглэгчдэд хэлбэрээр харуулах эсвэл боловсруулахын тулд олж авах арга юм.

Тайлангийн үндсэн хэсэг нь 1С хүсэлт юм. Тайлангийн хувьд ACS нь тайлангийн хамгийн том хэсэг юм.

Суух. Амьсгаа авах. Тайвшир. Одоо би танд мэдээ хэлье.

1С дээр програмчлахын тулд 1С програмчлалын хэлийг мэдэх нь хангалтгүй юм. Та мөн 1C query хэлийг мэдэх хэрэгтэй.

1С асуулгын хэл нь мэдээллийн сангаас ямар өгөгдөл авах шаардлагатайг тодорхойлох боломжийг бидэнд олгодог бүрэн тусдаа хэл юм.

Тэр бас хоёр хэлтэй - өөрөөр хэлбэл та орос эсвэл англи хэлээр бичиж болно. Энэ нь SQL query хэлтэй маш төстэй бөгөөд үүнийг мэддэг хүмүүс амрах боломжтой.

1С хүсэлтийг хэрхэн ашигладаг

Хэрэглэгч 1С-г Enterprise горимд ажиллуулахад ажиллаж байгаа үйлчлүүлэгчид нэг грамм өгөгдөл байхгүй болно. Тиймээс, лавлах нээх шаардлагатай үед 1С нь мэдээллийн сангаас мэдээлэл авахыг хүсдэг, өөрөөр хэлбэл 1С хүсэлт гаргадаг.

1С асуулга нь:

  • Автомат асуулга 1С
    Систем автоматаар үүсгэсэн. Та баримт бичгийн жагсаалтын маягт үүсгэсэн байна. Багана нэмсэн. Энэ нь таныг энэ маягтыг Аж ахуйн нэгжийн горимд нээх үед асуулга гарч, энэ баганын өгөгдлийг хүсэх болно гэсэн үг юм.
  • Хагас автомат асуулга 1C
    1С хэл дээр олон арга (функц) байдаг бөгөөд хандах үед мэдээллийн санд асуулга хийдэг. Жишээлбэл.GetObject()
  • Гарын авлагын 1С асуулга (програмистаас тусгайлан асуулга хэлбэрээр бичсэн)
    Та 1С хүсэлтийг өөрөө кодоор бичиж, гүйцэтгэх боломжтой.

1С асуулга үүсгэх, гүйцэтгэх

1С хүсэлт нь 1С хүсэлтийн хэл дээрх хүсэлтийн бодит текст юм.
Текстийг үзэг ашиглан бичиж болно. Үүнийг аваад бичээрэй (хэрэв та энэ хэлийг мэддэг бол).

1С нь визуал програмчлалын үзэл баримтлалыг сурталчилж байгаа бөгөөд ихэнх эсвэл бараг бүх зүйлийг гараар код бичихгүйгээр хийх боломжтой байдаг тул асуулгын хэлийг мэдэхгүй ч асуулгын текстийг зурах боломжийг олгодог Query Constructor тусгай объект байдаг. Гэсэн хэдий ч гайхамшгууд тохиолддоггүй - үүний тулд та бүтээгчтэй хэрхэн ажиллахаа мэдэх хэрэгтэй.

1С хүсэлтийн текст бэлэн болмогц түүнийг гүйцэтгэх шаардлагатай. Энэ зорилгоор 1С код Request() дотор объект байдаг. Энд нэг жишээ байна:

Хүсэлт = Шинэ хүсэлт();
Query.Text = "СОНГОХ
| Нэршил.Холбоос
|FROM
| Лавлах.Нэршил AS Нэршил
|ХАААН
| Нэршил.Үйлчилгээ";
Сонгох = Query.Run().Select();

Тайлан (Selection.Link);
Төгсгөлийн мөчлөг;

Жишээн дээр харж байгаагаар 1С хүсэлтийг гүйцэтгэсний дараа үр дүн нь бидэнд ирдэг бөгөөд бид үүнийг боловсруулах ёстой. Үр дүн нь хүснэгтийн нэг буюу хэд хэдэн мөр (тусгай хэлбэрээр) юм.

Үр дүнг ердийн хүснэгтэд байршуулж болно:
Fetch = Query.Run().Unload(); //Үр дүн – утгуудын хүснэгт

Эсвэл зүгээр л мөр мөрөөр тойрч яв.
Сонгох = Query.Run().Select();
While Select.Next() давталт
//Асуулгын үр дүнг ашиглан ямар нэгэн зүйл хий
Төгсгөлийн мөчлөг;

1С хүсэлттэй ажиллах

1С асуулгын үндсэн зарчим

1С хүсэлтийг бий болгох үндсэн зарчим -
Хүснэгтийн гарчиг ХААНА Нөхцөлөөс талбаруудын жагсаалтыг СОНГОХ

Ийм 1С хүсэлтийг бий болгох жишээ:

СОНГОХ
//сонгох талбаруудын жагсаалт
Холбоос,
нэр,
Код
FROM
//бидний өгөгдлийг сонгох хүснэгтийн нэр
//хүснэгтийн жагсаалт гэдэг нь тохируулагчийн цонхон дахь объектуудын жагсаалт юм
Лавлах.Нэршил
ХААНА
//сонголтыг заана
Бүтээгдэхүүний төрөл = &Үйлчилгээ //гадаад үнэ цэнээр сонгох
Эсвэл Үйлчилгээ // Boolean төрлийн "Үйлчилгээ" атрибут, утгаар сонгох Үнэн
АНХААРУУЛАХ
//Ангилах
Нэр

1С хүснэгтүүдийн жагсаалт

Та тохируулагчийн цонхноос хүснэгтийн нэрийг харж болно. Та зүгээр л "Лавлах"-ын оронд "Лавлах" гэж бичих хэрэгтэй, жишээ нь "Лавлах.Нэршил" эсвэл "Бараа, үйлчилгээний баримт бичиг. Борлуулалт" эсвэл "Хуримтлал. Борлуулалтын бүртгэл".

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

Мэдээллийн Бүртгэл.БүртгэлНэр.Сүүлийн зүсмэл(&Огноо) – Мэдээллийн бүртгэлээс 1С хүсэлт, хэрэв энэ нь тогтмол байдаг бол тодорхой хугацаанд.

Хуримтлалын бүртгэл. Бүртгэлийн нэр. Үлдэгдэл(&Огноо) – Тодорхой огнооны үлдэгдлийн бүртгэлээс 1С хүсэлт

Хуримтлалын бүртгэл.Бүртгэлийн нэр.Эргэлтийн (&Эхлэх огноо, &Төгсгөлийн огноо) – Эхлэх өдрөөс дуусах огноо хүртэлх хугацааны эргэлтийн бүртгэлээс 1С хүсэлт.

Нэмэлт зарчим

Бид зарим өгөгдлийн жагсаалтыг хүсэх үед үндсэн зарчмууд ажилладаг. Гэхдээ бид тоонуудыг хүсэх боломжтой бөгөөд хүсэлт нь бидний төлөө тоолж болно (жишээлбэл, тэдгээрийг нэмнэ үү).

СОНГОХ
//Quantity(FieldName) – тоо хэмжээг тоолно
//Field AS OtherName – талбарын нэрийг өөрчилнө
Тоо хэмжээ (Холбоос) AS Оруулсан баримт бичгийн тоо хэмжээ
FROM

ХААНА
явуулсан

Энэхүү 1С хүсэлт нь нийт баримт бичгийн тоог бидэнд буцааж өгөх болно. Гэсэн хэдий ч баримт бичиг бүр Байгууллагын талбартай байдаг. Бид 1С асуулга ашиглан байгууллага бүрийн баримт бичгийн тоог тоолохыг хүсч байна гэж бодъё.

СОНГОХ
//зөвхөн баримт бичгийн талбар
Байгууллага,
//тоо хэмжээг тоол
Quantity(Link) AS QuantityBy Байгууллагууд
FROM
Баримт бичиг.Бараа үйлчилгээний борлуулалт
ХААНА
явуулсан
GROUP BY

Байгууллага

Энэхүү 1С хүсэлт нь байгууллага бүрийн баримт бичгийн тоог бидэнд буцааж өгөх болно (мөн "байгууллага" гэж нэрлэдэг).

1С хүсэлтийг ашиглан эдгээр баримт бичгийн хэмжээг нэмж тооцоолъё.

СОНГОХ
//зөвхөн баримт бичгийн талбар
Байгууллага,
//тоо хэмжээг тоол

// дүнг тоол

FROM
Баримт бичиг.Бараа үйлчилгээний борлуулалт
ХААНА
явуулсан
GROUP BY
//хэрэв талбаруудын жагсаалтад count() функц болон нэг буюу хэд хэдэн талбар зэрэг байвал ашиглах ёстой - тэгвэл та эдгээр талбараар бүлэглэх хэрэгтэй.
Байгууллага

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

СОНГОХ
//зөвхөн баримт бичгийн талбар
Байгууллага,
//тоо хэмжээг тоол
Тоо хэмжээ(Холбоос) AS Тоо хэмжээ Байгууллагуудаар,
// дүнг тоол
Дүн(DocumentAmount) AS Дүн
FROM
Баримт бичиг.Бараа үйлчилгээний борлуулалт
ХААНА
явуулсан
GROUP BY
//хэрэв талбаруудын жагсаалтад count() функц болон нэг буюу хэд хэдэн талбар зэрэг байвал ашиглах ёстой - тэгвэл та эдгээр талбараар бүлэглэх хэрэгтэй.
Байгууллага
PO ҮР ДҮН Ерөнхий

1C query хэл нь өргөн цар хүрээтэй бөгөөд нарийн төвөгтэй бөгөөд бид түүний бүх чадварыг нэг хичээлээр авч үзэхгүй - бидний дараагийн хичээлүүдийг уншина уу.

1С асуулгын хэлний нэмэлт боломжуудын талаар товч дурдвал:

  • Олон хүснэгтээс өгөгдлийг нэгтгэх
  • Оруулсан асуулга
  • Багцын хүсэлт
  • Өөрийнхөө виртуал хүснэгтийг үүсгэх
  • Утга хүснэгтээс асуулга
  • Утга авах, удирдахад суурилуулсан функцуудыг ашиглах.

1С Query Builder

Хүсэлтийн текстийг гараар бичихгүйн тулд 1С хүсэлтийн дизайнер байдаг. Модулийн аль ч хэсэгт хулганы баруун товчийг дараад 1C Query Designer-ийг сонгоно уу.

1C query дизайнерын зүүн талд байгаа хүссэн хүснэгтээ сонгоод баруун тийш чирнэ үү.

1C query дизайнер дээрх хүснэгтээс шаардлагатай талбаруудыг сонгоод баруун тийш чирнэ үү. Хэрэв та талбарыг сонгоод зогсохгүй түүнд ямар нэгэн нийлбэрийн функцийг ашиглахыг хүсвэл чирсний дараа талбар дээр хулганаар хоёр удаа дарна уу. Бүлэглэх таб дээр та бүлэглэх шаардлагатай талбаруудыг сонгох (чирэх) хэрэгтэй.

1С асуулгын дизайнерын "Нөхцөл" таб дээрээс та шаардлагатай сонголтыг ижил аргаар сонгож болно (сонголт хийх талбаруудыг чирж). Зөв нөхцөлийг сонгохоо мартуузай.

Захиалгын таб дээр эрэмбэлэхийг зааж өгсөн болно. Үр дүнгийн таб дээр - үр дүнг нэгтгэн дүгнэх.

1С асуулгын зохион бүтээгчийг ашигласнаар та одоо байгаа асуулгыг судлах боломжтой. Үүнийг хийхийн тулд одоо байгаа хүсэлтийн текстэн дээр хулганы баруун товчийг дараад 1С асуулгын дизайнерыг сонгоод хүсэлт нь 1C query дизайнер дээр нээгдэнэ.

1С 8 асуулгын хэл нь 1С програмистын хувьд зайлшгүй шаардлагатай хэрэгсэл бөгөөд өгөгдөлтэй ажиллахдаа илүү товч, энгийн, ойлгомжтой код бичих, системийн нөөцийг бага ашиглах боломжийг олгодог. Энэ нийтлэл нь 1C 8 query хэлэнд зориулсан цуврал хичээлүүдийг нээнэ. Эхний хичээлээр бид энэ хэлний үндсэн операторын бүтцийг авч үзэх болно - СОНГОХ.Энэ операторыг ашигласнаар та өгөгдлийн сангийн хүснэгтүүдээс сонголт хийх боломжтой. Сонгосон хүснэгтийн өгөгдлийг эрэмбэлэх, түүн дээр байрлуулах нөхцөл, бусад хүснэгтийн өгөгдөлтэй холбож, нэгтгэх, янз бүрийн талбараар бүлэглэх гэх мэт олон зүйлийг хийх боломжтой.

Асуулгын хэл 1С аж ахуйн нэгж 8 - Операторын бүтэц СОНГОХ

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

[ЗӨВШӨӨРӨЛТ] [ӨӨР] [ЭХНИЙ A] [Талбар1] [Нийтийн нэр1], [Талбар2] [Алиар2], ... [ТалбарM] [Түр зуурынХүснэгтНэр] [Түр зуурынХүснэгтНэрээс] [Хүснэгт 1-ээс AliasTableTable1-ээр НЭГДСЭН] [[ДОТООД НЭГДСЭН] [ЗҮҮН НЭГДСЭН] [БҮРЭН НЭГДСЭН] Хүснэгт 2-г Хуваарилах нэр Хүснэгт2 [[ДОТООД НЭГДСЭН] [ЗҮҮН НЭГДСЭН] [БҮРЭН НЭГДСЭН] ХүснэгтC AS Alias ​​ХүснэгтC Илэрхийлэл1-ээр [Ба илэрхийлэл2]...[Ба илэрхийлэлD]] .. ... ... Илэрхийлэл1-ээр [Ба Илэрхийлэл2]...[Ба ИлэрхийлэлЕ]] ... [ХүснэгтF-г ХүснэгтF-ийн нэрээр] ... ] [Бүлэглэх талбар11-р бүлэглэх[,] ... [Бүлэглэх талбарG]] [ХАААН Илэрхийлэл1 [БА Илэрхийлэл2] ... [БА илэрхийлэлH]] [БҮГДИЙГ НЭГДЭЕ...] [; ...] [Нөгөө нэр1-ээр ИНДЕКС ... AliasB] [НИЙТ [Нэгдүүлэх функц(талбар1)][,] [Нэгтлэх функц(талбар2)][,] ... [Нэгтлэх функц(талбарI)] [ЕРӨНХИЙ] [,] [ GroupingField1][,] ... [GroupingFieldj]]

Талбаруудтай ажиллах түлхүүр үг, блокууд

  • СОНГОХ— операторын эхлэлийг харуулсан түлхүүр үг;
  • ЗӨВШӨӨРӨЛТЭЙСонголтонд тухайн хэрэглэгчийн унших эрх бүхий хүснэгтийн бичлэгүүдийг оруулах ёстойг харуулж байна;
  • ТӨРӨЛтүүвэрт зөвхөн өөр өөр (бүх талбарт) урсгалыг оруулах ёстойг харуулж байна. Өөрөөр хэлбэл, давхардсан мөрүүдийг дээжээс хасах болно;
  • АНХНЫ Ахэрэв та энэ түлхүүр үгийг зааж өгвөл асуулгад сонгосон мөрүүдийн зөвхөн эхний А-г оруулах ба энд А нь натурал тоо;
  • Талбайн блок— энэ блок нь сонголтонд оруулах шаардлагатай талбаруудыг заана. Эдгээр талбарууд нь сонгосон багана байх болно. Хамгийн энгийн тохиолдолд талбар нь дараах байдлаар харагдана: Хүснэгтийн Alias.TableFieldName AS Талбарын нэр.

    Ингэснээр бид энэ талбарыг аль хүснэгтээс авч байгаагаа зааж өгнө. 1С асуулгын хэл нь танд ямар нэгэн өөр нэр зааж өгөх боломжийг олгодог боловч тэдгээрийг ижил SELECT мэдэгдэлд давтаж болохгүй. Талбар нь хүснэгтийн талбарууд, асуулгын хэлний функцууд болон нэгтгэх функцуудын янз бүрийн хослолуудаас бүрдэх илүү төвөгтэй байж болох ч бид энэ зааварт эдгээр тохиолдлыг авч үзэхгүй;

Хүснэгттэй ажиллах түлхүүр үг, блокууд

  • Түр хүснэгтийн нэр PUT- түлхүүр үг PLACEнь тодорхой нэртэй түр зуурын хүснэгтийг үүсгэх зорилготой бөгөөд энэ нь өгөгдсөн 1С 8 сессийн хугацаанд дуусах хүртэл эсвэл түр хүснэгтийг устгах хүртэл RAM-д хадгалагдах болно. Нэг 1С 8 сессийн түр зуурын хүснэгтүүдийн нэрийг давтаж болохгүй гэдгийг тэмдэглэх нь зүйтэй;
  • Хүснэгт ба харилцааны блок- блок нь энэ асуулгад ашигласан бүх хүснэгтүүд болон тэдгээрийн хоорондын хамаарлыг заана. Блок нь түлхүүр үгээр эхэлдэг FROM,дараа нь эхний хүснэгтийн нэр болон бусад нэрийг оруулна. Хэрэв энэ хүснэгт нь бусад хүснэгттэй холбоотой бол харилцааг зааж өгнө. 1С асуулгын хэл нь дараах холболтын төрлүүдийг агуулдаг.
    • ДОТООД НЭГДСЭН— зүүн талын хүснэгтийн бичлэгийг зөвхөн холболтын нөхцөл хангагдсан тохиолдолд, баруун талын хүснэгтийн бичлэгийг зөвхөн холболтын нөхцөл хангагдсан тохиолдолд сонгоход оруулна;
    • ЗҮҮН ХОЛБОО— зүүн талын хүснэгтийн бичлэгийг ямар ч тохиолдолд сонгон шалгаруулалтад оруулах, баруун талын хүснэгтийн бичлэгийг зөвхөн холболтын нөхцөл хангагдсан тохиолдолд сонгон шалгаруулалтад оруулна;
    • БҮРЭН ХОЛБООТОЙ— зүүн талын хүснэгтийн бичлэгийг ямар ч тохиолдолд эхлээд сонголтонд оруулна, дараа нь зөвхөн холболтын нөхцөл хангагдсан тохиолдолд баруун талын хүснэгтийн бичлэгийг ямар ч тохиолдолд эхлээд сонголтонд оруулна. уулзаж байна. Энэ тохиолдолд үүссэн давхардсан мөрүүдийг дээжээс хасна.

    Холболтын төрлүүдийн дараа хоёр дахь хүснэгтийн нэр ба бусад нэрийг зааж өгсөн болно. Дараа нь түлхүүр үг гарч ирнэ BY, дараа нь логик операторууд хоорондоо холбогдсон харилцааны нөхцөлүүд БА, OR.Нөхцөл дэх илэрхийлэл бүр нь логикийн утгыг буцаах ёстой (Үнэн, Худал). Хэрэв эхний хүснэгт нь хоёр дахь хүснэгтээс бусад хүснэгтэд холбогдсон бол холболтын төрлийг дахин зааж өгнө гэх мэт. Холболтод оролцож буй хүснэгт бүр нь эргээд бусад хүснэгтүүдтэй холбогдож болох бөгөөд үүнийг асуулгын бүтцийн диаграммд харуулав. Хэрэв хүснэгт нь эхнийхтэй холбоогүй бол холболтын төрөлгүйгээр зааж өгсөн бол түүний холболтыг дагаж болно гэх мэт;

Түлхүүр үг болон өгөгдөл хувиргах блокууд

  • Бүлэг блок- энэ блок нь хүснэгтийн мөрүүдийг бүлэглэхэд ашиглагддаг. Түлхүүр үгийн дараа заасан талбаруудын утгууд байвал мөрүүдийг нэг болгон нэгтгэнэ GROUP BYадилхан болж хувирна. Энэ тохиолдолд бусад бүх талбаруудыг нэгтгэх функцийг ашиглан нийлбэрлэж, дундажлаж, ихэсгэж эсвэл багасгана. Талбарын блокт нэгтгэх функцийг ашигладаг. Жишээ: Хамгийн их(TableAlias.TableFieldName) AS FieldAlias
  • Нөхцөл байдлын блок- түлхүүр үгийн дараа энэ блокт ХААНАлогик оператороор тусгаарлагдсан нөхцөлт илэрхийллүүдийг зааж өгсөн болно БА, OR, сонгосон мөрүүдийн аль нэгийг түүвэрт оруулахын тулд нийлбэр дэх бүх нөхцөл нь утгатай байх шаардлагатай Үнэн.
  • БҮХИЙГ НЭГДҮҮЛ— энэ түлхүүр үг нь асуулга (оператор СОНГОХ). 1С асуулгын хэл нь хэд хэдэн асуултыг нэг дор нэгтгэх боломжийг олгодог. Асуултуудыг нэгтгэхийн тулд тэдгээр нь ижил талбартай байх ёстой;
  • «;» - цэг таслалыг бие биенээсээ хамааралгүй хэллэгийг салгахад ашигладаг СОНГОХ;
  • INDEX BY- түлхүүр үг нь түүний дараа заасан талбаруудыг индексжүүлэхэд ашиглагддаг;
  • Хураангуй блок- мод шиг дээжийг бүтээхэд ашигладаг. Түлхүүр үгийн дараа заасан бүлэглэх талбар бүрийн хувьд BY,сонголтод тусдаа мөр үүснэ. Энэ мөрөнд нэгтгэх функцийг ашиглан түлхүүр үгийн дараа заасан талбаруудын нийт утгыг тооцоолно. ҮР ДҮН.

Та 1С 8 асуулгын хэлийг үргэлжлүүлэн сурмаар байна уу? Дараа нь дараагийн нийтлэлийг уншина уу.

Хүсэлт .Текст = "СОНГО | StorageUnits.Link |FROM | Directory.usStorageUnitsStorageUnits-ийг ХЭРХЭН ашиглах вэ // Жишээ 1: хоосон логикийн утгатай харьцуулах: |ХАААН | StorageUnits.AllowSelectionFromReserveZone = Худал // Жишээ 2. гэхдээ хэрэв энэ Boolean тодорхойлогдсон бол энэ нь илүү дээр юм: // сөрөг логикийн нөхцөл: |ХАААН | Хадгалах нэгж БИШ. Нөөцийн бүсээс сонгохыг зөвшөөрнө үү // Жишээ 3. "тодорхой төрлийн лавлах" төрлийн хоосон талбарын нөхцөл дээр үндэслэсэн сонголт. |ХАААН | StorageUnits.ActiveSelectionArea = VALUE(Directory.usSelectionArea.EmptyRef) // Жишээ 3a. "тодорхой төрлийн баримт бичиг" төрлийн хоосон талбарын нөхцөл дээр үндэслэн сонголт |ХАААН | OurInformationRegister.Document = VALUE(Document.OurDocument.EmptyLink) // Жишээ 3b. "өөр өөр төрлийн баримт бичиг" төрлийн хоосон талбарын нөхцөл дээр үндэслэн сонголт хийх ( нийлмэл талбар) |ХАААН | (OurInformationRegister.Document = VALUE(Document.OurDocument1.EmptyLink) | ЭСВЭЛ OurInformationRegister.Document = VALUE(Document.OurDocument2.EmptyLink) | OR... (гэх мэт. - бид энэ компогийн бүх боломжит талбарын нөхцөлүүдийг дараалан жагсаав) ) // Жишээ 4. эсвэл эсрэгээр, хэрэв та "string" төрлийн дүүргэсэн утгыг сонгох шаардлагатай бол нөхцөл нь туслах болно: |ХААА | Хадгалах нэгж.Нэр > """" // Жишээ 5. Хэрэв та нийлмэл өгөгдлийн төрөл бүхий тодорхой төрлийн баримт бичгийг сонгох шаардлагатай бол, жишээлбэл, "RunningTasks" бүртгэлд "Даалгавар" нөөц нь нийлмэл төрөлтэй бөгөөд тэдгээрийн утгуудын дунд "Сонголт" баримт бичиг боломжтой |ХАААН | EXPRESS(Мэдээллийн БүртгэлГүйцэтгэсэнTasks.Task AS Document.Selection) LINK Document.Selection // Жишээ 5a. Тодорхой төрлийн баримт бичгийг сонгох шаардлагатай үед ижил төстэй өөр нэг жишээ | СОНГОЛТ | ХЭЗЭЭ ИЛЭРХИЙЛЭХ ВЭ (ag Correspondence of Documents. DocumentBU AS Document. Бараа, үйлчилгээний хүлээн авалт) LINK Баримт бичиг. Бараа, үйлчилгээний хүлээн авалт | ТЭГЭЭД ""Бараа, үйлчилгээний хүлээн авалт"" | ХЭЗЭЭ ИЛЭРХИЙЛЭХ ВЭ (ag Correspondence of Documents. DocumentBU AS Document. Бараа үйлчилгээний борлуулалт) LINK Баримт бичиг. Бараа, үйлчилгээний борлуулалт | ТЭГЭЭД ""Бараа, үйлчилгээний борлуулалт"" | БУСДАА """" | Баримт бичгийг харах // Жишээ 6. Тодорхойгүй утгын нөхцөлөөр сонгох: |ХАААН | SavedSettings.User = ТОДОРХОЙГҮЙ // Жишээ 7. хуримтлалын бүртгэлийн "Орж байгаа" хөдөлгөөний төрлөөр сонгох, "Зардал" - ижил төстэй): |ХАААН | RegProductsInRetail.MovementType = VALUE(MovementTypeAccumulation.Incoming) // Жишээ 8. Хүсэлтийг гүйцэтгэх шаардлагагүй гэдгийг хүсэлтэд хэрхэн зааж өгөх вэ (жишээ нь, та ямар нэг нөхцөл байдлаас шалтгаалан програмчлалын дагуу хоосон хүсэлтийн үр дүнг буцаах хэрэгтэй - Request.Text = StrReplace(Request.Text, "WHERE Doc.Link = &DocumentLink" , "ХУДАЛ ХААНА БАЙНА");). Үүнийг хийхийн тулд "Хаана худал байна" гэсэн нөхцөлийг нэмнэ үү. Дашрамд хэлэхэд, дээжид хүссэн өгөгдлийн хэмжээнээс үл хамааран ийм хүсэлтийг шууд гүйцэтгэх болно. |ХУДЛАА ХААНА БАЙНА // Жишээ 9. Асуулгын үр дүнд өгөгдөл байгаа эсэхийг шалгах: Хэрвээ биш болХүсэлт.Гүйцэтгэх().Хоосон() Дараа нь // Жишээ 10. хоосон огноог үндэслэн сонгох: |ХАААН | tbStrings.CancellationDate = DATETIME(1, 1, 1)

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

1С Query хэлний функцууд

Учир нь тодорхой тайлбар 1С хайлтын хэлний функцууднь бүтцийн тодорхойлолтоос хамаагүй бага байдаг тул бид функцуудыг судалж эхлэхээр шийдсэн. Одоо тус бүрийг тус тусад нь авч үзье, түүний зорилго, синтакс, хэрэглээний жишээг тайлбарлая.

1. Чиг үүрэг ОН САР ӨДӨР ЦАГ- энэ функц нь "Огноо" төрлийн тогтмол талбар үүсгэдэг.

Синтакс: ОН САР ӨДӨР ЦАГ(<Год>,<Месяц>,<День>,<Час>,<Минута>,<Секунда>)

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

2. ОГНЫ ЗӨРҮҮ функц- хэмжээсүүдийн аль нэгэнд (жил, сар, өдөр, цаг, минут, секунд) хоёр огнооны зөрүүг буцаана. Хэмжилтийг параметр болгон дамжуулдаг.

Синтакс: ЗӨРҮҮЛЭХ огноо(<Дата1>, <Дата2>, <Тип>)

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

Query.Text = "СОНГОХ | DIFFERENCEDATE(DATETIME(2015, 4, 17), DATETIME(2015, 2, 1), DAY) | Тоо.Өдрийн тоогоор";

3. VALUE функц- өгөгдлийн сангаас урьдчилан тодорхойлсон бичлэг бүхий тогтмол талбарыг тохируулдаг бөгөөд та ямар ч төрлийн хоосон холбоос авах боломжтой.

Синтакс: VALUE(<Имя>)

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

Request.Text = "СОНГОХ //урьдчилан тодорхойлсон элемент | VALUE(Дирectory.Currencies.Dollar) AS Dollar, //хоосон холбоос | VALUE(Document.Receipt of Bars and Services.EmptyLink) AS Receipt, //шилжүүлэх үнэ | VALUE(Шилжүүлэх). . Хуулийн хувь хүн. Хувь хүн) AS Хувь хүн, //урьдчилан тодорхойлсон данс | VALUE(Дансны график. Өөрийгөө дэмжих. Материал) AS Данс_10" ;

4. SELECT функц- бидний өмнө кодонд хэрэглэгддэг IF бүтцийн аналог байгаа бөгөөд зөвхөн үүнийг 1С асуулгад ашигладаг.

Синтакс: ХЭЗЭЭ СОНГОХ<Выражение>ТЭГВЭЛ<Выражение>ҮГҮЙ БОЛ<Выражение>ТӨГСГӨЛ

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

Хүсэлт.Текст = //хэрэв дүн нь 7500-аас дээш байвал 300 рублийн хөнгөлөлт байх ёстой, // хэрэв нөхцөл идэвхжсэн бол функц // Дүн - 300-г буцаана // эс тэгвээс хүсэлт нь зүгээр л дүнг буцаана. "СОНГОХ | СОНГОХ | ХЭЗЭЭ TCReceipts. Дүн > 7500 | ДАРАА TCReceipts. Дүн - 300 | БУСДАА TCReceipts. Дүн | Үнийн дүнг Хөнгөлөлттэй ТӨГСӨГДҮҮЛЭХ | FROM | Баримт бичиг. Бараа үйлчилгээний хүлээн авалт. Барааг TCReceipts AS;"

5. EXPRESS функц- тодорхой төрөл бүхий тогтмол талбарыг илэрхийлэх боломжийг танд олгоно.

Синтакс: EXPRESS(Талбарын нэр төрөл нэр)

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

Query.Text = "ЯНГҮЙ СОНГОХ | Борлуулалт.Бүртгэгч.Дугаар, | СОНГОХ | Борлуулалтын.Бүртгэгчийн LINK Баримт бичиг.Зардал ТЭГЭЭД ИЛЭРХИЙЛ(Борлуулалт.Бүртгэгч. Баримт бичиг. Хэрэгжилт) | Төгсгөл | ... | ДУГААР ДУГААР | FROM | Хуримтлал. Худалдан авалтыг Худалдан авалт гэж бүртгээрэй";

Холимог төрлийн талбарт EXPRESS функцийг ашиглах өөр сонголт бий юу, тэдгээр нь хаана тохиолддог вэ? Хамгийн энгийн жишээ бол аливаа бүртгэлийн "Бүртгэгч" юм. Тэгэхээр бид яагаад бүртгэгч дээрх төрлийг шалгуур болгох шаардлагатай байж болох вэ? Бүртгүүлэгчээс "Дугаар" талбарыг сонгохдоо нөхцөл байдлыг авч үзье, аль хүснэгтээс дугаарыг сонгох вэ? Бүгдийн зөв хариулт! Тиймээс бидний хүсэлт хурдан ажиллахын тулд EXPRESS функцийг ашиглан тодорхой төрлийг зааж өгөх хэрэгтэй

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

Query.Text = "SELECT | EXPRESS(Nomenclature.Comment AS Line(300)) AS Comment, | EXPRESS(Nomenclature.Sum AS Number(15,2)) AS Sum |FROM | Directory.Nomenclature AS Nomenclature";

6. ISNULL функц(ISNULL үсгийн өөр хувилбар) - хэрэв талбар нь NULL төрлийн байвал функцийн хоёр дахь параметрээр солигдоно.

Синтакс: ISNULL(<Поле>, <ПодставляемоеЗначение>)

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

Мөн NULL төрлийг ямар нэг утгаар ҮРГЭЛЖ солих нь зүйтэй гэдгийг анхаарна уу, учир нь NULL төрлийн харьцуулалт нь NULL-ийг NULL-тэй харьцуулсан ч гэсэн үргэлж ХУДАЛ буцаана. Ихэнх тохиолдолд NULL утгууд нь хүснэгтүүдийг нэгтгэсний үр дүнд үүсдэг (дотоодоос бусад бүх төрлийн холболтууд).

Query.Text = //Зүйлийг бүхэлд нь болон түүний үлдэгдлийг сонгох //Хэрэв зарим зүйлд үлдэгдэл байхгүй бол //NULL талбар байх бөгөөд үүнийг 0 "SELECT | No. Link, | ISNULL" гэсэн утгаар солино. (Бүтээгдэхүүний нөөцийн үлдэгдэл. InStockRemaining, 0) AS үлдэгдэл | FROM | лавлах.Нэршил AS дугаар | ЗҮҮН ХОЛБОО. Бүртгэл Хуримтлал. Бараа агуулахын үлдэгдэл. Бараа Агуулахад үлдэнэ.

7. ТӨЛӨӨЛӨХ функц- хүсэлтийн талбарын дүрслэлийг авах боломжийг танд олгоно.

Синтакс: ГҮЙЦЭТГЭЛ(<НаименованиеПоля>)

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

Query.Text = "СОНГОХ | ТӨЛӨӨЛӨЛ(Үлдсэн.Үлдсэн.Нэршил) Нэршил, | ТӨЛӨӨЛӨЛ(Үлдсэн.Агуулах) Агуулахын

1С query хэл дээр бүтээгдсэн

Дээр бид тантай ярилцсан 1С хайлтын хэлний функцууд, одоо бодох цаг болжээ 1С query хэл дээр бүтээдэг, тэдгээр нь чухал бөгөөд ашигтай биш тул эхэлцгээе.

1. Барилгын LINK- лавлагааны төрлийг шалгах логик оператор юм. Энэ нь нарийн төвөгтэй төрлийн талбарыг тодорхой төрлөөр шалгахад ихэвчлэн тохиолддог. Синтакс: ХОЛБООС<Имя таблицы>

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

Хүсэлт.Текст = //хэрэв бичигчийн үнэ цэнийн төрөл нь баримт бичгийн хүлээн авалт бол //дараа нь асуулгад "Барааны хүлээн авалт", эс тэгвээс "Барааны борлуулалт" "СОНГОХ | СОНГОХ | ХЭЗЭЭ үлдэгдэл.Бүртгэгч LINK Баримт бичиг. Бараа хүлээн авах ба Үйлчилгээ | ДАРАА ""Хүлээн авалт"" | ӨӨРӨӨ ""Хэрэглээ"" | Хөдөлгөөний төрөл ГЭЖ ТӨГСГӨНЭ | Хуримтлалын бүртгэлээс. Агуулахад үлдсэн бүтээгдэхүүнүүд" ;

2. Загвар ХООСОН- энэ оператор утгыг заасан мужид байгаа эсэхийг шалгадаг.

Синтакс: ХООРОНД<Выражение>БА<Выражение>

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

Request.Text = //код нь 1-ээс 100 хүртэлх зайд байгаа нэршлийг бүхэлд нь авах "СОНГОХ | Нэршил.Холбоос |FROM | Лавлах.Нэршил AS Нэршил |ХААА | Нэршил. 1-ээс 100-ийн хооронд код" ;

3. Барилгын Б ба Б ШАТНАЛТ- шилжүүлсэн жагсаалтад утга байгаа эсэхийг шалгах (массив, утгын хүснэгт гэх мэтийг жагсаалт болгон шилжүүлж болно). IN HIERARCHY оператор нь шатлалыг харах боломжийг олгодог (Дансны графикийг ашиглах жишээ).

Синтакс: IN(<СписокЗначений>), ШАТНАЛТАНД(<СписокЗначений>)

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

Хүсэлт.Текст = //бүх дансны дэд дансыг сонгоно уу "СОНГОХ | Өөрийгөө дэмжих. Дансны холбоос | НАС | Дансны график. Өөрийгөө дэмжих AS Өөрийгөө дэмжих | ХААНА | Өөрийгөө дэмжих. ШАТНАЛТЫН ҮНЭ ЦЭВЭРЛЭХ холбоос (График данс. Өөрийгөө тэжээдэг. Бараа)";

4. Дизайн ТЭЦТЭЙ- Энэ функц нь утсыг мөрний загвартай харьцуулах боломжийг олгодог.

Синтакс: LIKE"<ТекстШаблона>"

Мөрийн загварын сонголтууд:

% - дурын тооны дурын тэмдэгт агуулсан дараалал.

Нэг дурын дүр.

[...] - дөрвөлжин хаалтанд жагсаасан дурын нэг тэмдэгт эсвэл тэмдэгтүүдийн дараалал. Тооцоолол нь мужийг зааж өгч болно, жишээ нь a-z, энэ нь мужид дурын тэмдэгт, түүний дотор мужын төгсгөлүүдийг багтаасан гэсэн үг.

[^...] - үгүйсгэх тэмдгийн дараа жагсаасан тэмдэгтүүдээс бусад дөрвөлжин хаалт дотор жагсаасан тэмдэгтүүдийн аль нэг тэмдэгт эсвэл дараалал.

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

Query.Text = //TABUR язгуурыг агуулсан, //жижиг эсвэл том үсгээр t эхэлсэн нэршлийг бүхэлд нь олоорой "СОНГОХ | Нэршил. Холбоос | FROM | Лавлах. Нэршил AS Нэршил | ХААНА | Бүтээгдэхүүн. Нэршил LIKE "" [Tt ]абур%""" ;

5. Дизайныг ЗӨВШӨӨРӨН- энэ оператор нь зөвхөн мэдээллийн сангаас дуудлага хийгчийн унших зөвшөөрөлтэй бичлэгүүдийг сонгох боломжийг олгодог. Эдгээр эрхийг рекорд түвшинд (RLS) тохируулсан.

Синтакс: SELECT түлхүүр үгийн ард ALLOWED гэж бичнэ

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

Request.Text = "ЗӨВШӨӨРӨГДӨГӨӨ СОНГОХ | Сөрөг талууд. Холбоос | Лавлах

6. ТӨРӨЛИЙН дизайн- давхардсан бүртгэл байхгүй бичлэгийг сонгох боломжийг танд олгоно.

Синтакс: SELECT түлхүүр үгийн ард VARIOUS гэж бичнэ

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

Хүсэлт.Текст = //уншигч эрх бүхий бүртгэлийг сонгоно "ЯНГҮЙ СОНГОХ | Counterparties.Name |FROM | лавлах. Counterparties AS Conterparties" ;

Мөн ТӨРӨЛ БҮТЭЭГДЭХҮҮН бүтээцийг ЗӨВШӨӨРӨГДСӨН оператор болон бусад операторуудтай хамт ашиглаж болно.

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

Request.Text = //уншигч эрх бүхий төрөл бүрийн бүртгэлийг сонгоно "СОНГОХ ЗӨВШӨӨРӨЛТ БАЙГУУЛЛАГЫН | Counterparties.Name |FROM | Лавлах. Counterparties AS Conterparties";

7. НЭГДҮГЭЭР дизайн хийх- асуулгын үр дүнгээс параметрт заасан бичлэгийн тоог сонгоно.

Синтакс: FIRST<число>

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

Хүсэлт.Текст = //"Эхний 4 | CCD дугааруудыг SELECT. Холбоос | FROM | Лавлах. CCD Numbers AS CCD Numbers" лавлахаас эхний 4 CCD дугаарыг сонгоно уу;

8. ӨӨРЧЛӨЛТТЭЙ дизайн- хүснэгтийг түгжих боломжийг олгодог, зөвхөн гүйлгээнд ажилладаг (зөвхөн автомат цоожтой холбоотой).

Синтакс: ӨӨРЧЛӨЛТИЙН ТӨЛӨӨ<НаименованиеТаблицы>

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

Query.Text = "СОНГОХ | Үнэгүй үлдэгдэл үлдэгдэл. Нэршил, | Үнэгүй үлдэгдэл. Үлдэгдэл. Агуулах, | Үнэгүй үлдэгдэл. Үлдэгдэл. Нөөцөд үлдсэн | НЬ | Хуримтлалын бүртгэл. Үнэгүй үлдэгдэл. Үлдэгдэл Чөлөөт үлдэгдэл үлдэгдэл | Хуримтлалыг өөрчлөхөд | Үнэгүй үлдэгдэл. Үлдэгдэл";

9. Дизайн ЗАХИАЛГА- тодорхой талбараар өгөгдлийг зохион байгуулдаг. Хэрэв талбар нь холбоос бол туг тавих үед АВТО ЗАХИАЛГААнгилал нь холбоосын дүрслэлээр хийгдэх бөгөөд хэрэв туг унтарсан бол холбоосыг санах ой дахь холбоосын хаягийн насаар ангилдаг.

Синтакс: АНХААРУУЛАХ<НаименованиеПоля>АВТО ЗАХИАЛГА

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

Query.Text = "СОНГОХ | Үнэгүй үлдэгдэл. Нэршил AS Нэршил, | Үнэгүй үлдэгдэл. Агуулах AS Агуулах, | Үнэгүй үлдэгдэл. Үлдэгдэл. Агуулахад байна | FROM | Хуримтлалыг бүртгэх. Үнэгүй үлдэгдэл. Үнэгүй үлдсэн | ЗАХИАЛГА | Нэршил | АВТО ЗАХИАЛГЫГ Сэргээх";

10. Design GROUP BY- асуулгын мөрүүдийг тодорхой талбараар бүлэглэхэд ашигладаг. Тоон талбаруудыг нэгтгэх функцтэй хамт ашиглах ёстой.

Синтакс: GROUP BY<НаименованиеПоля1>, .... , <НаименованиеПоляN>

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

Query.Text = "СОНГОХ | Агуулахад байгаа бүтээгдэхүүн.Нэршил AS Нэршил, | Агуулахад байгаа бүтээгдэхүүн.Агуулах, | НИЙЛЭГ(Агуулахад байгаа бараа.Агуулахад). ature, | Агуулах дахь бүтээгдэхүүн.Агуулах" ;

11. ХИЙЖ БАЙНА- WHERE бүтэцтэй төстэй өгөгдөл сонгох нөхцөлд нэгтгэх функцийг ашиглах боломжийг танд олгоно.

Синтакс: БАЙХ<агрегатная функция с условием>

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

Query.Text = //InStock талбар нь 3-аас их "СОНГОХ | ItemsInStocks.Nomenclature AS Nomenclature, | ItemsInWarehouses.Warehouse, | SUM(ItemsInStocks.InStock) AS INSTOCK |FROM | RegisterAccsIccsIn БҮЛЭГЛЭХ | Агуулахад байгаа бүтээгдэхүүн.Нэршил, | Агуулахад байгаа бүтээгдэхүүн.Агуулах | |БОЛОМЖТОЙ | ДҮН(Бүтээгдэхүүн агуулах.Дахин) > 3" ;

12. Барилгын INDEX BY- асуулгын талбарыг индексжүүлэхэд ашигладаг. Индексжүүлсэн хайлтыг дуусгахад удаан хугацаа шаардагдах боловч индексжүүлсэн талбаруудаар хайлтыг хурдасгадаг. Зөвхөн виртуал хүснэгтэд ашиглах боломжтой.

Синтакс: INDEX BY<Поле1, ... , ПолеN>

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

Query.Text = "SELECT | Ts.NameOS, | Ts.FolderNumber, | Ts.CodeOS, | Ts.Term, | Ts.Type | PLACE DataTs | FROM | &Ts AS Ts | | INDEX BY | Ts.NameOS, | Ts .CodeOS";

13. Дизайныг ХААНА- ямар ч сонголтын талбарт нөхцөл тавих боломжийг танд олгоно. Үр дүн нь зөвхөн нөхцөлийг хангасан бүртгэлийг агуулна.

Синтакс: ХААНА<Условие1 ОператорЛогСоединения УсловиеN>

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

Query.Text = //Үлдсэн нөхөн олговортой бүх бичлэг сонгогдсон<>0 болон //CalcCompRemaining > 100 "СОНГОХ | Нөхөн олговорRPORemains.Counterparty, |НөхөхRPORemains.Child, | Нөхөн RPORemains.CompensationRemaining, | CompensationRPORemains.AmountForCalcCompRemains |AmountForCalcCompRemains |AmountForCalcCompRemains |AmountForCalcCompRemains |AmountForCalcCompRemains |Place DataTzCalcCompulation. stat ki |ХААНА |Нөхөн RPORҮлдсэн.Нөхөн олговорҮлдсэн<>0 | Мөн нөхөн олговорRPORemains.AmountForCalcCompRemaining> 100" ;

14. Зураг төслийн ҮР ДҮН... ЕРӨНХИЙ- нийлбэр дүнг тооцоолоход ашигладаг; дизайн нь нийт дүнг тооцоолох талбаруудыг тодорхойлж, нийт талбарт нэгтгэх функцуудыг ашигладаг. TOTAL бүтээцийн дараах талбар бүрт нийлбэрийг ашиглах үед өгөгдлийг бүлэглэнэ. Нэмэлт ЕРӨНХИЙ бүтэц байдаг бөгөөд түүний хэрэглээ нь нэмэлт бүлэглэлийг бий болгодог. Та хүсэлтийн үр дүнгийн жишээг доороос харах болно.

Синтакс: ҮР ДҮН<АгрегатнаяФункция1, ... , АгрегатнаяФункцияN>BY<ОБЩИЕ> <Поле1, ... , ПолеN>

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

Хүсэлт.Текст = "СОНГОХ | Тооцоолол. Эсрэг талын гэрээ. Гэрээний төрөл AS Гэрээний төрөл, | Тооцоолол. Эсрэг талын гэрээ AS Гэрээ, | Тооцоолол. Сөрөг тал, | Тооцоолол. Харилцан төлбөр тооцооны үлдэгдэл AS Үлдэгдэл | FROM | Хуримтлалын бүртгэл. Mut. Харилцагч талуудтай хийх тооцоо. Үлдэгдэл AS Тооцоолол | НИЙТ | ДҮН (Үлдэгдэл) |Програм хангамж | ЕРӨНХИЙ, | Гэрээний төрөл";

Зураг дээр хүсэлтийг гүйцэтгэх явцад үүссэн бүлгүүдийг тоймлон харуулсан бөгөөд дээд хэсэг нь ЕРӨНХИЙ хэсэг, хоёр дахь нь эсрэг талын гэрээний гэрээний төрөл талбарт хамаарна.

Энэ нийтлэлд бид 1C query хэл дээрх үүрлэсэн хүснэгтүүдийн сэдвийг судлах болно.

Та асуулга сонгох талбарт үүрлэсэн асуулгын эх хүснэгтийг ашиглаж болно. Жишээлбэл, "Үйлчилгээ үзүүлэх" баримт бичиг нь Үйлчилгээний хүснэгтийн хэсэгтэй тул энэ хүснэгтийн хэсгийг сонгох талбарт бас харуулах боломжтой. Одоо та үүнийг хэрхэн хэрэгжүүлэхийг харах болно.

Сургалтын мэдээллийн сандаа би асуулгын консолыг ажиллуулж, асуулга зохион бүтээгчийг нээж, "Үйлчилгээ үзүүлэх" хүснэгтийг сонгоно.

Энэ хүснэгтийг өргөжүүлье

Үүн дээр бид "Үйлчилгээ" гэсэн хүснэгтийн хэсгийг харж байна.

Энэ хүснэгтийн хэсгийг бүхэлд нь сонгоцгооё.

Таны харж байгаагаар үйлчилгээний бүх хүснэгтийн хэсэг бүхэлдээ талбарт орсон байна.

Хүснэгтийн хэсэг нь үнэндээ "Үйлчилгээ" гэсэн тусдаа талбар хэлбэрээр ирдэг бөгөөд түүний төрөл нь "Хүсэлтийн үр дүн" байх болно гэдгийг анхаарна уу. Хүснэгтийг асуулгад хэрхэн ашиглах талаар сурцгаая.

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

Загвар зохион бүтээгч дээр OK дарж, бидний хүсэлт ямар байхыг харцгаая.

Таны харж байгаагаар хүсэлтэд "Үйлчилгээ" талбарын ард цэг байгаа бөгөөд сонгосон талбаруудыг хаалтанд жагсаасан болно.

Хүсэлтийг биелүүлье.

Зураг дээр бид баримт бичгийн хүснэгтийн хэсэгт сонгосон бүх талбаруудыг "Үйлчилгээ" талбарт таслалаар тусгаарлаж жагсаасан байгааг харж байна. Бүх асуулгын консол дээрх зураг дээрх шиг дэлгэцтэй байдаггүй; заримдаа зүгээр л " " гэж хэлж болно.

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

Ийм хүсэлтийг хэрхэн биелүүлэхийг харцгаая.

Цорын ганц зүйл бол асуулга үүсгэгчийг нээвэл энэ од хадгалагдахгүй.

Бид консол дээр үүрлэсэн хүснэгтээр хэрхэн асуулга хийхийг сурсан, одоо бид сонголтонд үүрлэсэн хүснэгтийг хэрхэн ашиглах талаар сурах болно.

Бодит байдал дээр асуулга боловсруулах үед үүрлэсэн хүснэгтэд хандах нь тийм ч хэцүү биш юм. Та зүгээр л хүснэгтийнхээ нэрээр сонголт руу хандаж, "Асуулгын үр дүн" төрлийн хувьсагчийг авна. Дараа нь та үүнийг ердийн хүсэлтийн үр дүн болгон боловсруулдаг: хэрэв хүсвэл дээж аваарай, хэрэв хүсвэл байршуулаарай.

Доод хүснэгттэй ажилладаг кодын жижиг жишээг доор харуулав.


&Сервер дээр
Процедур FillOnServer()
Хүсэлт = Шинэ хүсэлт;
Хүсэлт. Текст = "СОНГО
| Бүтээгдэхүүний борлуулалт. Холбоос,
| Бүтээгдэхүүний борлуулалт.Бүтээгдэхүүн.(
| Бүтээгдэхүүн,
| Тоо хэмжээ
|FROM
| Баримт бичиг.Бүтээгдэхүүн борлуулах БҮТЭЭГДЭХҮҮНИЙГ ХЭРХЭН ЗАРАХ ВЭ"
;
Татаж авах = Асуулга. Ажиллуулах(). Сонго ();
Баяртай сонголт. Next() давталт
TopLine of Tree = Бүтээгдэхүүний борлуулалт. GetItems();
NewRow = TopRowTree. Нэмэх();
Шинэ шугам. Холбоос = Сонголт. Холбоос;
Хүснэгтийн бүтээгдэхүүн = Сонголт. бараа;
SelectionProducts = Хүснэгтийн бүтээгдэхүүн. Сонго ();
Бүтээгдэхүүн сонгохдоо. Next() давталт
TreeChildRow = NewRow. GetItems();
ProductRow = ChildTreeRow. Нэмэх();
ProductString. Холбоос = Бүтээгдэхүүний сонголт. Бүтээгдэхүүн;
ProductString. Тоо хэмжээ = Дээжийн зүйл. Тоо хэмжээ ;
Төгсгөлийн мөчлөг;
Төгсгөлийн мөчлөг;
Процедурын төгсгөл

Дээрх кодыг тайлбарлая.

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

Дараа нь хамгийн сонирхолтой зүйл бол та үүнийг дараа нь дибаглагч дээр өөрөө харж болно, бид Бүтээгдэхүүн сонгох талбар руу шилжиж, ая тухтай байлгахын тулд энэ талбарыг TableProducts хэсэгт тусдаа хувьсагч болгон бичнэ үү. Энэ хувьсагч нь "Асуулгын үр дүн" төрөл юм. Мөн та энэ үр дүнгийн дээжийг хялбархан авах боломжтой. Үүнийг л бид хийдэг. Дараагийн функц болон while давталтыг ашиглан энэ сонголтыг тойрч гарахад л үлддэг.

Мөн энэ гогцоонд бид сонголтын талбаруудыг үүрлэсэн хүснэгтийн талбар гэж нэрлээд, маягтаас модны хүүхдийн эгнээнд бичнэ.

Энэ код нь буцаж ирэх үр дүн юм

Асуулт хэвээр байна уу?

Та миний "Анхлан суралцагчдад зориулсан 1С дахь асуултууд" хичээлийг судлахдаа тэдэнд өөрөө хариулах болно. Эдгээр болон бусад олон асуудлыг илүү нарийвчлан авч үзэх болно. Бүх мэдээллийг энгийн бөгөөд хүртээмжтэй хэлбэрээр өгсөн бөгөөд 1С програмчлалын талаар сайн мэдэхгүй хүмүүст ч ойлгомжтой байдаг.

20% хямдралын урамшууллын код: hrW0rl9Nnx

Миний төслийг ямар ч хэмжээгээр хандивлаж дэмжээрэй

Миний бүлгүүдэд нэгдээрэй.