Obtendo a pedido da data do documento. Recurso de receber o lançamento dos registros mais recentes no registro de informações Obtenha o preço na data do documento na solicitação

/
Implementando o processamento de dados

Resolução de resultados para registros de informações periódicas

Escopo: aplicativo controlado, aplicativo móvel, aplicação normal.

1.1. Para registros de informações periódicas, recomenda-se resolver os resultados se todas as seguintes condições forem cumpridas:

  • uma grande quantidade de dados é esperada no registro (por exemplo, justificado para o registro com o preço da nomenclatura; mas não faz sentido se registrar com cursos de moeda);
  • a configuração fornece solicitações de freqüência às seções da última vez e / ou às seções do primeiro para obter dados tópicos (isto é, quando o período não é especificado nos parâmetros de tabelas virtuais Dormire Fatiamento);
  • ao mesmo tempo, as restantes condições para tabelas virtuais Dormir e Fatiamento são especificados apenas nos valores de medição (e separadores no modo Independentemente e juntos);
  • nas limitações de acesso a dados, apenas as medições são usadas (e divisores no modo Independentemente e juntos).

Uma lista completa de todas as condições quando os resultados do registro de informações estão envolvidos em consultas, consultedocumentação para a plataforma 1C: Enterprise.

Por exemplo, se as solicitações de registro com freqüência são fornecidas na configuração PreçosNactore. Para obter os preços correntes da nomenclatura:

Selecione nomenclatura. Artigo como o artigo, preço do interesse. Preço como preço ,. . . Do diretório. Nomenclatura como nomenclatura deixou a conexão do registro. Preço de Preços. Circling-Durando (, Vidições \u003d & Vidzena) como preços Matéria de preço. Nomenclatura \u003d nomenclatura. Link. . .

que está sujeito a todas as outras condições listadas acima, definindo a propriedade Permitir os resultados: corte último Acelera significativamente a execução de tais solicitações, é contado que a amostra será executada diretamente de tabelas adicionais nas quais apenas os últimos valores (para o corte recente) são armazenados e os primeiros valores (para as seções do primeiro ).

1.2. Além disso, as opções alternativas devem ser consideradas para revisar solicitações de registro de tal forma que essas condições sejam executadas.

Por exemplo, se, em alguns casos, os dados no registro PreçosNactore. Gravado pela data futura e, quando a seleção de mercadorias, é sempre uma consulta à data atual (a data é claramente definida no parâmetro da tabela virtual Fatiamento) Os resultados não acelerarão a execução de tais solicitações. Como os resultados são construídos apenas para as primeiras e últimas entradas de registro.

No entanto, se quando você abrir a forma da seleção de mercadorias, analise se existem registradores com uma data futura, e se não houver - para executar outra solicitação para o último recorte do último sem instalar a data, tal pedido vai trabalhar mais rápido.

2. Em todos os outros casos, não se deve ser resolvido para registros periódicos de informações. Primeiro de tudo, se

  • na maioria das vezes (sempre) para as tabelas virtuais das seções do primeiro / último registro periódico, as consultas são executadas por um período específico (por exemplo, na data do documento).
  • em condições de tabelas virtuais Dormir e Fatiamento A maioria das vezes (sempre) usa subquilias e conexões (circulação "através do ponto" para os campos de tabelas associadas). Por exemplo, neste caso:

3. Não é necessário fornecer na configuração de um mecanismo separado para recalcular os resultados, uma vez que a realização das tabelas de desfecho é realizada automaticamente com cada registro de registros no registro.

: Dormir e Fatiamento Considere trabalhar com essas tabelas virtuais usando 1C. Muito mais frequentemente aplicado Fatiamento, então com ele e vamos começar.

Os recessos do último permite que você obtenha o registro mais recente do registro de informações à data especificada no contexto das medições. Para a mesa de corte do último (primeiro), há uma oportunidade entre parênteses para especificar dois parâmetros através da vírgula. No primeiro parâmetro, a data é transmitida para a qual o corte é feito (se o parâmetro não especificar a fatia é feita para a data atual). O segundo parâmetro representa a condição na linguagem de consulta 1C e permite instalar várias seleções. Como regra, as medições são usadas nestes Sebars. Tudo isso parece nebuloso o suficiente, então sem exemplo você não pode fazer.
Então, deixe-nos ter um registro periódico de informações Preço em que os preços são armazenados no contexto de bens e fornecedores. A frequência do registro é um dia.

O registro tem as seguintes entradas

Para começar, recebemos um corte do último sem usar os parâmetros, seguindo esta solicitação.

Escolha o preço de uma rendição. Período como um período, preçosReXt. Sungwar como um produto, PricerExtrighted. A lista é como um fornecedor, o preço da rendição. Resumo como uma soma do registro. Preço. Preventivo como o preço dos Tradrastos

Como os parâmetros não são especificados, o corte é realizado na data atual - 01.02.2017. Como resultado, recebemos esta mesa

Aqui vemos que a combinação de mercadorias de medição + fornecedor é única, isto é. Para cada combinação de medições de registro, foi realizado um registro com uma data máxima, e a data de registro é menor ou igual à data atual.

Suponha que precisemos fazer o mesmo, mas os registros que queremos obter com a data menos ou igual a 15 de janeiro de 2017. Para fazer isso, você precisa alterar a string na consulta com a recente tabela de corte da seguinte maneira.

De se registrar. Preço Preventivo (e dançarino) como o preço do transverso

Antes de executar a solicitação, é certamente necessário transferir o parâmetro. & Dataseca.. Agora o resultado da consulta será semelhante

E finalmente imagine que precisamos cortar um corte na mesma data com a condição de que temos os bens Lápise fornecedor. Papelaria. Para fazer isso, especifique o segundo parâmetro na consulta.

De registrar. Preço Preventivo (& dançarino, produto \u003d e bens e fornecedor \u003d & fornecedor) como o Pricerext

Como resultado, recebemos apenas um registro

Para não se confundir em todos esses colchetes e vírgulas, é melhor usar o designer de solicitação. Eu vou te mostrar no exemplo da última consulta.

Depois de selecionar no Designer da tabela de consulta com um corte do último, você deve clicar no botão Configurações da tabela virtual e na janela que se abre para se registrar

Não é difícil adivinhar que para cortar o primeiro princípio da ação é o mesmo, exceto que o primeiro registro é selecionado após a data de corte.

Duas tabelas virtuais estão disponíveis para registros de informações periódicas: Dormir e Fatiamento Considere trabalhar com essas tabelas virtuais usando solicitações 1C. Muito mais frequentemente aplicado Fatiamento, então com ele e vamos começar.

Os recessos do último permite que você obtenha o registro mais recente do registro de informações à data especificada no contexto das medições. Para a mesa de corte do último (primeiro), há uma oportunidade entre parênteses para especificar dois parâmetros através da vírgula. No primeiro parâmetro, a data é transmitida para a qual o corte é feito (se o parâmetro não especificar a fatia é feita para a data atual). O segundo parâmetro representa a condição na linguagem de consulta 1C e permite instalar várias seleções. Como regra, as medições são usadas nestes Sebars. Tudo isso parece nebuloso o suficiente, então sem exemplo você não pode fazer.

Então, deixe-nos ter um registro periódico de informações Preço em que os preços são armazenados no contexto de bens e fornecedores. A frequência do registro é o dia.

O registro tem as seguintes entradas

Para começar, recebemos um corte do último sem usar os parâmetros, seguindo esta solicitação.

Escolha o preço dos rendimentos. O período é como o período, o preço do último. Produto como bens, pricerere. Fornecedor como fornecedor, ressurreição de preço. O valor é como uma soma dos registros. Preço. Circulando como o preço do traduzido

Como os parâmetros não são especificados, o corte é realizado na data atual - 01.02.2017. Como resultado, recebemos esta mesa

Período | Produto | Fornecedor | Soma

22/01/2017 | Lápis | Ltd. "lesprot" | quinze

02/01/2017 | Lápis | PJSC "Papelaria" | 31.

02/01/2017 | Manusear | PJSC "Papelaria" | 145.

Aqui vemos que a combinação de mercadorias de medição + fornecedor é única, isto é. Para cada combinação de medições de registro, foi realizado um registro com uma data máxima, e a data de registro é menor ou igual à data atual.

Suponha que precisemos fazer o mesmo, mas os registros que queremos obter com a data menos ou igual a 15 de janeiro de 2017. Para fazer isso, você precisa alterar a string na consulta com a recente tabela de corte da seguinte maneira.

De registros. Preço. Por circus-duradoura (& amp; dançarino) como o preço do preservado

Antes de executar a solicitação, é certamente necessário transferir o parâmetro. & Dataseca.. Agora o resultado da consulta será semelhante

Período | Produto | Fornecedor | Soma

01.01.2017 | Lápis | Ltd. "lesprot" | 10.

01.01.2017 | Lápis | PJSC "Papelaria" | 27.

01/03/2017 | Manusear | PJSC "Papelaria" | 137.

E finalmente imagine que precisamos cortar um corte na mesma data com a condição de que temos os bens Lápise fornecedor. Papelaria. Para fazer isso, especifique o segundo parâmetro na consulta.

De registros. Preço. Duração de circulação (& amp; dançarino, produto \u003d & amp; produto e fornecedor \u003d & amp; fornecedor) como o preço traduzido

Como resultado, recebemos apenas um registro

Período | Produto | Fornecedor | Soma

01.01.2017 | Lápis | PJSC "Papelaria" | 27.

Para não se confundir em todos esses colchetes e vírgulas, é melhor usar o designer de solicitação. Eu vou te mostrar no exemplo da última consulta.
Depois de selecionar no Designer da tabela de consulta com um corte do último, você deve clicar no botão Configurações da tabela virtual e na janela que se abre para se registrar

Não é difícil adivinhar que para cortar o primeiro princípio da ação é o mesmo, exceto que o primeiro registro é selecionado após a data de corte.

43
NULL - Valores ausentes. Não confunda com valor zero! Null não é um número que não é igual ao espaço, um link vazio, indefinido. NULL - valor de formação de tipo, isto é, Há um tipo nulo e o único significado desse tipo. NULO ... 26
Para formar e executar consultas para as tabelas do banco de dados na plataforma 1C, um objeto de linguagem de programação de objeto especial é usado. Este objeto é criado chamando uma nova solicitação. O pedido é conveniente ... 18
O artigo apresenta técnicas úteis ao trabalhar com solicitações 1C V.8.2, bem como informações que não são tão bem conhecidas para a linguagem de consulta. Eu não me esforço para dar uma descrição completa da linguagem dos pedidos, mas quero parar apenas em ... 13
Como - o operador verifica a string no padrão semelhante. Analógico como no SQL. O operador como isso permite comparar o valor da expressão especificada à esquerda dela, com a sequência do modelo especificado à direita. O valor da expressão ...

Às vezes você precisa de uma solicitação para obter de um dados de informações de informações periódicas para várias datas imediatamente. Um exemplo típico está funcionando com cursos de moeda. Considere o algoritmo para resolver esta tarefa sobre o exemplo.

Formulação do problema

No banco de dados, foi criado um documento "Implementação do Serviço", no cabeçalho da qual há um adereço "moeda". A solicitação é necessária para cada documento para receber uma taxa de moeda real do cabeçalho para a data do documento. O armazenamento de taxas de câmbio são realizados no registro periódico de "Carsivalyut".
A decisão "na testa" desse problema pode ser um pedido no ciclo: recebendo todos os documentos com suas datas e moeda e no apelo da amostra à tabela virtual da liberação do último registro "Kursivalyut". Mas porque A solicitação no ciclo é "ruim", tente implementar a tarefa com uma solicitação.

Decisão

Para resolver o problema, usaremos o fato de que as tabelas estão a pedido pode ser conectado não apenas à igualdade de campos.

ESCOLHA RealizatsiyaTovarovUslug.Ssylka, RealizatsiyaTovarovUslug.Valyuta, MAX (KursyValyut.Period) como um período VTPeriodyUstanovkiKursov PUT OUT COMO Dokument.RealizatsiyaTovarovUslug RealizatsiyaTovarovUslug LEFT JOIN RegistrSvedeniy.KursyValyut COMO KursyValyut RealizatsiyaTovarovUslug.Valyuta \u003d KursyValyut.Valyuta E RealizatsiyaTovarovUslug.Data\u003e \u003d KursyValyut.Period agrupadas de acordo com a implementação do serviço de ligação, a implementação das ruas Svaluta..; ////////////////////////////////////////////// // // ////////////////////////////////////////////////// ////////////////////////////////////// /// // // Select TveriodoresOstorekurs. ligação, WTPeriodoresOstrovikurstovs.Valuta, Kursivalyut.KURS dos WTPeriodorestorecars como um desordenar instituintes da conexão esquerda dos registerings. Kashivalyuta como acostamento configurações vaporiodine. Período \u003d coarsevalyut.period e clutterings MountingCurses.Valuta \u003d coarsevalyut

Procedimento na consulta:

  1. A obtenção de uma taxa de câmbio para cada documento. Os documentos são conectados à tabela física "Kursivalyut". Aqui você deve prestar atenção para as condições de conexão. As moedas devem ser iguais e a data do documento\u003e \u003d o período do registro de informações.
    Como resultado de tal conexão, um conjunto de strings satisfazendo a condição será obtida para cada documento: todos os registros do conjunto de taxa de câmbio não posteriores do documento.
    A fase final será um agrupamento de cordas para se obter um período máximo claro. Como resultado, para cada documento, o período exigido de instalação do curso para a moeda desejada será obtido (a data máxima de instalação da taxa de câmbio, mas não mais do que a data do documento). O resultado é colocado em uma tabela temporária de sistemas de confusão.
  2. Obter um curso. A tabela temporária das acusações está ligado à "Krasvalyut" tabela física. A ligação ocorre de acordo com a moeda do documento e o período da configuração curso definido na segunda tabela temporária.