Како да добиете податоци од табеларниот дел на документите? 1s пристап до табеларниот дел од документот

Табеларните делови постојат за многу објекти во 1C:

  • Референтни книги
  • Документација
  • Извештаи и обработка
  • Сметковни графикони
  • Планови на видови карактеристики
  • Планови за тип на пресметка
  • Деловни процеси и задачи

Табеларните делови ви дозволуваат да складирате неограничен број структурирани информации кои припаѓаат на еден објект.

Ајде да погледнеме неколку методи за работа со табеларни делови.

Како да се заобиколи табеларниот дел

Можете да користите јамка за да го поминете табеларниот дел За секој

За секој ред од TabularPart Loop

Извештај (String.TablePartAttribute) ;

Краен циклус ;

При секое повторување во променлива Линијасе пренесува следниот ред од табеларниот дел. Вредностите на атрибутот на низата може да се добијат со изразот Низа.AttributeName.

Како да ги добиете и заобиколите избраните редови од табеларниот дел

Елементот форма се користи за прикажување на информации од табеларниот дел на објектот. поле за табела. За да ја овозможите можноста за избор на повеќе редови во полето на табелата, треба да ја поставите вредноста Повеќекратнина својот имот Режим на избор.

За да добиете листа на избрани линии, користете го следниов код:

Јамката се користи за повторување преку избраните линии За секој:

SelectedLines = FormElements. Име на TableField. Избрани линии;

За секој ред од Избрани редови Јамка

//јамка содржина

Краен циклус ;

Како програмски да ги изберете редовите на табеларниот дел (поле за табела) и да го отстраните изборот

Програмски отселектирате редови во полето за табела:

Елементи Форма. Име на TableField. Избрани низи. Clear() ;

Програмски да ги изберете сите редови во полето од табелата:

За секој CurrentRow од TabularPart Loop
Елементи Форма. Име на TableField. Избрани линии. Додај(Тековен ред);
Краен циклус ;

Како да ја исчистите табелата

ТабеларенДел. Clear() ;

Како да го добиете тековниот ред на табеларен дел

Тековната линија е периодот во кој корисникот има овој моментсе наоѓа курсорот. За да го добиете, треба да се повикате на контролата на формуларот, која е поврзана со табеларниот дел.

За обични форми, кодот би изгледал вака:

Елементи Форма. Име на TableField. Тековни податоци;

За управувани форми:

Елементи. Име на TableField. Тековни податоци;

Како да додадете нов ред во табела

Додавање нова линија на крајот од табеларниот дел:

NewRow = Table Part. Додај() ;

Додавање нова линија каде било во табеларниот дел (следните линии ќе бидат поместени):

NewRow = Table Part. Вметни (Индекс)
//Индекс - бројот на додадената линија. Нумерирањето на линиите започнува од нула.

Нова линија. Attribute1 = "Вредност" ;

Како програмски да ги пополните деталите за редот на табелата

Ако треба програмски да ги пополните деталите од редот на табеларниот дел што корисникот го додава, мора да го користите управувачот со настани на табеларниот дел AtStartEditing.

Постапката креирана од управувачот има три параметри:

  • Елемент- содржи контрола TableField.
  • Нова линија- бул. Содржи вредност Вистина, ако се додаде нов ред од табеларниот дел и Лага,ако корисникот почнал да уредува веќе постоечки ред.
  • копирање- бул. Содржи вредност Вистинаако корисникот ја копира низата и Лагаво други случаи.

Размислете за пример. Да речеме дека треба да ги пополниме деталите за табеларниот дел Сметка на сметка, во случај кога е додадена нова линија. Кога уредувате постоечки ред, не треба да ја менувате сметката во книгата.

Постапка TabularPartAt EditingStart (елемент, нов ред, копија)

//Ако корисникот уредува постоечки ред, тогаш не правете ништо
Ако НЕ NewString Потоа
Враќање;
Крај Ако ;

//Ако низата е нова, поставете ја сметката
TextString = Елемент. Тековни податоци; //Го прими тековниот ред од табеларниот дел
TekString. AccountAccount = Сметковни графикони. Самоподдржувачки. Посакувана сметка;
Крајна процедура

Со цел да се земат предвид парите и стоките, различни табели се широко користени во бизнисот. Речиси секој документ е табела.

Една табела ги наведува стоките што треба да се испорачаат од магацинот. Во друга табела - обврската да се плати за овие стоки.

Затоа, во 1C, работата со табели зазема видно место.

Табелите во 1C се нарекуваат и „делови за маса“. Ги имаат референтните книги, документи и други.

Барањето враќа табела како резултат на неговото извршување, до која може да се пристапи на два различни начини.

Првиот - побрз - избор, добивањето редови од него е можно само по ред. Вториот е растоварување на резултатот од барањето во табела со вредности и потоа случаен пристап до него.

//Опција 1 - секвенцијален пристап до резултатите од барањето

// добие маса
Избор = Query.Execute().Select();
// заобиколете ги сите редови од резултатот на барањето по редослед
Додека Избор.Следна() Јамка
Извештај (Избор.Име);
Краен циклус;

//Опција 2 - поставување на табелата со вредности
Query = Ново барање ("SELECT Name FROM Directory.Nomenclature");
// добие маса
Табела = Query.Execute().Upload().
// тогаш можеме да ги заобиколиме и сите линии
За секој ред од Табелата јамка
Извештај (Низа.Име);
Краен циклус;
//или произволен пристап до низи
Низа = Табела.Најди ("Лопата", "Име");

Важна карактеристика е тоа што во табелата, која се добива од резултатот од барањето, сите колони ќе бидат силно напишани. Ова значи дека со барање на полето Име од пребарувањето за номенклатура, ќе добиете колона од типот String со дозволена должина не повеќе од N знаци.

Табела на формуларот (дебел клиент)

Корисникот работи со табелата кога е поставена на формуларот.

Разговаравме за основните принципи на работа со форми на лекцијата и на часот по

Значи, да ја ставиме табелата на формуларот. За да го направите ова, можете да ја повлечете табелата од контролната табла. Слично, можете да ја изберете контролата Форма/Вметни од менито.

Податоците може да се складираат во конфигурација - тогаш треба да изберете постоечка (претходно додадена) табеларен делконфигурацискиот објект чија форма ја уредувате.

Кликнете на копчето „...“ во својството Data. За да ја видите листата на табеларни делови, треба да ја проширите гранката Објект.

При изборот на табеларен дел, самиот 1C ќе додаде колони во табелата на формуларот. Низите внесени од корисникот во таква табела автоматски ќе се зачуваат заедно со директориумот/документот.

Во истото својство Data, можете да внесете произволно име и да го изберете типот ValueTable.

Ова значи дека е избрана произволна табела со вредности. Нема автоматски да додава колони, нема автоматски да се зачувува, но можете да правите што сакате со него.

Со десен клик на табелата можете да додадете колона. Во својствата на колоната, можете да го наведете неговото име (за повикување во кодот 1C), насловот на колоната на формуларот, врската со атрибутот на табеларниот дел (вториот - ако не е избрана произволна табела, но табеларен дел).

Во својствата на табелата на формуларот, можете да одредите дали корисникот може да додава/брише редови. Понапредна форма е полето за избор Само View. Овие својства се корисни за организирање табели наменети за прикажување информации, но не и за уредување.

За да управувате со табелата, треба да го прикажете командниот панел на формуларот. Изберете ја ставката од менито Форма/Вметни контролен/команден панел.

Во својствата на командната лента, изберете го полето за избор Автоматско комплетирање, така што копчињата на лентата со алатки ќе се појават автоматски.

Табела за форма (тенок/управуван клиент)

На управувана формаовие акции изгледаат малку поинаку. Ако треба да поставите табеларен дел на формуларот, проширете ја гранката Објект и повлечете еден од табеларните делови налево. И тоа е тоа!

Ако треба да поставите табела со вредности, додадете нов атрибут за форма и наведете го типот во неговите својства - табела со вредности.

За да додадете колони, користете го менито со десното копче на глувчето на овој атрибут за форма, ставка Додај атрибут колона.

Потоа повлечете ја и табелата налево.

За да може табелата да има командна лента, во својствата на табелата, изберете ги вредностите во делот Употреба - Позиција на лентата со команди.

Извезување табела во Excel

Секоја табела 1C што се наоѓа на формуларот може да се испечати или постави во Excel.

За да го направите ова, кликнете со десното копче слободен просторво табелата и изберете Прикажи листа.

Во управуван (тенок) клиент, слични дејства може да се извршат со користење на ставката од менито Сите дејства/Список за приказ.

Дома за почетници програмери Научете да програмирате

Како да добиете податоци од табеларниот дел на документите?

На пример, разгледајте ситуација кога сакате да ги добиете сите залихи наведени во табеларниот дел Стокидокументи Реализација на стоки и услуги.

За да го направите ова, можете да користите барање со следниов текст:

ИЗБЕРИ РАЗЛИЧНИ Реализација на стоки на услуги Стоки.номенклатура КАКО номенклатура ОД документ.Реализација на стоки на услуги.стоки КАКО реализација на стоки на услуги Стоки

Како извор го посочуваме табеларниот дел од документите - табелата Документ.Продажба на стокиУслуги.Стоки. Декларирајте поле како излезно поле НоменклатураА што е дел од изворната табела. Дополнително, бидејќи истата стока, се разбира, може да биде присутна повеќе од еднаш во документите, ние аплицираме РАЗЛИЧНИза да добиете само различни редови во табелата за излез на барањето.

На пример, ајде да создадеме обработка Листа на производикаде што е избран документот Реализација на стоки и услуги, и со кликнување на соодветното копче, во прозорецот за пораки се прикажува список на ставки од номенклатурата што не се повторуваат содржани во табеларниот дел на овој документ.

За да го ограничиме изборот на номенклатура само на номенклатурата од табеларниот дел на одреден документ, го користиме параметарот Врскаво состојбата во барањето ( КАДЕ...):

ИЗБЕРЕТЕ РАЗЛИЧНИ реализација на стоки на услуги стоки.номенклатура AS номенклатура од документ.Реализација на стоки на услуги.




Врв