Таблична част в таблицата със стойности 1s 8.3. Толкова е просто

Съдържателят на склада трябва да качи списък с всички елементи, които нямат зададен флаг за изтриване. Полета за разтоварване:

  1. Име.
  2. Код на продавача.
  3. Номенклатурен тип.
  4. Номенклатурен тип.

Ето как ще изглежда електронната таблица на Excel след качването:

Помислете за два начина за решаване: без програмиране и с участието на програмист.

Програмиране

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

С натискане на бутона "Попълване" се попълва табличната част "Качване на данни" на обработка, в която се добавят съответните реквизити. Манипулаторът за този бутон има следното програмен код:

Процедура ButtonPerformPress(Button) Query = Нова заявка; Заявка. Текст = "ИЗБЕРЕТЕ | Номенклатура. Справка AS номенклатура, | Номенклатура. Код на продавача, | Номенклатура. Типова номенклатура, | Номенклатура. Тип Номенклатура. Номенклатурен тип AS Номенклатурен тип |ОТ| Справочник . Номенклатура КАТО Номенклатура| КЪДЕ | НЕ Номенклатура. FlagRemoval | И НЕ Номенклатура. Тази група" ; DataTable = Query. Execute () . Unload() ; Качване на данни. Load(Data Table) ; EndProcedure

Тук всичко трябва да е ясно. Забавлението започва, когато щракнете върху бутона "Запазване". Първо се извиква диалоговият прозорец за избор на пътя за запазване на XLS таблицата. След това с помощта на данните в табличната част на обработката се попълва документ с електронна таблицаспоред предварително създаденото оформление. Оформлението, добавено към обработката, е следното:

Процедура MainActionsFormsAction(Button) // Извикване на диалоговия прозорец за избор на файл за запазване на XLS таблицатаРежим = FileSelectionDialogMode. консервация; FileOpenDialog = NewFileSelectDialog(Mode) ; Диалогов прозорец за отваряне на файл. FullFileName = " " ; Диалогов прозорец за отваряне на файл. MultipleSelection = False; Текст = "ru = ""XLS маса"" ; en =" "XLS таблица " " " ; Филтър = NStr(Текст) + " (*.xls) |*.xls xls" ;FileOpenDialog.Filter = Филтър;FileOpenDialog.Title = " Изберете път за запазване" ; Ако FileOpenDialog. Select() Then FilePath = FileOpenDialog. FullFileName; Else Text = " Няма избран път за запазване!" ; Предупреждение(Текст) ; Връщане ; EndIf ; // Създаване на документ с електронна таблица TableSave = Нов документ за електронна таблица; // Вземете оформлението за запълване и областите на оформлениетоОформление = Този обект. GetLayout(" TableUploads" ) ; AreaHat = Оформление. GetArea(" Заглавка " ) ; AreaString = Оформление. GetArea(" Линия" ) ; // Изходни данни в документ с електронна таблица TableSave. Изход (RegionHeader) ; За всяка страница от DataUpload Loop FillPropertyValues(AreaString. Parameters, Page) ; TableSave. Изход (AreaString) ; Краен цикъл; // Запазване на документ с електронна таблица на диск TableSave. Write(FilePath, SpreadsheetDocumentFileType.XLS) ; EndProcedure

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

Потребителят може сам

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

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

След като документът на електронната таблица бъде генериран, чрез щракване върху бутона "Запазване" или чрез менюто "Файл->Запазване", потребителят може да запише документа на електронната таблица в XLS файл, като посочи неговото име и целева директория.

Това е всичко! Не е необходима обработка за качване. Разбира се, ако имате доста прост случай с качване на данни.

Значи всичко е просто?

Всичко е наистина просто, не е необходимо да се свързват външни компоненти. Освен това можем да качваме по този начин не само във формат на електронни таблици на Excel, но и в други формати, поддържани от платформата.

Обработка с пример от статията можете изтеглете от връзката.

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

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

Следователно в 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.

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

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

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

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

Структура на таблицата със стойности като обект

Свойствата на таблица със стойности се определят от комбинации от две предварително дефинирани колекции: нейните колони и редове.

Таблица със стойности Колони

Колоната на таблицата със стойности е нейното определящо свойство. Наборът от колони в таблицата определя нейната структура. Колоните съответстват на полета във физически таблици или познати от потребителски интерфейсколони на таблична част или дневник на документи. Една колона може да има вътрешно име, тип стойност и заглавка, която се показва при взаимодействие с таблицата.

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

Ред на таблицата със стойности

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

По този начин взаимодействието с низ е много подобно на взаимодействието с други обекти. Можете да четете и записвате неговите свойства, включително с помощта на предварително дефинираната функция "FillPropertyValues()". Тъй като редовете са основната колекция на таблицата със стойности, методът "Clear()" се използва за изтриване на всички редове на таблицата.

Създайте таблица със стойности

Има много начини да получите таблица със стойности, готова за употреба. Нека разгледаме някои от тях. Всеки пример ще бъде предоставен като списъци с кодове с коментари.

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

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

ДемоТаблица = Нова таблица със стойности; // Първо инициализираме TK // След това дефинираме необходимите параметри за нови колони и ги добавяме към колекцията // Създаване на колона "Номенклатура" Name = "Номенклатура"; ValueType = New TypeDescription("ReferenceReference.Nomenclature"); Заглавие = "Номенклатура (позиция)"; DemoTable.Columns.Add(Име, ValueType, Заглавие); // Създаване на колона "Сума" Name = "Сума"; ValueType = NewTypeDescription("Число"); DemoTable.Columns.Add(Name, ValueType); // В резултат на тези манипулации създадохме празна таблица с въведени колони // Ако трябва да използвате по-прецизно въвеждане на примитивни типове, тогава трябва да използвате разширения синтаксис на конструктора “TypeDescription”

Създаване на таблица чрез копиране

Ако имате справка с подходяща структура и/или композиция под ръка, можете да копирате или изтеглите справочната таблица със стойности. Ако референцията е друга таблица, тогава трябва да приложите метода "Копиране на референтната таблица". Ако имате работа с таблична част или набор от регистрационни записи, трябва да използвате метода "Разтоварване на таблица със стойности". Ако имате нужда само от структурата, тогава можете да използвате метода "CopyColumns".

// Вариант с копиране на всички редове от TK-стандарта, но със запазване само на две посочени колони Reference Columns = "Номенклатура, Количество"; DemoTable = TableReference.Copy(, ColumnsReference); // Вариант с копиране на предварително избрани редове от TK-стандарта, като се запазват двете посочени колони. Справочни колони = "Номенклатура, Количество"; DemoTable = TableReference.Copy(RowsReference, ColumnsReference); // Опция с копиране на редове от TK-стандарта според посочения филтър, като същевременно се поддържа една колона „Номенклатура“ // Ще бъдат избрани всички редове, където стойността в колоната „Количество“ е 0, само колоната „Номенклатура“ ще бъде включена в резултатна таблица Избор на ред = Нова структура ("Количество", 0); Справочни колони = "Номенклатура"; DemoTable = TableReference.Copy(RowsReference, ColumnsReference); // Вариант с пълно копиетаблица и последващо изтриване на един ред със стойност на полето за количество, равна на нула и изтриване на цялата колона “Number” RowSelection = New Structure("Number", 0); Справочни колони = "Номенклатура"; DemoTable = TableReference.Copy(RowsReference, ColumnsReference); TableString = DemoTable.Find(0, "Брой"); DemoTable.Delete(TableString); DemoTable.Columns.Delete("Количество"); // Подобни опции и техните модификации могат да бъдат приложени към части от таблици и набори от регистри

Създаване на таблица със заявка

Ако базата данни има шаблон на таблицата, от която се нуждаете, тогава можете да използвате заявката, за да бързо създаванетаблици с желаната структура.

// Пример за създаване на празна таблица, следваща структурата на регистъра за натрупване // Лесно е да се досетите, че по този начин можете да получите и попълнената таблица Request = New Request("SELECT FIRST 0 * From Accumulation Register. Stocks in Warehouse "); QueryResult = Query.Execute(); ДемоТаблица = QueryResult.Upload(); // Пример със създаване на празна таблица по изрично зададени типове и имена на полета Query = New Query; Query.Text = "ИЗБЕРЕТЕ ПЪРВО 0 | Стойност(Каталог.Номенклатура.NullReference) КАТО Номенклатура, | ЕКСПРЕС(0 КАТО НОМЕР(15, 3)) КАТО Количество"; QueryResult = Query.Execute(); ДемоТаблица = QueryResult.Upload(); // ВАЖНО! Не забравяйте, че типът Null винаги присъства в типовете стойности на колони, получени от заявката // По този начин TM, създаден от заявката, винаги има съставни типове колони

Заключение

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



Зареждане...
Връх