1s 8.3 buksan ang processing form na pinamamahalaang aplikasyon. Ang panlabas na pagproseso ay nakaimbak sa disk nang hiwalay sa infobase

Sa artikulong ito, isasaalang-alang namin ang sunud-sunod na mga tagubilin para sa paggawa ng panlabas na pagpoproseso sa 1C 8.3 sa managed application mode; ayon dito, gagamit kami ng mga pinamamahalaang form. At ang pinakamahalaga, matututunan natin kung paano ito ikonekta sa mekanismo ng "panlabas na pagproseso" ng mga pagsasaayos ng 1C na binuo sa isang library ng mga karaniwang subsystem na bersyon 2.0 at mas bago.

Ang gawain ay ang mga sumusunod: upang lumikha ng pinakasimpleng panlabas na pagpoproseso na magsasagawa ng pagkilos ng pangkat sa direktoryo ng "Item", ibig sabihin, itakda ang napiling porsyento ng rate ng VAT para sa tinukoy na pangkat ng mga item.

Upang gawin ito, agad naming gagawin ang mga kinakailangang setting sa programa (isinasaalang-alang namin ang pagsasaayos ng 1C 8.3: "Enterprise Accounting 3.0" sa mga pinamamahalaang form).

Ang paglalagay ng check sa kahong ito ay nagbibigay sa amin ng pagkakataong gumamit ng panlabas na pagproseso.

Paglikha ng bagong panlabas na pagproseso sa 1C 8.3 gamit ang isang halimbawa

Ngayon pumunta tayo sa configurator. Sa menu na "File", piliin ang "Bago...". Magbubukas ang isang window para sa pagpili ng uri ng file na gagawin. Piliin ang "Panlabas na pagproseso":

Magbubukas ang isang bagong panlabas na window ng pagproseso. Bigyan natin siya ng pangalan kaagad. Iaalok ito kapag nagse-save ng pagproseso sa disk:

Magdagdag tayo ng bagong kinokontrol na form sa pagproseso. Ipinapahiwatig namin na ito ay isang paraan ng pagproseso at ito ang pangunahing:

Magkakaroon kami ng dalawang detalye sa form:

  • Nomenclature group – link sa direktoryo ng “Nomenclature”;
  • SelectVATRate – link sa paglipat ng VAT Rate.

Ginagawa namin ang mga detalye sa column na "Properties" sa kanang itaas na window. I-drag ang mga ito gamit ang mouse sa kaliwang itaas na window. Dapat na agad na lumabas ang mga bagong detalye sa form sa ibaba.

Maaaring baguhin ang pagkakasunud-sunod ng mga detalye gamit ang "Up" - "Down" na mga arrow:

Kumuha ng 267 video lesson sa 1C nang libre:

Ang natitira na lang ay idagdag ang pindutang "I-install". Sa mga pinamamahalaang form, hindi ka basta basta magdagdag ng button sa form. Kahit na idagdag mo ito sa istruktura ng mga elemento ng form, hindi ito makikita sa mismong form. Ang pindutan ay dapat na nauugnay sa utos na isasagawa nito. Pumunta sa tab na "Mga Command" at idagdag ang command na "Itakda ang Rate ng VAT". Sa mga katangian ng command, lumikha ng isang aksyon. Piliin ang command handler na "Sa kliyente". Ang isang command ay maaari ding idagdag sa form sa pamamagitan lamang ng pag-drag nito sa seksyon na may mga elemento ng form.

Ang isang pamamaraan ng parehong pangalan ay malilikha sa module ng form. Sa loob nito tatawagin namin ang pamamaraan sa server:

&OnClient

Procedure Set VAT Rate (Command)

SetVATRateOnServer();

Katapusan ng Pamamaraan

Sa pamamaraan sa server, magsusulat kami ng isang maliit na kahilingan at mga aksyon na nauugnay sa pagtatakda ng rate ng VAT:

&Sa server

Procedure SetVATRateOnServer()

Kahilingan = Bagong Kahilingan;
Request.Text =
"PUMILI
| Nomenclature.Link
|MULA
| Directory.Nomenclature AS Nomenclature
|SAAN
| Nomenclature.Link IN HIERARCHY (&Nomenclature Group)
| AT HINDI Nomenclature.MarkDeletion
| AT HINDI Nomenclature. Ito ay isang Grupo”;

Request.SetParameter("Pangkat ng Item", Pangkat ng Item);
ResRequest = Request.Execute();
SelectRecordDet = ResRequest.Select();

Habang SelectRecordDet.Next() Loop

Tangka
SprNomObject.Write();
Exception
Report("Error writing object """ + SprNomObject + """!
|» + DescriptionError());
EndAttempt;

EndCycle;

Katapusan ng Pamamaraan

Bumalik kami sa tab na "Form", magdagdag ng isang pindutan sa form at iugnay ito sa utos:

Dahil dito, handa nang gamitin ang aming pagproseso. Upang tawagan ito, sa mode na "1C Enterprise", kailangan mong pumunta sa menu na "File" - "Buksan" at piliin ang nilikha na file.

Gayunpaman, ang pagtatrabaho sa mode na ito ay maginhawa para sa pagpoproseso ng pag-debug, ngunit hindi ganap na angkop para sa user. Ang mga gumagamit ay nakasanayan na magkaroon ng lahat "nasa kanilang mga kamay," ibig sabihin, sa database mismo.

Ito ay para sa seksyong "Mga karagdagang ulat at pagproseso."

Ngunit upang maidagdag ang aming pagproseso doon, kailangan muna namin itong bigyan ng paglalarawan at sabihin sa programa ang mga katangian nito.

Paglalarawan ng function na "Impormasyon tungkol sa Panlabas na Pagproseso"

Magbibigay ako ng isang halimbawa ng mga nilalaman ng function na ito. Dapat itong ma-export at, nang naaayon, matatagpuan sa processing module:

Function InformationOnExternalProcessing() Export

DataForReg = Bagong Istraktura();
DataForReg.Insert("Pangalan", "Setting ng rate ng VAT");
DataForReg.Insert("SafeMode", True);
DataForReg.Insert("Bersyon", "ver.: 1.001");
DataForReg.Insert("Impormasyon", "Pagproseso para sa pagtatakda ng rate ng VAT sa direktoryo ng Nomenclature");
DataForReg.Insert("View", "AdditionalProcessing");

CommandTable = NewValueTable;
TabZnCommands.Columns.Add("Identifier");
TabZnCommands.Columns.Add("Paggamit");
TabZnCommands.Columns.Add("View");

NewRow = TabZnCommands.Add();
NewString.Identifier = "OpenProcessing";
NewRow.Use = "OpenForm";
NewRow.View = "Buksan ang pagproseso";
DataForReg.Insert("Commands", TabZnCommands);

Ibalik ang DataForReg;

EndFunction

Upang mas maunawaan kung aling mga field ng istraktura ng data ng pagpaparehistro ang kailangang gamitin, tingnan natin ang mga detalye ng direktoryo ng "Mga karagdagang ulat at pagproseso":

Tulad ng nakikita mo, ang lahat ay medyo simple. Isang attribute lang ang hindi tumutugma: “Pagpipilian sa Paglunsad” – “Gamitin”. Kung titingnan natin ang code ng isa sa mga karaniwang module, makikita natin kung paano lumitaw ang isang grupo ng mga field na ito:

Upang matukoy kung aling mga patlang ng isang istraktura ang kinakailangan, maaari mo munang hindi ilarawan ito, lumikha lamang ng isang walang laman, at pagkatapos ay gamitin ang debugger. Kung susubaybayan mo ang mga module kapag nagrerehistro sa pagpoproseso, magiging malinaw kaagad kung aling mga field ang kinakailangan at alin ang hindi.

Pagkonekta sa panlabas na pagproseso sa 1C 8.3

Upang gumana sa panlabas na pagpoproseso (at isang panlabas na form sa pag-print ay isa ring panlabas na pagproseso), mayroong isang bagay Panlabas na Pagproseso.

Isaalang-alang natin ang dalawang posibleng kaso:

Ang panlabas na pagproseso ay nakaimbak sa disk nang hiwalay sa infobase

Upang mabuksan ng programmatically ang panlabas na pagproseso sa 1C, kailangan mong malaman ang address ng file nito. Sa pag-alam nito, maaari kang magbukas ng isang form sa pagpoproseso o kumuha ng isang bagay sa pagpoproseso upang magsagawa ng karagdagang mga aksyon kasama nito (halimbawa, upang tumawag sa mga function ng pag-export mula sa isang module ng object).

Pagbubukas ng panlabas na form sa pagproseso

Upang magbukas ng isang panlabas na form sa pagproseso sa 1C, gamitin ang function GetForm() bagay Panlabas na Pagproseso. Ang function ay may ilang mga parameter. Isaalang-alang ang isang simpleng pagbubukas ng pangunahing form sa pagproseso:


Form = Mga Panlabas na Proseso. GetForm(FileAddress) ;
Form. Buksan();

Upang magbukas ng menor de edad na panlabas na form sa pagpoproseso, dapat mong tukuyin ang pangalan nito.

//Ang FileAddress variable ay naglalaman ng buong path sa panlabas na processing file
Form = Mga Panlabas na Proseso. GetForm(FileAddress, "MinorForm") ;
Form. Buksan();

Pagbubukas ng panlabas na pagproseso bilang isang bagay

Upang makatanggap ng panlabas na pagproseso bilang isang bagay, ginagamit ang isang function Lumikha () bagay Panlabas na Pagproseso.

//Ang FileAddress variable ay naglalaman ng buong path sa panlabas na processing file
ProcessingObject = ExternalProcessing. Lumikha(FileAddress) ;

Bilang default, ang lahat ng pagproseso ay binuksan sa safe mode. Upang huwag paganahin ito, gamitin ang mga sumusunod na opsyon:

//Ang FileAddress variable ay naglalaman ng buong path sa panlabas na processing file

External processing o printing form na naka-save sa infobase

Sa maraming configuration, posibleng i-save ang mga external na naka-print na form at direktang iproseso sa infobase. Ginagamit ang reference book para dito. Panlabas na Pagproseso. Ang panlabas na pagproseso mismo ay naka-imbak bilang binary data o sa mga katangian StorageExternalProcessing, o sa tabular na seksyon Pagkakaugnay sa props StorageExternalProcessing.

Upang buksan ang panlabas na pagproseso kailangan mo:

  1. Kunin ito mula sa imbakan.
  2. I-save ang naprosesong file sa disk.
  3. Magbukas ng form o kumuha ng processing object.
  4. Kung tayo ay nakikitungo sa isang panlabas na naka-print na form, pagkatapos ay maaari naming punan ang mga karaniwang detalye Sanggunian ng Bagay at tawagan ang export function selyo.

//Ang variable ng RefLink ay naglalaman ng isang link sa elemento ng direktoryo ng ExternalProcessings
DvData = RefLink. Panlabas na Imbakan ng Pagproseso. Kumuha ();
FileAddress = GetTemporaryFileName() ;
DvData. Sumulat(FileAddress);
ProcessingObject = ExternalProcessing. Lumikha(FileAddress, Mali);