Задайте типа стойност на списъка със стойности. Типово ограничение в списък със стойности

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

ListValues

Описание:

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

Колекция елементи: ValueListElement

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

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

Имоти:

Методи:

Вмъкване (индекс, стойност, представяне, етикет, изображение) Вмъква нов елемент в списъка със стойности на позицията на посочения индекс.SelectElement (Title, Element) Извиква прозорец за интерактивен избор на един от елементите, включени в списъка със стойности. елемент- елементът, към който първоначално трябва да бъде позициониран списъкът със стойности по време на интерактивен избор. Ако стойността на параметъра не е елемент от списък със стойности, който е включен в дадения списък, няма да се извърши позициониране.UnloadValues() Създава масив и копира стойностите на елементите от списъка със стойности в него.Добавяне (стойност, представяне, етикет, изображение) Добавя нов елемент в края на списъка със стойности.LoadValues(ArrayValues) Зарежда списък със стойности със стойностите от предадения масив. В този случай всички предишни елементи от списъка се изтриват.Попълнете Бележки(Маркиране) Поставя маркировка за всички елементи от списъка със стойности.Index(Element) Получава индекса на елемент в списък със стойности. Ако не бъде намерено, тогава се връща -1.Count() Получава броя на елементите в списъка със стойности.FindByValue(SearchValue) Търси стойността на елемент в списък със стойности. Ако никой елемент не съхранява стойност, равна на търсената стойност, тогава стойността се връща Недефиниран. Търсене по ID(Идентификатор) Извлича списъка със стойности елемент по идентификатор. Ако елементът не бъде намерен, той се връща Недефиниран. MarkItems(Заглавка) Задава или премахва отметките (интерактивно) на елементите в списъка със стойности. Се завръща Вярно, ако в диалоговия прозорец се натисне бутонът "ОК", Лъжа- в противен случай.Clear() Изчиства списъка със стойности, като премахва всички елементи от него.ShowElementSelection(DescriptionNotificationsOnClosing, Title, Element) Извиква прозорец за интерактивен избор на един от елементите, включени в списъка със стойности.ShowMark елементи(Описание на предупреждения за затваряне, заглавка) Предназначен за интерактивно задаване на състояния на маркировка за елементи от списъка със стойности.Get(Index) Извлича стойността по индекс. Работи подобно на оператора.Shift (Element, Offset) Премества елемент от списъка със стойности напред или назад с определен брой позиции.Copy() Създава копие на списък със стойности.Сортиране по стойност(Посока) Сортира списък със стойности във възходящ или низходящ ред на стойностите, съхранени от елементите. Вижте примера по-долу.SortByView(Посока) Сортира списъка със стойности във възходящ или низходящ ред по азбучен ред на представянията на елементите, включени в списъка със стойности. Вижте примера по-долу.Премахване (елемент) Премахва елемент от списък със стойности, където елемент- индекс на елемента за изтриване или самия елемент.

Дизайнери:

Нов списък със стойности
&На клиентска процедура ExecuteCode(команда) /// Как да създадете списък със стойности в 1s 8.3, 8.2Списък = Нов списък със стойности; /// Как да добавите елемент към списъка със стойности в 1s 8.3, 8.2 // добавяне на параметри на метода:// - значение // - производителност // - маркирайте (задължително) // - снимка (задължително)списък. Добавяне (1980, // стойност на елемента "Година на раждане на Вася"// производителност ) ; списък. Добавяне (1985, "Година на раждане на Юлия") ; // стойностите могат да бъдат от различни типовесписък. Add("Полина" , "Име на детето" ) ; /// Как да вмъкнете елемент в списък със стойности в 1s 8.3, 8.2 // вмъкнете в позиция № 2 (елементите са номерирани от 0) // елемент със стойност 2010 и представяне // "Годината, в която се роди общата им дъщеря"списък. Вмъкване (2, 2010 г., „Годината, в която се роди общата им дъщеря“) ; /// Как да заобиколите елементи от списъка със стойности в 1s 8.3, 8.2За всеки елемент от списъка Loop Report( Element. Representation + ": " + String(Element. Value) ) ; Краен цикъл; /// Как да изчистите списъка със стойности в 1s 8.3, 8.2списък. Clear() ; списък. Добавяне ("Понеделник"); списък. Добавяне ("вторник"); списък. Add("сряда"); /// Как да разберете броя на елементите на списък със стойности, както и /// вземете елемент от списък по неговия индекс в 1s 8.3, 8.2 // номериране от нулатаЗа индекс = 0 по списък. Quantity() - Отчет за 1 цикъл (Списък[Индекс]); Краен цикъл; /// Как да намерим елемент от списък по неговата стойност в 1s 8.3, 8.2 ValueTuesday = Списък. FindByValue("вторник"); /// Как да разберете индекса на елемент в списък в 1s 8.3, 8.2Доклад(List.Index(ValueTuesday)); // 1, тъй като номерирането започва от нула /// Как да сортирате списък по неговите стойности в 1s 8.3, 8.2 // беше: понеделник, вторник, срядасписък. SortByValue(SortDirection.Descending) ; // стана: сряда, понеделник, вторник /// Как да премахнете елемент от списък със стойности в 1s 8.3, 8.2 // премахване на първия елемент // параметър: елемент от списък // или индекс на елемент// можете да направите този списък. Изтрий(Списък[ 0 ]); // или нещо такова // List.Delete(0); /// Как да преместите елемент от списък със стойности в 1s 8.3, 8.2 // преместване на нулевия елемент една позиция напред // беше: понеделник вторниксписък. Преместване (0, 1); // стана: вторник понеделник /// Как да направите копие на списък в 1s 8 ListCopy = Списък. Копие() ; Цветове = NewValueList; Цветове. Add("Red" ); Цветове. Добавяне ("Зелено" ); Цветове. Add("Blue"); /// Как да кача списък със стойности в масив в 1s 8.3, 8.2 ArrayColors = Цветове. UnloadValues() ; /// Как да заредите стойности на списък от масив в 1s 8.3, 8.2Цветове. LoadValues(ArrayColors) ; Край на процедурата /// Как да направите безмоден избор на стойност от списък /// стойности в 1s 8.3, 8.2&На процедурата на клиента Как да направите избор на немодална стойност (команда) Цветове = Нов списък със стойности; Цветове. Add("Red" ); Цветове. Добавяне ("Зелено" ); Цветове. Add("Blue"); // процедура AfterSelectingElement е дефинирана точно по-долу AlertAfterElementSelection = New DescriptionAlerts( "AfterElementSelection", Този обект ); Цветове. ShowElementSelection( NotificationAfterElementSelection, „Избери любимия си цвят“) ; Край на процедура &На клиентска процедура След избор на елемент (елемент, параметри) Експортиране на елемент<>Undefined Then Report(Element.Value) ; EndIf ; Край на процедурата /// Как да направите безмоделно маркиране на стойности от списък /// стойности в 1s 8.3, 8.2&На процедурата на клиента Как да направите немодално маркиране на стойности (команда) Цветове = нов списък със стойности; Цветове. Add("Red" ); Цветове. Добавяне ("Зелено" ); Цветове. Add("Blue"); // процедурата AfterMarkingElements е дефинирана точно по-долу AlertAfterMarkingItems = Ново описание Alerts( „След маркиране на елементи“, Този обект ); Цветове. ShowTagItems( AlertAfterTagItems, „Изберете любимите си цветове“) ; Цветове. FillNotes(True) ; Край на процедура &На клиентска процедура след маркиране на елементи (елементи, параметри) Експортиране на елементи<>Undefined След това за всеки цвят от елементи Цикъл, ако цвят. Маркирайте след това Доклад(Цвят.Стойност) ; EndIf ; Краен цикъл; EndIf ; Край на процедурата /// Как да направите модален избор на стойност от списък в 1s 8.3, 8.2&На процедурата на клиента Как да направите ModalValueSelection(Command) Colors = New ValueList; Цветове. Add("Red" ); Цветове. Добавяне ("Зелено" ); Цветове. Add("Blue"); SelectColor = Цветове. Избери предмет( „Избери любимия си цвят“) ; Ако SelectColor<>Undefined Then Report(SelectColor.Value) ; EndIf ; Край на процедурата /// Как да маркирате модално стойности от списък /// стойности в 1s 8.3, 8.2&На процедурата на клиента Как да направите модална маркировка на стойности (команда) Цветове = Нов списък със стойности; Цветове. Add("Red" ); Цветове. Добавяне ("Зелено" ); Цветове. Add("Blue"); Ако Цветове. MarkItems( „Изберете любимите си цветове“) След това за всеки цвят от цветен цикъл, ако цвят. Маркирайте след това Доклад(Цвят.Стойност) ; EndIf ; Краен цикъл; EndIf ; // така можете да зададете всички знаци наведнъж // списък до определена стойностЦветове. FillNotes(True) ; Край на процедурата /// Изтеглете и стартирайте тези примери на вашия компютър

ГЛАВА 10. СПИСЪК НА СТОЙНОСТИТЕ НА ЕЗИК 1C (В ПРИМЕРИ)

Описание:

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

Колекция елементи: ValueListElement

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

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

Имоти:

Налични стойности

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

Задаването на това свойство засяга работата на диалоговия прозорец за редактиране на списъка със стойности, контролите „Таблица“ и „Поле за въвеждане“, свързани със списъка със стойности, както и програмното добавяне и вмъкване на нов елемент от списъка със стойности ​​и задаване на стойности за елементи от списъка.

TypeValue

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

вмъкване(,)

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

Избери предмет(,)

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

UnloadValues()

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

Add(,) Добавя нов елемент в края на списъка със стойности.

LoadValues()

Зарежда списък със стойности със стойностите от предадения масив. В този случай всички предишни елементи от списъка се изтриват.

FillNotes()

Задава знак за всички елементи от списъка със стойности. Индекс(Елемент>)

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

Количество()

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

FindByValue()

Търси стойността на елемент в списък със стойности. Ако никой елемент не съхранява стойност, равна на търсената стойност, тогава стойността се връща Недефиниран.

FindByIdentifier()

Получава списъка със стойности на елемента по id. Ако елементът не бъде намерен, той се връща Недефиниран.

MarkItems()

Задава или премахва отметките (интерактивно) на елементи в списък със стойности. Се завръща Вярно, ако в диалоговия прозорец се натисне бутонът "ОК", Лъжа- в противен случай.

Изчисти()

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

ShowElementSelection(,)

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

Показване на елементи (,)

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

Вземи()

Получава стойността по индекс. Работи подобно на оператора);

EndCycle;

IIIКак да намерите елемент от списъка по неговата стойност в 1C

ValueTuesday = List.FindByValue("Вторник");

IIIКак да разберете индекса на елемент в списък в 1C

Доклад(Списък.Индекс(СтойностВторник));

// 1, от номерирането от нулата

IIIКак да сортирате списък по неговите стойности в 1C

List.SortByValue

(Посока на сортиране. Низходящо);

IIIКак да премахнете елемент от списък със стойности в 1C

// премахване на първия елемент от списъка. Изтриване (списък);

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

IIIКак да преместите елемент от списък със стойности в 1C

// изместване на първия елемент една позиция напред List.Shift(0, 1);

IIIКак да направите копие на списък в 1C

ListCopy = List.Copy);

Цветове = NewValueList();

Цветове. Добавяне ("Червено");

Цветове. Добавяне ("Зелено");

Цветове. Добавяне ("Синьо");

IIIКак да изхвърлите стойностите на списъка в масив в 1C

ArrayColors = Цветове. UnloadValues();

IIIКак да заредите списъчни стойности от масив в 1C

Colors.LoadValues(ColorsArray);

IIIКак да направите модален избор на стойност от списък в 1C

Изберете Цвят =

Colors.SelectItem("Изберете любимия си цвят"); Ако SelectColor е недефиниран, тогава Report(SelectColor.Value);

endIf;

IIIКак да направите модална маркировка на стойности от списък в 1C

Ако Colors.MarkElements("Изберете любимите си цветове") Тогава

За всеки цвят от цветен цикъл Ако цвят. Маркирайте след това отчет (Цвят. Стойност);

endIf;

EndCycle;

endIf;

// можете да зададете всички знаци наведнъж на конкретна стойност на цвят. FillNotes(True);

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

За тази цел атрибут на формуляр с тип „Списък със стойности“ има свойството „Тип стойност“. Ако обаче искаме да покажем във формуляр таблица (или поле), свързана с атрибут на обект (не формуляр), такова свойство няма да се появи в палитрата със свойства. Какво да правя?

Нека разгледаме пример, в който искаме да покажем стойността на избора на опция за отчет във формуляр. Ще имаме един елемент за избор с тип сравнение „В списъка“, така че показването на избор на стандартен състав на данни във формуляра е непрактично. За целта ще създадем нов атрибут на отчета с тип „Списък със стойности“, чрез който ще управляваме стойността за избор на оформление. Но атрибутът на отчета няма свойството "Тип стойност".

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

Имате въпрос или нужда от помощ от консултант?

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

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

ThisForm.SelectionValue = SelectionElement.RightValue;

по аналогия с

Report.SelectionValue = SelectionElement.RightValue;

това няма да даде необходимия ефект, защото... в този случай се копира целият списък с всички свойства, включително свойството „Value Type“, което не е попълнено за Selection Element.RightValue. Така зададеният от нас тип стойност ще бъде нулиран.