1s 8 утгын хүснэгтэд мөр оруулах. Ямар аргууд байдаг, хэд хэдэн утгыг нэгэн зэрэг хайх

Мөнгө, барааг тооцоолохын тулд янз бүрийн хүснэгтүүдийг бизнест өргөн ашигладаг. Бараг бүх баримт бичиг нь хүснэгт юм.

Нэг хүснэгтэд агуулахаас ачих барааг жагсаасан. Өөр нэг хүснэгтэд эдгээр барааны төлбөрийг төлөх үүргийг харуулав.

Тиймээс 1С-д хүснэгттэй ажиллах нь чухал байр суурийг эзэлдэг.

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

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

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

//Хувилбар 1 – асуулгын үр дүнд дараалсан хандалт

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

//2-р сонголт – утгын хүснэгтэд байршуулах
Хүсэлт = Шинэ хүсэлт("Лавлах.Нэршүүлгээс нэр СОНГОХ");
// ширээ аваарай
Хүснэгт = Query.Run().Unload().
//цааш нь бид бүх мөрийг давтаж болно
Хүснэгтийн мөчлөгийн мөр бүрийн хувьд
Тайлан(Мөр.Нэр);
Төгсгөлийн мөчлөг;
//эсвэл мөрүүдэд дур мэдэн хандах
Мөр = Хүснэгт.Find("Хүрз", "Нэр");

Чухал онцлог нь асуулгын үр дүнгээс олж авсан хүснэгтэд бүх баганыг хатуу бичсэн байх болно. Энэ нь Нэршлийн лавлахаас Name талбарыг хүссэнээр та N тэмдэгтээс илүүгүй зөвшөөрөгдөх урттай String төрлийн баганыг хүлээн авна гэсэн үг юм.

Маягт дээрх хүснэгт (зузаан үйлчлүүлэгч)

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

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

Тиймээс, хүснэгтийг маягт дээр байрлуулцгаая. Үүнийг хийхийн тулд та Controls самбараас хүснэгтийг чирж болно. Үүнтэй адилаар та цэснээс Form/Insert Control-ыг сонгож болно.

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

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

Хүснэгтийн хэсгийг сонгоход 1С өөрөө маягт дээрх хүснэгтэд багана нэмнэ. Ийм хүснэгтэд хэрэглэгчийн оруулсан мөрүүд лавлах ном/баримт бичгийн хамт автоматаар хадгалагдана.

Өгөгдлийн ижил шинж чанарт та дурын нэр оруулж, утгын хүснэгтийн төрлийг сонгож болно.

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

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

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

Хүснэгтийг удирдахын тулд маягт дээр командын самбар харуулах хэрэгтэй. Form/Insert Control/Command Bar цэсийн зүйлийг сонгоно.

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

Маягт дээрх хүснэгт (нимгэн/удирдлагатай үйлчлүүлэгч)

Удирдлагатай маягт дээр эдгээр үйлдэл нь арай өөр харагдаж байна. Хэрэв та маягт дээр хүснэгтийн хэсгийг байрлуулах шаардлагатай бол Object салбарыг өргөжүүлж, хүснэгтийн хэсгүүдийн аль нэгийг зүүн тийш чирнэ үү. Тэгээд л болоо!

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

Багана нэмэхийн тулд энэ маягтын атрибут дээр хулганы баруун товчийг дарж, "Атрибут нэмэх" баганыг сонгоно уу.

Дараа нь хүснэгтийг зүүн тийш чирнэ үү.

Хүснэгтэнд командын мөр байхын тулд хүснэгтийн шинж чанараас "Ашиглах" - "Тушаалын мөрний байрлал" хэсгээс утгуудыг сонгоно уу.

Excel-д хүснэгт байршуулж байна

Маягт дээрх 1С хүснэгтийг хэвлэх эсвэл Excel-д байршуулах боломжтой.

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

Удирдлагатай (нимгэн) үйлчлүүлэгчийн хувьд ижил төстэй үйлдлүүдийг цэсийн "Бүх үйлдлүүд/Дэлгэцийн жагсаалт" ашиглан хийж болно.

1С утгын хүснэгтээс хай

Ямар аргууд байдаг, хэд хэдэн утгыг нэгэн зэрэг хайх.

Утгын хүснэгтийг хайх хоёр тусгай арга байдаг:

1. Хай

TVHorizon = Directories.Nomenclature.FindByName("TVHorizon");
FoundString = TZNomenclature.Find(TVHorizon);
//Бид хайлтыг хурдасгахын тулд аль баганаар хайлт хийхийг зааж өгч болно
FoundString = TZNomenclature.Find(TVHorizon, "Нэршил");

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

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

2. FindStrings


Сонгон шалгаруулалтын бүтэц.Insert("Нэршил", TVHorizon); // эхлээд хаана хайхыг багана, дараа нь юу хайхыг зааж өгнө.

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

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


SelectionStructure = Шинэ бүтэц;
Сонгон шалгаруулалтын бүтэц.Insert("Нэршил", TVHorizon);
Сонгох бүтэц.Insert("Тоо хэмжээ", 10);
FoundArray of Rows = TZNomenclature.FindLines(SelectionStructure);

Таны харж байгаагаар цорын ганц сөрөг зүйл бол "тэнцүү" харьцуулалтаас өөр төрлийн харьцуулалтыг ашиглах боломжгүй юм.

Утгын хүснэгт нь өгөгдлийг хүснэгт хэлбэрээр хадгалахад зориулагдсан тусгай бүх нийтийн объект юм. Хүснэгт болон програмын объектуудын хоорондох гол ялгаа нь өгөгдлийн сангийн физик хүснэгттэй холбогдоогүй явдал юм. Утгын хүснэгт нь зөвхөн RAM-д байдаг бөгөөд энэ нь нэг талаас онцгой боломжийг олгодог бөгөөд нөгөө талаас тодорхой хязгаарлалт тавьдаг. Гэсэн хэдий ч хүснэгттэй харилцах боломжийг мэдээллийн санд байгаа объектуудтай харьцахтай харьцуулж болно.

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

Объект болох утгын хүснэгтийн бүтэц

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

Утгын хүснэгт Баганууд

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

Баганууд нь объектуудын цуглуулга учраас багана нэмэх, устгах, засах боломжтой.

Утгын хүснэгтийн мөр

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

Тиймээс мөртэй харилцах нь бусад объектуудтай харилцахтай маш төстэй юм. Та "FillPropertyValues ​​()" урьдчилан тодорхойлсон функцийг ашиглан түүний шинж чанарыг уншиж, бичиж болно. Мөрүүд нь утгын хүснэгтийн гол цуглуулга учраас хүснэгтийн бүх мөрийг устгахдаа “Clear()” аргыг ашигладаг.

Утгын хүснэгт үүсгэх

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

Бүтээгчийг ашиглан хүснэгт үүсгэх

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

DemoTable = Шинэ ValueTable; // Юуны өмнө бид TK-г эхлүүлнэ // Дараа нь бид шинэ баганад шаардлагатай параметрүүдийг тодорхойлж, цуглуулгад нэмнэ // "Нэршил" багана үүсгэх Нэр = "Нэршил"; ValueType = New TypeDescription("DirectoryLink.Нэршил"); Гарчиг = "Нэршил (бүтээгдэхүүн)"; DemoTable.Columns.Add(Нэр, ValueType, Толгой); // "Тоо хэмжээ" багана үүсгэх Нэр = "Тоо хэмжээ"; ValueType = Шинэ TypeDescription("Тоо"); DemoTable.Columns.Add(Нэр, ValueType); // Эдгээр засварын үр дүнд бид бичсэн багана бүхий хоосон хүснэгт үүсгэв. // Хэрэв та анхдагч төрлүүдийг илүү нарийвчлалтай бичих шаардлагатай бол "Төрөлүүдийн тайлбар" бүтээгчийн өргөтгөсөн синтаксийг ашиглах хэрэгтэй.

Хуулбарлах замаар хүснэгт үүсгэх

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

// Техникийн тодорхойлолтын стандартаас бүх мөрийг хуулбарлах боловч зөвхөн заасан хоёр баганыг хадгалах сонголт Стандартын багана = "Нэршил, тоо хэмжээ"; DemoTable = TableEtalon.Copy(, ColumnsEtalon); // Техникийн тодорхойлолтын стандартаас урьдчилан сонгосон мөрүүдийг хуулж, заасан хоёр баганыг хадгалах сонголт.Стандартын мөрүүд = SelectIntoArrayСтандартын хүснэгтээс бидэнд хэрэгтэй мөрүүд(); ColumnsStandard = "Нэршил, тоо хэмжээ"; DemoTable = TableEtalon.Copy(RowsEtalon, ColumnsEtalon); // "Нэршил" гэсэн нэг баганыг хадгалж, заасан шүүлтүүрийг ашиглан техникийн үзүүлэлтийн стандартаас мөр хуулах сонголт // Тоо хэмжээ баганын утга 0 байгаа бүх мөрийг сонгох ба зөвхөн Нэршлийн багана Мөр Сонголт = Шинэ бүтэц(" Хүснэгтэнд "Тоо хэмжээ" гарч ирнэ , 0); ColumnsStandard = "Нэршил"; DemoTable = TableEtalon.Copy(RowsEtalon, ColumnsEtalon); // Хүснэгтийн бүрэн хуулбартай сонголт, дараа нь тоон талбарын утгыг тэгтэй тэнцүүлэх нэг мөрийг устгах ба "Тоо хэмжээ" баганыг бүхэлд нь устгах Мөр сонгох = Шинэ бүтэц("Тоо хэмжээ", 0); ColumnsStandard = "Нэршил"; DemoTable = TableEtalon.Copy(RowsEtalon, ColumnsEtalon); TableRow = DemoTable.Find(0, "Тоо хэмжээ"); DemoTable.Delete(ХүснэгтийнМөр); DemoTable.Columns.Delete("Тоо хэмжээ"); // Үүнтэй төстэй сонголтууд болон тэдгээрийн өөрчлөлтийг хүснэгтийн хэсгүүд болон бүртгэлийн бичлэгийн багцад хэрэглэж болно

Асуулга бүхий хүснэгт үүсгэх

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

// Хуримтлалын бүртгэлийн бүтцэд үндэслэн хоосон хүснэгт үүсгэх жишээ // Ийм байдлаар та мөн бөглөсөн хүснэгт авах боломжтой гэдгийг таахад хялбар юм Query = New Query("SELECT FIRST 0 * Хуримтлалын бүртгэлээс. Бүтээгдэхүүн. Агуулахад"); RequestResult = Request.Execute(); DemoTable = Query Result.Unload(); // Тодорхой заасан төрөл болон талбарын нэрийг ашиглан хоосон хүснэгт үүсгэх жишээ Query = New Query; Query.Text = "ТОП 0-г СОНГОХ | Утга(Дирectory.Nomenclature.EmptyLink) AS Нэршил, | EXPRESS(0 AS ДУГААР(15, 3)) AS Тоо хэмжээ"; RequestResult = Request.Execute(); DemoTable = Query Result.Unload(); // ЧУХАЛ! Хүсэлтээс олж авсан баганын утгын төрлүүд нь үргэлж Null төрлийг агуулж байдгийг бүү мартаарай // Тиймээс хүсэлтээр үүсгэсэн TK нь үргэлж нийлмэл баганын төрлүүдтэй байдаг.

Дүгнэлт

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

Эхлэгчдэд зориулсан бяцхан баримт энд байна - утгын хүснэгттэй ажиллах энгийн жишээнүүд:

1. Утгын хүснэгтийг үүсгэ

ValueTable = Шинэ ValueTable;


2. Утгын хүснэгтэд багана үүсгэ:

ValueTable.Columns.Add("Нэр");
Value Table.Columns.Add("Овог нэр");


3. Баганын нэрийг ашиглан шинэ мөр нэмнэ үү:


NewLine.Name = "Василий";
NewLine.LastName = "Хулуун";


4. Утгын хүснэгтээс утгыг хэрхэн хайх вэ:
Хүссэн утгыг агуулсан хүснэгтийн мөрийг олох шаардлагатай.

FoundRow = ValueTable.Find(SearchValue);


5. Утгын хүснэгтийн тодорхой баганаас эхний тохиолдлыг ол

FoundRow = ValueTable.Find(SearchValue, "Нийлүүлэгч, Худалдан авагч");


6. Хэрэв та утгын хүснэгтээс бүх тохиолдлыг олох шаардлагатай бол:
Бид хайлтын бүтцийг ашигладаг.

SearchStructure = Бүтэц("Ажилтан", SearchValue);
FoundRows массив = ValueTable.FindRows(SearchStructure);


Хайлтын бүтцийг бий болгоцгооё, элемент бүр нь баганын нэрийг түлхүүр болгон, энэ баганад хүссэн утгыг утга болгон агуулна. Бид хайлтын бүтцийг FindLines() аргад параметр болгон дамжуулдаг. Үүний үр дүнд бид хүснэгтийн мөрүүдийг авдаг.
Хэрэв та хайлтын бүтцэд, жишээлбэл, Хариуцлагатай баганад хүссэн утгын хайлтыг нэмбэл FindLines() аргыг хэрэглэсний үр дүнд бид Ажилтан болон Хариуцагч хоёрын аль аль нь тэнцүү байх бүх мөрийг авах болно. хайсан утга.

7. Утгын хүснэгтийг санамсаргүй дарааллаар хэрхэн давтах вэ

Хүснэгтийн утгын давталтын одоогийн мөр бүрийн хувьд
Тайлан (CurrentRow.Name);
Төгсгөлийн мөчлөг;

Индекс ашиглахтай ижил зүйл:

SeniorIndex = ValueTable.Quantity() - 1;
Дансны хувьд = 0-ээс SeniorIndex Cycle
Тайлан(Хүснэгтийн үнэ цэнэ[Бүртгэл].Нэр);
Төгсгөлийн мөчлөг;


8. Одоо байгаа утгын хүснэгтийн мөрийг устгах

ValueTable.Delete(Устгах мөр);

индексээр

ValueTable.Delete(0);


9. Утгын хүснэгтийн одоо байгаа баганыг устгах

ValueTable.Columns.Delete(ColumnDeleted);


индексээр

ValueTable.Columns.Delete(0);

Утгын хүснэгтийн "дундаас" мөрийг (эсвэл багана) устгах нь устгагдсан "дараа" байрлах мөрүүдийн индексийг нэгээр бууруулахад хүргэдэг гэдгийг анхаарах хэрэгтэй.

10. Хэрэв баганын нэр хувьсагчдад агуулагдаж байвал утгын хүснэгтийг хэрхэн бөглөх вэ?

NewRow = ValueTable.Add();
NewRow[ColumnName] = Утга;


11. Утгын хүснэгтийн баганыг бүхэлд нь хүссэн утгаараа хэрхэн бөглөх вэ?
Утгын хүснэгтийн "Төсвийн нягтлан бодох бүртгэлийн туг" баганыг "Худал" гэсэн утгаар бөглөх ёстой.

Үнийн хүснэгт. Утгыг бөглөнө үү (Худал, "Төсвийн нягтлан бодох бүртгэлийн туг");


Бид утгын хүснэгтэд FillValues() аргыг ашигладаг. Эхний параметр нь бөглөх утга юм. Хоёрдахь параметр нь бөглөх баганын нэр юм.

12. “Хүлээн авагчийн хүснэгт” утгын хүснэгтийг “Эх сурвалжийн хүснэгт” утгын хүснэгтийн мэдээллээр хэрхэн бөглөх вэ?

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

Хүлээн авагчийн хүснэгт = Эх хүснэгт.Copy();


Хоёрдахь сонголт: Хүлээн авагчийн хүснэгт байгаа бөгөөд багана болон баганын өгөгдлийн төрлүүдийн хязгаарлалтыг алдах нь харамсалтай байх болно. Гэхдээ та эх хүснэгтийн нэртэй таарч байгаа баганын өгөгдлийг бөглөх хэрэгтэй.

Тохиромжтой нэртэй баганад хэсэгчилсэн өгөгдөл дамжуулах:

Эх хүснэгтийн мөчлөгийн эх хүснэгтийн мөр бүрийн хувьд
FillPropertyValues(NewRow, SourceTableRow);
Циклийн төгсгөл


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

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

Тохирох нэр бүхий баганын өгөгдлийг бүрэн хуулбарлах

Ижил багана = Шинэ массив();

SourceTable.Columns мөчлөгийн багана бүрийн хувьд
Тохирох багана = Хүснэгт Хүлээн авагч. Багана. Хайх(Багана.Нэр);

Хэрэв тааруулах багана<>Тодорхойгүй Дараа нь

// Баганын шинж чанарыг авах.
Нэр = Багана.Нэр;
ValueType = Column.ValueType;
Толгой = Column.Header;
Width = Column.Width;

// Хүснэгтийн баганыг солих.
Index = TableReceiver.Columns.Index(MatchingColumn);

TableReceiver.Columns.Delete(Index);
ReceiverTable.Columns.Insert(Index, Name, ValueType, Header, Width);

// Тохирох баганын дараагийн нэрийг массив дээр нэмнэ.
Ижил багана.Нэмэх(Багана.Нэр);

endIf;

Төгсгөлийн мөчлөг;

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

// Хүснэгтэнд шинэ мөр нэмнэ.
NewRow = TableReceiver.Add();

// Тохирох нүднүүдэд утгуудыг бөглөнө үү.
Нэр бүрийн хувьд ижил нэртэй баганаас эхлэн багана Цикл
NewRow[ColumnName] = SourceTableRow[БаганынНэр];

Төгсгөлийн мөчлөг;

Төгсгөлийн мөчлөг;


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

13. "ValueTable" утгын хүснэгтэд төрлийн хязгаарлалттай баганыг хэрхэн нэмэх вэ?

Багана нэмэх үед та зүгээр л нэрийг нь зааж өгөөд Add() аргын хоёрдахь параметрийг хөндөхгүй орхиж болно. Энэ тохиолдолд баганын өгөгдлийн төрөл нь дур зоргоороо байна.

Өгөгдлийн төрлийг заалгүйгээр багана нэмэх

// Төрөл дээр хязгаарлалтгүйгээр багана нэмнэ.
ValueTable.Columns.Add("Объект");


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

Өгөгдлийн төрлийг харуулсан багана нэмж байна

// Баганын өгөгдлийн төрлүүдийн хязгаарлалт:
// Зөвхөн "Counterparties" лавлахын элементүүд.
Утгын хүснэгт.Баганууд.Нэмэх("Бүртгэл", Төрөлүүдийн шинэ тайлбар("DirectoryLink.Accounts"));


Хэрэв баганын өгөгдлийг бөглөх зөвшөөрөгдсөн төрлүүдийн дунд мөр байгаа бол та түүний битийн гүнийг (уртыг) хязгаарлаж, хувьсах эсвэл тогтмол уртыг ашиглахыг зааж өгч болно. Энэ бүхэн нь String Qualifiers бүтээгчийг ашиглан объект үүсгэх замаар хийгддэг. Дараа нь энэ объектыг TypeDescription бүтээгчийн параметрүүдийн нэг болгон ашиглах болно.

Утгын хүснэгтийн баганын өгөгдлийн төрлийг тодорхойлохын тулд шалгуур үзүүлэлтийг ашиглана

// String төрлийн өгөгдлийн хязгаарлалтыг бэлтгэж, тохируулна.
Мөрийн шалгуур үзүүлэлт = Шинэ мөрийн шалгуур үзүүлэлт (20, AllowedLength.Variable);
ValidTypes = NewTypeDescription("String", StringQualifiers);
ValueTable.Columns.Add("NoteStringShort", ValidTypes);


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

Одоо байгаа төрлийн мэдэгдлүүдийг ашиглан утгын хүснэгтийн баганын өгөгдлийн төрлийг зааж өгнө

// Өмнө нь ашиглаж байсан төрлийн тайлбарын өргөтгөл.
QualifiersNumbers = New QualifiersNumbers(10, 2, ValidSign.Non-negative);
DateQualifiers = Шинэ DateQualifiers(DateParts.Date);
Өргөтгөсөн ValidTypes = Шинэ TypeDescription(ValidTypes, "Дугаар, Огноо", Тооны шалгуур үзүүлэлтүүд, Огнооны шалгуур үзүүлэлтүүд);

ValueTable.Columns.Add("Тэмдэглэл", ExtendedAcceptableTypes);

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

1С дахь бусад бүх нийтийн үнэт зүйлсийн цуглуулгын талаархи нийтлэлүүд

Миний "1С-д 11 алхамаар програмчлал" номноос 1С дээр програмчлалыг сур.

  1. Энэхүү ном нь эхлэгчдэд зориулсан ойлгомжтой бөгөөд энгийн хэлээр бичигдсэн болно.
  2. 1С архитектурыг ойлгож сурах;
  3. Та 1С хэл дээр код бичиж эхэлнэ;
  4. Програмчлалын үндсэн техникийг эзэмшсэн байх;
  5. Бодлогын номын тусламжтайгаар мэдлэгээ нэгтгэх;

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

  1. Маш хүртээмжтэй, ойлгомжтой илтгэлийн хэл
  2. Номыг PDF форматаар цахим шуудангаар илгээдэг. Ямар ч төхөөрөмж дээр нээх боломжтой!
  3. Удирдлагатай 1С програмын үзэл баримтлалыг ойлгох
  4. Удирдлагатай програмыг хэрхэн хөгжүүлэх талаар сурах;
  5. Удирдлагатай 1С маягтуудыг боловсруулж сурах;
  6. Та удирдаж буй маягтын үндсэн болон шаардлагатай элементүүдтэй ажиллах боломжтой болно
  7. Удирдлагатай програмын дагуу програмчлах нь тодорхой болно

15% хямдралын сурталчилгааны код - 48PVXHeYu


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

Та гараар төлөх боломжтой:

Yandex.Money - 410012882996301
Вэб мөнгө - R955262494655

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