Гэр / Интернет / Стандарт параметр & Хугацаа ба ашиглалтын асуудал. Бид skd 1s дээр өгөгдсөн давтамжтай тайланг үүсгэдэг, skd дээр хэрхэн үе тогтоох талаар тайлан гаргадаг

Стандарт параметр & Хугацаа ба ашиглалтын асуудал. Бид skd 1s дээр өгөгдсөн давтамжтай тайланг үүсгэдэг, skd дээр хэрхэн үе тогтоох талаар тайлан гаргадаг

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

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

Үүнийг тойрч гарах арга зам бий.

  1. Шинэ параметр үүсгээд "Үе" гэж нэрлэе.
  2. Энэ параметрийг "Стандарт хугацаа" төрөлд тохируулна уу.
  3. Асуулгад ашиглагдаж буй "StartPeriod" ба "EndPeriod" параметрүүдийн "Илэрхийлэл" талбарт " илэрхийллийг тохируулна уу. &Period.StartDate" болон " &Period.EndDate" тус тус.

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

Үүнээс зайлсхийхийн тулд та виртуал хүснэгтийн бүх параметрүүдийг устгах хэрэгтэй.

Мөн тэдгээрийг "Өгөгдлийн бүрдэл" таб дээрх хүснэгтэд нэмнэ үү.

Параметрүүдийг харуулахын тулд хурдан тохиргоотайлан, тайлангийн параметрүүдэд харгалзах тугийг идэвхжүүлнэ.

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

За ингээд эхэлцгээе.

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

Миний хувьд энэ бол "Ажлын бүртгэл"-ийн хуримтлалын бүртгэл юм.

Жишээлбэл, бид түүний параметрүүдийг хатуу зааж өгөх болно (ACS дээр параметрүүдийг зөөлөн тавих замаар биш):

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

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

Дэлгэцийн зургаас харахад хэрэглэгчийн маягт дээр заасан параметр нь хүсэлт рүү шилждэг: "Үе үе" тооллогын утга - энэ тооллого нь бараг бүх стандарт шийдэлд байдаг.

Түүний боломжтой төрлүүдийг "Параметрүүд" таб дээр харуулав.

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

Энд бодит форматууд байна:

Сар: DF="MMMM yyyy "y.""

Өдөр: DF = dd.MM.yyyy

Долоо хоног: df = ""Өдгөн сар.жаа"-аас "Долоо хоног"

Улирал: DF = "" улирал " yyyy "y."

Он: DF = "yyyy "y."

Арван жил: DF = ""Арван жил" gg.MM.yyyy "

Хагас жил: DF = "" Хагас жил" gg.MM.yyyy"

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

Энэ нийтлэлд Мэдээллийн Зохиогчийн Систем (ACS) ашиглах хугацааг тохируулах зарим онцлог шинж чанарууд, дундаж хэрэглэгч ба 1С системийн хоорондох хугацааны үзэл баримтлалын зөрүүгээс үүдэлтэй асуудлуудыг авч үзэх бөгөөд тэдгээрийг шийдвэрлэх арга замыг санал болгож байна. .
Өгөгдлийн бүрдлийн систем (DCS) ашиглан боловсруулсан ихэнх тайлангууд нь хэрэглэгчээс тайлан гаргах хугацааг оруулахыг шаарддаг. Дүрмээр бол, ACS-д хугацааны оролтыг дараах бүтцийг ашиглан параметрүүдээр зохион байгуулдаг. Зураг. Зураг 1Энэ үеийг оруулах аргыг "сонгодог" гэж үздэг бөгөөд үүнийг 1С-ийн хөгжилд зориулсан ITS болон бусад уран зохиолын талаархи нийтлэлд тайлбарласан тул бид үүнийг үндэс болгон авах болно. Жишээлбэл, тухайн хугацааны бараа/үйлчилгээний борлуулалтын бүх баримт бичгийг олж авдаг энгийн асуулга авч үзье (Зураг 2-ыг үз). Зураг 2Энэ тайланг ашиглах үед хэрэглэгч харах параметрүүдээр дамжуулан хугацааг тогтоодог. Зураг 3Бүх зүйл зөв юм шиг санагдаж байна ... ГЭХДЭЭ жижиг асуудал байна:

Гол нь хэрэглэгчдийн дийлэнх нь тухайн үеийг 1С "ойлгодог"-оос өөрөөр "ойлгодог", жишээ нь:
нэг). Санаж үз Зураг 3
Хэрэглэгчийн үүднээс авч үзвэл хугацаа нь тогтоогдоогүй, өөрөөр хэлбэл ХЯЗГААРГҮЙ, өөрөөр хэлбэл огнооны хязгаарлалтгүй БҮХ баримт бичгийг тайланд оруулах ёстой.
1С системийн "үзэл бодлоор" параметрийн хугацааг тогтоосон бөгөөд ... түүний хоёр хил хязгаар нь 01.01-тэй тэнцүү байна.
2). Санаж үз Зураг 4
Хэрэглэгчийн үүднээс 2010 оны 01-р сарын 28-ны өдрөөс эхлэн бүх баримт бичгийг тайланд оруулах ёстой.
"Үзэл бодлоор" 1С хугацаа 2010-01-28 - 01/01/0001 нь үл хамаарах зүйл болно.

Мэдээжийн хэрэг, та тайланд яагаад түүний үзэхийг хүсч буй баримт бичгүүдийг харуулахгүй байгаа, 1С-ийн "үзэл бодлоос" хугацааг хэрхэн харуулсан талаар тайлбарлахыг оролдож болно, гэхдээ энэ нь талархалгүй ажил бөгөөд буруу юм. Сайхан хөтөлбөрЭнэ нь юуны түрүүнд хэрэглэгчдэд тохиромжтой байх ёстой, учир нь энэ програм нь хэрэглэгчдэд байдаг бөгөөд эсрэгээр нь биш, тиймээс хэрэглэгчийн ойлгосноор үеийг ойлгохын тулд 1С-д "заах" шаардлагатай болно, тухайлбал:
нэг). StartPeriod болон EndPeriod-г тохируулаагүй -> бүх баримт бичиг.
2). Зөвхөн StartPeriod-г тохируулсан –> StartPeriod-аас эхлэн бүх баримт бичиг
3). Нэмж дурдахад бид Хугацааны төгсгөл >= Хугацааны эхлэл гэдгийг шалгах бөгөөд хэрэв энэ нь үнэн биш бол бид Хугацааны төгсгөлийг тогтоогоогүй гэж үзэх болно, i.e. 2).
Дээр дурдсан зүйлс дээр үндэслэн EndDate параметрийн илэрхийлэл дараах байдалтай байна.

ХЭЗЭЭ &Period.EndDate=DATETIME(1,1,1) ДАРАА DATETIME(3999,12,31,23,59,59) БУСДАА ХЭЗЭЭ &Period.EndDate-г СОНГОХ<&Период.ДатаНачала ТОГДА ДАТАВРЕМЯ(3999,12,31,23,59,59) ИНАЧЕ &Период.ДатаОкончания КОНЕЦ КОНЕЦ

Бидний үеийн сонголтын дизайны эцсийн дүр төрхийг доор үзүүлэв Зураг 5

ACS дахь хугацааг тогтоох зарим онцлог.

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

Дүрмээр бол, ACS-д хугацааны оролтыг параметрүүдээр дамжуулан дараах бүтцийг ашиглан зохион байгуулдаг. Үзнэ үү. Энэ үеийг оруулах аргыг "сонгодог" гэж үздэг бөгөөд үүнийг ITS болон 1С-ийн хөгжлийн талаархи бусад уран зохиолын нийтлэлд тайлбарласан болно. Тиймээс үүнийг үндэс болгон авч үзье. Жишээлбэл, тухайн хугацааны бараа/үйлчилгээний борлуулалтын бүх баримт бичгийг олж авдаг энгийн асуулга авч үзье (Зураг 2-ыг үз).

Энэ тайланг ашиглах үед хэрэглэгч параметрүүдээр дамжуулан үеийг тохируулдаг, харна уу. Бүх зүйл зөв байх шиг байна ... ГЭХДЭЭ жижиг асуудал байна:

Гол нь хэрэглэгчдийн дийлэнх нь тухайн үеийг 1С "ойлгодог"-оос өөрөөр "ойлгодог", жишээ нь:

Хэрэглэгчийн үүднээс авч үзвэл хугацаа нь тогтоогдоогүй, өөрөөр хэлбэл ХЯЗГААРГҮЙ, өөрөөр хэлбэл огнооны хязгаарлалтгүй БҮХ баримт бичгийг тайланд оруулах ёстой.

1С системийн "үзэл бодлоор" параметрийн хугацааг тогтоосон бөгөөд ... түүний хоёр хил хязгаар нь 01.01-тэй тэнцүү байна.

Хэрэглэгчийн үүднээс 2010 оны 01-р сарын 28-ны өдрөөс эхлэн бүх баримт бичгийг тайланд оруулах ёстой.

"Үзэл бодлоор" 1С хугацаа 2010-01-28 - 01/01/0001 нь үл хамаарах зүйл болно.

Мэдээжийн хэрэг, та тайланд яагаад түүний үзэхийг хүсч буй баримт бичгүүдийг харуулахгүй байгаа, 1С-ийн "үзэл бодлоос" хугацааг хэрхэн танилцуулж байгааг тайлбарлахыг оролдож болно, гэхдээ энэ нь талархалгүй ажил бөгөөд буруу юм. Сайн програм нь юуны түрүүнд хэрэглэгчдэд тохиромжтой байх ёстой, учир нь энэ програм нь хэрэглэгчдэд байдаг бөгөөд эсрэгээр нь биш, тиймээс хэрэглэгчийн ойлгосноор үеийг ойлгохын тулд 1С-д "заах" шаардлагатай болно. :

нэг). StartPeriod болон EndPeriod-г тохируулаагүй -> бүх баримт бичиг.

2). Зөвхөн StartPeriod-г тохируулсан -> StartPeriod-аас эхлэн бүх баримт бичиг

3). Нэмж дурдахад бид Хугацааны төгсгөл >= Хугацааны эхлэл гэдгийг шалгах бөгөөд хэрэв энэ нь үнэн биш бол бид Хугацааны төгсгөлийг тогтоогоогүй гэж үзэх болно, i.e. 2).

Дээр дурдсан зүйлс дээр үндэслэн EndDate параметрийн илэрхийлэл нь:

ХЭЗЭЭ &Period.EndDate=DATETIME(1,1,1)

ТЭГВЭЛ DATETIME(3999,12,31)

ХЭЗЭЭ &Хугацаа.Төгсгөл<&Период.ДатаНачала

ТЭГВЭЛ DATETIME(3999,12,31) DATETIME(3999,12,31,23,59,59)

&Хугацаа.Төгсгөлийн огноо

Бидний үеийн сонголтын дизайны эцсийн дүр төрхийг доор үзүүлэв

Анхаарна уу: Энэ параметрийг тохируулах механизм нь хуучин 1C 8.1 ба 8.2 платформуудад зориулагдсан (мөн тэдгээрийн хяналтан дор ажилладаг тохиргоонууд), 1С платформын хуучин хувилбарууд нь бөглөөгүй параметрүүдийг хянах суурилуулсан механизмтай бөгөөд тайлбарласан механизмд хандах шаардлагагүй болно. Энэ нийтлэлд 1С платформын зарим хувилбараас гадна алдаа, буруу ажиллах боломжтой.

Нэг асуулгын өгөгдлийн багц бүхий тайлан үүсгэцгээе:

Агуулахын үлдэгдэлд байгаа барааг сонго. Агуулах, БарааАгуулахад үлдэгдэл. Нэршил, Бараа агуулахын үлдэгдэл. Хуримтлалын бүртгэлээс QuantityBalance. агуулах дахь бараа. Remains(&MyDate ,) AS Бараа агуулахын үлдэгдэл

Одоо параметрийн таб руу орж, систем нь манай &MyDate параметрээс гадна &Period параметрийг үүсгэсэн болохыг харцгаая.
Хугацааг нүдээр харахын тулд тайлангийн үндсэн маягтыг үүсгэж, үүн дээр өгөгдөл бүхий хүснэгтийн талбарыг байрлуулцгаая: SettingsComposer.Settings.DataParameters

Тайланг хадгалж, аж ахуйн нэгжид нээнэ үү. Параметр бүхий хүснэгтийн талбарт зөвхөн &Period параметр харагдана:

Үүний дагуу энэ параметрийн аливаа өөрчлөлт нь хүссэн үр дүнг өгөхгүй.

Яагаад &MyDate боломжгүй байна вэ? Мэдээжийн хэрэг, параметрийн таб дээр шалгах хайрцаг байгаа тул Боломжтой байдлын хязгаарлалт.

Бид үүрийг арилгадаг. Одоо бид боломжтой параметрүүдээс хоёуланг нь харж байна. Зөвхөн тайланг үүсгэх үед л тайлан нь &MyDate-д биш, харин &Period параметрт хариулж байгааг харах болно.

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

Агуулахын үлдэгдэлд байгаа барааг сонго. Агуулах, БарааАгуулахад үлдэгдэл. Нэршил, Бараа агуулахын үлдэгдэл. Хуримтлалын бүртгэлээс QuantityBalance. агуулахад байгаа бараа. Remains((&MyDate) ,) AS GoodsInWarehousesRemains

UPDхэрэглэгчээс Боо:

"Стандарт" (системээр нэмсэн) параметрүүдийг ашиглахад тулгардаг гол асуудал бол тайланд хэд хэдэн виртуал хүснэгтийг ашиглах үед энэ параметрийг тодорхойлсон бол түүний утгыг "өөрийн" оронд бусад бүх тохиолдолд ашиглах болно.

Би жишээ хэлье:

Ажилтнуудыг СОНГОХSP.Amployee, WorkersSP.ReasonChangeState, EmployeeesSP.Period,WorkersSPOtherDate. Period AS Period2, EmployeyeesSPOtherDate.ReasonChangeState AS ReasonChangeState2FROMRegister.P.P.Spodyes(ASLOyeSployes) ЗҮҮН НЭГДЭХМэдээллийн бүртгэл.Байгууллагын ажилчид.Сүүлийн хэсэг(&Өөр огноо ,) AS EmployeesSPOtherDate ON EmployeesSP.Employee = EmployeesSPOtherDate.Employee

Хоёрдахь дэд асуулгад "стандарт" PERIOD параметрийн утгыг бусад огнооны утгыг бус харин зүсмэлийн огнооны параметр болгон ашиглах болно.

Хоёрдахь дэд асуулга нь хоёр дахь өгөгдлийн багц руу гарч, ACS-ээр аль хэдийн холбогдсон байсан ч энэ "гажиг" ажиглагдах болно. Хоёрдахь асуулгад "ADDDATE(&Period, MONTH, -1)" гэх мэт илэрхийллийг ашиглах сонголт бас ажиллахгүй бөгөөд сарыг хасахгүй. Гэхдээ асуулга дахь "Үе" параметрийн нэрийг жишээлбэл "Анхны огноо" болгож өөрчлөх нь энэ асуудлыг шийддэг.

Дашрамд хэлэхэд, жишээлбэл, эргэлтийг олж авахад ашигладаг хуримтлалын виртуал хүснэгт, нягтлан бодох бүртгэлийн бүртгэлийн хувьд яг ижил асуудал ажиглагдаж байна. Тэнд систем нь "StartPeriod" болон "EndPeriod" параметрүүдийг нэмдэг.
Тиймээс хүсэлтийн хувьд арай илүү төвөгтэй тохиолдолд "стандарт хугацаа" -ын хүртээмж, ашиглалтыг унтраах нь зүйтэй юм.