[Button 7710967300 BUKH RB] Connect=Srvr="%servername%";Ref="%base_name%"; Mga Karagdagang Parameter=/Z "-0,-0,+7710967300";

Pagkatapos /Z ipinapahiwatig namin ang mga pangkalahatang detalye sa pagkakasunud-sunod. Dahil ang aming karaniwang accounting ay mayroon nang dalawang pangkalahatang detalye ng system, tinutukoy namin ang halaga -0 para sa mga ito upang hindi sila magamit, at ipinapasa namin ang TIN bilang ang pangatlo (na aming nilikha).

1000 at 1 checkbox

Ngayon ay kailangan mong matukoy kung anong bahagi ng data ang magiging karaniwan sa lahat ng mga lugar. Ang lahat ng ito ay na-configure sa pamamagitan ng configurator. Sa mga katangian ng mga pangkalahatang props na kakalikha lang namin, mayroong isang item na "Komposisyon" na nagbubukas ng isang maliit na listahan ng 800 mga parameter:

Ipaubaya namin ang pagpili ng mga parameter sa iyong pagkamaingat, pagpapasya at kapaligiran. Narito ang aming bersyon (mag-ingat, mayroong 20,000 pixels).

Ginagawa ring posible ng separator na mag-set up ng hiwalay na listahan ng mga user para sa bawat database - maaari itong maging kapaki-pakinabang kung mayroon kang daan-daang user - kapag pumapasok sa isang partikular na database, hindi mo na kailangang mag-scroll sa listahang ito hanggang sa punto ng madugong paltos. Hindi namin ito ginagamit dahil na-configure namin ang transparent na awtorisasyon.

Pag-upload ng data mula sa kasalukuyang mga database

Upang mag-download ng data mula sa mga kasalukuyang database, gumagamit kami ng isang pangkalahatang XML exchange. Hindi mo maaaring kunin at i-unload lamang ang database, kailangan mong i-set up ang mga patakaran sa palitan, kung hindi, ang mga error at salungatan ay maaaring (at tiyak na lalabas) sa panahon ng paglo-load, at ang pangalawang database ay hindi magkakasya. Paalalahanan ka namin na hinahati namin ang mga lugar ng database para sa bawat organisasyon at sa aming kaso gumagana ang mga sumusunod na patakaran sa palitan. Kung magpasya kang gumamit ng ibang separator, kakailanganin mong gamitin ang iyong utak at mga checkbox. Ang pangunahing bagay ay hindi gumamit ng karaniwang pag-upload - hahantong ito sa pagdoble ng lahat ng paunang natukoy na mga tala.

Tandaan sa babaing punong-abala: mas mainam na mag-upload ng mga reference na libro at dokumento nang hiwalay - sa ganitong paraan maiiwasan mo ang mga hindi kinakailangang error sa oras ng pag-upload.

Naglo-load ng data sa isang nakabahaging database

Inilunsad namin ang 1C na may parameter na /Z na “-0,-0,+%your separator%”, na nagsasaad ng separator ng organisasyon na ang data ay ilo-load namin. Naglulunsad kami ng unibersal na palitan at pinapakain dito ang mga file na natanggap sa panahon ng pag-upload: unang mga direktoryo, pagkatapos ay mga dokumento. Inuulit namin ang operasyong ito para sa bawat base area.

Upang pasimplehin ang gawain, nagsasagawa kami ng mga pag-upload nang maramihan, na nagpapatakbo muna ng bahagyang naitama na karaniwang pagpoproseso sa pamamagitan ng command line (/Ipatupad ang c:\upload.epf). Pagkatapos ay manu-mano naming ina-upload ang mga resultang file sa hinati na database.

Paano Gumugol ng Higit na Oras upang Gumugol ng Mas Kaunting Oras

Ang proseso ng paghihiwalay ay hindi isang mabilis na bagay. Ipaalala namin sa iyo na mayroon na kaming higit sa 500 organisasyon, ngunit sa loob ng ilang linggo, 70 lang ang nagawa naming hatiin. Gayunpaman, alam naming sigurado na sa loob ng anim na buwan ay magpapasalamat kami sa aming mga nakaraan para sa gawaing nagawa at maraming natipid sa oras at pagsisikap.

Hindi napapansin ng mga accountant ang paglipat ng mga organisasyon mula sa isang regular na database sa isang hinati para sa kanila ang proseso ay walang sakit. Mga admin lang ang nasusunog :)

Mga side effect: space savings ng 1 sa 20, hindi direktang pagtaas sa bilis - napakahalaga. Sa ganap na mga numero: 50 organisasyon ang sumasakop ng 2 GB ng espasyo sa SQL, habang ang isang indibidwal na database ay tumatagal ng 800 MB.

Ang ipinangakong langaw sa pamahid, kahit apat:

  • kung ang isa sa mga gumagamit ay gumulo ng data sa isang organisasyon, kailangan mong ibalik ang buong hinati na database - hindi mo maaring ibalik lamang ang isang lugar ng data
  • Ang mga update ay kailangang masuri nang mas lubusan, lalo na ang mga nagdaragdag o nagbabago ng mga direktoryo
  • kung kailangan mong ilipat ang database sa kliyente (o pagsamahin ang tanggapan ng buwis :), kailangan mong gawin ang reverse procedure: i-unload ang organisasyon mula sa hinati na database gamit ang isang unibersal na palitan, pagkatapos ay i-load ito sa isang walang laman na regular na database at i-save ito sa. dt file
  • sa isang split database, hindi mo maaaring pamahalaan ang mga nakagawiang gawain (halimbawa, hindi posibleng awtomatikong i-update ang mga halaga ng palitan)
Ang unang tatlong kutsara ay hindi masyadong mapait - pinipilit lang nila tayong maging mas matulungin. Ngunit hindi pa namin alam kung ano ang gagawin sa pang-apat, ngunit masigasig kaming nagsasaliksik.

Isang medyo bagong functional na feature ng 1C, na inuri bilang cloud technology. Matapos lumitaw ang functionality, binago ng kumpanya ng 1C ang BSP. Ang parehong mga pagpapabuti ay kasama sa mga karaniwang pagsasaayos batay sa BSP, halimbawa, UNF at UT11.

Kinailangan na ayusin ang pagtanggap ng mga pangkalahatang ulat mula sa ilang sangay na may parehong mga pagsasaayos. Nagpasya akong subukan ang mga development mula sa BSP sa larangan ng data separation. Ang ideya ay i-load ang data ng bawat sangay sa sarili nitong lugar ng data at bumuo ng mga ulat para sa lahat ng mga lugar nang sabay-sabay. Sasabihin ko kaagad na hindi pa posible na lutasin ang problema, ngunit ang mismong pagtatangka na lutasin ito ay nagsiwalat ng mga problema at kahina-hinalang functionality sa BSP.

Naka-attach sa artikulo ang isang pagproseso na nagpapakita ng nakatagong functionality ng mga pagpapatakbo na may mga lugar ng data sa isang hiwalay na form.

Ang BSP ay nagbibigay ng dalawang accounting separator: Data Area Main Data at Data Area Auxiliary Data. Ito ay nananatiling isang misteryo kung bakit ang 2 delimiter na ito ay tumutukoy sa parehong mga parameter ng session: DataAreaValue, DataAreaUse.

Pag-on sa mekanismo

Kung ang iyong self-written configuration ay batay sa BSP, malamang, bago ito i-on, kailangan mong ipatupad ang mahiwagang library na "1C: Service Technology Library". Kakaiba na kahit ang Google ay hindi alam ang tungkol sa naturang 1C na produkto. At sa karaniwang mga pagsasaayos, ang Suriin ang Posibilidad ng Paggamit ng Configuration sa pamamaraan ng Modelo ng Serbisyo sa module ng Modelo ng Trabaho Sa Serbisyo ay hindi umiiral. Malamang, mahahanap mo ang mga nawawalang bahagi mula sa library na ito sa mga karaniwang pagsasaayos na ginawa batay sa BSP. Sa partikular, ang isa sa mga subsystem ay tinatawag na StandardSubsystems > WorkInServiceModel > UploadLoadData.

Ang mekanismo ng paghihiwalay ng data ay pinagana sa pamamagitan ng pagtatakda ng constant ng Use Separation By Data Areas. Maaaring itakda sa pamamagitan ng All functions menu item.

Paglikha ng Mga Gumagamit ng Rehiyon ng Data

Ang item na ito ay hindi kinakailangan kung gumagamit ka ng isang form upang makapasok sa lugar ng data. Ang mga user ay nilikha sa configurator mode. Ang isang user na may mga karapatang pang-administratibo ay dapat magkaroon ng lahat ng hindi nakatakdang separator ng data sa tab na Paghihiwalay ng Data. Para sa iba pang mga user, ang Data Area separator ay dapat na nakatakda sa Basic Data sa tab na Data Separation. Ang separator na ito ay dapat na tahasang tinukoy sa command line kapag sinimulan ang 1C.

Inilunsad ang 1C na may parameter ng command line

Ang item na ito ay hindi kinakailangan kung ginagamit mo ang form sa pag-login upang makapasok sa lugar ng data.

Maaaring ilunsad kaagad ang 1C sa data separation mode. A / Z command line na opsyon ay ibinigay. Halimbawa, ang parameter na “/Z-+1” ay nagpapahiwatig na ang 1C ay inilunsad na may pangunahing data value ng Data Area na katumbas ng 1, ang Data Area auxiliary data separator ay hindi nakatakda.

Ang pamamaraan ay napaka hindi mapagkakatiwalaan. Kapag nagsisimula, may naganap na error sa pamamaraan ng WorkInServiceModel. Kapag sinusuri upang paganahin ang Safe Data Sharing Mode. Wala akong mahanap na mas mahusay kaysa magkomento sa pamamaraang ito. Sinusuri ng pamamaraan kung ang gumagamit ay may karapatang baguhin ang kasalukuyang lugar ng data, kung ang kanyang mga karapatan ay limitado at may mga implikasyon sa seguridad.

Pagkatapos, sa pagsisimula, maraming mga error ang nangyari, kabilang ang: "Ang mga hiwalay na user ay hindi maaaring italaga sa tungkulin ng Administrator ng System," "Ang mga hiwalay na user ay hindi maaaring italaga ang tungkuling Pagpapatakbo ng isang makapal na kliyente."

Hindi natagpuan ang user sa direktoryo ng Mga User - hindi malutas ang problema. Sa tradisyonal na senaryo, ang Gumagamit ay nagrerehistro sa unang pag-login. Pinaghihinalaan ko na kapag nagbabahagi ng data, ang mga User ay nilikha sa pamamagitan ng isa pang 1C Fresh na application.

Punan ang rehistro ng impormasyon Mga lugar ng data

Para sa bawat lugar, kailangan mong punan ang isang entry sa rehistro ng impormasyon ng Data Area, na nagtatalaga ng mga numero sa mga lugar at ang katayuang "Ginagamit". Maaaring suriin ng mga proseso ang mga entry sa rehistrong ito bago simulan ang pagpapatupad.

Pagpasok sa lugar ng data

Pangangasiwa - Serbisyo - Mag-login sa lugar ng data (GeneralForm.LoginDataArea)

Nagbibigay-daan sa user na baguhin ang kasalukuyang lugar ng data. Ang pag-log in sa lugar ay posible bilang isang user na tumatakbo nang hindi tinutukoy ang mga delimiter. Kapag nagpapalit ng isang lugar ng data, sinusuri ang katayuan nito sa rehistro ng impormasyon ng Lugar ng Data.

Pag-upload ng data mula sa isang lugar

Ang kasalukuyang lugar ay ibinababa sa pamamagitan ng GeneralForm. Pag-upload ng Data. Bago gamitin ito, dapat kang mag-log in sa nais na lugar ng data. Ang form ay hindi ipinapakita sa user interface sa seksyong Pangangasiwa.

Ang data ay na-serialize ng configuration sa XML na format at naka-pack sa ZIP. Ibig sabihin, hindi nagaganap ang pag-archive gamit ang 1C configurator, tulad ng tradisyonal na pag-upload.

Mag-load ng data sa lugar

GeneralCommand.LoadDataArea

Para lumabas sa Administration-Service, kailangan mong itakda ang visibility sa pamamagitan ng Configurator bilang bahagi ng Settings and Administration subsystem.

Nilo-load ang data sa napiling lugar. Bago ito, dapat silang ma-download sa XML na format.

mga konklusyon

Hindi masimulan ang system sa pamamagitan ng pagtukoy ng mga delimiter sa command line. Tumangging gumana ang system dahil sa isang hindi rehistradong user sa direktoryo ng Mga User. Hindi posibleng makarating sa direktoryo dahil hindi pinapayagan ng system ang mga user na may mga karapatang pang-administratibo. Sa tingin ko, ang senaryo na ito ay nangangailangan ng isang ipinag-uutos na koneksyon sa 1CFresh.

Ang mga eksperimento sa pagpasok sa iba't ibang mga lugar, pagbabawas at pagkarga ng mga lugar ay matagumpay. Nabigo ang isang pagtatangkang kumpletuhin ang isang kahilingan para sa lahat ng organisasyon para sa lahat ng lugar ng data. Error: "Hindi ka maaaring gumamit ng talahanayan nang hindi tinukoy ang lahat ng mga delimiter na may hiwalay na paggamit ng nakabahaging data." Gumagana ang ulat para sa isang lugar kung papasok ka sa anumang lugar.

Ang problema na nananatiling hindi malinaw ay kung paano i-unload ang data mula sa isang database nang walang mga delimiter sa isang tiyak na lugar ng data ng isa pang database.

Magiging kagiliw-giliw na malaman ang tungkol sa tusong ideya ng mga may-akda ng BSP tungkol sa pangkalahatang mga parameter ng session para sa dalawang separator, kung ang tawag ay may mga parameter: “/Z-+1”, “/Z+1,+1 ” at “/Z+1,-” .

Sa 1C:Enterprise system, posibleng mapanatili ang mga talaan para sa ilang negosyo sa isang base ng impormasyon. Ang isang accounting separator ay ginagamit para sa layuning ito.

Ang paggamit ng separator ng accounting ay tinukoy sa pagsasaayos. Kung ang pagsasaayos ay tumutukoy sa paggamit ng isang accounting separator, pagkatapos ay sa talahanayan ng mga account posible na pumili ng isang tiyak na halaga ng accounting separator kung saan ang mga kabuuan ng accounting ay ibibigay.

Upang itakda ang halaga ng accounting separator, gamitin ang item "Account separator" menu "Mga aksyon" o ang kaukulang toolbar na button. Sa kasong ito, lalabas ang isang dialog sa screen upang itakda ang halaga ng separator ng accounting.

Sa field "Halaga ng separator ng accounting" Maaari mong tukuyin ang isang partikular na halaga ng separator ng accounting. Ang paraan para sa pagpasok ng halaga ay depende sa uri ng accounting separator na tinukoy sa configuration. Kadalasan ito ay isang reference na libro. Sa kasong ito, upang pumili ng isang halaga, gamitin ang pindutan ng pagpili at piliin ang nais na halaga mula sa listahan ng mga halaga ng direktoryo.

Pindutan "Walang laman na halaga" ay nagbibigay-daan sa iyo upang burahin ang ipinasok na halaga ng accounting separator, iyon ay, magtakda ng isang walang laman na halaga. Makatuwiran ito kung, kasama ng mga partikular na halaga ng separator ng accounting, ginamit din ang isang walang laman na halaga sa mga transaksyon.

Checkbox "Para sa lahat" ay nagbibigay-daan sa iyo upang itakda ang mode para sa pagpapakita ng mga kabuuan para sa lahat ng mga halaga ng accounting separator sa kabuuan.

Upang itakda ang mga napiling halaga, i-click ang pindutan "OK". Upang tumanggi na magtakda ng mga halaga, gamitin ang pindutan "Kanselahin".

Pagkatapos itakda ang mga napiling halaga, ang account board ay magpapakita ng mga kabuuan para sa isang partikular na halaga ng separator ng accounting o para sa isang walang laman na halaga o para sa lahat ng mga halaga sa kabuuan, depende sa napiling opsyon sa dialog.

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

Panloob na programming language 1C 8.3 para sa mga baguhan na programmer: format sa 1C

Kapag nagprograma sa 1C, madalas mong kailangang ipakita (sa parehong mga ulat) ang mga halaga ng iba't ibang uri (mga string, petsa, numero...). Ang bawat isa sa mga halaga ay may iba't ibang mga representasyon.

Halimbawa, ang parehong petsa na "01/01/2005" ay maaaring katawanin bilang isang string bilang:

  1. "01.01.2005"
  2. "Enero 1, 2005"
  3. "01.01.05"

Ito ang lahat ng mga representasyon ng string ng parehong halaga, d Para sa pagbuo kung saan ginagamit ang isang espesyal na function sa 1C Format.

Gamit ang Format function sa 1C

Huwag paganahin ang pagpapangkat ng mga digit

Kailangan nating i-output ang numerong 10000.

Kung isusulat natin:

Ang isang format na string ay karaniwang binubuo ng dalawang bahagi na pinaghihiwalay ng isang pantay na tanda. Sa kaliwa ng katumbas ay ang pangalan ng parameter na itinakda (tingnan ang tulong o mga halimbawa), at sa kanan ay ang halaga ng parameter na ito.

Sa halimbawa sa itaas, ang format na string na "HH=0" ay may HH parameter at ang value na 0. Kinakansela ng kumbinasyong ito ang pagpapangkat ng mga digit ng numero. At, gaya ng nakikita mo, 10000 na ang output.

Output nangungunang mga zero

Ang isa pang karaniwang gawain ay ang pag-print ng mga nangungunang zero bago ang isang digit. Halimbawa, sabihin nating gusto mong ipakita ang numero 5 na may nangungunang zero, iyon ay, sa form na "05":

Ulat(Format(5, "CHZ=2; CHVN=" ) ); // mga output 05

Tingnan natin ang format na string na "CC=2; CHVN=". Binubuo ito ng dalawang format na string na pinaghihiwalay ng semicolon. Tingnan natin ang bawat isa sa kanila nang hiwalay.

Ang linyang "CC=2" ay tumutukoy sa kabuuang bilang ng mga decimal na lugar na ipinapakita para sa integer at fractional na mga bahagi. Kaya, ang kabuuang bilang ng mga posisyon na sasakupin ng numero sa panahon ng output ay magiging katumbas ng 2.

Ang linyang "ChVN=", tulad ng sumusunod mula sa tulong, ay nagpapahiwatig sa pag-andar ng format na kung ang numero ay hindi umabot sa ipinahayag na haba (tulad ng sa aming kaso, dahil ipinahiwatig namin ang 2 mga posisyon, at 5 ang sumasakop sa isa lamang), pagkatapos ay humahantong. dapat gamitin ang mga zero. Ang kakaiba ng format na string na ito ay mayroon lamang itong pangalan ng parameter at pantay na tanda, ngunit walang halaga. Nagbabasa ka ng isang pagsubok na bersyon ng aralin, ang buong mga aralin ay magagamit.

Ang kumbinasyon ng dalawang format na string ay nagbibigay ng resulta na kailangan namin, "05", sa halip na "5".

Pagbabago ng separator sa pagitan ng integer at fractional na bahagi

Ipagpalagay natin na kailangan nating magpakita ng mga fractional na numero na pinaghihiwalay ng asterisk sa halip na isang tuldok. Iyon ay, upang ang 25.46 ay output bilang "25*46":

Ang string ng format ay ang parameter ng DF at ang value na dddd, na nagpapahiwatig ng mga function Format mag-print ng mahabang representasyon ng araw ng linggo (pansinin kung ilang "d" ang nilalaman nito).

Representasyon ng buwan ng petsa

Ang paglalarawan ng buwan ayon sa petsa ay ipinapakita tulad ng sumusunod:

Ulat(Format("20050101" , "DF=MMMM" ) ); // ay magpi-print ng Enero

Ang string ng format ay may parehong parameter ng DF tulad ng sa nakaraang kaso. Ngunit iba ang kahulugan. Ngayon ito ay katumbas ng MMMM.

Kumuha ng pagsusulit

Simulan ang pagsubok

1. Magbabalik ang Format("19050505", "DF=MMMM")

2. I-format ang string na binabago ang fractional at integer separator sa ^

3. Upang maibalik ng Format function ang "00005" sa halip na 5, angkop ang isang format na string

4. Upang maibalik ng Format function ang "10000" sa halip na 10,000, angkop ang isang format na string

5. Ang Format function ay nagbabalik ng isang halaga ng uri

Ang 1C separator element ay kinakailangan upang muling ipamahagi ang mga bahagi ng form dahil ito ay maginhawa para sa user sa ngayon. Halos bawat user ng Windows ay may kakayahang gumamit ng mga delimiter. Sabihin nating nakagawa ka ng isang simpleng form na may dalawang kontrol.

Ayon sa kaugalian, ang mga item mula sa anumang listahan ay maaaring matatagpuan sa kaliwang bahagi. Sa kanang bahagi, nang naaayon, mayroong detalyadong detalye ng parehong mga puntong ito. Kung ang kaliwang listahan ay binubuo ng mga maikling pamagat, makatuwirang bawasan ang column na ito sa pinakamababa. Alinsunod dito, sa kasong ito ang pagiging madaling mabasa ng kanang bahagi ay tataas. Sa kabaligtaran, kung may mahahabang pangalan sa kaliwang bahagi, dapat palawakin ang column. Pinapayagan ng mga divider ang user na malayang i-customize ang hugis sa pamamagitan lamang ng pag-drag sa border gamit ang mouse.

Ginagamit ang paraan ng pagkontrol na ito kapag nag-e-edit ng mga talahanayan sa Word at Excel. Kapag gumagawa ng isang form, maaari kang lumikha ng parehong patayo at pahalang na elemento ng form, isang separator. Sa pangkalahatan, ito ay pinaka-kanais-nais na lumikha ng mga form na biswal na magkasya sa loob ng screen.

Separator 8.2, 8.3 (mga pinamamahalaang form)

Hindi ka maaaring magdagdag ng separator sa pinamamahalaang form 1c ito ay awtomatikong idinaragdag ng program bago/pagkatapos ng field ng talahanayan


Isara