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

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

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

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

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

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

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

За секој ред од Табеларниот дел од циклусот

Извештај (String. TabularPart атрибут) ;

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

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

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

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

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

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

SelectedRows = FormElements. Име на TableField. Избрани редови;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Постапка TabularPartAtStartEditing (елемент, нов ред, копирање)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

За да управувате со табелата, треба да прикажете командна табла на формуларот. Изберете ја ставката од менито Form/Insert Control/Command лента.

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

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

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

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

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

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

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

Поставување табела во Excel

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

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

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

Дома За програмери почетници Учење да програмирате

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

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

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

ИЗБЕРЕТЕ РАЗЛИЧНИ Продажби на стоки и услуги стоки Номенклатура AS номенклатура ОД документ. Продажба на стоки и услуги.

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

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

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

ИЗБЕРЕТЕ РАЗЛИЧНИ Продажби на стоки и услуги стоки. Номенклатура КАКО номенклатура ОД документ. Продажба на стоки и услуги.




Врв