Iterando sobre uma lista de valores 1s 8.2.

Lar / Sistemas operacionais

Sintaxe completa (clique para expandir)

ListarValores

Descrição:

Uma lista de valores é um objeto que não é salvo no banco de dados, que permite construir conjuntos dinâmicos de valores para resolver problemas de interface e manipulá-los (adicionar, editar, excluir elementos, classificar). Pode ser preenchido com valores de qualquer tipo, ou seja, Em uma lista, os tipos de valores armazenados podem ser diferentes. Um exemplo de utilização deste objeto é organizar a seleção de um documento específico a partir de uma lista de possíveis documentos gerados por meio de um algoritmo complexo.

Itens de coleção: ElementoListaValor

É possível que um objeto ignore a coleção usando o operador Para cada... De... Ciclo. O percurso seleciona os elementos da coleção.

É possível acessar um elemento da coleção utilizando o operador [...]. O índice do elemento é passado como argumento ( numeração de 0).

Propriedades:

Métodos:

Inserir (Índice, Valor, Representação, Rótulo, Imagem) Insere um novo elemento na lista de valores na posição do índice especificado.SelectElement (Header, Element) Abre uma janela para selecionar interativamente um dos elementos incluídos na lista de valores. Elemento- o elemento no qual a lista de valores deve ser posicionada inicialmente durante a seleção interativa. Se o valor do parâmetro não for um elemento da lista de valores incluído na lista fornecida, nenhum posicionamento ocorrerá.Descarregar Valores()Cria um array e copia nele os valores da lista de elementos de valores.Add(Value, Representation, Label, Image)Adiciona um novo elemento ao final da lista de valores.Carregar Valores(ArrayValues)Carrega uma lista de valores com os valores do array passado. Neste caso, todos os elementos anteriores da lista são excluídos.Preencha notas(Mark) Define uma marca para todos os elementos da lista de valores.Index(Element)Obtém o índice de um elemento em uma lista de valores. Se não for encontrado, -1 será retornado.Count() Obtém o número de elementos na lista de valores.EncontrarPorValor(SearchValue) Pesquisa o valor de um elemento em uma lista de valores. Se nenhum elemento armazenar um valor igual ao valor de pesquisa, então o valor será retornado Indefinido. Encontrar por ID(Identificador) Recupera a lista de valores elemento por identificador. Se o elemento não for encontrado, ele será retornado Indefinido. Marcar itens(Cabeçalho) Define ou desmarca (interativamente) os itens na lista de valores. Devoluções Verdadeiro, se o botão "OK" for pressionado na caixa de diálogo, Mentira- de outra forma.Clear() Limpa a lista de valores, removendo todos os elementos dela.ShowElementSelection(DescriptionNotificationsOnClosing, Title, Element) Chama uma janela para selecionar interativamente um dos elementos incluídos na lista de valores.Mostrar itens do Mark(Descrição dos Alertas de Fechamento, Título) Projetado para definir interativamente estados de marcação para elementos da lista de valores.Get(Index)Recupera o valor por índice. Funciona de forma semelhante ao operador.Shift (Element, Offset) Desloca um elemento da lista de valores para frente ou para trás em um número especificado de posições.Copy() Cria uma cópia de uma lista de valores.Classificar por valor(Direção) Classifica uma lista de valores em ordem crescente ou decrescente dos valores armazenados pelos elementos. Veja o exemplo abaixo.Classificar por visualização(Direção) Ordena a lista de valores em ordem crescente ou decrescente em ordem alfabética das representações dos elementos incluídos na lista de valores. Veja o exemplo abaixo.Remover (Elemento) Remove um elemento de uma lista de valores, onde Elemento- índice do elemento a ser excluído ou do próprio elemento.

Designers:

Nova lista de valores
Procedimento &OnClient ExecuteCode(Comando) /// Como criar uma lista de valores em 1s 8.3, 8.2 Lista = Nova Lista de Valores; /// Como adicionar um elemento à lista de valores em 1s 8.3, 8.2 //adiciona parâmetros do método:// - significado // - desempenho // - marca (obrigatório) // - imagem (obrigatório) Lista. Adicionar (1980, //valor do elemento "O ano do nascimento de Vasya"// desempenho ) ; Lista. Adicionar(1985, "O ano do nascimento de Yulia") ; // os valores podem ser de tipos diferentes Lista. Add("Polina", "Nome da criança"); /// Como inserir um elemento em uma lista de valores em 1s 8.3, 8.2 //inserir na posição nº 2 (os elementos são numerados a partir de 0) // elemento com valor 2010 e representação // "O ano em que sua filha conjunta nasceu" Lista. Inserir(2, 2010, "O ano em que sua filha conjunta nasceu") ; /// Como ignorar elementos da lista de valores em 1s 8.3, 8.2 Para cada elemento da lista Loop Report( Element. Representation + ": " + String (Element. Value) ); Fim do Ciclo;/// Como limpar a lista de valores em 1s 8.3, 8.2 Lista. Claro() ; Lista. Adicionar("Segunda-feira"); Lista. Adicionar("Terça-feira"); //numeração do zero Para índice = 0 por lista. Quantidade() - Relatório de 1 Ciclo(Lista[Índice]) ; Fim do Ciclo;/// Como encontrar um elemento da lista pelo seu valor em 1s 8.3, 8.2 ValorTerça-feira = Lista. FindByValue("Terça-feira");/// Como descobrir o índice de um elemento em uma lista em 1s 8.3, 8.2 Relatório(Lista.Índice(ValorTerça-feira) ); // 1, já que a numeração começa do zero /// Como ordenar uma lista por seus valores em 1s 8.3, 8.2// era: segunda, terça, quarta Lista. SortByValue(SortDirection.Descendente); // tornou-se: quarta, segunda, terça /// Como remover um elemento de uma lista de valores em 1s 8.3, 8.2 //remove o primeiro elemento //parâmetro: elemento da lista// ou índice do elemento // você pode fazer esta lista. Excluir(Lista[0]); // ou algo assim //List.Delete(0); /// Como deslocar um elemento de uma lista de valores em 1s 8.3, 8.2// move o elemento zero para frente uma posição // era: segunda-feira terça-feira Lista. Mover(0, 1);// tornou-se: terça-feira segunda-feira /// Como fazer uma cópia de uma lista em 1s 8 ListCopy = Lista. Copiar(); Cores = NovaListaValores; Cores. Adicionar("Vermelho"); Cores. Adicionar("Verde"); Cores. Adicionar("Azul");/// Como fazer upload de valores de lista em um array em 1s 8.3, 8.2 ArrayColors = Cores. DescarregarValores() ;/// Como carregar valores de lista de um array em 1s 8.3, 8.2 Cores. LoadValues(ArrayColors) ; Fim do procedimento /// Como fazer uma seleção sem janela restrita de um valor de uma lista/// valores em 1s 8,3, 8,2<>&No procedimento do cliente Como fazer uma seleção de valor não modal (comando) Colors = New ValueList; Cores. Adicionar("Vermelho"); Cores. Adicionar("Azul"); Cores. Adicionar("Verde"); Cores. Adicionar("Azul");// o procedimento AfterSelectingElement é definido logo abaixo AlertAfterElementSelection = Nova DescriçãoAlerts(, EsteObjeto); Cores. ShowTagItems( AlertAfterTagItems,"Escolha suas cores favoritas"<>) ; Cores. PreencherNotas(Verdadeiro); Fim do procedimento e no procedimento do cliente após marcar os elementos (elementos, parâmetros) Exportar se elementos /// Como fazer uma seleção sem janela restrita de um valor de uma lista Indefinido então para cada cor dos elementos, ciclo se cor. Marcar então relatório(Color.Value);<>EndIf ; Fim do Ciclo; Cores. Adicionar("Azul"); EndIf ; Cores. ShowTagItems( AlertAfterTagItems, Fim do procedimento /// Como fazer uma seleção modal de um valor de uma lista em 1s 8.3, 8.2 &No procedimento do cliente Como fazer um ModalValueSelection(Command) Colors = New ValueList; Cores. Adicionar("Vermelho"); Cores. Adicionar("Verde");

Cores. Adicionar("Azul");

SelectColor = Cores. SelecioneItem(

  • ) ;
  • Se SelecionarCor
  • Indefinido Então Report(SelectColor.Value);
  • EndIf ;
  • Fim do procedimento
  • /// Como marcar modalmente valores de uma lista
  • &No Procedimento do Cliente Como Fazer Marcação Modal de Valores (Comando) Cores = Nova Lista de Valores;
  • Cores. Adicionar("Vermelho");

Cores. Adicionar("Verde");

Cores. Adicionar("Azul");

Se Cores. Marcar Itens(

Uma coleção de valores é um contêiner que geralmente pode conter qualquer número de elementos. No entanto, muitas vezes não há restrições estritas quanto ao tipo de dados.

Você pode adicionar valores a uma coleção genérica. Todos os valores da coleção podem ser percorridos. Essas coleções são utilizadas principalmente para algum tipo de processamento em algoritmos. Aqueles. Estas são algumas estruturas dinâmicas que existem enquanto o algoritmo está em execução.

É importante entender que as coleções não são armazenadas em um banco de dados (não estamos falando do tipo de dados Value Store, que pode armazenar quase qualquer tipo de dados).

Existem diferentes tipos de coleções universais: Array, Structure, Match, Fixed Array, Value Table, Table Part, etc. Mas todas as coleções têm comportamento semelhante.

Uma coleção pode ser criada como resultado da operação de uma função (a função retorna uma coleção universal como valor).

Você pode obter uma nova coleção manualmente chamando o construtor e criando uma instância da classe.

Por exemplo: OurArray = Nova Matriz;

Os construtores de muitas coleções genéricas são parametrizados.

Então, no construtor para Você pode especificar o número de membros nas dimensões correspondentes. Aqueles. você pode declarar imediatamente multidimensional .

A descrição correspondente do construtor está no assistente de sintaxe.

Assim, usando parâmetros do construtor, você pode definir imediatamente o comportamento desejado de um determinado objeto.

Mas os parâmetros são opcionais; o desenvolvedor não pode defini-los e definir ainda mais o comportamento do Array como achar melhor.

Quase qualquer coleção universal pode ser criada usando um construtor (a exceção são as partes da tabela, que atuam como objetos de configuração).

Para coleções universais, existem conceitos comuns como índice e número. Cada elemento da coleção possui um índice. Neste caso, o índice começa do zero.

Para acessar um elemento NossoArray, você pode usar o acesso ao índice; para isso, o índice é indicado entre colchetes.

Por exemplo, NossoArray. Observe que neste caso o sistema retorna o elemento Array com índice 3, e na ordem este é o quarto elemento do Array.

Para algumas coleções existe também o conceito de número de linha. O número da linha começa com um. Por exemplo, para a parte tabular existe uma propriedade como número da linha. É importante ter em mente que se soubermos o número da linha e quisermos acessar por índice, então o valor um a menos que o número da linha deverá ser usado como índice.

O conceito de número de linha não existe em todas as coleções, mas principalmente naquelas que podem ser exibidas na interface do usuário.

Todas as coleções usam travessia de elementos de coleção. O bypass é possível de duas maneiras: ciclo para E ciclo Para cada um.

Os métodos que se aplicam à maioria das coleções genéricas são Count, Index, Add, Insert, Delete e Find.

Count é uma função que retorna o número de elementos em uma coleção. Pode ser usado antes de um ciclo Para, conforme mostrado na figura.

O método Index não existe para todas as coleções, mas apenas para aquelas cujos elementos podem ser referenciados. Um exemplo é Tabela de Valores.

Tabela de Valores– esta é uma coleção específica de linhas que podem conter diferentes colunas com diferentes tipos de valores;

Cada linha representa uma entidade independente. Você pode obter um link para ele; através desta linha você pode acessar os valores das colunas nesta linha.

O método Index permite determinar qual índice corresponde a uma determinada linha (ou seja, a posição atual da linha na tabela). Os valores do índice começam em zero.

Quase qualquer coleção universal possui métodos para adicionar novos valores a uma determinada coleção. A figura mostra como preencher um Array com valores de 0 a 10 de duas maneiras.

Para adicionar um elemento ao Array podemos usar o método Adicionar, indique o valor a ser adicionado entre colchetes. Neste caso, o valor será adicionado ao final da lista, ou seja, A matriz aumentará constantemente devido à última posição.

Outro método que permite adicionar valores a uma coleção é o Inserir. É diferente do método Adicionar nisso você pode especificar onde inserir o elemento adicionado.

Sintaxe: Inserir (,)

O primeiro parâmetro especifica o índice no qual o novo valor será inserido. Aqueles. por exemplo, podemos especificar que cada valor deve ser inserido no início da lista (segundo método da figura acima).

Para remover elementos de uma coleção, use o método Excluir. O método Delete especifica por índice qual elemento iremos deletar.

Sintaxe: Excluir()
Exemplo de uso: OurArray.Delete(5);

Deve-se notar que para aquelas coleções onde strings representam uma entidade independente (por exemplo, para Tabelas de Valores), também podemos usar o método de obtenção do índice para posteriormente excluir esta linha.

Quase todas as coleções possuem um método para procurar um valor - Encontrar. O valor que queremos encontrar é passado para o método. Algumas coleções permitem definir algumas restrições.

Por exemplo, em Tabela de valores Você pode especificar as linhas e colunas nas quais deseja pesquisar.

Se o valor for encontrado, este método retornará o índice ou a string especificada. Se o valor não for encontrado, um valor do tipo será retornado Indefinido. Em relação a um Array, retorna Índice ou valor Indefinido.

Exemplo de uso: NossaVariável = NossoArray.Find(8);

As coleções universais podem ser apagadas muito rapidamente, ou seja, remova absolutamente todos os elementos. Para isso é utilizado o método Claro(), que remove elementos do Array, linhas Tabelas de Valores ou dados de outras coleções.

Métodos adicionais para Array

Método BBordem() retorna o número de elementos menos um. Aqueles. se usarmos um loop Para, então, em vez do método Quantidade, podemos usar imediatamente o método Fronteira().

Em particular, a variável QuantidadeInArray poderia ser definida de forma diferente:

QuantidadeInArray = OurArray.InBorder();
Então, ao descrever o ciclo em si, não se deve subtrair desta variável.

O método Set permite atribuir um valor a um elemento Array por índice.

Sintaxe: Instalar(,)

Exemplo: NossoArray.Set(2,8);

Alternativa: NossoArray = 8;

Você pode usar o método para um Array Pegar, para ler um valor em um índice sem recorrer ao uso de colchetes.

Sintaxe: Pegar()

Exemplo: NossaVariável = NossoArray.Get(2);

Alternativa: NossaVariável = NossoArray;

Estrutura da coleção universal

Uma Estrutura, como um Array, pode ter um número ilimitado de elementos, mas o conteúdo do elemento difere do Array.

A estrutura é uma coleção, cada valor consiste em um par. O primeiro elemento do par é chamado Chave. O segundo elemento do par é Significado.

Chaveé um tipo de dados estritamente string que descreve um valor. Por exemplo, Para a chave“Código” pode corresponder ao valor 113; Para a chave“Nome” que significa “Vasya”. O valor em si não está sujeito a restrição de tipo de dados.

A estrutura é muito conveniente de usar se quisermos criar uma determinada lista de parâmetros. Se isso Estrutura chamado NossaEstrutura, então nos referiremos aos seus dois valores da seguinte forma: OurStructure.Code e OurStructure.Name.

Este tipo de acesso é muito mais conveniente do que se definissemos todos os parâmetros em um Array e os acessássemos por índice.

A estrutura torna o código do programa legível (compreensível). A estrutura é usada com bastante frequência, com muito mais frequência que o Array.

É usado para descrever certos parâmetros, dos quais geralmente existe um grande número em todos os algoritmos.

Além disso, a Estrutura é usada se o procedimento e a função contiverem um grande número de parâmetros passados.

Então é muito mais conveniente escrever todos os parâmetros na Estrutura e passá-los adiante. Aqueles. os parâmetros de procedimentos e funções são “empacotados”.

Separadamente, deve-se notar que, como Chave Absolutamente nenhuma linha pode aparecer na Estrutura. Certas restrições se aplicam.

Chave deve funcionar como um identificador. Isto significa que em Klyuche não deve haver espaços e não pode começar com um número.

Início aceitável Chave com uma letra ou sublinhado. Por isso, Chave deve satisfazer os requisitos para a criação de identificadores.

Observemos de que outra forma uma Estrutura difere de um Array. Existe um método na Estrutura Inserir, existem dois métodos para inserção no Array: Inserir(para uma determinada posição) e Adicionar(até o final da lista). Em um Array, todos os elementos estão ordenados.

A estrutura é uma espécie de conjunto desordenado. É por isso que existe apenas um método de inserção para uma Estrutura.

O valor não é inserido em uma posição específica, mas no conjunto especificado. Uma estrutura não pode ser acessada por índice, como outras coleções genéricas.

Os elementos da estrutura são acessados ​​apenas pelo nome da chave. No entanto, o loop For Each também funciona para a Estrutura, mas você não deve confiar na ordem dos elementos da Estrutura.

Uma estrutura é criada da mesma forma que outras coleções genéricas usando o construtor New, especificando o tipo de dados Estrutura.

Assim como um Array, o construtor de uma Estrutura pode ter parâmetros. Aqueles. é possível descrever o próprio conteúdo de uma Estrutura usando um construtor.

Ao contrário de um Array, onde você pode simplesmente especificar o número de elementos para todas as dimensões, em uma Estrutura você pode especificar o próprio conteúdo.

Por exemplo: OurStructure = Nova Estrutura (“Código, Nome”, 133, “Vasya”);

Separados por vírgulas, primeiro são listados os nomes das Chaves e, a seguir, na mesma sequência, os valores dos parâmetros.

Existe um método para adicionar um novo valor à Estrutura Inserir, que insere um novo par (chave e valor).

Por exemplo: OurStructure.Insert(“Membros da Família”,3);

A Estrutura é caracterizada por outro método usado com bastante frequência. Este é o método Propriedade.

Usando este método, você pode entender se existe um elemento nesta Estrutura cuja Chave tem tal ou tal nome.

Se tal elemento existir, o sistema retornará o valor True, caso contrário – False.

Por exemplo, a expressão OurStructure.Property (“Membros da Família”) será igual ao valor True. Este método é usado com bastante frequência na análise da Estrutura.

Como acontece com qualquer coleção universal, é possível acessar as propriedades de uma Estrutura por índice. Mas o índice da Estrutura é um valor de string.

Por exemplo: Relatório(NossaEstrutura[“Membros da Família”]);

Porém, não devemos esquecer que a Estrutura não é um conjunto ordenado de objetos, por isso o acesso pelo índice 0, 1, 2 é inaceitável.

Coleção genérica Lista de valores

ListarValoresé uma lista linear de elementos de qualquer tipo de dados.

Cada elemento consiste em vários valores. Esquematicamente, uma lista de valores pode ser representada como uma lista com quatro colunas.

Primeira coluna - Marca. Possui um tipo de dados booleano e permite ao usuário marcar ou desmarcar caixas.

A outra coluna é uma imagem que pode de alguma forma representar visualmente este elemento, ou seja, combine esta string com uma imagem.

A terceira coluna é o próprio valor armazenado, ou seja, trata-se de qualquer tipo de dado e pode ser diferente em linhas diferentes.

A quarta coluna é a apresentação, ou seja, este é um tipo de descrição de string de um determinado valor. A visualização será exibida ao usuário quando ele visualizar este elemento. Neste caso, se a representação não for especificada, o sistema tentará obter representações para o elemento contido nesta posição.

ListarValores– este é o objeto com o qual o usuário pode trabalhar visualmente. Aqueles. ListarValores pode ser exibido no formulário.

O usuário pode realizar algumas ações com ele. Além disso, ListarValores pode ser inferido independentemente usando métodos, ou seja, mostrar na tela em algum ramo do algoritmo (com exceção do código do servidor) para que o usuário selecione alguma linha ou marque algumas caixas.

Nós vamos encontrar ListarValores no assistente sitax. Construtor ListarValores não parametrizado (você não pode definir nenhum valor padrão).

Existem métodos como:

  • Inserir(,) ;
  • Adicionar(,);
  • Quantidade();
  • Índice().

Existem também métodos especiais, por exemplo, DescarregarValores(). Isso cria um Array no qual a lista de valores é copiada. Por exemplo:

Matriz de Elementos = Lista de PriceTypes.OutloadValues();

Também existe um método inverso:
ListPriceTypes.LoadValues(ArrayItems);

Existem métodos de pesquisa:
FindByValue(); FindByIdentifier().

Existe um método de cópia:
ListCopy = PriceTypeList.Copy();
Este método tem como objetivo fazer algum tipo de modificação na cópia.

Existem métodos:
SortByValue();
SortByView().

Métodos SelecioneItem(,) E Marcar Itens() chama uma caixa de diálogo modal que interrompe a execução do algoritmo até que o usuário feche a janela.

Para usar esses métodos nas propriedades de configuração Modo de usar a modalidade deve ser definido para Usar.

Código de exemplo chamado de um módulo de aplicativo gerenciado:

Exiba este código no modo de usuário (caixa de diálogo modal).

Abaixo ListarValores usado como um tipo de dados disponível para atributos de formulário. Criamos um novo atributo para o formulário de processamento e definimos seu tipo ListarValores e exibi-lo no formulário.

Criando uma nova equipe Preencha presentes, transfira-o para o formulário e defina um manipulador de ação para ele.

No modo de usuário, ao clicar no botão Preencher presentes no formulário de processamento, uma lista completa aparecerá.

Se desejar, a lista pode ser editada: alguns elementos podem ser adicionados, outros podem ser removidos.

Conformidade versátil de coleta

Esta coleção é muito parecida com Estrutura. Assim como a Estrutura, a Correspondência representa conjuntos de valores que consistem em uma chave e no próprio valor.

A principal diferença é que qualquer tipo de dados pode ser especificado como chave, bem como como valor. Diante desta característica, é necessário acessar o valor da correspondência por índice; o valor da chave é indicado como valor do índice.

A chave pode ser um tipo de dados diferente de uma string. As propriedades e métodos de trabalho com Conformidade são quase os mesmos da Estrutura.

O Construtor de Conformidade, diferentemente da Estrutura, não contém a capacidade de especificar parâmetros.

Exemplo de uso:

A correspondência é conveniente para usar quando você precisa conectar duas estruturas quaisquer. Por exemplo, cada linha da parte tabular deve corresponder a uma linha da tabela de valores.
Neste caso, a linha da seção da tabela é usada como chave Match e o valor correspondente é indicado.

Ao inserir elementos em uma coleção Match além do método Inserir(,) Outra forma de inserir um valor é usar o operador de atribuição regular.

Por exemplo: OurMatch = NewMatch;
Correspondência = 999;

Aqueles. se um elemento não estiver presente na coleção, ele será adicionado usando o operador de atribuição e, se estiver presente, será atualizado.

Isso contrasta com a Estrutura.

Tabela de Valores da Coleção Universal

Tabela de Valoresé uma tabela com um número arbitrário de linhas e um número arbitrário de colunas. A interseção pode armazenar valores de qualquer tipo de dados. Se necessário, colunas podem ser digitadas, ou seja, você pode determinar em qual coluna qual tipo de dado está armazenado.

Você pode deixar as colunas sem tipo e, em seguida, valores de tipos diferentes podem ser armazenados em uma coluna em linhas diferentes.

Diferenças Tabelas de Valores de uma matriz bidimensional:

  • este é um objeto com o qual o usuário pode trabalhar (a tabela de valores pode ser exibida na tela, o usuário pode preenchê-la e os dados inseridos podem ser lidos);
  • construção de índices para busca rápida;
  • clonagem, preenchimento de uma coluna inteira com um determinado valor, descarregamento de todas as colunas em um array.

Tabela de Valores usado como uma espécie de buffer de armazenamento de informações. Tabela de Valoresé retornado e aceito como parâmetro por muitos métodos do sistema. É possível construir uma consulta na Tabela de Valores.

Então, Tabela de Valores consiste em um conjunto de linhas e um conjunto de colunas. Tanto as linhas quanto as colunas são coleções.

Aqueles. dentro da coleção Tabela de Valores existem mais duas coleções. Vamos voltar para o assistente de sintaxe e encontrar Tabela de Valores.

Tipos de dados suportados: ele próprio Tabela de Valores, que consiste em strings. Cada linha é representada por um tipo de dados Valores da tabela de linhas, que possui suas próprias propriedades e seus próprios métodos. Disponível Coleção de Valores de Colunas de Tabela também tem certas propriedades.

Ponto importante! O procedimento que cria Tabela de Valores, deve compilar &OnServer.

Antes de começar a trabalhar com Tabela de Valores, você precisa determinar quais colunas ele conterá (ou seja, criá-las). Sintaxe:

Adicionar(,)
(opcional)
Tipo: String.
(opcional)
Tipo: DescriçãoTipos
(opcional)
Tipo: String.
(opcional)
Tipo: Número.

Por exemplo:

Para chamar este procedimento usaremos o comando.

Na descrição Tabelas de Valores os elementos da coleção são precisamente LinhasTabelaValores.

Ao contrário das colunas, que consistem apenas em propriedades (Nome, Tipo, Título, Largura), em Valores da tabela de linhas existem propriedades (acesso por nome de coluna) e métodos (você pode obter e definir o valor, trabalhar com proprietários).

Para adicionar uma nova linha à tabela você precisa usar o método Adicionar(), ou Inserir(). No segundo caso, você deve indicar em que posição a linha desejada deve ser colocada.

Para atribuir um valor a uma coluna, usamos um ponto para acessar o nome da coluna ou índice (usando colchetes).

Para preencher Tabelas de Valores Os seguintes métodos podem ser usados:

Claro()– para remover todas as linhas de Tabelas de Valores.

PreencherValores(,)– permite preencher todas as colunas ou colunas selecionadas com um valor.
CarregarColuna(,)– carrega uma coluna do array.
DescarregarColuna()– descarrega a coluna em um array.

Os dois últimos métodos são convenientes para usar quando você precisa transferir uma coluna de uma tabela de valores para outra.

Cópia(,)– permite criar uma nova com base em uma tabela existente Tabela de Valores, e nem todas as linhas e todas as colunas, mas apenas algumas delas. Valor de retorno – Tabela de Valores.

Você pode copiar a estrutura Tabelas de Valores. Existe um método correspondente para isso CopiarColunas(). Vamos pegar um vazio Tabela de Valores com a estrutura necessária.

EM Tabela de valores existe um método Total(). Você pode especificar a coluna na qual deseja somar os valores numéricos. Em relação ao código mostrado anteriormente no Tableau, você pode calcular o valor: TZ.Total (“Valor”).

EM Tabela de valoresé possível agrupar (recolher) valores numéricos por valores idênticos de determinadas colunas usando o método Colapso(,).

Em relação ao código mostrado anteriormente no Tableau, você pode calcular o valor: TK.Collapse(“Dia da semana”, “Valor”).

Tabela de Valores pode ser mostrado na tela do usuário para que você possa realizar qualquer ação com ele. Mas ao contrário ListarValores Você não pode simplesmente acessar uma tabela na tela a partir do código do programa.

Para exibir Tabela de Valores na tela, crie um atributo de formulário e atribua um tipo de dados a ele Tabela de Valores.

Depois disso, a tabela resultante deverá ser exibida no formulário.

No módulo de formulário ao final do algoritmo compilado anteriormente (no Procedimento para Criação de uma Tabela de Valores), você deve adicionar:
ValueInFormData(TK, Tabela);

Coleção universal Árvore de valores

uma coleção universal que é muito semelhante a Tabela de Valores. A diferença de uma tabela é que as linhas da árvore podem ser subordinadas umas às outras, ou seja, algum tipo de hierarquia pode ser formada.

Isso também pode ser refletido na tela. Uma árvore de valores consiste explicitamente em uma coleção de linhas e uma coleção de colunas. Existem duas propriedades na árvore: Linhas e Colunas.

Como as linhas podem ser subordinadas entre si, cada linha pode ter um Pai, assim como suas linhas subordinadas.

Vamos criar o comando Árvore correspondente e seu procedimento de processamento.

Vamos criar em que há uma linha pai e duas linhas subordinadas.

Vamos criar os atributos do formulário DerZn(tipo de dados – Árvore de Valores).

Para este atributo, criaremos as colunas Ano e Mês.

Mova o elemento correspondente DerZn no formulário.

No final Procedimentos TreeOnServer() vamos adicionar:

ValueInFormData(ÁrvoreZn, DerZn);

Vamos verificar o que aconteceu no modo de usuário.

Usando o botão Adicionar você pode adicionar novas linhas. Eles também podem formar uma hierarquia.

Para percorrer todos os elementos da árvore de valores, precisaremos usar recursão, ou seja, chamando um procedimento de si mesmo. Por exemplo, o processamento de uma árvore de valores pode ser assim:

Isso conclui nosso primeiro contato com coleções universais.

No próximo artigo veremos qual mecanismo importante um desenvolvedor pode usar para simplificar o acesso a um elemento de diretório a partir do código do programa.

Nesta unidade conheceremos um novo tipo de dados da linguagem 1C, chamado ListarValores.

Lista de valoresé uma matriz, mas com grandes capacidades. E se sim, então também é uma coleção de dados e você pode colocar um conjunto de números nela:

//criou uma lista de valores

Lista.Adicionar(23);

Até agora tudo se parece muito com um array, não é? Mas vamos em frente. Para agora exibir esses números ao usuário, escrevemos:

// percorre cada elemento da lista For Each Element From List Loop Report(Element.Value);

// exibe o valor do elemento EndCycle;

E aqui está a primeira diferença. Os elementos de uma matriz regular são os próprios números. E acesso ao valor atual de um elemento Lista usamos a opção Significado, usando a construção Elemento. Significado.

Vejamos alguns recursos adicionais Valores.

Pode classificar

Por exemplo, podemos classificar facilmente uma lista de valores. A lista pode fazer isso sozinha:

List.SortByValue(SortDirection.Age); No caso de um array regular, teríamos que implementar um dos algoritmos de ordenação (por exemplo, “bolha”).

Pode pesquisar

A lista de valores pode pesquisar seus elementos por conta própria. Digamos que queremos saber se um número inserido pelo usuário está presente em nossa lista:

DigiteNúmero(Número); // inseriu um número do usuário FoundElement = List. FindByValue(Número);

If FoundItem = Indefinido Then OpenValue("Number " + Number + " não encontrado na lista!"); De outra forma

OpenValue("Number " + Number + " está presente na lista. Aqui está:" + FoundElement.Value);

fimSe; ListarValores

Suporta inserção e exclusão

Uma lista de valores, como um array, suporta inserção e remoção de elementos:

Lista. Inserir(0, 1000);

// insere mil no início da lista List.Delete(O); // e remova-o imediatamente da lista List. Inserir(Lista.Quantidade(), 13);

// insere 13 no final da lista Report(List[List.Quantity() - 1]);

// exibe o último elemento da lista (13)

Suporta colchetes

Como você já entendeu, a numeração dos elementos da lista também começa do zero, e podemos acessar qualquer elemento pelo seu índice usando colchetes:

Relatório(Lista.Valor); // exibe o segundo elemento da lista Assim, podemos percorrer todos os elementos da lista assim:

Para A = 0 Por List.Quantity() - 1 Loop Report(List[A].Value);

Fim do Ciclo;

Pode criar uma cópia de si mesmo

A lista de valores tem um ótimo recurso - ela pode criar uma cópia de si mesma:

ListCopy = List.Copy();

// fizemos uma cópia da lista // agora podemos alterar com segurança a cópia da lista // enquanto a lista original não mudará a cópia da lista. Valor = 123456;

Pode se transformar em uma matriz

E, finalmente, você pode facilmente despejar todos os elementos da lista em um array a qualquer momento:

ArrayNumbers = Lista. DescarregarValores();

//despejado em um array

Para A = 0 por ArrayNumber.Quantity() - 1 ciclo

Relatório(ArrayNumbers[A]); // não há necessidade de especificar // valor da opção

Fim do Ciclo;

Para praticar e consolidar o material desta unidade, recomenda-se realizar a seguinte tarefa.

É necessário inserir 5 números do usuário, encontrar o maior e o menor deles e exibi-los ao usuário. A solução deve usar uma lista de valores.

Solução

Lista = Nova Lista de Valores;

// criou uma lista de valores For A = 1 Through 5 Cycle Number = 0;

DigiteNúmero(Número); // insira um número do usuário List.Add(Number); // e adicione-o à lista EndCycle; // e assim por diante 5 vezes

//ordena a lista de números

Lista. Classificar porValor(SortDirection.Age);

// após a classificação, o primeiro elemento da lista é // o menor elemento e o último é o maior OpenValue("Smallest element" + List +

", e o maior" + List[List.Quantity() - 1]);

© 2024 ermake.ru - Sobre reparo de PC - Portal de informações