Sənədin cədvəl hissəsinin 1s 8 forması. Cədvəl sırasının təfərrüatlarını proqramlı şəkildə necə doldurmaq olar

1C-də bir çox obyekt üçün cədvəl hissələri mövcuddur:

  • Kataloqlar
  • Sənədlər
  • Hesabatlar və emal
  • Hesab planları
  • Xarakterik tipli planlar
  • Hesablama tipli planlar
  • Biznes prosesləri və vəzifələri

Cədvəl hissələri bir obyektə aid olan qeyri-məhdud strukturlaşdırılmış məlumatı saxlamağa imkan verir.

Cədvəl hissələri ilə işləmək üçün bəzi texnikalara baxaq.

Cədvəl hissəsini necə keçmək olar

Masa hissəsini keçmək üçün bir döngədən istifadə edə bilərsiniz Hər kəs üçün

Dövrün Cədvəl hissəsindən hər bir sətir üçün

Hesabat(String. TabularPart atributu) ;

EndCycle;

Dəyişənə hər iterasiyada Xətt cədvəl bölməsinin növbəti sırası ötürülür. Sətir detallarının dəyərləri ifadə ilə əldə edilə bilər Line.AttributeName.

Cədvəl hissəsinin seçilmiş sıralarını necə əldə etmək və keçmək olar

Obyektin cədvəl hissəsindən məlumatı göstərmək üçün forma elementindən istifadə edin Cədvəl sahəsi. Cədvəl sahəsində birdən çox sətir seçmək qabiliyyətini aktivləşdirmək üçün dəyəri təyin etməlisiniz Çoxsaylı mülkündə Seçim rejimi.

Seçilmiş sətirlərin siyahısını əldə etmək üçün aşağıdakı kodu istifadə edin:

Seçilmiş sətirləri təkrarlamaq üçün döngədən istifadə edin Hər kəs üçün:

SelectedRows = FormElements. Cədvəl sahəsinin adı. SelectedRows;

Seçilmiş Satırlar Döngüsündən hər Sətir üçün

// döngə məzmunu

EndCycle;

Cədvəl hissəsinin (cədvəl sahəsi) sətirlərini proqramlı şəkildə necə seçmək və onların seçimini ləğv etmək

Proqramlı olaraq sətirlərin seçimini ləğv etmək üçün masa sahəsi:

Forma Elementləri. Cədvəl sahəsinin adı. Seçilmiş Sıralar. Clear();

Cədvəl sahəsinin bütün sətirlərini proqramlı şəkildə seçmək üçün:

TabularPart Loop-dan hər bir CurrentRow üçün
Forma Elementləri. Cədvəl sahəsinin adı. Seçilmiş Xəttlər. Əlavə et (CurrentRow);
EndCycle;

Cədvəl hissəsini necə təmizləmək olar

Cədvəl Hissəsi. Clear();

Cədvəl bölməsinin cari sırasını necə əldə etmək olar

Cari xətt istifadəçinin olduğu dövrdür hal-hazırda kursor yerləşir. Onu əldə etmək üçün cədvəl hissəsi ilə əlaqəli formada idarəetmə elementinə daxil olmalısınız.

üçün müntəzəm formalar kod belə görünəcək:

Forma Elementləri. Cədvəl sahəsinin adı. CurrentData;

üçün idarə olunan formalar:

Elementlər. Cədvəl sahəsinin adı. CurrentData;

Cədvəl bölməsinə yeni sətir necə əlavə etmək olar

Cədvəl hissəsinin sonuna yeni sətir əlavə etmək:

NewRow = Cədvəl Hissəsi. Əlavə et();

Cədvəl bölməsinin istənilən yerinə yeni sətir əlavə etmək (sonrakı sətirlər dəyişdiriləcək):

NewRow = Cədvəl Hissəsi. Daxil et(indeks)
//İndeks - əlavə edilmiş xəttin nömrəsi. Sətirlərin nömrələnməsi sıfırdan başlayır.

NewRow. Props1 = "Dəyər" ;

Cədvəl sırasının təfərrüatlarını proqramlı şəkildə necə doldurmaq olar

Əgər istifadəçinin əlavə etdiyi cədvəl bölməsi sırasının təfərrüatlarını proqramlı şəkildə doldurmaq lazımdırsa, cədvəl bölməsi hadisə idarəçisindən istifadə etməlisiniz. Redaktə etməyə başladıqda.

İşləyici tərəfindən yaradılan prosedur üç parametrə malikdir:

  • Element- nəzarət elementini ehtiva edir Cədvəl Sahəsi.
  • NewString- boolean. Dəyəri ehtiva edir Doğrudur, əlavə olunarsa yeni xətt cədvəl hissəsi və yalan, istifadəçi artıq mövcud olan xətti redaktə etməyə başlamışsa.
  • Kopyalayın- boolean. Dəyəri ehtiva edir Doğrudur, istifadəçi xətti kopyalayırsa və Yalan digər hallarda.

Bir nümunəyə baxaq. Deyək ki, cədvəl bölməsinin təfərrüatlarını doldurmalıyıq Hesab hesabı, yeni sətir əlavə edildiyi halda. Mövcud xətti redaktə edərkən mühasibat hesabını dəyişməyə ehtiyac yoxdur.

Prosedur CədvəliPartAtStartEditing(Element, NewRow, Copy)

//Əgər istifadəçi mövcud sətri redaktə edirsə, onda biz heç nə etmirik
NewRow DEYİL O zaman
Qayıdış;
EndIf;

//Xətt yenidirsə, mühasibat hesabını təyin edin
TechString = Maddə. CurrentData; //Cədvəl hissəsinin cari sırasını əldə edin
TechString. Mühasibat = Hesablar Planları. Özünü dəstəkləyən. RequiredAccount;
Prosedurun Sonu

Pul və malların uçotunu aparmaq üçün biznesdə müxtəlif cədvəllərdən geniş istifadə olunur. Demək olar ki, hər bir sənəd cədvəldir.

Cədvəllərdən birində anbardan göndəriləcək mallar göstərilir. Digər cədvəldə bu malların ödənilməsi üzrə öhdəliklər göstərilir.

Buna görə də, 1C-də masalarla işləmək görkəmli yer tutur.

1C-dəki cədvəllərə "cədvəl hissələri" də deyilir. Kataloqlar, sənədlər və başqaları bunlara malikdir.

Sorğu, icrası nəticəsində, iki fərqli şəkildə əldə edilə bilən bir cədvəl qaytarır.

Birinci - daha sürətli - seçim, ondan sıra əldə etmək yalnız qaydada mümkündür. İkincisi, sorğunun nəticəsini dəyərlər cədvəlinə yükləmək və sonra ona təsadüfi giriş.

//Seçim 1 – sorğu nəticələrinə ardıcıl giriş

// masanı götür
Select = Query.Run().Select();
// sorğunun nəticəsinin bütün sətirlərini ardıcıllıqla keçirik
While Select.Next() döngəsi
Hesabat (Seçim.Ad);
EndCycle;

//Variant 2 – dəyərlər cədvəlinə yükləmə
Sorğu = Yeni Sorğu("Kataloqdan Ad SEÇ.Nomenklatura");
// masanı götür
Cədvəl = Query.Run().Unload().
//sonra biz bütün sətirləri təkrarlaya bilərik
Cədvəl Dövründən hər bir sətir üçün
Hesabat (String.Name);
EndCycle;
//və ya sətirlərə özbaşına daxil olmaq
Sıra = Cədvəl.Tap("Kürək", "Ad");

Əhəmiyyətli bir xüsusiyyət, sorğu nəticəsində əldə edilən cədvəldə bütün sütunların ciddi şəkildə yazılmasıdır. Bu o deməkdir ki, Nomenklatura kataloqundan Ad sahəsini tələb etməklə siz icazə verilən uzunluğu N simvoldan çox olmayan String tipli bir sütun alacaqsınız.

Formadakı cədvəl (qalın müştəri)

İstifadəçi cədvələ yerləşdirildikdə onunla işləyir.

Dərsdə və dərsdə formalarla işləməyin əsas prinsiplərini müzakirə etdik

Beləliklə, cədvəli formada yerləşdirək. Bunu etmək üçün, cədvəli İdarəetmə panelindən sürükləyə bilərsiniz. Eynilə, menyudan Form/Insert Control seçə bilərsiniz.

Məlumatlar konfiqurasiyada saxlanıla bilər - sonra formasını redaktə etdiyiniz konfiqurasiya obyektinin mövcud (əvvəllər əlavə edilmiş) cədvəl hissəsini seçməlisiniz.

Data xüsusiyyətində "..." düyməsini basın. Cədvəl hissələrinin siyahısını görmək üçün Obyekt bölməsini genişləndirməlisiniz.

Cədvəl hissəsini seçdiyiniz zaman 1C özü formadakı cədvələ sütunlar əlavə edəcəkdir. İstifadəçinin belə cədvələ daxil etdiyi sətirlər arayış kitabı/sənədlə birlikdə avtomatik olaraq yadda saxlanılacaq.

Eyni Data mülkiyyətində siz ixtiyari ad daxil edə və Dəyər Cədvəli tipini seçə bilərsiniz.

Bu o deməkdir ki, ixtiyari dəyərlər cədvəli seçilmişdir. O, avtomatik olaraq sütunlar əlavə etməyəcək və avtomatik olaraq saxlanmayacaq, lakin siz onunla istədiyinizi edə bilərsiniz.

Cədvəl üzərinə sağ klikləməklə, sütun əlavə edə bilərsiniz. Sütunun xassələrində onun adını (1C kodunda istinad üçün), formadakı sütun başlığını, cədvəl hissəsinin atributu ilə əlaqəni (sonuncu - ixtiyari cədvəl deyilsə, cədvəl hissəsi) göstərə bilərsiniz. seçilir).

Formadakı cədvəl xassələrində istifadəçinin sətirləri əlavə edib silə biləcəyini təyin edə bilərsiniz. Daha təkmil forma Yalnız Baxış qutusudur. Bu xüsusiyyətlər məlumatı göstərmək üçün nəzərdə tutulmuş cədvəlləri təşkil etmək üçün istifadə etmək üçün əlverişlidir, lakin redaktə etmir.

Cədvəli idarə etmək üçün formada komanda panelini göstərmək lazımdır. Form/Insert Control/Command Bar menyu elementini seçin.

Paneldəki düymələrin avtomatik görünməsi üçün komanda panelinin xüsusiyyətlərində Avtomatik doldurma qutusunu seçin.

Forma üzrə cədvəl (nazik/idarə olunan müştəri)

İdarə olunan formada bu hərəkətlər bir az fərqli görünür. Formaya cədvəlli hissə yerləşdirmək lazımdırsa, Obyekt bölməsini genişləndirin və cədvəl hissələrindən birini sola sürükləyin. Hamısı budur!

Dəyərlər cədvəlini yerləşdirmək lazımdırsa, əlavə edin yeni rekvizitlər forma və onun xassələrində tip - dəyərlər cədvəlini təyin edin.

Sütunlar əlavə etmək üçün bu forma atributunda sağ klik menyusundan istifadə edin, Atribut sütunu əlavə et seçin.

Sonra da masanı sola dartın.

Cədvəlin əmr çubuğuna sahib olması üçün cədvəlin xüsusiyyətlərində İstifadə - Əmr çubuğunun mövqeyi bölməsində dəyərləri seçin.

Excel-ə cədvəlin yüklənməsi

Formada yerləşən istənilən 1C cədvəli çap edilə və ya Excel-ə yüklənə bilər.

Bunu etmək üçün cədvəldəki boş yerə sağ klikləyin və Siyahı seçin.

İdarə olunan (nazik) müştəridə oxşar hərəkətlər menyu elementindən istifadə etməklə həyata keçirilə bilər Bütün hərəkətlər/Ekran siyahısı.

Bu yazıda tipik 1C:ERP 2.1 konfiqurasiyası üçün 1C 8.3-də cədvəl bölməsini doldurmaq üçün bir emal yazacağıq. Fərz edək ki, tapşırığın məqsədi verilmiş sənəddəki bütün maddələr üçün əl ilə 5% endirim təyin etməkdir. Məqalədən bir nümunə və ya digər oxşar emaldan endirilə bilər.

Bu təlimat idarə olunan formalar üçün nəzərdə tutulmuşdur (8.2 və 8.3). Adi formalar üçün (8.1, 8.2) istifadə edə bilərsiniz.

Yeni emal yaradın və kompüterinizdə saxlayın. Əvvəlcə bəzi qeydiyyat addımlarını yerinə yetirməlisiniz.

Obyekt modulunu açın və aşağıdakı kodu yazın (yuxarıda verilmiş emaldan da götürülə bilər). Ümumiyyətlə, vəziyyətdən asılı olaraq struktur dəyişməyəcək. Lazım gələrsə, yalnız bəzi parametrlər, eləcə də dəyişən adları redaktə edilir.

Bu yazıda qeydiyyat haqqında ətraflı danışmayacağıq xarici müalicələrçap formaları 1C-də. Bütün bu məlumatlar digər yazılarımızdadır.

Sənədin cədvəl hissəsinin doldurulması

Gəlin yeni emal forması yaradaq.

İndi yaradılmış formaya əlavə etməliyik yeni komanda. Güman edilir ki, o, eyni vaxtda həm bir, həm də bir neçə sənədin (onların siyahı formalarının) cədvəl hissəsindəki məlumatları avtomatik olaraq dəyişdirəcək, sonradan onları qeyd edəcəkdir.

Nümunəmizdə, artıq mövcud olan "Məhsullar" cədvəl hissəsi işlənəcəkdir. Hər bir xətt üçün 5% əl endirimi təyin olunacaq. Həmçinin, bu endirimin məbləğini 0,05-ə vurulan sətirdəki malların məbləğinə bərabər hesablayacağıq.

&Server Prosedurunda Təyinat Obyektlərindən hər bir Müştəri Sifarişi üçün Əmr (Əmr, Təyinat Obyektləri) İcra Edin Müştəri SifarişObject = Müştəri Sifarişini Döndürün. GetObject();

Müştəri SifarişObyektindən hər TK Xətti üçün. Məhsullar Cycle LineTZ. ManualDiscountPercent = 5 ;

LineTZ. Manual Endirim məbləği = TK xətti. Məbləğ * 0 . 05;

EndCycle; CustomerOrderObject. yazın(); EndCycle;

Prosedurun Sonu

Xarici emalın qeydiyyatı

Seçim