Гэр / Компьютер эзэмших / Параметртэй гадаад хэвлэх боломжтой. BSP "Хэвлэх" дэд системээс "Баримт бичгийг хэвлэх" маягт руу өгөгдлийн хүсэлт бүхий хэвлэх боломжтой маягтуудыг гаргана. Байршилд хөл хэсэг нэмэх

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

Энгийн хэвлэх боломжтой зүйл бичих талаар бодож үзээрэй 1с 8.1 - 8.2тохиргооны жишээн дээр Байгууллагын нягтлан бодох бүртгэл 2.0. Та баримт бичигт гадаад хэвлэх боломжтой бичихийг хүсч байна гэж бодъё: баримт бичгийн үндсэн өгөгдөл, түүнчлэн хүснэгтийн хэсгээс харуулах. Бүтээгдэхүүн: нэршил, үнэ, тоо хэмжээ, хэмжээ.

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

Тохируулагчид 1С аж ахуйн нэгжүүд 8гадаад боловсруулалтыг бий болгох ( Файл->Шинэ->Гадаад боловсруулалт), нэрийг тохируулж, гадаад хэвлэх маягтанд шаардлагатай шинж чанарыг үүсгэнэ үү ReferenceToObjectтөрөлтэй Баримт бичгийн лавлагаа.Барааны бодит байдалҮйлчилгээ.

Хэвлэх боломжтой зураглал үүсгэх

Шинээр нэмж байна зохион байгуулалт, байршлын төрлийг үлдээнэ үү хүснэгтийн баримт бичиг. Бид зохион байгуулалт дээр гурван талбар үүсгэдэг: Толгой хэсэг, өгөгдөлболон Подвал. Та үүнийг хүссэн тооны мөрийг сонгоод цэс дээр дарж хийж болно Хүснэгт->Нэрүүд->Нэр оноох (Ctrl+Shift+N).

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

-ийн талбайд Өгөгдөлхүснэгтийн хэсгийн мөрүүдийг гаргах параметрүүдийг үүсгэх( Нэршил, үнэгэх мэт), гэхдээ тухайн бүсэд Подвалнийлбэр дүнгийн хувьд тоо хэмжээ, хэмжээгээр.

Програмчлал

Хэвлэх боломжтой объектын модуль руу орцгооё Үйлдлүүд->Нээлттэй объектын модуль.

Заавал бий болгоё хэвлэсэн маягтуудэкспортын функц Далайн хав().

Хэвлэх функц () ЭкспортТөгсгөлийн функцууд

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

TabDoc = шинэ SpreadsheetDocument; Layout = GetLayout("Layout"); Толгой хэсгийн талбай = Layout.GetArea("Толгой" ); ScopeData = Layout.GetScope("Data" ); AreaFooter = Layout.GetArea("Зоорь");

Параметрүүдийг бөглөнө үү малгаймөн үүнийг ав хүснэгтийн баримт бичиг .

Header Area.Parameters.HeaderText = +ObjectReference.Number; HeaderScope.Parameters.Organization = LinkToObject.Organization; TabDoc.Output(HeaderArea);

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

Хүсэлт = шинэ хүсэлт; Query.SetParameter("Лавлагаа", ObjectReference); Query.Text = "СОНГОХ | Бараа, үйлчилгээ, бараа.Нэршил, | Бараа, үйлчилгээ, барааг хэрэгжүүлэх.Хэмжээ, | Бараа, үйлчилгээ, бараа, үнэ, | Бараа, үйлчилгээ, бараа бүтээгдэхүүний борлуулалт.Тоо хэмжээ| FROM | Баримт бичиг.Барааны борлуулалтҮйлчилгээ.Бараа AS Барааны бодит байдалҮйлчилгээБараа|ХАААН | ImplementationProductsServicesProducts.Reference = &Reference";

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

Сонголт = Query.Execute().Select();

Дараа нь гогцоонд тухайн талбайн параметрүүдийг бөглөнө үү ӨгөгдөлБаримт бичгийн сонголтын мөр бүрт тэдгээрийг харуулах хүснэгтийн баримт бичиг. Мөн гогцоонд бид нийт утгыг тооцдог тоо хэмжээболон хэмжээ. Бид параметр бүрийг тусад нь бөглөхгүй, гэхдээ бид процедурыг ашиглана FillPropertyValues((<Приемник>, <Источник>) -аас дэлхийн нөхцөл байдал, энэ нь өмчийн утгыг хуулдаг <Источника> өмч рүү <Приемника> . Тохируулгыг үл хөдлөх хөрөнгийн нэрээр гүйцэтгэдэг. Та энэ талаар дэлгэрэнгүй уншиж болно синтакс туслах 1С Enterprise 8.

Нийт нийлбэр = 0 ; Нийт тоо = 0; While Selection.Next() Loop FillPropertyValues(DataArea.Parameters, Сонголт); Нийт нийлбэр = Нийт нийлбэр + дээж.нийлбэр; Нийт тоо хэмжээ = Нийт тоо хэмжээ + дээж.Тоо хэмжээ; TabDoc.Output(DataArea); EndCycle;

Талбайг бөглөж, харуул Подвал.

AreaBasement.Parameters.TotalQuantity = Total Quantity; RegionBasement.Parameters.TotalAmount = Нийт дүн; TabDoc.Output(RegionFooter);

Бид дүүргэсэн хүснэгтийн баримтыг функцээс буцаана Далайн хав().

TabDoc буцаах;

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

5. Хэвлэх боломжтой зүйлийг баримт бичигт холбох

AT ердийн тохиргоо 1C 8гадаад хэвлэх маягтыг бүртгэх лавлах байдаг Гадаад боловсруулалт. Холбохын тулд Enterprise горимын цэс рүү очно уу Үйлчилгээ-> Нэмэлт тайлангуудболон боловсруулах->Нэмэлт гадаад хэвлэх маягтууд.

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

Одоо баримт бичигт байна Бараа, үйлчилгээний борлуулалтхэвлэх шинэ зүйл гарч ирнэ.

Хэвлэх маягтыг автоматаар бүртгүүлэх

Хэвлэх боломжтой материалыг холбохдоо баримт бичгийн төрлийг гараар сонгох шаардлагагүй болохын тулд та тохируулж болно автомат бүртгэл. Үүнийг хийхийн тулд бид шинэ зохион байгуулалт нэмж, түүнийг дууддаг Параметрийн_автомат бүртгэл(зөвхөн тийм) бөгөөд эхний нүдэнд бид бичдэг Баримт бичгүүд.<Наименование документа> (эсвэл Лавлах номууд.<Наименование справочника> ).

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

BSP (Стандарт дэд системүүдийн номын сан) дээр суурилсан ердийн тохиргоонд Хүснэгтийн баримт бичигт үндэслэн бүтээсэн хэвлэмэл маягтуудыг "Баримт бичгийг хэвлэх" тусгай хэлбэрт хэрхэн гаргадаг болохыг хүн бүр нэг бус удаа харсан. Энэ маягт нь BSP-ийн "Хэвлэх" дэд системийн нэг хэсэг юм. Хэвлэх материалаа боловсруулахдаа заримдаа хэрэглэгчээс хэвлэхэд шаардлагатай нэмэлт өгөгдлийг асуух хэрэгтэй болдог. Энэ тохиолдолд "Баримт бичгийг хэвлэх" маягт дээр хэвлэсэн маягтыг хэрхэн харуулах вэ гэсэн асуулт гарч ирнэ. Хэрэв бид хэвлэх маягтыг гаргахаас өмнө хэрэглэгчээс нэмэлт мэдээлэл авахыг хүсвэл "Хэвлэх" дэд системээс хэвлэх маягтын гаралтыг дурдсан маягт руу хэрхэн хэрэгжүүлэх талаар энэ нийтлэлд авч үзэх болно. Энд хоёр тохиолдлыг авч үзэх болно: "Нэмэлт тайлан ба боловсруулалт" дэд системийг ашиглан хэвлэх боломжтой зүйлийг хэрэгжүүлэх, тохируулагч горимд хэвлэх боломжтой зүйлийг тохиргоонд нэмэх үед, өөрөөр хэлбэл. өгөгдмөл тохиргоонд өөрчлөлтүүд хийгдсэн.

"PrintDocuments" маягт нь зарим зүйлийг өгдөг нэмэлт функцуудхэвлэсэн маягттай ажиллах үед, тухайлбал:

  • хэвлэгч рүү шууд хэлбэрээр хэвлэх товчлуур;
  • хуулбарын тоо, хэвлэсэн хэлбэр;
  • үүсгэсэн хэвлэсэн маягтыг засварлах;
  • хэвлэсэн маягтыг хадгалах чадвар янз бүрийн форматуудөгөгдөл (Excel, Word, PDF гэх мэт);
  • хэвлэсэн маягтыг цахим шуудангаар илгээх;
  • баримт бичгийн багцтай тохиромжтой ажиллах.

Энэ маягтыг одоо 1С бүх стандарт тохиргоонд баримт бичгийн хэвлэмэл хэлбэрүүд болон лавлах элементүүдийг харуулахад ашигладаг. Мэдээжийн хэрэг, хэвлэх маягтуудыг боловсруулахдаа хүлээн зөвшөөрөгдсөн дадлагаас хэтрүүлэхгүйн тулд хэвлэх маягтаа өгсөн хэрэгслүүдийг ашиглан харуулах ёстой.

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

  1. "Хэвлэх" дэд системийг ашиглан баримт бичигт хэвлэх командыг нэмэх үед бид AddPrintCommands процедурт хэвлэх командыг тайлбарлах шаардлагатай бөгөөд Print процедурыг хэрэгжүүлж буй хэвлэх менежерийг зааж өгөх хэрэгтэй;
  2. Нэмэлт боловсруулалтыг бий болгохдоо бид DetailOnExternalProcessing функцын боловсруулах объектын модульд ашиглах төрлийн командыг серверийн аргыг дуудаж, тодорхой хэлбэрээр хэлбэржүүлэх дуудлагыг хэрэгжүүлдэг Хэвлэх процедурыг нэн даруй хэрэгжүүлэх хэрэгтэй. хэвлэх маягт.

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

Хүснэгтийн баримт бичгийг бүрдүүлж эхлэхээсээ өмнө хэрэглэгчээс зарим мэдээлэл хүсэх шаардлагатай бол яах вэ? Тэдгээр. Бид маягтыг харуулах хэрэгтэй. Энэ тохиолдолд хэвлэх маягтыг бүрдүүлэх стандарт дараалал зөрчигдөж, хэвлэх маягтыг "Хэвлэх баримт бичиг" маягт руу хэрхэн шилжүүлэх талаар бодох хэрэгтэй.

Энэ тохиолдолд хоёр нөхцөл байдал боломжтой:

  1. Тохиргооны өөрчлөлтөөр хэвлэх боломжтой байх үед;
  2. Тохиргоог өөрчлөхгүйгээр хэвлэх боломжтой бол, i.e. "Нэмэлт тайлан, боловсруулалт" дэд системийг ашигладаг.

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

Эхний хувилбар.Багийн хамт боловсруулалтыг бий болгосноор.

Энэ сонголт нь мета өгөгдлийн объектуудад боловсруулалтыг шууд нэмэх боломжийг олгодог:

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

  1. Бидний хэвлэх хэлбэрийг дуудах командыг үүсгэ;
  2. Маягтыг өөрөө үүсгэх;
  3. Хэвлэх боломжтой зураглал үүсгэх;
  4. Боловсруулалтын менежерийн модульд өөрчлөлт оруулах.

Бид баг бүрдүүлдэг

Командын шинж чанарт зааж өгнө үү:

  • Маягт дээр командыг харуулахыг хүсч буй хэсгийг бүлэглэх;
  • Параметрийн төрөл нь зүгээр л бидний хэвлэсэн маягтыг хийж байгаа лавлах ном эсвэл баримт бичиг юм;
  • Параметр ашиглах горим - Олон. Жагсаалтаас сонгогдсон хэд хэдэн элементийн хувьд хэвлэсэн маягтуудыг нэг дор харуулах боломжтой.

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

&Client Procedure Command Handling дээр(Тушаалын параметр, Командын гүйцэтгэлийн параметрүүд) //Хариуцагчийн агуулгыг оруулах. FormParameters = Шинэ бүтэц("PrintData", CommandParameter); OpenForm("Processing.PrintForm.Form", FormParameters,CommandExecutionParameters.Source,CommandExecutionParameters.Uniqueness,CommandExecutionParameters.Window,CommandExecutionParameters.NavigationLink); Төгсгөлийн процедур

Процедурын параметр болох Командын параметр нь хэвлэхийн тулд бидний сонгосон элементүүдийг агуулдаг.

Маягт үүсгэх

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

DataToPrint - ValueList төрөл;

Мөрийн тоо - төрөл Number.

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

Маягтын модуль руу очоод дараах кодыг бичнэ үү.

&OnServerCreateProcedureOnServer(Алдаа, Стандарт боловсруулалт)PrintData.LoadValues(Parameters.PrintData); Процедурын төгсгөл & Үйлчлүүлэгчийн Процедур дээр Хэвлэх(Команд) ControlPrintClient.ExecutePrintCommand("Processing.PrintForm", //Хэвлэх менежер "PrintForm", //Идентификатор GetObjectsToPrint(), //ЭнэObject объектыг хэвлэх, //Хэвлэх маягтын эзэмшигч. хэвлэхийг GetPrintParameters( ) гэж нэрлэдэг); //Хэвлэх параметрүүд - хэвлэх менежерт дамжуулах дурын параметрүүд Буцах массив; EndFunction &AtServer функц GetPrintSettings() PrintSettings = Шинэ бүтэц; PrintParameters.Insert("Маягтын толгой", "Хэвлэх маягт"); //"Баримт бичгийг хэвлэх" маягтын параметрүүдийн нэг. //Хэвлэх гаралтын маягтын гарчгийг заана. // Энд бид хэвлэх менежер рүү нэмэлт шилжүүлэхийг хүссэн параметрүүдээ нэмнэ. PrintParameters.Insert("Мөрийн тоо", Мөрний хэмжээ); Буцах ParametersPrint; Төгсгөлийн функцууд

Бид OnCreateAtServer процедурыг тодорхойлж, маягтыг нээх үед командаас дамжуулсан параметрээс хэвлэх боломжтой объектуудын жагсаалтыг уншдаг.

Бид хэвлэх командыг маягт дээр үүсгэж, функцийг дууддаг зохицуулагчийг бичдэг нийтлэг модуль ManagePrintClient.RunPrintCommand, бид энэ функцийн шаардлагатай параметрүүдийг тохируулсан, тухайлбал:

  • Хэвлэх менежер - менежерийн модуль дахь объектын нэр бөгөөд энэ нь бидний хэвлэх боломжтой хэвлэх функцийг тодорхойлдог;
  • Идентификатор - хэвлэх гэж буй хэвлэх зүйлийн танигч. Энэ танигчаар бид менежерийн модулийн Хэвлэх функцээс аль хэвлэх маягтыг хэвлэх шаардлагатайг сонгоно;
  • Хэвлэх объектууд нь шууд хэвлэх маягтуудыг үүсгэдэг объектууд юм;
  • Маягт эзэмшигч;
  • Хэвлэх параметрүүд - энд бид хэвлэх параметр бүхий бүтцийг бүрдүүлж, дамжуулж, боловсруулалтын хэлбэрээр хэрэглэгчээс хүссэн нэмэлт параметрүүдийг дамжуулдаг.

Үнэн хэрэгтээ, боловсруулах маягтаас ExecutePrintCommand функцийг дуудаж, бид хэвлэх боломжтой маягтыг "PrintDocuments" хэлбэрээр харуулах асуудлыг шийдэж байна. Дараа нь "Хэвлэх" дэд систем нь стандарт үйлдлүүдийг гүйцэтгэж, гүйцэтгэлийг хэвлэх процедурт хүргэх бөгөөд үүнийг бид боловсруулалтынхаа модулийн менежерт тодорхойлох ёстой.

Хэвлэх боломжтой бүдүүвчийг бий болгох

Боловсруулалтын менежерийн модульд өөрчлөлт хийж байна

Энэ мөчөөс эхлэн бид BSP-ийн "Хэвлэх" дэд системийг ашиглан хэвлэх маягтуудыг боловсруулах стандарт үйлдлүүдийг гүйцэтгэдэг.

Менежерийн модульд дараах кодыг нэмнэ үү.

Процедур Хэвлэх(ObjectsArray,PrintParameters,PrintFormCollection,PrintObjects,OutputParameters) ObjectsArray,PrintParameters), "Processing.PrintForm.PF_MXL_PrintForm",); EndIf; EndProcedure &AtServer функц PrintLayout(ObjectArray,PrintSettings) SpreadsheetDocument = Шинэ SpreadsheetDocument; //Хүснэгтийн баримт бичиг үүсгэх /////////////////////////////////////////////////////// / //////////////////////////////////////////////////////// // ///////////////// //МОДУЛИЙН ДАХИН ТОДОРХОЙЛСОН ХЭСЭГ // //Энд бид хэвлэх боломжтой Layout = GetLayout("PF_MXL_PrintForm"); Объект бүрийн хувьд Объектуудаас массивын давталт AreaHeader = Layout.GetArea("Толгой"); AreaObject = Layout.Get Area("Object"); SpreadsheetDocument.Output(RegionHeader); AreaObject.Parameters["Object"] = Объект; SpreadsheetDocument.Output(RegionObject); For Count = 1 ByPrintSettings["Мөрийн тоо"] Loop AreaString = Layout.GetArea("String"); RegionString.Parameters["String"] = Тоолох; SpreadsheetDocument.Output(AreaString); Төгсгөлийн мөчлөг; SpreadsheetDocument.OutputHorizontalPageSeparator(); Төгсгөлийн мөчлөг; //МОДУЛИЙН ДАХИН ТОДОРХОЙЛСОН ХЭСЭГ ///////////////////////////////////////// ///////////////////////////////////////////////////////// /// //////////////// Хүснэгтийн баримтыг буцаах; //EndFunction хүснэгтийн баримтыг буцаана

Хоёр дахь сонголт. Хэвлэх командыг хэрэгжүүлснээр.

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

Энэ тохиолдолд хэвлэх командыг тодорхойлохдоо BSP-ийн "Хэвлэх" дэд системийг бас ашигладаг. Боловсруулалтыг өөрөө нээх командыг тодорхойлохын оронд бид хэвлэх боломжтой зүйлийг нэмэхийг хүсч буй менежерийн модуль руу орж, процедурт хэвлэх командын тайлбарыг тохируулах хэрэгтэй. AddPrintCommands(PrintCommands):

Процедур AddPrintCommands(PrintCommands) ExportPrintCommand = PrintCommands.Add(); PrintCommand.Identifier = "PrintForm"; PrintCommand.View = НStr("ru = "Хэвлэх маягт""); PrintCommand.Handler = "CommonModulePrintForm.ProcessingPrintFormCommand"; PrintCommand.Order = 100; Төгсгөлийн процедур

Энд бид лавлах бүх хэлбэрт (бид эсрэг талын лавлахтай ажиллаж байгааг сануулж байна) "Хэвлэх боломжтой маягтыг хэвлэх" гэсэн хэвлэх командыг нэмж оруулав. Мөн энд анхаарах ёстой гол зүйл юм. Та маягтанд хоёр төрлийн тушаал нэмж болно:

1. Менежерийн модулиас Print процедурыг дуудах;

2. Үйлчлүүлэгчийн аргыг дуудах.

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

Ийм дуудлагыг хэрэгжүүлэхийн тулд командыг тодорхойлохдоо түүнд Handler тохируулна уу (дээрх кодыг үзнэ үү). Үйлчлүүлэгчийн функцэд хүрэх замыг агуулсан мөрийг Command Handler руу дамжуулдаг, i.e. үйлчлүүлэгч дээрх Хуваалцсан модулийг экспортлох функцийн зам. Энэ нь бидний маягтуудад нэмдэг хэвлэх команд дээр дарахад дуудагдах функц юм.

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

Function HandlingPrintCommandPrintForm(PrintParameters) Экспорт //Хариуцагчийн агуулгыг оруулна. FormParameters = Шинэ бүтэц("PrintData",PrintParameters.PrintObjects); OpenForm("Processing.PrintForm.Form", FormParameters); Төгсгөлийн функцууд

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

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

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

Бид нэмэлт боловсруулалтыг бий болгодог.

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

Энэ тохиолдолд бид BSP-ийн "Нэмэлт тайлан, боловсруулалт" дэд системийг ашиглах хэрэгтэй.

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

1. Боловсруулах объектын модуль;

2. Маягтын модулийг боловсруулах.

Объектын модульд дараах кодыг бичнэ үү.

///////////////////////////////////////////////////////// / /////////////////////////// // ХӨТӨЛБӨРИЙН ИНТЕРФЕЙС #API талбар // тухай мэдээллийг буцаана гадаад боловсруулалт . FunctionExternalProcessingDetails() ExportRegistrationParameters = Нэмэлт тайлан, Боловсруулалт.Гадаад БоловсруулахДэлгэрэнгүй("2.2.2.1"); RegistrationParameters.View = AddReportsAndProcessingClientServer.ProcessingViewPrintForm(); RegistrationParameters.Version = "1.0"; NewCommand = RegistrationParameters.Commands.Add(); NewCommand.View = НStr("ru = "Өгөгдлийн урьдчилсан хүсэлт бүхий гадаад хэвлэх маягт""); NewCommand.Identifier = "ExternalPrintForm"; NewCommand.Usage = Нэмэлт тайлангуудAndProcessesClientServer.CommandTypeOpenForm(); NewCommand.ShowAlert = үнэн; NewCommand.Modifier = "PrintMXL"; Буцах параметрийн бүртгэл; Төгсгөлийн функцийн процедур Хэвлэх(PrintData,PrintFormCollection,PrintObjects,OutputParameters) Export IfPrintControl.NeedPrintLayout(PrintFormCollection, "ExternalPrintForm") Дараа нь PrintControl.OutputSpreadsheetolmlection ("PrintControl.OutputSpreadsheetolmCollection ="("ExternalPrintForm") Экспорт хийнэ. , PrintLayoutData )); EndIf; EndProcedure &AtServer функц PrintLayout(PrintData)PrintParameters = PrintData.Value; //ValuesListObjectArray-ийн эхний элементээс хэвлэх тохиргоог авах = PrintData.Copy(); //ArrayObjects-ийн утгуудын жагсаалтыг хуулах.Delete(0); //PrintSettings SpreadsheetDocument = Шинэ SpreadsheetDocument агуулсан хуулсан мөрүүдийг устгах; //Хүснэгтийн баримт бичиг үүсгэх /////////////////////////////////////////////////////// / //////////////////////////////////////////////////////// // ///////////////// //МОДУЛИЙН ДАХИН ТОДОРХОЙЛСОН ХЭСЭГ // //Энд бид хэвлэсэн маягтаа бүрдүүлж байна Layout = GetLayout("Layout"); Объект бүрийн хувьд Объектуудаас массивын давталт AreaHeader = Layout.GetArea("Толгой"); AreaObject = Layout.Get Area("Object"); SpreadsheetDocument.Output(RegionHeader); AreaObject.Parameters["Object"] = Объект; SpreadsheetDocument.Output(RegionObject); For Count = 1 ByPrintSettings["Мөрийн тоо"] Loop AreaString = Layout.GetArea("String"); RegionString.Parameters["String"] = Тоолох; SpreadsheetDocument.Output(AreaString); Төгсгөлийн мөчлөг; SpreadsheetDocument.OutputHorizontalPageSeparator(); Төгсгөлийн мөчлөг; //МОДУЛИЙН ДАХИН ТОДОРХОЙЛСОН ХЭСЭГ ///////////////////////////////////////// ///////////////////////////////////////////////////////// /// //////////////// Хүснэгтийн баримтыг буцаах; //Хүснэгтийн баримтыг буцаах EndFunction #EndArea

Хоёр функц, нэг журам байдаг.

Нэмэлт боловсруулалтын стандарт функц нь ExternalProcessingInfo() бөгөөд үүнгүйгээр систем үүнийг нэмэлт боловсруулалт гэдгийг ойлгохгүй. Энд чухал зүйл бол энэ боловсруулалтад хэрэгжсэн тушаал нь төрөлтэй болохыг харуулж байна Маягт нээх. Тэдгээр. Бид шаардлагатай маягтыг нээх болно. Дараа нь Хэвлэх процедурын тодорхойлолт ба хүснэгтийн баримт бичгийг шууд үүсгэдэг функц ирдэг.

Энд та энэ тохиолдолд хэвлэх команд нь менежерийн модулийн хэвлэх командын ердийн тодорхойлолттой адил 5 биш харин зөвхөн 4 параметрийг агуулсан байх ёстой гэдгийг анхаарах хэрэгтэй. Энэ тохиолдолд Print Options-ийг дамжуулах сонголт байхгүй. Тиймээс бид хэвлэсэн маягтыг бүрдүүлж буй объектуудаас гадна хэрэглэгчээс маягт дээр хүссэн параметрүүдийг дамжуулахын тулд ур чадвараа харуулах шаардлагатай болно.

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

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

CommandID - тэмдэгт мөр

Destination Objects - ValueList бичнэ үү

Энэ маягтын модульд дараах кодыг бичнэ үү.

&AtServer Procedure WhenCreatingAtServer(Failure, StandardProcessing) //Сервер дээр үүсгэхдээ нэмэлт тайлангууд болон нэмэлт боловсруулалтууд дэд системээр дамжуулсан стандарт параметрүүдийг санах хэрэгтэй. AdditionalProcessingReference = Parameters. CommandId = Parameters.CommandId; DestinationObjects.LoadValues(Parameters.DestinationObjects); EndProcedure &AtClient Procedure Print(Command) // Нээгдсэн маягтын өвөрмөц байдлын түлхүүрийг авна уу. UniqueKey = String(Шинэ UniqueIdentifier); //Тодорхойлж бөглөнө үү стандарт параметрүүдерөнхий хэлбэрийн хувьд PrintDocumentsOpenParameters = Шинэ бүтэц("DataSource, SourceParameters"); OpenParameters.DataSource = Нэмэлт боловсруулалтын лавлагаа; OpenParameters.SourceParameters = Шинэ бүтэц("CommandIdentifier, Destination Objects"); OpenParameters.SourceParameters.CommandId = CommandId; //Хэвлэх объектууд болон боловсруулах хэлбэрт оруулсан параметрүүд //SourceParameters.DestinationObjectsOpeningParameters.SourceParameters.DestinationObjects = GetDestinationObjectsAndPrintParameters(); OpenForm("CommonForm.PrintingDocuments",OpenParameters,FormOwner,UniqueKey); EndProcedure &AtServer функц GetDestinationObjectsAndPrintParameters()PrintData = DestinationObjects.Copy(); ///////////////////////////////////////////////////////// / //////////////////////////////////////////////////////// ///////////// //МОДУЛИЙН ДАХИН ТОДОРХОЙЛСОН ХЭСЭГ // //Энд бид thePrintParameters бүтцийг үүсгэж, түүнийгээ параметрүүдээр дүүргэж //хэвлэх функцэд дамжуулагдах ёстойPrintParameters = Шинэ бүтэц; PrintParameters.Insert("Мөрийн тоо", Мөрний хэмжээ); PrintData.Insert(0, PrintSettings); //МОДУЛИЙН ДАХИН ТОДОРХОЙЛСОН ХЭСЭГ ///////////////////////////////////////// ///////////////////////////////////////////////////////// /// //////////////// ReturnPrintData; Төгсгөлийн функцууд

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

Дараа нь бид маягт дээрх хэвлэх товчлуурын зохицуулагчийг тодорхойлно. Энэ зохицуулагч дээр бид "Баримт бичгийг хэвлэх" маягтыг өөрсдөө нээх хэрэгтэй бөгөөд үүний тулд бид тодорхой бүтцийн Нээлтийн сонголтыг бэлтгэх хэрэгтэй. Энэ бүтцэд дор хаяж хоёр талбарыг тодорхойлсон байх ёстой:

CommandId болон DestinationObjects агуулсан SourceParameters:

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

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

Би очих объектыг хэрхэн тодорхойлохыг функцээс харж болно GetDestinationObjectsAndPrintParameters. Энд би 0 индекс дэх массив элементийн оронд маягтын тулгуураас очих газруудаа хуулж, хэвлэх сонголтуудаа буулгана.

Ирээдүйд ийм байдлаар тодорхойлсон массив нь бидний өмнө нь тодорхойлсон объектын модулийн Хэвлэх процедурын эхний параметр болох "Баримт бичгийг хэвлэх" маягтаас дамжих болно.

Хэрэв бид боловсруулах объектын модулийн тодорхойлолт руу буцаж очоод PrintLayout функцийг харвал функцийн эхний гурван мөрөнд та Print процедурт дамжуулагдсан өгөгдлөөс миний параметрүүд болон объектуудыг хэрхэн гаргаж аваад дараа нь тэдэнтэй ажиллахыг харж болно.

DestinationObjects параметртэй ийм зохицуулалт хийх нь объектын модулийн Print процедурыг дуудах онцлогтой холбоотой юм. PrintDocuments маягтын модулийг нээснээр параметрүүд хэрхэн дамжиж, функцын дуудлага хийгдэж байгааг хянах боломжтой.

Үр дүн.

Ийм заль мэхийн үр дүнд бид хэвлэсэн маягтыг харуулахыг хүссэн маягт дээр гурван тушаал авах болно.

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

Эдгээр бүх тушаалууд ижил зүйлийг хийх болно:

Нэмэлт параметрийн хүсэлтийн маягтыг харуулах

Үүсгэсэн хэвлэмэл материалыг "Баримт бичгийг хэвлэх" хэлбэрээр харуул. Бидний хүссэн зүйл:

P.S. Загварын хувьд, нэмэлт параметрийн хүсэлтээр хэвлэх боломжтой зүйлсээ хэрэгжүүлэхийн тулд би хэвлэх материалыг бүрдүүлэх гурван аргад оролцдог боловсруулалтыг хоёуланг нь буулгадаг.

Энэ нийтлэлд 1С 8-ийг сайн мэдэхгүй эхлэгч хүн хэрхэн хэвлэх боломжтой болохыг нарийвчлан тайлбарлах болно. Жишээлбэл, 1С 8-ийн хамгийн түгээмэл тохиргоонуудын нэгийг авч үзье. Нягтлан бодох бүртгэл 2.0. Хэвлэх боломжтой 1С бичих үе шатууд:

  • Гадаад хэвлэх боломжтой файл үүсгэх;
  • Хэвлэсэн маягтын байршлыг бий болгох;
  • Дэлгэц дээр хэвлэсэн маягтын өгөгдлийг харуулах програмын код бичих;
  • Хэвлэсэн маягтыг автоматаар бүртгэх параметрүүдийг бий болгох;
  • Гадаад хэвлэх маягтыг сууринд холбох 1С аж ахуйн нэгжүүд.

1С хэвлэмэл хэлбэрийг бий болгох. Асуудлын томъёолол

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

  • Байгууллага;
  • Эсрэг тал;
  • эсрэг талын гэрээ;
  • Хүлээн авсан огноо.

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

  • Нэршил;
  • Тоо хэмжээ;
  • Үнэ;
  • нийлбэр;
  • Мөн тухайн өдрийн тухайн зүйлийн үнэ (баримт бичгийн үнийн төрлөөр).

Гадаад боловсруулах файл

Асуудлыг шийдэх тал руугаа явцгаая. Эхлэхийн тулд 1С 8 горимыг нээнэ үү Тохируулагч. Энэ горимд бүх хөгжүүлэлт 1С 8 платформ дээр явагддаг. Одоо бид гадаад боловсруулалтын файл үүсгэх хэрэгтэй. Үүнийг хийхийн тулд цэс дээр дарна уу Файл -> Шинэ...эсвэл шинэ файлын дүрсээр.

Нээгдсэн цонхонд тухайн зүйлийг сонгоно уу Гадаад боловсруулалт.

Цаашид талбай руу Нэрта гадаад боловсруулалтын нэрийг оруулах ёстой. Манай тохиолдолд үүнийг энгийнээр нэрлэе: "Хэвлэх маягт", синонимын талбар автоматаар бөглөгдөнө. Талбайд байгааг анхаарна уу нэр,гадаад боловсруулалт хийхдээ нэрийг хоосон зай, цэг таслалгүйгээр бичнэ.

Гадны боловсруулалтын шинж чанарыг нэмнэ үү ObjectReference-г сонгоод сонгоно уутүүний хувьд бичнэ Баримт бичгийн лавлагаа.Барааны хүлээн авалтҮйлчилгээ. Үүнийг хийхийн тулд гадаад боловсруулалтын 1С мета өгөгдлийн модноос тухайн зүйлийг сонгоно уу Шаардлагатай зүйлсболон товчийг дарна уу Нэмэх(ногоон нэмэх товчлуур). Дэлгэцийн баруун хэсэгт шинж чанаруудын цонх нээгдэнэ, талбарт Нэрбичих - LinkToObject. ATталбар Төрөлгурван цэг бүхий товчлуурыг дар.

Төрөл модны мөчрийг өргөжүүлнэ үү DocumentLink, тэндээс Бараа, үйлчилгээний хүлээн авалт гэсэн зүйлийг олоод, хажууд байгаа нүдийг чагтална уу БОЛЖ БАЙНА УУ.

Гадаад боловсруулах файлыг хадгална уу HDD, үүний тулд бид цэсийг ашигладаг Файл -> Хадгалах, дүрс Хадгалах(цэнхэр уян диск) эсвэл гарын товчлол ctrl+s. Хадгалсан файлаа "PrintForm" гэж нэрлэе.

Хэвлэх боломжтой зураглал үүсгэх

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

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

Нээгдсэн шинэ байршилд хэвлэсэн маягтыг харуулахад шаардлагатай хэд хэдэн хэсгийг үүсгэцгээе. Бидэнд хэрэгтэй бүх байршлын хэсгүүд нь хэвтээ байх тул шинэ газар үүсгэхийн тулд бид сонгох хэрэгтэй шаардлагатай хэмжээбайршлын шугамыг сонгоод цэс рүү очно уу Хүснэгт -> Нэр -> Нэр өгөхэсвэл гарын товчлолыг ашиглана уу Ctrl+Shift+Nдараа нь бүс нутгийн нэрийг хайрцагт оруулна уу. Байршлын талбайг үүсгэхдээ мөрийн тоогоор алдаа гаргахаас бүү ай, та тэдгээрийг үргэлж нэмж эсвэл устгаж болно. 1С байршлын шугамыг устгахын тулд хүссэн мөрийг сонгоод дотор нь сонгоно уу контекст цэсдогол мөр Устгах. Нэмэхийн тулд шинэ мөрбайршилд, байршлын аль нэг мөрийг сонгоод контекст цэсэн дэх зүйлийг сонгоно уу салгах.

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

Эхлээд талбайгаа байгуулъя. Малгай, энэ нь хэвлэсэн маягтын толгой хэсгийн өгөгдлийг харуулах болно. Энэ талбайн хувьд бидэнд долоон бүдүүвч шугам хэрэгтэй. Тэдгээрийг сонгоод дээр бичсэнчлэн гарын товчлолыг дарна уу Ctrl+Shift+N, талбарт Нэр"Малгай" гэж бичээд товчлуурыг дарна уу БОЛЖ БАЙНА УУ.

Загварын хэсгийг өөрт хэрэгтэй мэдээллээр дүүргэцгээе. Ихэвчлэн ямар ч хэвлэсэн маягт нь толгой гарчиггүйгээр дуусдаггүй тул бид үүнийг байршлын толгой хэсэгт мөн үүсгэх болно. Гарчиг хэсэгт хэвлэсэн маягтын нэрээс гадна хэвлэсэн баримтын дугаарыг харуулах тул байрлал дахь толгойн текстийг параметр болгон тохируулах болно. Байршлын параметр нь суулгасан 1С 8 хэлийг ашиглан янз бүрийн өгөгдлийг харуулах тусгайлан зориулагдсан байрлалын нүд юм. Гарчиг нь хэвлэсэн маягтын бүхэл бүтэн өргөн дээр харагдах ёстой тул стандарт дээр хэвлэхэд хичнээн тооны нүд хангалттай байхыг шийдье. ландшафтын чиглэлхуудас.

Ихэвчлэн арван гурав, арван дөрвөн байрлалын нүд хангалттай байдаг тул тэдгээрийг хэсгийн эхний мөрөнд сонгоно уу. Малгайба нэг нүдэнд нэгтгэх ( Контекст цэс -> нэгтгэх). Үүний дараа үүссэн том нүдэн дээр давхар товшоод параметрийн нэрийг бичнэ үү, бидний тохиолдолд "HeaderText". Оруулсан текстийг бүрэн параметр болгохын тулд нүдэн дээр хулганы баруун товчийг дараад контекст цэсэн дэх зүйлийг сонгоно уу. Үл хөдлөх хөрөнгө. Хавчуурга Зохион байгуулалтталбай олох дүүргэхмөн утгыг сонгоно уу Параметр. 1С байрлал дахь параметрүүдийг хаалтанд заасан "<>».

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

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

Зурагт байршлын сонголтууд нь энгийн текстээс хэрхэн ялгаатай болохыг харуулж байна.

Байршлын хүснэгтийн толгой хэсгийг нэмж байна

Энэ байршлын хэсэгт бидний хамгийн сүүлд үүсгэх ёстой зүйл бол хүснэгтийн хэсгийн өгөгдлийг харуулах хүснэгтийн толгой хэсэг юм. Бүтээгдэхүүн. Хүснэгтэд шаардлагатай багануудыг "Асуудлын мэдэгдэл" хэсэгт тайлбарласан болно. Мөн бид нүднүүдийг нэгтгэх, текст бичих (баганын нэр) ашиглан хүснэгтийн толгойг үүсгэх болно. Хэрэгслийг ашиглан хүснэгтийн толгойн хүрээг сонгоно уу Хүрээ, энэ нь байршлын форматлах мөрөнд байрладаг.

Байршилд хүснэгт нэмэх

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

Байршилд хөл хэсэг нэмэх

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

Үр дүн нь иймэрхүү харагдах загвар байх ёстой:

1С хэвлэмэл хэлбэрийг бий болгох. Програмчлал

Програмчлалаа эхэлцгээе - энэ бол хэвлэмэл хэлбэрийг бий болгох хамгийн чухал үе шат юм. Юуны өмнө гадаад хэвлэх хавтангийн объектын модуль руу орцгооё, энд бид програмчлах болно. Үүнийг хийхийн тулд гадаад боловсруулалтын үндсэн цонхон дээр дарна уу Үйлдлүүд -> Объект модулийг нээх.

Гадаад хэвлэх маягтын объектын модульд та экспортын функцийг үүсгэх хэрэгтэй Далайн хав().

Хэвлэх () Төгсгөлийн функцийг экспортлох

тэрийг тэмдэглэ өгөгдсөн функцашиглан тохиргоонд гадаад хэвлэх маягтуудад заавал байх ёстой тогтмол програм. Бид энэ функц дотор хэвлэсэн маягтыг харуулахад шаардлагатай бүх дараагийн програмын кодыг бичих болно.

Үндсэн хувьсагчдыг эхлүүлэх

Хувьсагч үүсгэцгээе TabDoc, энэ нь хүснэгтийн баримт бичгийг агуулсан байх болно - энэ нь бид бүдүүвчийн дүүргэсэн хэсгүүдийг харуулах хэвлэсэн маягт юм.

TabDoc = шинэ SpreadsheetDocument;

хувьсагч руу Зохион байгуулалтБид өөрсдийн бүтээсэн хэвлэмэл маягтын загварыг хүлээн авах болно. Үүнийг хийхийн тулд бид суурилуулсан функцийг ашигладаг GetLayout(<ИмяМакета>).

Layout = GetLayout("Layout");

Бид байршлын бүх хэсгийг хувьсагч болгон авах болно. Үүнийг хийхийн тулд бид зохион байгуулалтын аргыг ашигладаг GetRegion(<ИмяОбласти>) .

Толгой хэсэг = Байршил. GetArea("Толгой"); AreaData = Layout.GetArea("Өгөгдөл"); AreaFooter = Layout.GetArea("Зоорь");

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

Шаардлагатай бүх хувьсагчийг эхлүүлсэн. Хүснэгтийн баримт бичигт байршлын хэсгүүдийг бөглөж, үзүүлж эхэлцгээе. Юуны өмнө хэвлэсэн маягтын гарчгийг бөглөцгөөе, үүний тулд бид параметрийг оруулах хэрэгтэй. Гарчиг текст, бид зохион байгуулалтад бий болгосон, бидэнд хэрэгтэй текст. Параметрийн утгыг бөглөхийн тулд байршлын хэсэг нь тусгай цуглуулгатай бөгөөд үүнийг - Сонголтууд.Эндээс "." Та ямар ч параметрийг авч болно. Гарчгийн текстэнд бид "Хэвлэх маягт", мөн баримт бичгийн дугаарыг оруулна.

Header Area.Parameters.HeaderText = "Хэвлэх маягт"+ReferenceToObject.Дугаар;

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

HeaderScope.Parameters.Organization = LinkToObject.Organization; Толгой хэсэг.Parameters.Account = LinkToObject.Account; Header Area.Parameters.IncomingDate = ObjectReference.Date; Толгойн хэсэг.Параметрүүд.Харилцагч талын гэрээ = LinkToObject.Counterparty Agreement;

Толгойн бүх параметрүүдийг бөглөсөн тул бид үүнийг үүсгэсэн хүснэгтийн баримт бичигт харуулах бөгөөд үүний тулд бид аргыг ашигладаг. гаралт(<Область>) .

TabDoc.Output(HeaderArea);

Хэвлэсэн хөгжлийн бэрхшээлтэй иргэдийн хүсэлтийг бичих

Талбайг дүүргэж, үзүүлж эхэлцгээе Өгөгдөл. 1С хэвлэх боломжтой болгох нь асуулга бичих гэсэн үг бөгөөд хүснэгтийн хэсгийн өгөгдлийг авахын тулд бидэнд хэрэгтэй болно. Бүтээгдэхүүнболон үнэ Нэршилодоогийн огноог бид ашиглах болно Хүсэлт. 1C 8 асуулгын хэл нь SQL-тэй төстэй, эс тэгвээс түүний чадварыг бараг хуулбарладаг. SELECT мэдэгдэл, гэхдээ хүсэлтийг бүхэлд нь орос хэл дээр бичсэн. Тиймээс, хэрэв та ядаж SQL-ийг алсаас мэддэг бол 1С 8 асуулгын хэлийг хялбархан ойлгох болно.

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

Хүсэлтийг агуулсан хувьсагчийг үүсгэцгээе.

Хүсэлт = Шинэ хүсэлт;

Хүсэлтийн текстийг асуулга үүсгэгч ашиглан зохиох болно. Бичиж эхэлцгээе:

Хүсэлт.Текст = "";

Хулганы курсорыг хашилтын хооронд байрлуулж, хулганы баруун товчийг дарна уу. Нээгдсэн контекст цэснээс тухайн зүйлийг сонгоно уу Хүсэлт үүсгэгч,Энэ нь 1С хэвлэх боломжтой болгоход бидэнд маш их тус болно. Үүний дараа асуулга зохион бүтээгчийн цонх нээгдэх бөгөөд энэ нь олон таб агуулсан боловч бидний асуулгад зөвхөн дөрөв л хэрэгтэй болно: "Хүснэгт ба талбарууд", "Харилцаа", "Нөхцөл", "Нэгдмэл / Алдаа".

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

Дизайнерын цонхны зүүн хэсэгт баганыг олоорой Өгөгдлийн сан. Энэ нь бүх мета өгөгдлийн объектуудын модыг агуулж байгаа тул бидэнд хэрэгтэй зүйлээ олцгооё. Үүнийг хийхийн тулд салбараа нээнэ үү Баримт бичгүүдмөн баримт бичгийг олоорой Ирж буй бараа үйлчилгээ, нээгээд олоорой хүснэгтийн хэсэг Бүтээгдэхүүн, асуулга зохион бүтээгчийн багана руу чирнэ үү хүснэгтүүд. Чирэх, буулгах гурван арга байдаг: чирэх, хүснэгт дээр давхар товших, эсвэл сонгоод ">" товчийг дарах. Салбараа нээцгээе Бүртгэлийн мэдээлэлтэгээд тэнд ширээ олоорой PricesItems.SliceLast, мөн багана руу чирнэ үү хүснэгтүүд. Эдгээр хоёр хүснэгт нь бидний асуулгад хангалттай.

Гарсан хүснэгтүүдээс хэрэгтэй талбаруудыг сонгоцгооё. Үүнийг хийхийн тулд баганад хүснэгтүүдширээ нээх болон талбаруудыг олох: Нэршил, хэмжээ, үнэ, тоо хэмжээтэдгээрийг бүтээгчийн гурав дахь багана руу чирнэ үү - талбайнууд. Ширээ нээцгээе , талбарыг олох Үнэмөн үүнийг чирнэ үү талбайнууд.

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

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

Цонхоор гарсны дараа НөхцөлБид талбар нэмсэн Холбоос, асуулга үүсгэгч ижил нэртэй параметр үүсгээд "=" тэмдгийн ард байрлуулна. Энэ параметрхэрэв хүсвэл нэрийг нь өөрчилж болно. Хүсэлтийн текстэд параметрүүдийг "&" тэмдгээр тэмдэглэсэн боловч энэ тохиолдолд энэ нь шаардлагагүй, учир нь параметр нь нөхцөл байдлын хоёр дахь хэсэгт байгаа гэж үздэг тул та үүнийг санах хэрэгтэй. 1С хүсэлтийн параметрт утгыг хэрхэн дамжуулах талаар доор авч үзэх болно.

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

Виртуал хүснэгтийн параметрүүдийг бөглөхийн тулд таб руу очно уу Хүснэгт ба талбаруудасуулга үүсгэгч, баганад хүснэгтүүдхүснэгтийг сонгоно уу Үнэ ЗүйлсХэсэг Хамгийн сүүлдболон товчийг дарна уу Виртуал хүснэгтийн сонголтууддээд талд байрладаг. Нээх цонхонд талбарт Хугацаата үнийн бууралт хийх огноог шилжүүлэх параметрийг тохируулах ёстой. Манай тохиолдолд энэ нь одоогийн огноо (өөрөөр хэлбэл өнөөдөр) байх тул бид параметрийг "&CurrentDate" гэж нэрлэнэ. Нөхцөл байдлын талбарт бид үнийн төрлүүдийн нөхцөлийг бичих бөгөөд бид үүнийг "&PriceType" гэж нэрлэх параметрт дамжуулна. Үүссэн нөхцөл нь иймэрхүү харагдах болно (хаана Үнийн төрөл- хэмжилтийг бүртгэх Барааны үнэ):

PriceType = &Үнийн төрөл

Виртуал хүснэгтийн параметрүүдийг бөглөсөн тул товчийг дарна уу БОЛЖ БАЙНА УУ.

Одоо бид сонголтоо зөвхөн өөрт хэрэгтэй баримт бичгээр хязгаарласан тул асуулгын хүснэгтүүдийн хооронд харилцаа холбоо үүсгэцгээе. Хэрэв үүнийг хийгээгүй бол PricesItemsSliceLast хүснэгтийн үнэ нь хүлээн авсан зүйлтэй холбогдохгүй. Таб руу орцгооё Холболтуудасуулга үүсгэгч. Талбараар нь холбоос үүсгэцгээе НэршилМанай хоёр ширээний хооронд. Үүнийг хийхийн тулд товчлуурыг дарна уу Нэмэх, талбарт Хүснэгт 1ширээ сонгох Ирж буй бараа үйлчилгээ Бараа, мөн талбарт Хүснэгт 2 - PricesItemsSliceLast. Холболтын нөхцөлд талбаруудыг сонгоно уу Нэршилхоёр хүснэгтээс.

Асуулга сонгохдоо бид таб хэсгээс бүх мөрийг авах хэрэгтэй гэдгийг тэмдэглэх нь зүйтэй Бүтээгдэхүүнбаримт бичгийн үнийн төрлөөр одоогийн огноогоор байгаа тохиолдолд л үнэ. Тиймээс эдгээр табпартууд Бүтээгдэхүүнзаавал байх ёстой, гэхдээ үнийн бууралтын мэдээлэл биш. Тиймээс эдгээр хүснэгтүүдийн хоорондох холбоосуудад LEFT JOIN гэж нэрлэгддэг зүйлийг ашиглах шаардлагатай бөгөөд зүүн (эсвэл заавал) хүснэгт нь байх болно. Ирж буй бараа үйлчилгээ Бараа, мөн зөв (эсвэл нэмэлт) PriceItemSliceLast. руу зүүн нэгдэхасуулгын хүснэгтүүд дээр дурдсанчлан ажилласан тул та хайрцгийг шалгах хэрэгтэй Бүгдталбайн дараа Хүснэгт 1.


Хүсэлт бараг бэлэн болсон тул талбарын нэр дээр бага зэрэг ажиллахад л үлдлээ. Хавчуурга руу оч Холбоо / Алс нэрмөн талбарт өөр нэр тохируулна уу Үнэ зүйлЗүсмэлСүүлийн.Үнэ. Хорих нэр нь − байх болно Өнөөдрийн үнэ, энэ нь асуулгын сонголтын талбаруудын нэр болон хэвлэсэн маягтын байршил дахь параметрүүдийн нэрс таарч байх шаардлагатай.

Query дизайнерын ажил дууссан тул OK товчийг дарцгаая. Бүтээгч цонх хаагдсаны дараа та хүсэлтийн текст бүхий мөрийг бөглөж, дараах байдлаар харагдах болно.

Хүсэлт. Текст = "Сонгоно Бүтээгдэхүүн. (| &Одоогийн огноо, Үнийн төрөл = &Үнийн төрөл) AS Үнэ Бараа Зэрэгцээ Сүүлийн | Ирж буй БараарҮйлчилгээҮйлчилгээ.Бараа.Нэршил | = Үнэ зүйлЗэрэгсСүүлийн.Нэршил |ХААНА | Ирж буй барааҮйлчилгээ.Лавлагаа = &Лавлагаа";

Хүсэлтийн гүйцэтгэл

Бид хүсэлтэд шаардлагатай параметрүүдийг дамжуулах бөгөөд үүний тулд бид хүсэлтийн аргыг ашиглах болно setParameter(<ИмяПараметра>,<Значение>). Авахын тулд одоогийн огноосуулгасан функцийг ашиглах Одоогийн огноо (), энэ нь компьютерийн огноо, цагийг буцаана.

Бидэнд хэрэгтэй өгөгдлөөр сонголт авахын тулд асуулга ажиллуулцгаая. Үүнийг хийхийн тулд бид эхлээд query аргыг ашигладаг гүйцэтгэх(), дараа нь арга Сонгох().

Сонголт = Query.Execute().Select();

Хэвлэх боломжтой хүснэгтийг бөглөж байна

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

While Selection.Next() Loop EndCycle;

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

Нийт нийлбэр = 0; Нийт тоо = 0;

Гогцооны дотор бид талбайг дүүргэх болно Өгөгдөлодоогийн сонголтын элементээс өгөгдлийг хувьсагч болгон хувиргана Нийт нийлбэрболон Нийт тоонийлбэр ба тоон утгыг нэмж, эцэст нь бидэнд танил болсон аргыг ашиглан хүснэгтийн баримт бичигт тухайн хэсгийг харуулна. Гаралт(). Бидний хүсэлтийн талбарын нэр нь талбарын параметрийн нэрстэй яг ижил байна Өгөгдөл, дараа нь бөглөхдөө бид суурилуулсан FillPropertyValues ​​процедурыг ашиглана.<Приемник>, <Источник>) үл хөдлөх хөрөнгийн утгыг хуулдаг<Источника>өмч рүү<Приемника>.

While Selection.Next() Loop FillPropertyValues(DataArea.Parameters, Сонголт); Нийт нийлбэр = Нийт нийлбэр + дээж.нийлбэр; Нийт тоо хэмжээ = Нийт тоо хэмжээ + дээж.Тоо хэмжээ; TabDoc.Output(DataArea); Төгсгөлийн мөчлөг;

Хүснэгтийн баримт бичигт хэвлэх маягтын хөлийн гаралт

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

AreaBasement.Parameters.TotalQuantity = Total Quantity; RegionBasement.Parameters.TotalAmount = Нийт дүн; TabDoc.Output(RegionFooter);

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

TabDoc-г буцаах;

Энэ үе шатанд програмчлал дуусч, хэвлэх боломжтой 1c маягтыг бүтээх ажил бараг дуусч байна. Функцийн бүрэн текст Далайн хав()Би энд өгөхгүй, та үүнийг хэвлэх боломжтой файлаас харж болно, та үүнийг нийтлэлийн доод хэсэгт татаж авах боломжтой.

1С хэвлэмэл хэлбэрийг бий болгох. Автоматаар бүртгүүлэх сонголтууд

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

Үүнийг дараах байдлаар хийнэ.

  • Гадны боловсруулалтанд бид шинэ зохион байгуулалтыг бий болгодог. Бид үүнийг "Параметрийн_автомат бүртгэл" гэж нэрлэдэг (андуурахгүй байх нь чухал!).
  • Байршлын эхний нүдэнд бид бичнэ Баримт бичгүүд.(эсвэл Лавлах номууд.) болон хэвлэх боломжтой файлыг холбохыг хүссэн баримт бичгийн нэр.

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

  • 1С 8 горимд ажиллуулна уу Компани;
  • Цэс рүү оч Үйлчилгээ -> Нэмэлт тайлан, боловсруулалт -> Нэмэлт гадаад хэвлэх маягт;
  • товчийг дарна уу Нэмэх;
  • Нээгдсэн цонхон дээрх дүрс дээр дарна уу Гадаад боловсруулах файлыг солих;
  • Хэрэв та автомат бүртгэлийн параметрүүдийг үүсгэсэн бол бид тэдгээрийг ашиглахыг зөвшөөрч байна;
  • Хэрэв та автомат бүртгэлийн параметрүүдийг үүсгээгүй бол хүснэгтийн хэсэгт оруулна уу Хэвлэх хавтангийн дагалдах хэрэгсэлшаардлагатай баримт бичиг эсвэл лавлахыг нэмэх;
  • Бид товчлуурыг дарна БОЛЖ БАЙНА УУ.

Үүний дараа гадаад хэвлэх боломжтой цэсэнд бэлэн болно Далайн хавбаримт бичиг Бараа, үйлчилгээ хүргэх.Үүн дээр хэвлэх боломжтой 1С бүтээх ажлыг бүрэн гүйцэд гэж үзэж болно.