Одоо байгаа объектын хэлбэрийг хэрхэн нээх вэ? 1c сонгох горимд маягтыг нээнэ үү

Төлөө Сонгон шалгаруулалтын маягтыг 1s-д сонгон нээнэ 8.2(ердийн хэлбэрүүд), бид зарим үйлдлийг хийх хэрэгтэй. Бид эхлээд авах болно. Үүний дараа бид сонголтыг тохируулж программын дагуу нээх болно, энд кодын жишээ байна:

Хэд хэдэн утгатай 1С 8.2 оролтын талбарт маягтыг сонгох

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

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

1С 8.3 дахь маягтын оролтын талбарт сонголтыг тохируулах, Сонголт эхлэх үйл явдал

Одоо авч үзье 1С 8.3 дахь удирддаг маягтын оролтын талбар дахь сонголт. Маягт дээрээс бидний сонирхож буй элементийг олцгооё, бид сонголтоо хийх болно, бидний тохиолдолд энэ нь "Байгууллага" талбар юм. Бид "Сонголтын эхлэл" үйл явдлыг олж, томруулдаг шил дээр дарж, процедурт өөрсдийгөө олно. Бид Сонгох өгөгдлийн параметрийг харж байна, энэ параметр нь ValueList төрлийн байна. Сонголтыг шаардлагатай элементүүдээр хязгаарлахын тулд бид үнэт зүйлсийн жагсаалтыг бөглөх хэрэгтэй. Бид зөвхөн сервер дээр элементүүдийг сонгох боломжтой тул &OnServer эмхэтгэлийн удирдамжаар процедурыг үүсгэдэг. Энэ процедурт Сонгох өгөгдлийг бөглөнө үү.

Удирддаг 1С программ дахь маягтуудыг програмын дагуу нээх нь ердийн програм дээр нээхээс эрс ялгаатай. Эхлээд хуучин аргыг харцгаая. Энэ нь маягтыг хүлээн аваад дараа нь ердийн эсвэл модаль горимд нээхээс бүрдэнэ (модал горимд нээх үед маягт програмыг блоклодог).

GetForm() . Нээлттэй()

Энэ бол маягтыг нээх хамгийн удаан арга юм. Гэсэн хэдий ч энэ нь маягтыг нээхээс өмнө програмын дагуу боловсруулах боломжийг олгодог. Кодыг боловсруулахын тулд та бага зэрэг өөрчлөх хэрэгтэй:

Маягт = GetForm( "Баримт бичиг. Бараа, үйлчилгээ хүлээн авсан баримт. Баримт бичгийн маягт") ;
//Энд бид маягттай үйлдлүүдийг гүйцэтгэдэг
Маягт. Нээлттэй ();

Маягтыг хүлээн авах үед өөр үйл явдлын процедурыг гүйцэтгэх болно гэдгийг анхаарах хэрэгтэй WhenCreatedOnServer.

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

1. Удирддаг программ дээр линк байгаа бол объектын маягтыг хэрхэн нээх.

Энэ тохиолдолд бүх зүйл маш энгийн байдаг.

RefLink = Лавлах. Нэршил. FindByCode("000000001" );
OpenValue (RefLink);

2. Сонгон шалгаруулалтын маягтыг нээж, дараа нь сонгосон утгыг хэрхэн авах вэ.

Үүнд зориулсан функц байдаг EnterValue().Функц нь 3 параметртэй:

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

Функцийг гүйцэтгэсний үр дүнд заасан төрлийн объектыг сонгох үндсэн маягт нээгдэнэ.

Хувьсах утга;
Массив = шинэ массив;
Массив. Нэмэх(Төрөл( "ЛавлахЛинк.Нэршил") ) ;
Массив. Нэмэх(Төрөл( "DirectoryLink. Эсрэг талууд") ) ;

TypeDescription= шинэ TypeDescription(Массив);

Res = EnterValue(Утга, "Зөвлөгөө" , TypeDescription) ;

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

Энэ функц нь нэлээд хэдэн параметртэй. Тэдгээрийн заримыг нь харцгаая:

  • Маягтын нэр- энд та стандарт объектын аль нэг хэлбэрийг сонгож болно, жишээлбэл, Сонгон шалгаруулалтын маягтэсвэл Жагсаалтын маягт. Эсвэл хөгжүүлэгчдийн бүтээсэн тодорхой хэлбэр.
  • Сонголтууд- маягт дахь маягт руу шилжүүлэх боломжийг танд олгоно бүтэцнээхээс өмнө зарим параметрүүдийг тодорхойлж, улмаар гаралтын өгөгдлийг тодорхойлно. Параметрүүд нь үйлчлүүлэгчээс сервер рүү дамжуулж болох аливаа өгөгдөл байж болно. Маягтыг нээх үед дамжуулсан параметрүүдийг процедурт боловсруулж болно WhenCreatingOnServer()нээгдэж буй маягт дээр.
  • Маягт нээх горим— 3 сонголттой: бие даасан, интерфейсийг бүхэлд нь хаах, эзэмшигчийн маягтыг хаах.

Функцийг хэрхэн ашиглаж байгааг харцгаая OpenForm()янз бүрийн нөхцөл байдалд.

3. Байгаа объектын хэлбэрийг хэрхэн нээх

Маягт бүр нэг гол шинж чанартай байдаг. Үүнийг маягтын дэлгэрэнгүй жагсаалтад тодоор тодруулсан бөгөөд ихэвчлэн дууддаг Объектлавлах ном, баримт бичгийн элементүүдийн хэлбэрээр. Бусад объектууд өөр нэртэй байж болно. Одоо байгаа объектын маягтыг нээхийн тулд нээсэн маягт руу параметр дамжуулах шаардлагатай Түлхүүрутгыг объектын лавлагааны хамт.

&OnClient
Процедурын команд1 (тушаал)
Параметр = шинэ бүтэц;
Параметр. Insert("Түлхүүр" , FindC() );
OpenForm(, Параметр);
Төгсгөлийн процедур

&Сервер дээр
Функц FindC();
Лавлахуудыг буцаах. Эсрэг талууд. FindByRequisites ("TIN", "745107734623")
Төгсгөлийн функц

4. Шинэ объектын хэлбэрийг хэрхэн нээх

Энд энгийн функц ажиллах болно OpenForm()ямар ч параметргүйгээр.

&OnClient
Процедурын команд1 (тушаал)
OpenForm( "Лавлах. Эсрэг талууд. Объектийн маягт") ;
Төгсгөлийн процедур

5. Шинэ объектын маягтыг хэрхэн нээж, ямар нэгэн зүйлд үндэслэн бөглөх

Та параметрийг дамжуулах хэрэгтэй Суурь, утга нь дүүргэх үндсэн объектын лавлагаа байх болно. Энэ нь процедурыг эхлүүлэх болно ProcessFill().

&OnClient
Процедурын команд1 (тушаал)
Параметр = шинэ бүтэц;
Параметр. Insert("Base", LinkToBuyerAccount) ;
OpenForm( "Баримт бичиг. Бараа, үйлчилгээний борлуулалт. Объектийн маягт", Параметр);
Төгсгөлийн процедур

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

6. Маягтыг хэрхэн нээх, түүн дээр сонголт хийх

1С маягт дээрх сонголт нь энгийн эсвэл төвөгтэй байж болно. Энгийн сонголт нь гэх мэт илэрхийллийг агуулдаг Байгууллага = Horns and Hooves ХХК.Нарийн төвөгтэй сонголт нь бусад төрлийн харьцуулалтыг агуулдаг, жишээлбэл. Жагсаалтад. Энэ нийтлэлд бид энгийн сонголтын зохион байгуулалтыг авч үзэх бөгөөд тусдаа өгүүллийг нарийн төвөгтэй сонголтод зориулах болно.

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

Жишээлбэл, лавлах жагсаалтын маягтыг нээцгээе GTD дугааруудболон тэнд эзэмшигчийн сонголт хийх - лавлах элемент Нэршил.

&OnClient
Процедурын команд1 (тушаал)
Параметр = шинэ бүтэц;

сонголт = шинэ бүтэц;
Сонголт. Insert("Эзэмшигч", LinkToNomenclature);

Параметр. Insert("Сонголт", Сонголт);

OpenForm( "Лавлах. GTD дугаарууд. Жагсаалтын маягт", Параметр);
Төгсгөлийн процедур

7. Мэдээллийн бүртгэлийн бүртгэлийн маягтыг хэрхэн нээх

Үүнийг хийхийн тулд танд мэдээллийн бүртгэлийн түлхүүр хэрэгтэй болно.

Бичлэгийн түлхүүр- эдгээр нь бүх хэмжилт ба хугацааны утгууд юм (хэрэв бүртгэл тогтмол бол). Өөрөөр хэлбэл бичлэгийн түлхүүр нь бичлэгийг өвөрмөц байдлаар тодорхойлох боломжтой параметрүүд юм.

Нээлтийн алгоритм нь дараах байдалтай байна.

  1. Бид бүтцэд шаардлагатай утгууд бүхий бүртгэлийн түлхүүр өгөгдлийг оруулна.
  2. Бид үүссэн бүтцийг массиваар байрлуулна.
  3. Бид массиваас бичлэгийн түлхүүр үүсгэдэг.
  4. Бид нээгдсэн маягт руу параметр дамжуулдаг Түлхүүр 3-р алхамаас бичлэгийн түлхүүрийг утга болгон ашиглана.

&OnClient
Процедурын команд1 (тушаал)
Параметр = шинэ бүтэц;

KeyParameters= шинэ бүтэц;
Гол параметрүүд. Insert("Нэршил", LinkToNomenclature) ;
Гол параметрүүд. Insert("PriceType", LinkToPriceType) ;
Гол параметрүүд. Insert("Үе", Огноо);

KeyArray = Шинэ массив;
KeyArray. Нэмэх (Түлхүүр параметрүүд);

EntryKey = Шинэ( "Мэдээллийн бүртгэлийн бүртгэлийн түлхүүр. Үнэ нэршил", KeyArray);

Параметр. Insert("Түлхүүр", Бичлэгийн түлхүүр);

OpenForm( "Мэдээллийн бүртгэл. Нэршлийн үнэ. Бүртгэлийн маягт", Параметр);
Төгсгөлийн процедур

Нүүр хуудас Эхлэн хөгжүүлэгчдэд зориулсан программчлах

Одоо байгаа объектын хэлбэрийг хэрхэн нээх вэ?

Одоо байгаа объектын маягтыг нээхдээ маягтын нэрээс гадна хэлбэрийг нээх объектыг зааж өгөх ёстой. Үүнийг хийхийн тулд Түлхүүр маягтын параметр болон бидний сонирхож буй объектын холбоосыг ашиглана уу.

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

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

Хэрэв та үндсэн маягтын стандарт нэрний (ObjectForm) оронд тохируулагч дээр үүсгэсэн объектын үндсэн биш, дурын хэлбэрийг нээхийг хүсвэл Form гэдэг үгийг дараа нь цэгээр тэмдэглэнэ үү. тохируулагч.

Жишээлбэл:

ReferenceToDirectoryElement = Elements.List.CurrentRow; FormParameters = Шинэ бүтэц("Түлхүүр", ReferenceToDirectoryElement); OpenForm("Лавлах. Байгууллага. Маягт. UniversalObjectForm", FormParameters);

Объект руу холбохоос гадна нээгдэж буй маягт руу параметр дамжуулах шаардлагагүй бөгөөд энэ нь одоо байгаа объектын үндсэн хэлбэр болсон тохиолдолд та илүү энгийн аргыг ашиглаж болно гэдгийг тэмдэглэх нь зүйтэй. - процедурыг ашиглан маягтыг нээх OpenValue():

OpenValue(Items.List.CurrentRow);

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

Гэхдээ энэ аргыг хэрэглэхдээ болгоомжтой байх хэрэгтэй. Зарим тохиолдолд энэ нь сервер рүү нэмэлт дуудлага үүсгэж болно, жишээлбэл, шаталсан лавлах зүйлийн маягтыг нээх шаардлагатай үед. Энэ процедурыг ашиглах үед платформ нь элемент болон бүлэгт өөр өөр маягтууд нээгдэх ёстой тул элемент нь бүлэг мөн эсэхийг тодорхойлохын тулд сервер рүү нэмэлт дуудлага хийх болно.

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

S-P бидэнд дараахь зүйлийг хэлдэг.

Глобал контекст.GetForm
Дэлхийн нөхцөл байдал
GetForm
Синтакс:

GetForm(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>, <НавигационнаяСсылка>)
Сонголтууд:

<ИмяФормы>(шаардлагатай)

Төрөл: .
Маягтын нэр. Маягтын мета өгөгдлийн объект руу (жишээ нь, "Дирectory. Counterparties.Form.ObjectForm", "GeneralForm.FileSavingForm") бүрэн зам болгон эсвэл анхдагч маягтын нэрээр нэмэлт програмын объект руу бүрэн зам болгон үүсгэсэн (жишээлбэл, "Лавлах. Бүтээгдэхүүн. Сонгох маягт" ).
Өгөгдмөл маягтын нэр:

  • ObjectForm - анхдагч объектын хэлбэр;
  • GroupForm (FolderForm) - үндсэн бүлгийн маягт;
  • RecordForm - анхдагч бүртгэлийн маягт;
  • ListForm - анхдагч жагсаалтын маягт;
  • ChoiceForm - үндсэн сонголтын маягт;
  • GroupChoiceForm - үндсэн бүлэг сонгох маягт;
  • ConstantsForm - ердийн горимд зориулсан өгөгдмөл тогтмолуудын хэлбэрийг тохиргооны тогтмол хэлбэр болгон тохируулна;
  • Маягт - тогтмол, тайлан, боловсруулалтын анхдагч хэлбэр;
  • CommonForm - ерөнхий хэлбэр;
  • SettingsForm - өгөгдмөл тайлангийн тохиргооны маягт;
  • LoadForm - тохиргоог ачаалах маягт;
  • SaveForm - тохиргоог хадгалах маягт;
  • VariantForm - тайлангийн хувилбарыг засварлах маягт;
  • SearchForm - өгөгдөлд бүрэн текст хайх маягт.
Жишээлбэл, "GeneralSettings" ерөнхий маягтыг авахын тулд модульд дараах кодыг бичих хэрэгтэй.
Маягт = GetForm("GeneralForm.GeneralSettings");

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

  • Гадаад тайлан.<имя отчета>.Маягт.<имя формы>;
  • Гадаад тайлан.<имя отчета>.<имя стандартной формы>;
  • Гадаад боловсруулалт.<имя обработки>.Маягт.<имя формы>;
  • Гадаад боловсруулалт.<имя обработки>.<имя стандартной формы>.
Энэ тохиолдолд гадаад тайлан эсвэл боловсруулалтыг өмнө нь системд бүртгүүлсэн байх ёстой.
<Параметры>(заавал биш)

Төрөл: .
Маягтын параметрүүд. Бүтцийн түлхүүр нь параметрийн нэр, утга нь хэлбэрийн параметрийн утга юм. Элементийн нэр нь бүтцийн параметрийн нэртэй тохирч байх ёстой.
P = Шинэ бүтэц("Түлхүүр", Нийлүүлэгч);
Маягт = GetForm("Лавлах. Counterparties.ObjectForm", P);
Form.Open();
<Владелец>(заавал биш)

Маягтын эзэмшигч нь өөр маягтын хэлбэр эсвэл хяналт юм.
<Уникальность>(заавал биш)

Төрөл: Үнэгүй.
Энэ параметр нь түлхүүрийг зааж өгч болох бөгөөд түүний утгыг аль хэдийн нээлттэй маягтуудыг хайхад ашиглах болно. Хэрэв ижил өвөрмөц байдлын түлхүүртэй маягт олдвол шинэ маягт нээхийн оронд олсон маягт идэвхжинэ.
- өгөгдмөл өвөрмөц байдлын түлхүүр бүхий маягт хайх, - маягтыг огт хайхгүй байх, өөр ямар ч утга нь хайлт хийх өвөрмөц байдлын түлхүүрийг тогтоодог.
Өгөгдмөл утга: .
<Окно>(заавал биш)

Төрөл: ; .
Маягт нээгдэх програмын цонх.
Зөвхөн удирддаг маягтад хамаарна. Цонх нь зөвхөн програмын үндсэн цонх эсвэл туслах маягтын цонх байж болно.
Хэрэв төрлийг зааж өгсөн бол сонгосон сонголтын дагуу маягтын цонх үүснэ.
<НавигационнаяСсылка>(заавал биш)

Төрөл: ; .
Хэрэв энэ нь -ээс өөр утгыг агуулж байгаа бол уг утгыг энэ аргыг дуудсаны үр дүнд үүссэн маягтын шинж чанарт оноож, тухайн маягтын шинж чанарыг тохируулна.
Өгөгдмөл утга: .
Буцах утга:

Төрөл: ; ; .
- хэрэв зохицуулагч маягт үүсгэхээс татгалзахаар тохируулагдсан бол.
Тодорхойлолт:

Маягт эсвэл удирддаг маягтыг авна. Хүлээн авахын өмнө ижил төрлийн аль хэдийн нээлттэй хэлбэрээр хайлт хийдэг.
Хайлтыг маягтын төрөл, маягтын үндсэн параметрүүдийн утгууд, маягтын эзэмшигч, хэрэглэгчийн өвөрмөц байдлын түлхүүрээр гүйцэтгэдэг.
Хэрэв параметрт байгаа бол<Уникальность>утгыг дамжуулсан бол аль хэдийн нээлттэй маягтуудын хайлт хийгдэхгүй.
Боломжтой байдал:

Нимгэн клиент, вэб клиент, зузаан үйлчлүүлэгч, гар утасны програм (үйлчлүүлэгч).
Жич:

Нимгэн болон вэб клиент дээр зөвхөн удирддаг маягтыг хүлээн авдаг.
Гадны боловсруулалтын уламжлалт хэлбэрийг дэмждэггүй.
Хэрэв параметрт ердийн маягтыг хүлээн авах үед<ИмяФормы>Стандарт бус маягтын нэрийг зааж өгсөн параметрүүдийг боловсруулаагүй;
Гүйцэтгэх явцад сервер рүү хэд хэдэн дуудлага ирж болно. Тэдний зарим нь кэштэй байдаг. Үргэлж дор хаяж нэг хүсэлт серверт байдаг бөгөөд энэ нь кэшд хадгалагдаагүй байна. Кэш хийх нь платформын хувилбар болон тохиргооны хувилбараас бүхэлдээ хамаарна. Хэрэв холболтын хурдыг бага гэж тохируулсан бөгөөд одоогийн мөрийг заагаагүй бол сонголтын маягтыг кэшээр хадгална. Кэшийг 20 минут тутамд цэвэрлэдэг. Энэ хугацаанд ашиглагдаагүй маягтуудыг устгана.
Мөн үзнэ үү: