1c итерация върху списъка със стойности. Допълнителни методи за масив

За какво е тази статия

Тази статия продължава поредицата от статии "Първи стъпки в развитието на 1C". В него се обсъжда как да се работи с общи колекции. След като прочетете статията, ще разберете:

  • Какво представляват генеричните колекции, кога и кога трябва да се използват?
  • Какво е общото между всички универсални колекции? Какви техники можете да използвате, за да работите с всички тях?
  • Какво е масив, как и кога да го използваме? Какви методи има той?
  • Защо да използвате структура? Как се различава от масива?
  • Кога да използвате списък със стойности? Как да го покажа във формуляра?
  • Съответствие - какво е това и кога да го използваме? Какви са предимствата пред структурата?
  • За какво се използва таблица със стойности? Как да опишем неговата структура? Как да добавя/премахвам редове? Как да го приведем във форма?
  • Дърво на стойността - за какво се използва? Как се попълва и показва във формуляра? Как да работим с него?

Приложимост

Статията разглежда платформата 1C: Enterprise 8.3 на текущото издание.

Как да работим с универсални колекции в 1C

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

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

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

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

Колекция може да бъде създадена в резултат на функция (функцията връща обща колекция като стойност).

Можете да получите нова колекция ръчно чрез достъп до конструктора и инстанциране на класа.

Например: OurArray = Нов масив;

Конструкторите за много общи колекции са параметризирани.

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

Съответното описание на конструктора е в помощника на синтаксиса.

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

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

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

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

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

Например, Нашият масив... Обърнете внимание, че в този случай системата връща елемента Array с индекс 3 и по ред това е четвъртият елемент Array.

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

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

За всички колекции се използва обход на колекция. Има два начина да го заобиколите: цикъл Заи цикъл За всеки от.

За повечето общи колекции са приложими следните методи: Брой, Индекс, Добавяне, Вмъкване, Изтриване и Намиране.

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

Методът Index не съществува за всички колекции, а само за тези, чиито елементи могат да бъдат реферирани. Пример е Таблица със стойности.

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

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

Методът Index ви позволява да определите кой индекс съответства на даден ред (тоест текущата позиция на реда в таблицата). Стойностите на индекса започват от нула.

Почти всяка обща колекция има методи за добавяне на нови стойности към дадена колекция. Фигурата показва как да попълните масив със стойности от 0 до 10 по два начина.

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

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

Синтаксис: Вмъкване (,)

Първият параметър е индексът, където ще бъде вмъкната новата стойност. Тези. ние, например, можем да посочим, че всяка стойност трябва да се вмъкне в началото на списъка (вторият начин на снимката по-горе).

За да премахнете елементи от колекцията, използвайте метода Изтрий... В метода Delete се посочва от индекса кой елемент ще изтрием.

Синтаксис: Изтрий()
Пример за употреба: OurArray.Remove (5);

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

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

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

Ако стойността е намерена, тогава този метод връща индекса или конкретен низ. Ако не бъде намерена стойност, се връща стойност от тип Недефиниран... Приложено към масив, връща Индекс, или стойността Недефиниран.

Пример за употреба: НашатаПроменлива = НашМасив.Намери (8);

Генеричните колекции могат да се почистват много бързо, т.е. премахнете абсолютно всички елементи. За да направите това, използвайте метода Изчисти ()което премахва елементите на масива, редове Таблици със стойности, или данни от други колекции.

Допълнителни методи за масив

Метод InBoundary ()връща броя на елементите минус един. Тези. ако използваме цикъл За, то вместо метода Количество, можем веднага да използваме метода Границата().

По-специално, променливата NumberInArray може да бъде дефинирана по различен начин:

CountInArray = OurArray.Boundary ();
Тогава, когато се описва самият цикъл, не трябва да се изважда от тази променлива.

Методът Set ви позволява да присвоите стойност на елемент на масив по индекс.

Синтаксис: Инсталирай(,)

пример: OurArray.Set (2.8);

Алтернативен вариант: Нашият масив = 8;

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

Синтаксис: получавам()

пример: Нашата променлива = OurArray.Get (2);

Алтернативен вариант: Нашата Променлива = НашМасив;

Универсална колекция Структура

Структура, като масив, може да има неограничен брой елементи, но съдържанието на елемент се различава от масива.

Структурата е колекция, всяка стойност на която се състои от двойка. Първият елемент от двойката се нарича Ключ... Вторият елемент на двойката е смисъл.

КлючТова е строго низов тип данни, който описва стойност. Например, Ключ"Код" може да съответства на стойност 113; Ключ"Име" означава "Вася". Няма ограничение за типа данни за самата стойност.

Структурата е много удобна за използване, ако искаме да създадем определен списък с параметри. Ако това СтруктураНаречен Нашата структура, тогава ще се позоваваме на двете му стойности, както следва: OurStructure.Code и OurStructure.Name.

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

Структурата прави програмния код четим (разбираем). Структурата се използва доста често, много по-често от Array.

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

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

Тогава е много по-удобно да запишете всички параметри в Структурата и да я прехвърлите точно. Тези. има "опаковане" на параметри на процедури и функции.

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

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

Разрешено начало Ключс буква или долна черта. Поради това, Ключтрябва да отговарят на изискванията за създаване на идентификатори.

Обърнете внимание как иначе структурата се различава от масива. Структурата има метод Вмъкване, има два метода за вмъкване в масив: Вмъкване(до конкретна позиция) и Добавете(в края на списъка). В масива всички елементи са подредени.

Структурата е неподредено множество. Ето защо има само метод за вмъкване за структура.

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

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

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

Подобно на Array, конструкторът Struct може да приема параметри. Тези. възможно е да се опише съдържанието на самата структура с помощта на конструктора.

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

Например: Нашата структура = Нова структура (“Код, име”, 133, “Вася”);

Първо, имената на ключовете са изброени, разделени със запетаи, а след това, съответно, в същата последователност, стойностите на параметрите.

За да добавите нова стойност към структурата, има метод Вмъкванекойто вмъква нова двойка (ключ и стойност).

Например: OurStructure.Insert ("Членове на семейството", 3);

Друг метод е характерен за Структурата, който се използва доста често. Това е методът Имот.

Използвайки този метод, можете да разберете дали има такъв елемент в тази структура, който има ключ, такова и такова име.

Ако има такъв елемент, тогава системата ще върне стойността True, в противен случай - False.

Например изразът OurStructure.Property („Членове на семейството“)ще бъде равно на True. Този метод се използва доста често при анализа на структурата.

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

Например: Доклад (Нашата структура [„Членове на семейството“]);

Въпреки това, не трябва да забравяме, че структурата е неподреден набор от обекти, поради което препратката по индекс 0, 1, 2 не е разрешена.

Обща колекция Списък със стойности

Списък със стойностие линеен списък с елементи от всякакъв тип данни.

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

Първата колона е Марк... Той има булев тип данни и позволява на потребителя да постави или премахне отметките от квадратчетата.

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

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

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

Списък със стойности- това е обектът, с който потребителят може да работи визуално. Тези. Списък със стойностиможе да се покаже във формуляра.

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

намирам Списък със стойностив ситакс асистент. Конструктор Списък със стойностине е параметризиран (не могат да бъдат зададени стойности по подразбиране).

Има методи като:

  • Вмъкване (,) ;
  • Добавяне(,);
  • Количество();
  • Индекс().

Има и специални методи, напр. UnloadValues ​​()... Това създава масив, в който се копира списъкът със стойности. Например:

ArrayElements = ListPriceTypes.LoadValues ​​();

Има и обратен метод:
PriceTypeList.LoadValues ​​(ElementArray);

Има методи за търсене:
FindByValue (); FindById ().

Има метод за копиране:
ListCopy = PriceTypeList.Copy ();
Този метод има за цел да направи някаква модификация с копие.

Има методи:
Сортиране по стойност ();
Сортиране по презентация ().

Методи Изберете елемент (,)и Проверете елементите ()извикване на модален диалогов прозорец, който спира изпълнението на алгоритъма, докато потребителят не затвори дадения прозорец.

За да използвате тези методи в свойствата на конфигурацията Начин на използване на модалносттатрябва да се настрои на стойност Използвайте.

Примерен код, извикан от модул за управлявано приложение:

Показване на дадения код в потребителски режим (модален диалогов прозорец).

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

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

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

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

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

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

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

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

Конструкторът за съответствие, за разлика от структурата, не съдържа възможността за определяне на параметри.

Пример за употреба:

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

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

Например: Нашият мач = Нов мач;
Съвпадение = 999

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

Това е различно от Структурата.

Обща колекция Таблица със стойности

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

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

Разлики Таблици със стойностиот 2D масив:

  • това е обект, с който потребителят може да работи (може да се покаже таблицата със стойности, потребителят може да я попълни, по-късно въведените данни могат да бъдат прочетени);
  • изграждане на индекси за бързо търсене;
  • клониране, запълване на цялата колона с определена стойност, разтоварване на всички колони в масив.

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

Така, Таблица със стойностисе състои от набор от редове и набор от колони. И редовете, и колоните са колекции.

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

Поддържани типове данни: сам Таблица със стойностикойто се състои от линии. Всеки ред е представен от тип данни StringTableValues, който има свои свойства и свои методи. Има Колекция колони таблици стойностисъщо има определени свойства.

Важен момент! Процедура, която формира Таблица със стойности, трябва да компилира & AtServer.

Преди да започнете работа с Таблица със стойности, е необходимо да се определи кои колони ще се съдържат в него (т.е. да ги създадете). Синтаксис:

Добавяне (,)
(по избор)
Тип: низ.
(по избор)
Тип: DescriptionTypes
(по избор)
Тип: низ.
(по избор)
Тип: Номер.

Например:

За да извикаме тази процедура, ще използваме командата.

В описанието Таблици със стойностиколекционните елементи са точно Редове Таблици Стойности.

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

За да добавите нов ред към таблицата, трябва да използвате и метода Добавяне()или вмъкване()... Във втория случай трябва да посочите на коя позиция трябва да бъде поставена необходимата линия.

За да присвоим стойност на колона, препращаме към името на колоната или индекса (използвайки квадратни скоби) през точка.

За пълнене Таблици със стойностимогат да се използват следните методи:

Изчисти ()- да премахнете всички линии от Таблици със стойности.

FillValues ​​(,)- позволява да попълните всички колони или избрани колони с една стойност.
Зареждане колона (,)- зарежда колона от масив.
Разтоварване на колона ()- разтоварва колона в масив.

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

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

Можете да копирате структурата Таблици със стойности... За това има съответен метод. Копиране на колони ()... Ще се изпразнем Таблица със стойностис необходимата структура.

V Таблица със стойностиима метод Обща сума ()... Можете да посочите колоната, в която искате да сумирате числовите стойности. Във връзка с показания по-рано код в таблото, можете да изчислите стойността: TK.Total („Сума“).

V Таблица със стойностивъзможно е да групирате (свиете) числови стойности по същите стойности на определени колони с помощта на метода Свиване (,).

Във връзка с показания по-рано код в таблото, можете да изчислите стойността: TK.Collapse („Ден от седмицата“, „Сума“).

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

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

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

В модула за формуляр, в края на съставения по-рано алгоритъм (в процедурата за създаване на таблица със стойности), добавете:
ValueVDataForm (TK, Table);

Обща колекция Дърво на стойностите

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

Може да се показва и на екрана. Дървото на стойността се състои изрично от колекция от низове и колекция от колони. В дървото има два свойства, редове и колони.

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

Нека създадем съответното командно дърво и процедурата за неговата обработка.

Да създаваме в който един родителски ред и двама подчинени.

Нека създадем подпори за формата DerZn(тип данни - ValueTree).

За това свойство нека създадем колоните за година и месец.

Преместете съответния елемент DerZnна формуляра.

Накрая Процедури TreeOnServer ()добавете:

ValueVDataForm (TreeZn, DerZn);

Нека проверим какво се случи в потребителски режим.

Използване на бутона Добаветемогат да се добавят нови редове. Те също могат да образуват йерархия.

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

С това приключваме първото ни запознанство с универсалните колекции.

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

В този модул ще се запознаем с нов тип данни на езика 1C, който се нарича Списък със стойности.

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

// създаде списък със стойности

Списък Добавяне (23);

Досега всичко изглежда много като масив, нали? Но да продължим. За да покажете тези числа на потребителя, напишете:

// цикъл през всеки елемент от списъка За всеки елемент От отчета за цикъла на списъка (Element.Value);

// показва стойността на елемента EndCycle;

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

Нека разгледаме някои допълнителни функции Стойности.

Знае как да сортира

Например, можем лесно да сортираме списък със стойности. Списъкът може да го направи сам:

Списък.Сортиране по стойност (Посока на сортиране.Azr); В случай на обикновен масив, ще трябва да приложим един от алгоритмите за сортиране (например балон).

Знае как да търси

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

Въведете номер (число); // въведе число от потребителя FoundItem = List. FindByValue (Число);

Ако FoundElement = Undefined, тогава OpenValue ("Номер" + Номер + "не е намерен в списъка!"); В противен случай

OpenValue ("Number" + Number + "е в списъка. Ето го:" + FoundElement.Value);

EndIf; Списък със стойности

Поддържа вмъкване и изтриване

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

Списък. Вмъкване (0, 1000);

// вмъква хиляда в самото начало на списъка Изтриване (О); // и незабавно го премахнете от списъка. Вмъкване (Номер на списък (), 13);

// вмъкнете 13 в края на списъка Отчет (Списък [Списък.Количество () - 1]);

// показване на последния елемент от списъка (13)

Поддържа квадратни скоби

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

Отчет (Списък.Стойност); // изведе втория елемент от списъка По този начин можем да прегледаме всички елементи на списъка по следния начин:

За A = 0 By List.Number () - 1 Отчет за цикъла (Списък [A]. Стойност);

Край на цикъла;

Знае как да създаде свое собствено копие

Списъкът със стойности има наистина страхотна функция - той може сам да създаде свое собствено копие:

CopyList = List.Copy ();

// направи копие на списъка // сега можем безопасно да променим CopyList // докато оригиналният списък няма да промени CopyList. Стойност = 123456;

Знае как да се превърне в масив

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

ArrayNumbers = Списък. UnloadValues ​​();

// разтоварен в масив

За A = 0 По номер на масив. () - 1 цикъл

Доклад (ArrayNumbers [A]); // не е необходимо да се посочва // опция Стойност

Край на цикъла;

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

Необходимо е да въведете 5 числа от потребителя, да намерите най-голямото и най-малкото от тях и да ги покажете на потребителя. Решението трябва да използва списък със стойности.

Решение

Списък = Нов списък със стойности;

// създаде списък със стойности за A = 1 By 5 Loop Number = 0;

Въведете номер (число); // въведете число от потребителя List.Add (Number); // и го добавете към списъка Край на цикъла; // и така 5 пъти

// сортиране на списъка с числа

Списък. Сортиране по стойност (Посока на сортиране. Възходящо);

// след сортиране, първият елемент от списъка е // най-малкият елемент, а последният е най-големият OpenValue ("Най-малкият елемент" + List +

"и най-големият" + Списък [Списък.Номер () - 1]);

Пълен синтаксис (щракнете за разгъване)

Списък със стойности

Описание:

Списъкът със стойности е обект, който не се запазва в базата данни, което ви позволява да изграждате динамични набори от стойности за решаване на проблеми с интерфейса и да ги манипулирате (добавяне, редактиране, изтриване на елементи, сортиране). Може да се попълни със стойности от всякакъв тип, т.е. типовете съхранени стойности в същия списък могат да бъдат различни. Един от примерите за използване на този обект може да бъде организирането на избор на конкретен документ от списъка с възможни документи, генериран от сложен алгоритъм.

Колекция артикули: ItemListValues

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

Възможно е да се обърнете към елемент за колекция с помощта на оператора [...]. Индексът на елемента се предава като аргумент ( номериране от 0).

Имоти:

методи:

Вмъкване (индекс, стойност, изглед, маркиране, изображение) Вмъква нов елемент в списъка със стойности на посочената позиция на индекса.SelectElement (Заглавие, Елемент) Извиква прозорец за интерактивен избор на един от елементите, включени в списъка със стойности. елемент- елементът, към който списъкът със стойности трябва да бъде първоначално позициониран по време на интерактивен избор. Ако стойността на параметъра не е елемент от списъка със стойности, включени в този списък, позиционирането няма да се случи.Разтоварване на стойности() Създава масив и копира стойностите на елементите от списъка със стойности в него.Добавяне (стойност, изглед, маркиране, изображение) Добавя нов елемент в края на списъка със стойности.LoadValues(ArrayValues) Зарежда списък със стойности със стойности от предадения масив. В този случай всички предишни елементи от списъка се изтриват.Напълни(Flag) Маркира всички елементи в списък със стойности.Индекс (Елемент) Получава индекса на елемента в списъка със стойности. Ако не се намери, -1 се връща.Count () Получава броя на елементите в списъка със стойности.FindByValue(LookupValue) Търси стойността на елемент в списък със стойности. Ако нито един елемент не съхранява стойност, равна на желаната, тогава стойността се връща Недефиниран. FindBy ID(ID) Получава списък със стойности по идентификатор. Ако елементът не бъде намерен, той се връща Недефиниран. Проверете елементите(Заглавие) Маркира или премахва (интерактивно) отметката от списъка със стойности. Се завръща Вярноако бутонът "OK" бъде натиснат в диалоговия прозорец, лъжа- в противен случай.Clear () Изчиства списъка със стойности, като премахва всички елементи от него.ShowSelectItem(DescriptionClose Alerts, Title, Element) Извиква прозорец за интерактивен избор на един от елементите, включени в списъка със стойности.ShowTelementsLabel(DescriptionClose Alerts, Title) Предназначен е за интерактивна настройка на състоянията на маркировките за елементите от списъка със стойности.Get (Index) Получава стойността в индекса. Работи по същия начин като оператора.Shift (елемент, отместване) Измества елемента от списъка със стойности напред или назад с посочения брой позиции.Copy () Създава копие на списъка със стойности.Сортиране по стойност(Посока) Сортира списъка със стойности във възходящ или низходящ ред на стойностите, съхранени от елементите. Вижте примера по-долу.Сортиране по изглед(Посока) Сортира списъка със стойности във възходящ или низходящ азбучен ред на представянията на елементите в списъка със стойности. Вижте примера по-долу.Премахване (Елемент) Премахва елемент от списъка със стойности, където елемент- индексът на елемента, който трябва да бъде премахнат, или самия елемент.

Конструктори:

Нов списък със стойности
& OnClient процедура ExecuteCode (команда) /// Как да създадете списък със стойности в 1c 8.3, 8.2Списък = Нов списък със стойности; /// Как да добавите елемент към списъка със стойности в 1s 8.3, 8.2 // добавяне на параметри на метода:// - значение // - производителност // - маркировка (по избор) // - снимка (по избор)Списък. Добавете (1980 г., // стойност на елемента "годината на раждане на Вася"// производителност ) ; Списък. Добавете (1985, "Година на раждане на Юлия") ; // Стойностите могат да бъдат от различни типовеСписък. Добавяне ("Полина", "Име на детето"); /// Как да вмъкнете елемент в списък със стойности в 1s 8.3, 8.2 // вмъкване на позиция #2 (елементите са номерирани от 0) // елемент със стойност 2010 и изглед // "Година на раждане на съвместната им дъщеря"Списък. Поставяне (2, 2010 г., „Година на раждане на съвместната им дъщеря“) ; /// Как да заобиколим елементи от списък със стойности в 1c 8.3, 8.2За всеки елемент от доклада за цикъла на списъка (Елемент. Представяне + ":" + Низ (Елемент. Стойност)); Край на цикъла; /// Как да изчистите списъка със стойности в 1s 8.3, 8.2Списък. Изчистване (); Списък. Добавяне ("понеделник"); Списък. Добавяне ("вторник"); Списък. Добавяне ("сряда"); /// Как да разберем и броя на елементите на списък със стойности /// получаваме елемента от списъка по неговия индекс в 1s 8.3, 8.2 // номериране от нулаЗа Индекс = 0 По списък. Количество () - 1 Отчет за цикъла (Списък [Индекс]); Край на цикъла; /// Как да намерим елемент от списъка по неговата стойност в 1c 8.3, 8.2 ValueTuesday = Списък. FindByValue ("вторник"); /// Как да разберем индекса на елемент в списък за 1s 8.3, 8.2Доклад (List. Index (SignificantTuesday)); // 1, тъй като номерирането е от нула /// Как да сортирам списъка по неговите стойности в 1c 8.3, 8.2 // беше: понеделник, вторник, срядаСписък. Сортиране по стойност (Посока на сортиране. Низходящо); // сега: сряда, понеделник, вторник /// Как да премахнете елемент от списък със стойности в 1c 8.3, 8.2 // премахване на първия елемент // параметър: елемент от списъка // или индекс на елемент// можете да направите този списък. Изтриване (Списък [0]); // или така // Списък Изтриване (0); /// Как да изместим елемент от списък със стойности за 1s 8.3, 8.2 // преместване на нулевия елемент напред с една позиция // беше: понеделник вторникСписък. Shift (0, 1); // стана: вторник понеделник /// Как да направите копие на списъка за 1s 8Копие на списъка = списък. Копие (); Цветове = Нов списък със стойности; Цветове. Добавяне ("Червено"); Цветове. Добавяне ("Зелено"); Цветове. Добавяне ("Синьо"); /// Как да разтоваря стойностите на списък в масив в 1c 8.3, 8.2Масив от цветове = Цветове. UnloadValues ​​(); /// Как да заредя списъчни стойности от масив в 1c 8.3, 8.2Цветове. LoadValues ​​(ArrayColors); Край на процедурата /// Как да направите безмоделна селекция на стойност от списък /// стойности в 1s 8.3, 8.2& OnClient Процедура Как да се направи немодална селекция на стойност (команда) цветове = Нов списък на стойности; Цветове. Добавяне ("Червено"); Цветове. Добавяне ("Зелено"); Цветове. Добавяне ("Синьо"); // процедурата AfterSelectionElement е дефинирана точно по-долу AlertAfterItemSelection = Ново описание на сигнала ( "След избор на артикул", Този обект); Цветове. ShowItemSelect (AlertAfterItemSelection, "Изберете любимия си цвят"); EndProcedure & OnClient Процедура AfterElementSelection (елемент, параметри) Експортиране, ако елемент<>Недефиниран Тогава отчет (Елемент. Стойност); EndIf; Край на процедурата /// Как да маркираме стойности от списък безмоделно /// стойности в 1s 8.3, 8.2& OnClient Процедура Как да направите не-ModalValuesClicker (команда) цветове = NewList; Цветове. Добавяне ("Червено"); Цветове. Добавяне ("Зелено"); Цветове. Добавяне ("Синьо"); // процедурата AfterSelectElements е дефинирана точно по-долу AlertAfterElementsClicker = Ново описание на сигнала ( "AfterCelementElements", Този обект); Цветове. ShowElementClick "Изберете любимите си цветове"); Цветове. FillRemarks (True); EndProcedure & OnClient Процедура след проверка на елементи (елементи, параметри) Експортиране на ако елементи<>Undefined Тогава за всеки цвят от елементи Loop If Color. Отметка След това отчет (Цвят. Стойност); EndIf; Край на цикъла; EndIf; Край на процедурата /// Как да направя модална селекция на стойност от списък в 1c 8.3, 8.2& OnClient Процедура Как даModalValueSelection (команда) Цветове = Нов списък със стойности; Цветове. Добавяне ("Червено"); Цветове. Добавяне ("Зелено"); Цветове. Добавяне ("Синьо"); Изберете Цвят = Цветове. Избери предмет ( "Изберете любимия си цвят"); Ако VybColor<>Undefined Тогава отчет (SelectColor. Value); EndIf; Край на процедурата /// Как да направите модална маркировка на стойности от списък /// стойности в 1s 8.3, 8.2& OnClient Процедура Как да направите ModalValuesList (команда) Colors = NewList ofValues; Цветове. Добавяне ("Червено"); Цветове. Добавяне ("Зелено"); Цветове. Добавяне ("Синьо"); Ако Цветове. Проверете елементите ( "Изберете любимите си цветове") След това за всеки цвят от Color Loop If Color. Отметка След това отчет (Цвят. Стойност); EndIf; Край на цикъла; EndIf; // но така можете да зададете всички знаци наведнъж // списък до конкретна стойностЦветове. FillRemarks (True); Край на процедурата /// Изтеглете и стартирайте тези примери на вашия компютър