Pagbubukas ng panlabas na pagproseso 1s 8.3. Paano buksan ang panlabas na pagproseso ng programmatically? Pagbubukas ng panlabas na pagproseso bilang isang bagay

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 isang pangkat na pagkilos 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

Tahanan Para sa mga nagsisimulang developer Pag-aaral sa programa

Paano buksan ang panlabas na pagproseso ng programmatically?

Sa bersyon 8.2, ang application ay hindi gumagana nang direkta sa mga lokal na file na matatagpuan sa computer. Ang mga file ay dapat nasa server.

Samakatuwid, upang buksan ang panlabas na pagproseso kailangan mong isagawa ang sumusunod na pagkakasunud-sunod ng mga aksyon:

  • ilipat ang external processing file sa server,
  • ikonekta ang panlabas na pagproseso,
  • buksan ang external processing form.
&Sa Pamamaraan ng Kliyente Pagproseso ng Utos (Parameter ng Utos, Mga Parameter ng Pagpapatupad ng Utos) // Ilagay ang pagproseso sa pansamantalang storage Address ng Imbakan = ""; Resulta = PlaceFile(StorageAddress, "C:\ExternalProcessing.epf", False); ProcessingName = ConnectExternalProcessing(StorageAddress); // Open the form of the connected external processing OpenForm("ExternalProcessing."+ProcessingName +".Form"); EndProcedure &OnServer Function ConnectExternalProcessing(StorageAddress) Ibalik ang ExternalProcessing.Connect(StorageAddress); EndFunction

Upang ilipat ang isang file sa server, dapat itong ilagay sa pansamantalang imbakan. Upang gawin ito, una sa kliyente, sa handler ng utos para sa pagbubukas ng panlabas na pagproseso, kasama ang pag-andar PutFile() naglalagay kami ng file mula sa lokal na file system sa pansamantalang imbakan.

Ang ikaapat na parameter ng function na ito ay tumutukoy sa tanda ng interactive na mode ng pagpili ng isang panlabas na processing file. Kung ang parameter na ito totoo, pagkatapos ay lalabas ang isang dialog ng pagpili ng file, kung saan maaari kang pumili ng file na ilalagay sa storage. Sa aming halimbawa, ang parameter na ito ay kasinungalingan, at ang path sa file, ang data kung saan ilalagay sa pansamantalang storage, ay tahasang tinukoy sa pangalawang parameter ng function.

Kapag tumatawag sa isang function PutFile() ang unang parameter nito, Address ng Imbakan, tumukoy kami ng walang laman na string. Matapos maisakatuparan ang function, ilalagay sa variable na ito ang path sa external processing file sa pansamantalang storage. Ginagamit namin ang landas na ito upang ikonekta ang panlabas na pagpoproseso.

Ang koneksyon ng panlabas na pagproseso ay isinasagawa sa server gamit ang pamamaraan Isaksak() panlabas na tagapamahala ng pagproseso. Bilang isang parameter, ipinapasa nito ang landas sa panlabas na pagpoproseso ng file sa pansamantalang imbakan - Address ng Imbakan. Ibinabalik ng pamamaraang ito ang pangalan ng konektadong panlabas na pagproseso, - ProcessingName, - na ginagamit namin upang buksan ang form para sa pagproseso na ito.

Para magbukas ng external processing form, gamitin ang function OpenForm(), kung saan ipinapasa ang pangalan ng form bilang sumusunod na linya: "ExternalProcessing."+ProcessingName +".Form". Sa embodiment sa itaas, bubukas ang pangunahing form sa pagproseso. Maaari ka ring magbukas ng isang form na hindi pangunahing pagproseso - tinalakay ito sa tanong na Paano makakuha ng isang form na hindi pangunahing pagproseso? .

Kapag nagtatrabaho sa panlabas na pagproseso, kailangan mong isaalang-alang na bilang default ay inilunsad sila sa ligtas na mode ng pagpapatupad ng code ng programa. Nangangahulugan ito na hindi magiging available sa kanila ang ilang feature ng built-in na wika. Kung sigurado ka na ang panlabas na pagpoproseso ay walang malisyosong code, maaari itong i-activate sa normal na mode ng pagpapatupad ng program code. Para dito, ginagamit ang pangatlong parameter ng pamamaraan Isaksak() panlabas na tagapamahala ng pagproseso.

Higit pang impormasyon tungkol sa safe execution mode ng program code ay matatagpuan sa dokumentasyon.

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 mga karagdagang aksyon dito (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);

Nangyayari na upang gumana kailangan mong gumamit ng panlabas na pagproseso o isang ulat, ngunit hindi ito palaging posible kaagad. Minsan, kapag sinubukan mong buksan ang panlabas na pagpoproseso o isang ulat gamit ang menu item na "File" at pagkatapos ay "Buksan," lilitaw ang isang mensahe ng error na nagsasaad na ang mga karapatan sa pag-access ay nilabag.

Ngunit una, tingnan natin kung paano karaniwang binubuksan ang mga panlabas na ulat at pagproseso sa " 1C: Accounting 8.3»bersyon 3.0. Ang mga ito ay karaniwang isang archive na na-download mula sa Internet o nakuha sa ibang paraan. Kapag na-save na ito, halimbawa sa desktop, sa pamamagitan ng pag-double click ay makikita natin ang mga nilalaman nito.

Mga pagkilos para sa normal na interface:

  1. Mag-right-click sa nais na file at piliin ang item ng menu ng konteksto na "Kopyahin".
  2. Bumalik kami sa desktop, mag-right-click sa libreng espasyo at piliin ang "I-paste" (o i-drag lamang ang file mula sa archive patungo sa desktop).
  3. Maaari mo ring i-extract ang file mula sa archive nang direkta sa nais na lokasyon sa disk (sa aming halimbawa, ito ang desktop).
  4. Ngayon piliin ang file na may pagproseso sa desktop at i-click ang "Buksan".
  5. Ang pagpoproseso ay bukas sa programa at magagamit mo ito.

Mga pagkilos para sa isang pinamamahalaang interface (halimbawa, Taxi)

  1. Buksan nang direkta mula sa file.
  2. Sa menu, piliin ang "File", pagkatapos ay "Buksan".
  3. Sa window na bubukas, pumunta sa desktop, piliin ang pagproseso ng file at i-click ang "Buksan".

Para sa higit na kaginhawahan, maaari kang lumikha ng isang espesyal na folder para sa mga paggamot at iimbak ang lahat sa loob nito.

Kung hindi mo mabuksan ang pagproseso o isang ulat, maaari mong gamitin ang isa sa dalawang opsyon.

Unang paraan

Maaari kang magrehistro ng pagpoproseso sa isang direktoryo na tinatawag na "Mga karagdagang ulat at pagproseso". Kaya, inirehistro namin ang pagproseso sa database.

  1. Pumunta kami sa seksyon ng pangangasiwa, piliin mula sa listahan ang item ng mga naka-print na form, ulat at pagproseso.
  2. Sa lalabas na window, lagyan ng check ang kahon na "Mga karagdagang ulat at pagproseso" at buksan ang link na may parehong pangalan.
  3. Sa bagong window, mag-click sa "Lumikha".
  4. Basahin ang babala sa seguridad at i-click ang "Magpatuloy".
  5. Sa susunod na window, piliin ang lokasyon ng file na may pagproseso at i-click ang "Buksan".

Mahalaga!

Kung sa yugtong ito ay lumilitaw ang isang error kasama ang teksto: "Imposibleng ikonekta ang karagdagang pagproseso mula sa file...", kakailanganin mong gamitin ang pangalawang paraan na inilarawan sa ibaba.

  1. Kung walang nangyaring error, hanapin ang item na “Placement” sa “Commands”.
  2. Sa window na "Mga Seksyon ng Command Interface," suriin ang seksyong Mga Operasyon.
  3. Sa talahanayan nakita namin ang "Mabilis na pag-access" at buksan ito.
  4. Piliin ang lahat ng user at i-click ang OK.
  5. I-click ang button na "I-save at isara".

Matagumpay na nairehistro ang pagproseso. Upang buksan ito, kakailanganin mong pumunta sa seksyon ng mga operasyon, piliin ang karagdagang item sa pagproseso, piliin ang kailangan mo at mag-click sa "Run".

Pangalawang paraan

Kung ang pagpoproseso ay hindi sumusuporta sa pagpaparehistro na inilarawan sa unang pagpipilian, maaari mong gawin ito sa ibang paraan, lalo na: muling paganahin ang kakayahang buksan ang pagproseso sa database gamit ang menu na "File" gamit ang kanang pindutan ng mouse na "Buksan".

  1. Pumunta sa database configurator.
  2. Piliin ang "Pamamahala" mula sa menu, pagkatapos ay "Mga Gumagamit".
  3. I-double click ang gustong user.
  4. Pumunta sa tab na tinatawag na “Iba pa”.
  5. Lagyan ng check ang kahon para sa "Interactive na pagbubukas ng mga panlabas na ulat at pagproseso."
  6. I-click ang "OK".
  7. Isinasara namin ang configurator, at gayundin, kung ito ay bukas, ang database.
  8. Muli kaming pumunta sa database at buksan ang ulat na kailangan namin sa menu na "File" gamit ang command na "Buksan".