1s SKD editing parameters selection form. Mga tampok ng paglikha ng mga ulat (1Cv8). Paano magdagdag ng nae-edit na parameter na hindi gumagamit

Mga tampok ng paglikha ng mga ulat sa 1C v8 sa makapal na client mode

Paano pumili ng opsyon?

  • Ilagay ang button na "Piliin ang Opsyon" sa panel ng ulat
  • Ilagay ang field na "OnDate" sa form.

Halimbawang code: ProcedureFormActionSelectOption(Button) layout = GetLayout("MainDataLayoutScheme"); spOptions = Bagong ValueList; Para sa bawat opsyon mula sa layout.OptionsSettings Loop spOptions.Add(option.Settings, option.View); EndCycle;

selection = cnOptions.SelectItem(); Kung pinili = Undefined Then Return; tapusin kung;

SettingsComposer.LoadSettings(selection.Value);

Bumuo (); Katapusan ng Pamamaraan

Pamamaraan OnDateOnChange(Element) Bumuo(); Katapusan ng Pamamaraan

Procedure Generate()FormElements.Result.Clear(); Mga Setting Composer.Settings.DataParameters.SetParameterValue("Period", ToDate); ComposeResult(FormElements.Result); Katapusan ng Pamamaraan

Pamamaraan Kapag Nagbubukas() OnDate = CurrentDate(); Bumuo (); Katapusan ng Pamamaraan

Mga tampok ng paglikha ng mga ulat sa pamamagitan ng access control system

Hakbang-hakbang na paggawa ng ulat

  1. Lumikha ng isang Ulat sa node ng Mga Ulat
  2. Gumawa ng Layout sa isang ulat na ang uri ay Data Layout Scheme
  3. Sa hanay ng mga katangian ng ulat: Pangunahing layout ng data = Nilikhang Layout
  4. Sa mga property ng ulat, itakda ang subsystem kung saan ito nabibilang (ang ulat sa Enterprise ay ipapakita sa tuktok na panel ng navigation)
  5. Lumikha ng query sa Layout (item: Magdagdag ng set ng data - Query)
  6. Sa tab na Mga Pagpipilian para sa Layout, kailangan mong alisan ng tsek ang lahat ng linya sa column ng Availability Restriction - i.e. lahat ng mga parameter ay magagamit para sa pag-edit ng gumagamit
  7. Sa tab na Mga Setting ng Layout, sa window kung saan ipinapakita ang Report node, kailangan mong lumikha ng bagong pagpapangkat nang hindi tinukoy ang field ng pagpapangkat - isang detalyadong linya ang gagawin
  8. Sa tab na Mga Setting ng Layout, sa window kung saan ipinapakita ang karagdagang hanay ng mga bookmark, piliin ang karagdagang. Tab na Mga Parameter - markahan ang lahat ng mga parameter na may checkmark at sa bawat parameter i-click ang elemento ng Properties ng elemento ng mga setting ng user, magbubukas ang window ng mga setting ng parameter, kung saan kailangan mong suriin ang kahon - Isama ang parameter sa mga setting ng user
  9. Sa tab na Mga Setting ng Layout, sa window kung saan ipinapakita ang karagdagang hanay ng mga bookmark, piliin ang karagdagang. Tab na SelectedFields - doon kailangan mong magdagdag ng mga column na ipapakita sa ulat
  10. Ilunsad ang Enterprise, buksan ang ulat, itakda ang mga halaga ng parameter, Bumuo (tingnan kung ang pagpipilian sa pagbuo ng Pangunahing ulat ay napili)

Paano magdagdag ng isang hindi-user na nae-edit na parameter?

Halimbawa, kailangan nating itakda ang parameter ng query na "Infobase"

  • Sa form ng layout ng layout, sa tab na Mga Opsyon, alisan ng tsek ang mga checkbox na "Isama sa mga available na field" at "Limitahan ang availability" para sa gustong parameter.
  • Sa form ng layout ng layout, sa tab na Mga Setting, sa subtab na Mga Parameter (sa ibaba), alisan ng tsek ang nais na parameter, mga bukas na katangian (button na may wrench), sa form na ito:
    • Alisan ng check ang flag na "Isama sa mga setting ng user."
    • Itakda ang editing mode sa "Hindi available"


  • Sa module ng form ng ulat sa tagapangasiwa ng kaganapan "Kapag Naglo-load ng OpsyonSa Server" (maaari mo ring Kapag Nagbubukas, ngunit HINDI Kapag LumilikhaSa Server, dahil ito ay naisakatuparan BAGO i-load ang mga setting ng ulat at ang mga setting ay ma-overwrite) sa programmatically set ang parameter:

&Sa Pamamaraan ng Server Kapag Naglo-load ng Opsyon Sa Server (Mga Setting)

//Setting the Settings parameter = Report.Settings Composer.Settings; Settings.DataParameters.SetParameterValue("InformationBase", Report.InformationBase); Katapusan ng Pamamaraan

Paano magtakda ng mga opsyon sa ulat?

  • Sa form ng layout ng layout sa tab na Mga Setting sa field sa kaliwa, maaari kang lumikha ng mga kinakailangang opsyon sa ulat

Paano magtakda ng mga pagpapangkat?

  • Sa form ng layout ng layout sa tab na Mga Setting sa field sa kanang tuktok maaari kang lumikha ng mga kinakailangang pagpapangkat

Paano magpapakita ng ulat sa programmatically?

Sa form na module:

&Sa Client Procedure GenerateReportExecute()

ThisForm.ComposeResult();

Katapusan ng Pamamaraan

Paano subukan ang isang ulat?

Kailangan mong gawin:

  • Ang pinaka-maginhawang paraan upang lumikha ng isang sitwasyon sa isang pagsubok ng kliyente ay sa pamamagitan ng talahanayan ng sitwasyon
  • kunin ang form ng ulat - form = GetForm("Report.Process Movement.Form.ReportForm");
  • i-load ang nais na variant ng ulat - itakda ang parameter ng extension ng form ng ulat na "Variant Key" (ang pangalan ng setting sa layout ng komposisyon ng data)
  • i-load ang mga kinakailangang setting ng ulat - ? Ang pagpuno sa parameter ng extension ng form ng ulat na "UserSettings" (uri ang "UserDataCompositionSettings") ay hindi gumana, ang lahat ay kumplikado, tingnan sa ibaba.
  • open form - form.Open()
  • magsagawa ng pagbuo - form.ArrangeResult();
  • suriin ang mga nilalaman ng form ng dokumento ng spreadsheet - magiging maganda ang pagkakaroon ng mga function ng paghahambing sa reference na mxl
  • close form - form.Close(); - o baka hindi mo na kailangang buksan ito, kailangan mong suriin

Tingnan din

  • Paglalarawan: Help menu/Syntax Assistant/tab na Mga Nilalaman/Pinamamahalaang Application Interface Objects/Mga Pinamamahalaang Form Extension/Pinamamahalaang Form Extension para sa Ulat/Mga Opsyon sa Form

Paano i-load ang mga kinakailangang setting ng ulat?

Inilalarawan ng dokumentasyon na mayroong ganoong parameter para sa pagpapalawak ng form ng ulat na "UserSettings" ng uri na "UserDataCompositionSettings", ngunit mayroong isang napaka-komplikadong istraktura ng bagay, hindi posible na gamitin ito.

Talagang gumaganang scheme:

1. Lumikha ng mga parameter sa ulat

  • Uri ng panahon StandardPeriod
  • Pagpili ng uri ng ValueList (Magiging mas mahusay ang Structure, ngunit wala ito sa listahan ng mga uri ng parameter, pati na rin ang isang arbitrary na uri)

2. Ipinapasa namin ang mga kinakailangang parameter sa pamamaraang GetForm:

panahon = NewStandardPeriod; period.Option = StandardPeriodOption.CustomPeriod; panahon.StartDate = currentDate; panahon.EndDate = tomorrowDate;

selection = Bagong ValueList; selection.Add(Testing.GetObject(stSituation, "BP1"), "BusinessProcess");

stParameters = Bagong Structure("Variant Key, Period, Selection", "Main", period, selection); // OpenFormModal("Report.Process Movement.Form.ReportForm", stParameters); form = GetForm("Report.Process Movement.Form.ReportForm", stParameters);

3. Itakda ang mga parameter sa form na humahawak ng kaganapan

&OnServer Function spGet(spList, view) I-export Para sa Bawat elemento Mula sa spList Loop If element.View = view Pagkatapos Ibalik ang element.Value; tapusin kung; EndCycle; Return Undefined; EndFunction

&Sa Server Procedure SetCustomSettingsValue(Settings, Name, Value) Para sa Bawat Elemento Mula sa Settings.Elements Loop If TypeValue(element) = Type("DataCompositionSettingsParameterValue") Then If String(element.Parameter) = Name Then element.Value = Value; elemento.Gamitin = Tama; tapusin kung; tapusin kung; EndCycle; Katapusan ng Pamamaraan

&Sa Server Procedure SetCustomSelectionValue(Settings, Name, Value) Para sa Bawat elemento Mula sa Settings.Elements Loop Kung TypeValue(element) = Type("DataComposition Selection") Pagkatapos Para sa Bawat seleksyon Mula sa element.Elements Loop Kung Row(selection.LeftValue) = Pangalan Pagkatapos pagpili .RightValue = Value; pagpili.Gamitin = Tama; tapusin kung; EndCycle; tapusin kung; EndCycle; Katapusan ng Pamamaraan

&Sa Pamamaraan ng Server Kapag Naglo-load ng Opsyon Sa Server (Mga Setting)

Pangalan ng CurrentVariant = View ng CurrentVariant;

Mga Setting = Report.SettingsComposer.Settings; Settings.DataParameters.SetParameterValue("InformationBase", Report.InformationBase);

Katapusan ng Pamamaraan

&OnServer Procedure Kapag Naglo-load ng UserSettingsOnServer(Settings) Settings = Report.Settings Linker.UserSettings;

<>"00010101" Pagkatapos Settings = Report.Settings Composer.UserSettings; SetCustomSettingValue(Settings, "Period", Parameters.Period); tapusin kung;

ssBusinessProcess = spGet(Parameters.Selection, "BusinessProcess"); Kung ang ssBusinessProcess<>Hindi Tinukoy Pagkatapos SetCustomSelectionValue(Mga Setting, "BusinessProcess", ssBusinessProcess); tapusin kung;

Katapusan ng Pamamaraan

Mga Tala:

  • Mayroong Mga Parameter ng Data, iyon ay, kung ano ang nakatakda sa mga parameter ng kahilingan ng ACS
  • Ang ilan sa mga ito ay itinalaga sa mga setting ng opsyon sa UserSettings (sa mga katangian ng parameter ay may flag na "Isama sa mga setting ng user"
  • Kahit na, kapag naglo-load sa server, na-load mo ang mga kinakailangang halaga sa mga parameter ng data, pagkatapos ay bubukas ang isang form kung saan awtomatikong na-load ang mga setting na na-save noong huling pagkakataon. Ang mga setting na ito ay "naaantala" ang mga setting ng data kapag bumubuo ng isang ulat
  • Sa WhenLoadingUserSettingsOnServer handler, ang nakapasa na object na Mga Setting ay isang kopya tunay na mga setting, samakatuwid, upang baguhin ang mga setting na lumilitaw sa form, kailangan mong punan ang Report.Settings Composer.UserSettings object

Paano gumawa ng maramihang (listahan) na mga parameter ng query sa ACS?

Dapat gamitin ng query ang expression "Sa (&ParameterName)"(tingnan ang mga Boolean na expression sa 1Cv8 query language)

Sa pag-set up ng layout ng ACS diagram sa tab na "Mga Parameter", para sa parameter na ito kailangan mong suriin ang kahon sa column na "Listahan ng mga value na available". Sa kasong ito, kapag pumili ka ng isang parameter, ang ACS ay nagpapakita ng isang form sa pag-edit ng listahan kung saan maaari kang magdagdag ng anumang halaga ng parameter.

Paano i-disable ang mga parameter ng query sa access control system?

Sa SKD query, dapat kang gumamit ng mga construction na napapalibutan ng mga kulot na brace "{}" .

Kung ang checkbox para sa kaukulang parameter ay hindi naka-check sa form ng ulat (panel ng mga mabilisang setting), aalisin ang construct na ito sa kahilingan.

Tingnan ang higit pang mga detalye. Extension ng Wika ng Query para sa Data Composition System (1Cv8)

Paano gumawa ng ulat na may spread ng column?

Upang gawin ito, sa pag-set up ng opsyon sa ulat (pag-edit ng layout ng layout ng data, tab na "Mga Setting", field sa kanang tuktok), kailangan mong idagdag ang "Talahanayan" bilang unang pagpapangkat.

Pagkatapos nito, lilitaw ang mga sanga ng "Rows" at "Column" sa node na "Table", kung saan idinaragdag ang mga kinakailangang pagpapangkat.

Paano i-configure ang format ng output ng field?

Sa editor ng layout ng komposisyon ng data, sa tab na "Mga Set ng Data" sa kanang bahagi sa itaas ay mayroong isang listahan ng mga field ng ulat.

Mayroong dalawang mga posibilidad:

  1. Itakda ang halaga ng column na "View Expression."
    • dito maaari kang magpasok ng isang expression ng wika na gumagawa ng nais na string
    • hindi ito gumagana sa mga field ng mapagkukunan
  2. Itakda ang halaga ng column na "Disenyo."
    • sa disenyo mayroong isang "Format" na pag-aari - ang halagang ito ay katulad ng parameter ng function ng wika na "Format", maaari mong itakda ang nais na hitsura
    • hindi posible ang uri ng conversion dito

Para sa mga field ng mapagkukunan, maaari mong tukuyin ang mga expression ng pagkalkula (ang tab na "Mga Mapagkukunan") - halimbawa,

Halaga(Oras)/3600.0

upang i-convert mula sa mga segundo sa oras.

Maaaring itakda ang kinakailangang katumpakan sa pamamagitan ng field na "Disenyo" sa tab na "Mga Set ng Data".

Mga tampok ng pagtatakda ng mga parameter para sa sistema ng komposisyon ng data

Hindi bababa sa TATLONG uri ng mga parameter ang umiiral at nangangailangan ng iba't ibang pagproseso:

Mga Pagpipilian sa Data

Ang mga parameter ng data ay tinukoy sa kahilingan (pinagmulan ng data) ng sistema ng kontrol sa pag-access.

Ang mga parameter ng data ay ipinapasa sa kahilingan ng data source at tukuyin ang data na kukunin.

Ang object ng Settings Composer ay may espesyal na katangian para sa pagtatrabaho sa mga parameter ng data Mga Setting Composer.Settings.DataOptions

Maaari mo itong itakda sa pamamagitan ng isang tawag tulad ng

Mga Setting = Report.SettingsComposer.Settings; Settings.DataParameters.SetParameterValue("InformationBase", Report.InformationBase);

Pagpili

Nakapatong ang mga seleksyon sa natanggap na data pagkatapos kunin mula sa pinagmumulan ng data.

Ang object ng Settings Composer ay may espesyal na katangian para sa pagtatrabaho sa mga seleksyon ComposerSettings.Settings.Selection.

Halimbawa: Mga Setting = Report.SettingsComposer.Settings; Settings.DataParameters.SetParameterValue("InformationBase", Report.InformationBase);

Para sa bawat elemento Mula sa Parameters.Selection Cycle Selection Element = Settings.Selection.Elements.Add(Type("Data Composition Selection Element")); Selection Element.Comparison Type = Uri ng Paghahambing ng DataComposition.Equal; SelectionElement.LeftValue = NewDataCompositionField(element.View); SelectionElement.RightValue = element.Value; EndCycle;

Mga Custom na Setting

Tinutukoy ng mga kagustuhan ng user ang data na maaaring i-customize ng user sa isang form.

Maaaring ipakita ang mga setting ng user sa form sa isang espesyal na talahanayan at maaaring tawagan sa pamamagitan ng pag-click sa button na "Mga Setting" at mula sa menu na "Lahat ng pagkilos".

Mga Custom na Setting konektado na may mga parameter ng data at mga seleksyon sa ilang medyo kumplikadong paraan, ang koneksyon na ito ay maaaring i-configure nang biswal, ngunit ang pagtatrabaho sa kanila sa programmatically ay sa paanuman ay napaka-inconvenient.

Sa ngayon, wala kaming nakitang mas mahusay kaysa sa pagtatakda ng mga halaga ng isang umiiral na koleksyon sa pamamagitan ng index, na siyempre ay maaaring mawala kapag binabago ang layout ng ACS sa visual editor.

Bilang karagdagan, kung ang ilang parameter ng data ay idineklara na tinukoy ng gumagamit, kung gayon ang programmatic na setting ng parameter ng data (tingnan sa itaas) ay hindi sapat na ang naibalik na halaga ng setting ng user ay na-override ang setting ng parameter ng data. Samakatuwid, para sa gayong mga parameter ay walang punto sa pagtatakda parameter ng data, kailangang mai-install kaagad Custom setting.

Ang isang maginhawang lugar upang itakda ang mga kinakailangang halaga ay ang "When LoadingUserSettingsOnServer" event handler ng extension ng form ng ulat.

&Sa Pamamaraan ng Server Kapag Naglo-load ng Mga Setting ng User Sa Server (Mga Setting)

Kung Mga Parameter.Panahon.Petsa ng Pagtatapos<>"00010101" Pagkatapos Settings = Report.Settings Composer.UserSettings; Settings.Elements.Value = Options.Period; tapusin kung;

Katapusan ng Pamamaraan

Paggamit ng data source bilang object

Upang gumamit ng set ng data ng object ng uri, kailangan mong ipasa ang external na data source sa paraan ng Initialize ng Data Composition Processor object.

DecryptionData = hindi natukoy;

LayoutLinker = newDataLayoutLayoutLinker; LayoutLayout = LayoutLinker.Execute(DataCompositionScheme, SettingsLinker.Settings, DecryptionData);

CompositionProcessor = newDataCompositionProcessor; LayoutProcessor.Initialize(LayoutLayout, New Structure("Data", GetDataExternalSource()), DecryptionData);

May kalakip na simpleng halimbawa (para gumana ang halimbawa, dapat mayroon kang mga direktoryo na "Mga Counterparty" at "Mga Kasunduan sa Counterparty").

Sa query designer, kapag ito ay tinawag mula sa data source setup form, para sa data composition schema. Mayroong tab na "mga katangian", ang paggamit nito ay hindi malinaw na inilarawan sa dokumentasyon. Sa artikulong ito susubukan kong ipaliwanag kung paano at bakit ginagamit ang mga katangian sa ACS.

Sa query designer, kapag ito ay tinawag mula sa data source setup form, para sa data composition schema. Mayroong tab na "mga katangian", ang paggamit nito ay hindi malinaw na inilarawan sa dokumentasyon. Sa artikulong ito susubukan kong ipaliwanag kung paano at bakit ginagamit ang mga katangian sa ACS. Aktibong ginagamit ng mga karaniwang configuration ang mekanismo ng mga property at mga value ng property, na available para sa halos anumang bagay. Primitively, sa mga reference na libro, ang mekanismong ito ay ipinatupad sa mga configuration 7.7. Ngayon ang mekanismong ito ay ipinatupad gamit ang isang plano ng mga uri ng mga katangian at isang rehistro ng impormasyon, ngunit ang ideya ay nananatiling pareho. Noong una kong naranasan ang pangangailangang gamitin ang mekanismong ito sa isang access control scheme, nahirapan ako nang napakatagal, nag-aayos ng mga nested na query, sinasali sila sa pangunahing pagpili at pinag-isipan kung paano isaalang-alang ang posibilidad ng paglitaw ng mga bagong uri ng pag-aari na hindi umiiral sa panahon ng pagbuo ng ulat. Ang buong mekanismo ng mga pag-aari, na simple at lohikal mula sa pananaw ng gumagamit, ay hindi nagbigay ng sarili sa anumang normal na pagproseso hanggang sa naisip ko ang tab na "Mga Katangian". Ang talahanayan sa tab ay napaka-pabagu-bago, maaaring ipasok mo nang tama ang buong linya, o tumanggi na ipasok ang linya sa lahat; Kaya, bumaba tayo sa mga detalye. Unang column: Uri – dito pipiliin namin ang uri ng object kung saan ikakabit ang mga katangian, halimbawa "DirectoryLink.Nomenclature" Nangangahulugan ito na ngayon para sa lahat ng object ng tinukoy na uri posible na makakuha ng mga value ng property. Susunod, sa susunod na column na Pinagmulan ng mga view, dapat nating itakda ang mga parameter ng pinagmulan ng mga view ng property. Posible ang mga opsyon sa talahanayan at query; sasabihin ko sa iyo kung bakit kailangan ang pagpipiliang query sa ibang pagkakataon, ngayon ay piliin natin ang item sa talahanayan. Sa column na Mga Uri ng katangian, dapat nating piliin ang talahanayan ng infobase kung saan naka-imbak ang mga kinakailangang uri ng katangian, sa ating halimbawa ito ay magiging "Plano ng Mga Uri ng Mga Katangian. Mga Katangian ng Mga Bagay". Dagdag pa, ang mga value na available sa amin para sa pagpili sa Key Field, Name Field at Value Type Field na mga column ay direktang nakadepende sa mga field ng table na napili namin. Sa Key Field pipiliin namin ang Link, sa Name Field – View (ito ang makikita ng user bilang pangalan ng attribute), at sa Type Field, ayon sa pagkakabanggit, ValueType. Ngayon ay lumipat tayo sa pinagmulan ng mga halaga. Ang aming mapagkukunan ng mga halaga ay ang rehistro ng impormasyon na "ObjectPropertyValues", kaya pumili kami ng talahanayan sa Source of Values ​​​​column, at "InformationRegister.ObjectPropertyValues" sa Characteristic Values ​​​​column. Sa mga column na Object, Property, Value, piliin ang mga kaukulang field ng Object, Property, Value register. Mukhang iyon lang. Pumunta kami sa mga setting ng schema, magdagdag ng pagpapangkat ayon sa mga produkto, at magdagdag ng subordinate na pagpapangkat, halimbawa ayon sa Mga Brand, mayroon kaming ganoong pag-aari. Pinapalawak namin ang listahan ng mga detalye ng pagpapangkat ng Nomenclature at... wala kaming nakikitang anumang property doon: Ang katotohanan ay nasa configurator kami, kung saan walang access sa data. Paano gawin ang mga kinakailangang setting? Ang pinaka-maginhawang paraan upang gawin ito ay ang paggamit ng data composition console, ang nasa ITS disk, o ang kasama sa subsystem na "Developer Tools". Ngunit maaari mo lamang buksan ang mga setting ng ulat sa enterprise mode. Kaya, buksan natin ang parehong setting, ngunit sa enterprise mode: Gaya ng nakikita mo, nagdagdag kami ng bagong "Mga Detalye", at...

Tanong: SKD, Paano ko mabubuksan ang kinakailangang form ng pagpili para sa isang parameter?


Magandang hapon Mayroong isang ulat sa sistema ng kontrol sa pag-access, naglalaman ito ng parameter Brand - type Directory.Nomenclature. Paano ako makakatawag ng isang partikular na form ng pagpili para sa parameter na ito? Sinubukan ko sa SKD sa tab na "Mga Parameter", piliin ang nais na parameter - i-double click sa column na "Mga Pagpipilian sa Pag-edit" - lagyan ng tsek ang kahon ng "Selection Form" at ipasok ang halaga na Directory.Nomenclature.Form.SelectionFormRequired. Kapag nagpapatakbo ng isang ulat, ginagamit pa rin ang form ng pagpili bilang default, at hindi ang tinukoy sa "Form ng Pagpili." UT configuration, karaniwang mga form. Sabihin mo sa akin, mangyaring, saan, ano ang mali?

Sagot: Pangunahing parirala Mga regular na anyo, lumipat sa mga pinamamahalaan

Tanong: Pumili ng halaga sa form ng pagpili


Magandang hapon

Regular na aplikasyon.

May isang dokumento. Mayroon itong ilang detalye ng uri ng sanggunian, halimbawa "DirectoryLink.Banks", na may halagang "Bank1".

Ito ay kinakailangan sa form para sa pagpili ng direktoryo na "Mga Bangko", sa programmatically SELECT ang elementong "Bank1", i.e. i-type muli piliin ang halagang ito "Bank1".

Sa ngayon nagawa ko na ang mga sumusunod:
Pamamaraan Ipatupad ang SelectionInSelectionForm(Link)
DirectorySelectionForm = Directories.Banks.GetSelectionForm(,Link); //Nakatanggap ako ng isang form para sa pagpili sa direktoryo ng Banks gamit ang naipasa na parameter Link
//itakda ang pagpili sa form ng pagpili na ito, ayon sa aking link sa mga detalye
DirectorySelectionForm.Selection.Link.Use = True;
DirectorySelectionForm.Selection.Link.Value = link;
DirectorySelectionForm.FormElements.DirectoryList.HierarchicalView = False;
DirectorySelectionForm.Open();
//narito ang code na ginagaya ang pag-click sa Select button, paano????
Katapusan ng Pamamaraan

Tulong kung may nakatagpo nito o may anumang ideya.

Salamat.

Sagot:

Ginawa ko ito ng ganito:

Procedure ExecuteSelectionInSelectionForm(Link, rec) //ang parameter na "link" ay isang link ng halaga sa form ng dokumento; "rek" - ang kasalukuyang elemento ng form, i.e. field ng pagpili
DirectorySelectionForm = Directories.Banks.GetSelectionForm(,Rec,Link);
DirectorySelectionForm.FormElements.DirectoryList.HierarchicalView = False;
OpenForm(DirectorySelectionForm, mga ilog,);

Kung ang Directory Selection Form.Open() Then
DirectorySelectionForm.Activate();
tapusin kung;

DirectorySelectionForm.CurrentElement.CurrentRow = link;
SelectionEl = DirectorySelectionForm.CurrentElement.CurrentRow;

Kung SelectEl = undefined o NOT value filled (SelectEl) then
Report("Ang halaga na "+Link+" ay hindi nakita sa form ng pagpili ng direktoryo");
kung hindi
DirectorySelectionForm.NotifyOfSelection(SelectEl);
tapusin kung;

Katapusan ng Pamamaraan

Tanong: Ang pindutang "Piliin" sa form ng pagpili o kung paano i-click ang pindutang "Piliin".


Magandang hapon

Regular na aplikasyon.

Anong mga iniisip mo sa pag-click sa pindutang "Piliin" sa form ng pagpili ng dokumento/direktoryo?

Ang pag-click sa mouse at COM ay hindi nag-aalok ng automation.

Wishlist: sa form ng pagpili, gayahin ang pagpindot sa button na "Piliin".

Sagot: Mukhang nalutas ko ang problema...ilang mga pagtakbo ng pagsubok.

Idinagdag pagkatapos ng 17 minuto
Sa ngayon ito ay gumagana tulad nito:

1C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Pamamaraan Magsagawa ng SelectionInSelectionForm(Link, rec) //parameter "link" ay isang value link sa form ng dokumento; "rek" - ang kasalukuyang elemento ng form, i.e. field ng pagpili DirectorySelectionForm = Mga Direktoryo. Mga bangko. GetFormSelection(, Rec, Link) ; Form ng Pagpili ng Direktoryo. Mga Elemento ng Form. DirectoryList. HierarchicalView = Mali ; OpenForm(DirectorySelectionForm, mga ilog, ); Kung Directory Selection Form. Open() Pagkatapos ay ang DirectorySelectionForm. I-activate() ; Tapusin kung ; Form ng Pagpili ng Direktoryo. KasalukuyangItem. CurrentRow = link ; SelectionEl = DirectorySelectionForm. KasalukuyangItem. CurrentRow ; kung SelectEl = hindi natukoy o HINDI napuno ang halaga (SelectEl) pagkatapos ay Mag-ulat ("Halaga" + Link + "ay hindi natagpuan sa form ng pagpili ng direktoryo"); kung hindi man ay DirectorySelectionForm. Abisuhan ang Tungkol sa Pagpipilian(ChoiceEl) ; Tapusin kung ; Katapusan ng Pamamaraan

Tanong: Bakit hindi na pinili ang value mula sa selection form?


Mayroong field sa form ng dokumento ng uri ng sanggunian DocumentLink.PaymentOrderOutgoing. Kapag napili, magbubukas ang isang form para sa pagpili ng papalabas na order ng pagbabayad. Sa sandaling napili ang isang halaga, hindi ito ipinapasok sa form bilang napili. Sa una ay naisip ko na ang pagpoproseso ng pagpili ay karaniwang pagproseso at nakalimutan ng programmer na irehistro ang pagproseso ng pagpili. Ngunit ang lahat ay tipikal doon. Ang pagbubukas ng form ay hindi programmatically, sa field kung saan pinili kong huwag magsagawa ng anumang mga kaganapan. Ano kaya yan?
--- Pagsasama ng mensahe, 2 Ene 2018 ---

Isa pang aplikasyon batay sa mga regular na form. Ang form ng pagpili ay mapapamahalaan at bubukas mula sa isang regular na window. Kung babalik ka sa normal na form ng pagpili, kung gayon ang lahat ay ok.

Sagot:

Sa pangkalahatan, naisip ko ito. Kapaki-pakinabang na makita kung ano ang pumapasok sa SelectedValue sa pagpoproseso ng pagpili. Ito pala ay isang array. Nang pumasok ako sa form ng pagpili, lumabas na mayroong isang checkbox na Multiple Choice. Inalis ko ito at lahat ay gumana.

Tanong: Mangyaring tulungan akong itakda ang pagpili sa form ng pagpili ng direktoryo


Kapag pumipili ng katapat, inililipat ko sa pamamagitan ng program ang mga unang character ng pangalan sa form ng pagpili. Paano gawing programmatically ang unang elemento na ang unang mga character na tumutugma ay na-activate.

Sagot:

Sinabi ni elektron:

Kapag pumipili ng katapat, inililipat ko sa pamamagitan ng program ang mga unang character ng pangalan sa form ng pagpili. Paano gawing programmatically ang unang elemento na ang unang mga character na tumutugma ay na-activate.

I-click para palawakin...

Napagdesisyunan na. Gumawa ako ng virtual na keyboard sa form ng pagpili ng direktoryo ng "Counterparties".
Kapag pinindot mo ang anumang key, ma-trigger ang code
SearchResultByDetails = TechRef.FindByName(N, False);
Form Elements.DirectoryList.CurrentLine=SearchResultByAttributes;
kung saan ang H ay isang variable na naglalaman ng halaga ng susi

Tanong: Pumili ng form na may seleksyon para sa listahan ng mga halaga


Magandang hapon. Kailangan ko ang iyong tulong sa paglutas ng isang simpleng problema.

Confa ZUP 2 .5 .113 .1 Mayroong panlabas na ulat, ang ulat ay may katangiang "listahan ng mga base", uri ng listahan ng mga halaga.
May report form. Sa form ng ulat, ang field na "listahan ng pag-input ng mga base", ValueType = "List of Values", at ListValue type = "DirectoryLink.ObjectPropertiesValue".

Paano magbukas ng isang form ng pagpili na may pagpili ng may-ari ng isang ari-arian?

Salamat nang maaga!

Sagot: Sa tab na Mga Opsyon mayroong isang hanay na tinatawag na Mga Opsyon sa Pag-edit. Doon maaari mong subukang i-configure ang mga koneksyon ng parameter ng pagpili o ang parameter ng pagpili

Tanong: Programmatically buksan ang form ng pagpili ng dokumento 1s 8.3


Paano buksan sa programmatically ang form ng pagpili ng dokumento 1s 8.3 at i-save ang napiling halaga sa isang variable?

Nagbigay ang Google ng ilang mga solusyon sa saklay, gusto kong malaman kung paano ito gagawin nang tama.

Sagot:+ () Ang PM ay mayroon ding mahiwagang pamamaraan - i-download.

Seksyon ng tabular
Magkarga
Syntax:

I-download(<Таблица>)
Mga Pagpipilian:

<Таблица>(kinakailangan) Uri: ValueTable.
Isang talahanayan ng mga halaga kung saan na-load ang tabular na bahagi. Ang mga haligi ng talahanayan ay pinagsama sa pamamagitan ng mga pangalan.
Paglalarawan:

Nilo-load ang tabular na bahagi mula sa talahanayan ng halaga. Sa kasong ito, ang lahat ng nakaraang mga hilera ng tabular na bahagi ay tinanggal. Kapag naglo-load, ang mga halaga sa mga hanay ng seksyon ng talahanayan ay puno ng mga halaga mula sa mga hanay ng talahanayan ng halaga na may katugmang mga pangalan.

Availability:

Server, makapal na kliyente, panlabas na koneksyon.
Tandaan:

Magagamit lamang ang pamamaraan kung ang bahagi ng talahanayan ay nakuha mula sa isang object property. Kung ang bahagi ng talahanayan ay nakuha mula sa isang reference (o pagpili) na pag-aari, ang paggamit sa paraang ito ay magdudulot ng error sa runtime.
Halimbawa:

Komposisyon.Load(CompositionTable);

Tanong: Pagpasa ng mga parameter sa form ng pagpili.


Mangyaring tulungan ako.
Mula sa dokumentong "Mga benta ng mga kalakal at serbisyo" ang form ng pagpili ng kontrata (ERP) ay tinatawag na up. Ang conf ay na-edit, inihambing ko ito sa karaniwang isa. Sa ProcessingCreationOnServer ng selection form, tinitingnan ko ang debugger Parameters.Selection. Hindi ko lang maintindihan kung paano nabuo ang listahan ng pagpili - walang tahasang tawag sa form na ito na may mga parameter, mayroon lamang isang elemento ng pagpili sa property na "SelectionParametersLink", at mayroon nang ilan sa Parameters.Selection. Baka may makapagsabi kung saan ako titingin.

Pansin! Ito ay isang panimulang bersyon ng aralin, na maaaring hindi kumpleto ang mga materyales.

Mag-login sa site bilang isang mag-aaral

Mag-log in bilang isang mag-aaral upang ma-access ang mga materyales sa paaralan

Sistema ng komposisyon ng data 1C 8.3 para sa mga nagsisimula: pagkonekta ng mga set ng data

  • Sumulat ng isang ulat na nagpapakita ng mga customer at ang kanilang mga paboritong produkto. Ang bawat kliyente ay may paboritong kulay, at ang bawat produkto ay may sariling kulay - batay sa mga kulay na ito, kailangan mong matukoy ang "paborito" ng produkto. Halimbawa, kung ang paboritong kulay ni Andrey ay pula, kung gayon ang isa sa kanyang mga paboritong pagkain ay mga kamatis (sila ay pula).
  • Ilapat ang dalawang set ng data sa ulat. Ang unang set ay data mula sa talahanayan ng direktoryo ng "Mga Kliyente". Ang pangalawa ay ang data mula sa talahanayan ng direktoryo ng "Pagkain".
  • Ipatupad koneksyon sa pagitan ng dalawang set na ito, upang ang ulat ay naglalaman lamang ng mga paboritong produkto para sa bawat kliyente.

Gumawa ng bagong ulat

Buksan ang database ng "Gastronom" sa configurator at lumikha ng bagong ulat sa pamamagitan ng pangunahing menu:

Uri ng dokumento - "Panlabas na ulat":

Sa anyo ng isang bagong ulat, ipahiwatig ang pangalan na "Aralin 6" at i-click ang pindutang "Buksan ang diagram ng komposisyon ng data":

Iwanan ang default na pangalan ng schema:

Pagdaragdag ng unang set ng data

Sa diagram na bubukas, pumunta sa tab na "Mga Set ng Data" at piliin ang "Magdagdag ng Set ng Data - Query" gamit ang berdeng plus sign:

Tawagan ang tagabuo ng kahilingan:

Ipinapahiwatig namin ang talahanayan ng "Mga Customer" at ang mga field na kailangang makuha mula sa kahilingan:

Pagdaragdag ng pangalawang set ng data

Magdagdag ng pangalawang set ng data:

Piliin ito (DataSet2) at tawagan muli ang tagabuo ng query:

Ipinapahiwatig namin ang talahanayan ng direktoryo ng "Pagkain" at ang mga patlang na kailangang makuha mula sa kahilingan:

Ang resulta ay ang sumusunod na text ng kahilingan:

Pakitandaan na mayroon na kaming dalawang data set sa ulat: Data Set1 at Data Set2. Ang bawat isa ay may sariling text at data ng kahilingan.

Ginagawang mas deskriptibo ang mga pangalan

Para sa kalinawan, palitan natin ng pangalan ang DataSet1 sa Customers at DataSet2 sa Food.

Gawin ito sa pamamagitan ng pag-double click sa bawat isa sa mga set:

Magagamit namin ang data mula sa bawat set sa aming ulat. Maa-access namin ang data na ito sa pamamagitan ng mga field.

Sa kasalukuyan, ang hanay ng "Mga Customer" ay may mga sumusunod na field: "Pangalan" at "Paborito Kulay", at ang hanay ng "Pagkain" ay mayroong: "Pangalan" at "Kulay".

Nakikita natin na nagsasapawan ang mga pangalan at madali tayong malito. Kaya't baguhin natin ang mga pangalan ng field upang maging mas mapaglarawan.

Piliin ang set na "Mga Kliyente" at baguhin ang mga pangalan ng field tulad nito:

Pagkatapos ay piliin ang set na "Pagkain" at palitan ang mga pangalan ng field tulad nito:

Pagtawag sa tagabuo ng mga setting

Panghuli, pumunta sa tab na "Mga Setting" at i-click ang magic wand upang ilabas ang taga-disenyo ng mga setting:

Uri ng ulat - "Listahan...":

Pumili ng mga field para sa ulat mula sa parehong hanay:

Tingnan kung bakit napakahalagang baguhin ang mga pangalan ng field? Sa yugto ng mga setting ng komposisyon ng data, hindi namin nakikita kung aling mga set ang nagmula sa mga field na ito. Pangalan lang nila ang nakikita namin.

Sinusuri ang ulat

Ise-save namin ang ulat at binubuo ito sa user mode:

Oo. Okay, pero hindi talaga. Isang tinatawag na cross-join ng dalawang set ang naganap (dapat pamilyar ka dito mula sa mga pagsali sa mga query na pinag-aralan namin sa mga nakaraang module). Ang bawat tala mula sa talahanayan ng Mga Customer ay may kaukulang talaan mula sa talahanayan ng Pagkain.

Ngunit mula sa lahat ng mga rekord na ito kailangan naming iwanan lamang ang mga may field na "Customer's FavoriteColor" ay katumbas ng field na "FoodColor":

Ikinonekta namin ang dalawang set ng data

Para magawa ito, ikokonekta namin ang dalawang set ng data (Mga Customer at Pagkain) gamit ang mga field na Customer FavoriteColor at FoodColor.

Pumunta sa tab na “Mga Link ng Dataset” at mag-click sa button na plus para magdagdag ng bagong link:

I-configure namin ang mga parameter tulad ng sa figure sa ibaba:

Gagawa ako ng paliwanag.

Pinagmulan at tagatanggap ng komunikasyon. Well, malinaw ang lahat dito. Isinasaad namin ang unang set (Mga Customer) at ang pangalawang set (Pagkain) ng data. Nais kong gumuhit ng espesyal na pansin sa katotohanan na ang komunikasyon ay isasagawa ayon sa prinsipyo panlabas na kaliwang sumali(tinalakay namin ito sa paksa ng mga kahilingan sa mga nakaraang module). Batay dito, kailangan mong piliin kung aling set ang magiging source at kung alin ang receiver.

Pinagmulan ng expression. Isinasaad namin dito ang isang expression o simpleng field mula sa source data set (tinukoy namin ang ClientFavoriteColor field mula sa Clients set dito).

Ekspresyon ng tatanggap. Ipinapahiwatig namin dito ang isang expression o simpleng field mula sa set ng data ng receiver (ipinahiwatig namin ang field ng ColorFood mula sa set ng Pagkain dito).

Kaya, ang koneksyon na ito ay umalis mula sa nakaraang listahan lamang ang mga hilera kung saan ang field ng FavoriteColor ng Customer ay katumbas ng field ng FoodColor.

I-save natin ang ulat at patakbuhin ito sa user mode:

Malaki!

Gagawa ako ng paliwanag tungkol sa field" Kondisyon ng komunikasyon", tungkol sa kung aling mga baguhang programmer ang madalas na tumama sa kanilang mga sibat.

Ang kundisyon ng koneksyon ay isang pantulong na field. Maaari kang magsulat ng mga expression doon kinasasangkutan lamang ng mga field mula sa set ng data na tinukoy sa source ng link.

Sa kasong ito, para sa lahat ng mga row mula sa pinagmulan ng link, ang expression na ito (kondisyon ng link) ay susuriin bago gawin ang link. At kung ang expression na ito ay TOTOO, ang isang pagtatangka ay gagawin upang magtatag ng mga link sa pagitan ng row na ito at mga row mula sa link receiver. Kung MALI ang expression, walang ganoong pagtatangka ang gagawin.

Kumusta, mahal na mambabasa! Mayroon kaming isa pang aralin sa mga pangunahing kaalaman ng sistema ng layout. Sa nakilala mo ang mga pag-andar ng wika ng expression ng SKD, nakita ang mga tampok ng sistema ng layout, at naunawaan din ang mga pangunahing setting ng mga patlang ng layout. Ngayon ay titingnan natin ang bagong materyal. Go!

Mga karagdagang setting para sa mga field ng ACS.

Kolum "Uri ng halaga" Binibigyang-daan kang tukuyin ang uri ng data para sa field ng layout. Bakit tukuyin ang uri, halimbawa, para sa field na "Nomenclature", kung alam mo na kung anong uri ito? Ito ay kinakailangan kung ang layout field ay isang composite na uri. Maaari kang pumili ng isang partikular na uri, pagkatapos kapag pumipili sa pamamagitan ng field na ito, ang mga halaga ng ganitong uri ay pipiliin.

Kolum "Mga available na value" nagbibigay-daan sa iyo na tukuyin ang mga halagang magagamit para sa pagpili at limitahan ang pagpili ng user sa ilang partikular na limitasyon.

Kolum "Dekorasyon" nagbibigay-daan sa iyo na tukuyin ang disenyo ng isang layout field nang hindi gumagamit ng mga layout. Maaari mong tukuyin ang kulay ng font, kulay ng frame, oryentasyon ng teksto, atbp.

Kolum "Mga Opsyon sa Pag-edit" Binibigyang-daan kang tukuyin kung paano i-edit ang field ng layout. Halimbawa, maaari mong tukuyin ang isang mabilis na pagpili ng mga elemento mula sa isang listahan sa isang seleksyon. Bilang default, minana ng isang layout field ang lahat ng opsyon sa pag-edit mula sa metadata object.

Mga kalkuladong field

Sa tab na "Calculated Fields" ng komposisyon ng data, maaari kang gumawa ng sarili mong mga kalkuladong field.

Bakit kailangan mo ng mga kalkuladong field kapag maaari mong gawin ang mga ito sa antas ng query? Hindi lahat ng field ay maaaring ilarawan gamit ang isang query. Kung kailangan mong lumikha ng isang kumplikadong field mula sa iba't ibang hanay ng data, halimbawa, tulad ng isang query at isang bagay, hindi mo magagawa nang walang mga kalkuladong field. Hindi ka makakapagdagdag ng field ng komposisyon ng data kung ang data source ay isang query at naka-enable ang autofill, ngunit gamit ang mga kalkuladong field maaari kang magdagdag ng maraming field hangga't gusto mo.

Sa column na "Expression" ng nakalkulang field, kailangan mong magsulat ng arbitrary na expression na gumagamit ng mga field ng komposisyon ng data, na ina-access ang path ng mga ito (ang column na "Path" sa tab na "Data Sets"). Alinman sa maaari mong gamitin ang mathematical transformation function o i-access ang mga function ng mga karaniwang module. Halimbawa, isulat natin sa column na "Data Path" ang pangalan ng kalkuladong field na "Deviation", at sa field na "Expression" ang sumusunod.