1c получавате ред от табличната част на документа. Как да получа данни от табличната част на документите? Как да получите текущия ред на табличен раздел

1c получавате ред от табличната част на документа.  Как да получа данни от табличната част на документите?  Как да получите текущия ред на табличен раздел
1c получавате ред от табличната част на документа. Как да получа данни от табличната част на документите? Как да получите текущия ред на табличен раздел
Начало За ​​начинаещи разработчици Научете се да програмирате

Как да получа данни от табличната част на документите?

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

За да направите това, можете да използвате заявка със следния текст:

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

Като източник посочваме табличната част на документите - таблицата Документ.Продажба на СтокиУслуги.Стоки. Декларирайте поле като изходно поле Номенклатура A, който е част от изходната таблица. Освен това, тъй като една и съща стокова позиция, разбира се, може да присъства повече от веднъж в документите, ние прилагаме РАЗЛИЧНИза да получите само отделни редове в изходната таблица на заявката.

Например, нека създадем обработка Списък с продуктикъдето е избран документът Реализация на стоки и услуги, и чрез натискане на съответния бутон в прозореца за съобщения се показва списък с неповтарящи се позиции от номенклатурата, съдържаща се в табличната част на този документ.

За да ограничим избора на номенклатура само до номенклатурата от табличния раздел на конкретен документ, използваме параметъра Връзкав условието в заявката ( КЪДЕТО...):

ИЗБЕРЕТЕ РАЗЛИЧЕН Реализация на стоки или услуги Стоки. Номенклатура КАТО Номенклатура ОТ Документ. Реализация на стоки или услуги. Стоки КАТО Реализация на стоки или услуги Стоки WHERE Реализация на стоки или услуги Стоки. Връзка = & Връзка

Табличните части съществуват за много обекти в 1C:

  • Справочници
  • Документация
  • Справки и обработка
  • Сметкопланове
  • Планове на типове характеристики
  • Планове за тип изчисление
  • Бизнес процеси и задачи

Табличните части ви позволяват да съхранявате неограничено количество структурирана информация, принадлежаща на един обект.

Нека да разгледаме някои методи за работа с таблични части.

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

Можете да използвате цикъл, за да преминете през табличната част За всеки

За всеки ред от цикъла TabularPart

Доклад(String.TablePartAttribute) ;

Краен цикъл;

При всяка итерация в променлива Линияпренася се следващият ред от табличната част. Стойностите на атрибутите на низа могат да бъдат получени от израза String.AttributeName.

Как да получите и заобиколите избраните редове на табличния раздел

Елементът form се използва за извеждане на информация от табличната част на обекта. таблично поле. За да активирате възможността за избиране на няколко реда в поле на таблица, трябва да зададете стойността Многократнив собствеността си Режим на избор.

За да получите списък с избрани редове, използвайте следния код:

Цикълът се използва за итериране на избрани редове За всеки:

SelectedLines = FormElements. TableFieldName. Избрани редове;

За всеки ред от цикъла на избраните редове

//циклично съдържание

Краен цикъл;

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

За програмно премахване на избора на редове в поле на таблица:

ElementsForm. TableFieldName. Избрани низове. Clear() ;

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

За всеки CurrentRow From TabularPart Loop
ElementsForm. TableFieldName. Избрани редове. Add(CurrentRow) ;
Краен цикъл;

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

TabularPart. Clear() ;

Как да получите текущия ред на табличен раздел

Текущият ред е периодът, в който потребителят има този моменткурсорът се намира. За да го получите, трябва да се обърнете към контролата на формуляра, която е свързана с табличната част.

За редовни формикодът ще изглежда така:

ElementsForm. TableFieldName. CurrentData;

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

Елементи. TableFieldName. CurrentData;

Как да добавите нов ред към електронна таблица

Добавяне на нов ред в края на табличния раздел:

NewRow = TablePart. Добавяне();

Добавяне на нов ред навсякъде в табличния раздел (следващите редове ще бъдат изместени):

NewRow = TablePart. Поставяне (индекс)
//Индекс - номерът на добавения ред. Номерацията на редовете започва от нула.

Нова линия. Атрибут1 = "Стойност" ;

Как програмно да попълните детайлите на ред от таблица

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

Процедурата, създадена от манипулатора, има три параметъра:

  • елемент- съдържа контрола TableField.
  • Нова линия- булев. Съдържа стойност Вярноако се добави нова линиятабличен раздел и лъжа,ако потребителят е започнал да редактира вече съществуващ ред.
  • копиране- булево. Съдържа стойност Вярноако потребителят копира низа и Лъжав други случаи.

Помислете за пример. Да кажем, че трябва да попълним детайлите на табличния раздел акаунт акаунт, в случай че е добавен нов ред. Когато редактирате съществуващ ред, не е необходимо да променяте счетоводната книга.

Процедура TabularPartAt EditingStart(Element, NewRow, Copy)

//Ако потребителят редактира съществуващ ред, не правете нищо
Ако НЕ NewString Тогава
Връщане;
EndIf ;

//Ако низът е нов, задайте акаунта
TextString = Елемент. CurrentData; //Има текуща линиятаблична част
TekString. AccountAccount = Сметкопланове. Самоподдържащ се. Желан акаунт;
EndProcedure

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

Една таблица изброява стоките, които трябва да бъдат изпратени от склада. В друга таблица - задължението за плащане на тези стоки.

Следователно в 1C работата с таблици заема видно място.

Таблиците в 1C се наричат ​​още "части на маса". Има ги справочници, документи и др.

Заявката връща таблица като резултат от нейното изпълнение, която може да бъде достъпна по два различни начина.

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

//Вариант 1 - последователен достъп до резултатите от заявката

// вземете таблица
Избор = Query.Execute().Select();
// заобикаляне на всички редове от резултата от заявката по ред
Докато Selection.Next() цикъл
Доклад(Име на селекция);
EndCycle;

//Вариант 2 - качване в таблицата със стойности
Заявка = Нова заявка ("ИЗБЕРЕТЕ име ОТ Директория. Номенклатура");
// вземете таблица
Таблица = Query.Execute().Upload().
// тогава можем също да заобиколим всички редове
За всеки ред от цикъла на таблицата
Доклад(Име на низ);
EndCycle;
//или произволен достъп до низове
String = Table.Find("Лопата", "Име");

Важна особеност е, че в таблицата, която се получава от резултата на заявката, всички колони ще бъдат строго типизирани. Това означава, че като поискате полето Име от търсенето в номенклатурата, ще получите колона от типа String с допустима дължина не повече от N знака.

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

Потребителят работи с таблицата, когато е поставена във формата.

Обсъдихме основните принципи на работа с формуляри в урока по и в урока по

И така, нека поставим таблицата върху формуляра. За да направите това, можете да плъзнете таблицата от контролния панел. По същия начин можете да изберете контролата Form/Insert от менюто.

Данните могат да се съхраняват в конфигурация - тогава трябва да изберете съществуваща (предварително добавена) таблична част от конфигурационния обект, чиято форма редактирате.

Щракнете върху бутона "..." в свойството Данни. За да видите списъка таблични части, трябва да отворите клона Обект.

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

В същото свойство Data можете да въведете произволно име и да изберете типа ValueTable.

Това означава, че е избрана произволна таблица със стойности. Няма автоматично да добавя колони, няма да се запазва автоматично, но можете да правите каквото искате с него.

Щракване Кликнете с десния бутонвърху таблицата можете да добавите колона. В свойствата на колоната можете да посочите нейното име (за справка в кода 1C), заглавието на колоната във формуляра, връзката с атрибута на табличната част (последното - ако не е избрана произволна таблица, а таблична част).

В свойствата на таблицата във формуляра можете да посочите дали потребителят може да добавя/изтрива редове. По-разширена форма е квадратчето за отметка ViewOnly. Тези свойства са полезни за организиране на таблици, предназначени за показване на информация, но не и за редактиране.

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

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

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

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

Ако трябва да поставите таблица със стойности, добавете нов атрибут на формуляр и посочете типа в неговите свойства - таблица със стойности.

За да добавите колони, използвайте менюто с десния бутон на мишката върху този атрибут на формуляр, елемент Добавяне на атрибутна колона.

След това също плъзнете таблицата наляво.

За да може таблицата да има командна лента, в свойствата на таблицата изберете стойностите в секцията Използване - Позиция на командната лента.

Експортиране на таблица в Excel

Всяка таблица 1C, разположена във формуляра, може да бъде отпечатана или качена в Excel.

За да направите това, щракнете с десния бутон върху празно място в таблицата и изберете Показване на списъка.

В управляван (тънък) клиент подобни действия могат да бъдат извършени с помощта на елемента от менюто Всички действия/Списък за показване.