lar - janelas
Separação de dados, mecanismo. Usando um mecanismo de compartilhamento de dados em vez de RLS editando um módulo de formulário

Detalhes gerais em 1C 8.3 é um objeto de metadados de plataforma que permite usar um atributo para muitos objetos de configuração (diretórios, documentos, planos de contas, etc.). O objeto foi criado principalmente para facilitar o trabalho do desenvolvedor e separar dados.

Os detalhes gerais foram inicialmente implementados na versão 1C 7.7, mas os desenvolvedores não os incluíram imediatamente na plataforma da versão 8. O mecanismo de detalhes gerais foi introduzido pelos desenvolvedores 1C apenas na versão 8.2.14.

É muito conveniente adicionar detalhes gerais para não alterar os objetos padrão na configuração. Costumo usá-los junto com .

Após adicionar um atributo geral, ele pode ser utilizado em consultas e exibido no formulário do objeto - Externamente, não é diferente dos adereços comuns.

A única limitação dos detalhes gerais é a incapacidade de usá-los em arquivos .

Vejamos as configurações básicas e propriedades de detalhes gerais que diferem de outros objetos de configuração:

Composto— uma lista de objetos para os quais serão utilizados os detalhes gerais; o cenário lembra a elaboração de um plano de intercâmbio;

Obtenha 267 videoaulas em 1C gratuitamente:

Uso automático— a configuração determina se os adereços gerais serão usados ​​para os objetos que possuem o modo de uso “Automático” especificado.

Separação de dados— consideraremos essa configuração separadamente.

Separação de dados em 1C usando detalhes comuns

Separação de dados- um mecanismo semelhante ao mecanismo. Porém, o desempenho deste mecanismo é mais eficiente e mais fácil de configurar.

O mecanismo permite configurar a exibição apenas de elementos que o usuário pode ver. Por exemplo, você pode distinguir entre todos os objetos (documentos, diretórios, etc.) onde uma determinada organização está instalada.

Configurando a separação de dados usando detalhes gerais 1C

Para configurar os detalhes gerais, você precisa especificar a separação de dados - Dividir. Imediatamente após clicar, o sistema se oferecerá para criar parâmetros contábeis padrão:

Neste caso, será necessário especificar os parâmetros da sessão ao iniciar o sistema; como fazer isso foi descrito com um exemplo no artigo;

Isso conclui a configuração - o usuário terá acesso apenas às informações especificadas nos parâmetros da sessão selecionada.

Exemplo de uso de adereços comuns

Vejamos como configurar adereços gerais em 1C 8.3 usando o exemplo de configuração de quadro e adereços Organização:

Existem 3 documentos no sistema onde é necessário indicar os dados da Organização: são a Nota Fiscal de Recibo, a Nota Fiscal de Despesas e a Folha de Pagamento.

A configuração é simples:

  1. Criamos um novo atributo Geral, especificamos o tipo - DirectoryLink.Organization.
  2. Na composição organizamos nossos documentos - Usar.

É isso, a configuração está completa!

Vamos ver o resultado:

O sistema exibe detalhes gerais “como se fossem seus”: nas solicitações, nos detalhes do formulário e em outros locais. Isso é tão mágico! 🙂

Requisitos gerais 1C 8.3 não são adicionados

Atenção! Esta é uma versão introdutória da lição, cujos materiais podem estar incompletos.

Faça login no site como estudante

Faça login como aluno para acessar os materiais escolares

Linguagem de programação interna 1C 8.3 para programadores iniciantes: formato em 1C

Ao programar em 1C, muitas vezes você precisa exibir (nos mesmos relatórios) valores de vários tipos (strings, datas, números...). Cada um dos valores possui representações diferentes.

Por exemplo, a mesma data "01/01/2005" pode ser representada como uma string como:

  1. "01.01.2005"
  2. "1º de janeiro de 2005"
  3. "01.01.05"

Todas essas são representações de string do mesmo valor, d Para cuja formação uma função especial é usada em 1C Formatar.

Usando a função Formatar em 1C

Desativar agrupamento de dígitos

Digamos que precisamos gerar o número 10.000.

Se escrevermos:

Uma string de formato geralmente consiste em duas partes separadas por um sinal de igual. À esquerda de igual está o nome do parâmetro que está sendo definido (veja a ajuda ou exemplos), e à direita está o valor deste parâmetro.

No exemplo acima, a string de formato “HH=0” possui o parâmetro HH e o valor 0. Esta combinação cancela o agrupamento dos dígitos do número. E, como você pode ver, 10.000 agora é produzido.

Saída de zeros à esquerda

Outra tarefa comum é imprimir zeros à esquerda antes de um dígito. Por exemplo, digamos que você deseja exibir o número 5 com um zero à esquerda, ou seja, na forma “05”:

Relatório(Formato(5, "CHZ=2; CHVN=" ) ) ; //saída 05

Vejamos a string de formato "CC=2; CHVN=". Consiste em duas strings de formato separadas por ponto e vírgula. Vejamos cada um deles separadamente.

A linha "CC=2" especifica o número total de casas decimais exibidas para as partes inteiras e fracionárias. Assim, o número total de posições que o número ocupará durante a saída será igual a 2.

A linha "ChVN=", conforme segue da ajuda, indica à função o formato que se o número não atingir o comprimento declarado (como no nosso caso, porque indicamos 2 posições, e 5 ocupa apenas uma), então liderando zeros devem ser usados. A peculiaridade dessa string de formato é que ela possui apenas o nome do parâmetro e um sinal de igual, mas não possui valor. Você está lendo uma versão de teste da lição; lições completas estão disponíveis.

A combinação de duas strings de formato dá o resultado que precisamos, “05”, em vez de “5”.

Alterando o separador entre as partes inteiras e fracionárias

Vamos supor que precisamos exibir números fracionários separados por um asterisco em vez de um ponto. Isto é, para que 25,46 seja gerado como "25*46":

A string de formato é o parâmetro DF e o valor dddd, que indica as funções Formatar imprima uma representação longa do dia da semana (observe quantos "d" ela contém).

Representação data mês

A descrição do mês por data é exibida da seguinte forma:

Relatório(Formato("20050101" , "DF=MMMM" ) ) ; // imprimirá janeiro

A string de formato possui o mesmo parâmetro DF do caso anterior. Mas o significado é diferente. Agora é igual a MMMM.

Faça o teste

Iniciar teste

1. Format("19050505", "DF=MMMM") retornará

2. Formate a string alterando o separador fracionário e inteiro para ^

3. Para que a função Format retorne “00005” em vez de 5, uma string de formato é adequada

4. Para que a função Format retorne “10.000” em vez de 10.000, uma string de formato é adequada

5. A função Format retorna um valor do tipo

Mecanismo de compartilhamento de dados permite armazenar dados de várias organizações independentes em uma base de informações.

Isso se torna possível devido ao fato de que os detalhes gerais dos objetos de configuração podem ser utilizados não apenas como “a mesma propriedade que todos os objetos possuem”, mas também como um identificador de que os dados pertencem a uma das diversas áreas independentes. Isso pode ser explicado com o exemplo a seguir.

Digamos que exista um atributo geral "Organização" na configuração. Isso significa (simplificado) que cada diretório, documento ou outro objeto de configuração também terá um atributo “Organização”.

Além disso, qualquer usuário da base de informações tem acesso a todos os dados armazenados nesta base de dados, independentemente da organização indicada, por exemplo, em um determinado documento.

Agora vamos indicar que o atributo geral “Organização” servirá como separador.

Em seguida, (simplificadamente) serão criadas várias áreas de dados independentes na base de informações, cada uma das quais armazenará dados apenas para uma organização específica:

Agora, ao entrar no programa, o usuário não terá acesso a todas as informações que estão na infobase, mas apenas aos dados da “sua” área, neste caso a documentos, livros de referência, etc.

Outra opção de utilização deste mecanismo é possível, quando existem diversas áreas de dados independentes na infobase e, junto com isso, existem dados que estão à disposição de todos os usuários do programa. Por exemplo, eles contêm um diretório de bancos, que é o mesmo para todas as organizações.

Neste caso, o utilizador tem acesso à “sua” área de dados e à área de dados não partilhados, que é comum a todos os utilizadores.

O mecanismo de compartilhamento de dados é bastante flexível e universal:

  • permite usar não um, mas vários separadores;
  • existem diferentes modos de utilização de dados partilhados; eles diferem na forma como a situação é tratada quando o valor do delimitador não é especificado;
  • o uso de um atributo comum como separador pode ser controlado durante a operação do programa a partir da linguagem integrada sem alterar a configuração; isso é chamado de divisão condicional.

Uma vez discutimos mecanismos para restringir o acesso do usuário em 1C e em particular.

Permite ao usuário trabalhar não com todos os documentos, mas apenas com aqueles que indicam uma determinada organização ou armazém. As seleções são feitas de forma dinâmica e, portanto, impõem uma certa carga no funcionamento do banco de dados.

A propriedade do atributo separador geral – separação de usuários 1C – permite definir a disponibilidade da lista de usuários dependendo do uso de separadores.

Se o separador estiver habilitado para um usuário, ele ficará visível na lista de usuários no modo 1C Enterprise - caso contrário, não estará visível.

Dessa forma você pode organizar diferentes listas de usuários para diferentes partes do banco de dados.

A propriedade do atributo separador geral – separação de autenticação 1C – permite criar usuários com os mesmos nomes de usuário para diferentes partes do banco de dados.

Divisão condicional 1C

A separação condicional 1C permite ativar ou desativar o separador com base nos dados do banco de dados. Desta forma, você pode criar cadeias de separadores que dependem uns dos outros e atuam dinamicamente em um caso particular.

Para habilitar a divisão condicional 1C - é necessário especificar na propriedade do atributo separador geral - Divisão condicional 1C - que será responsável por determinar o fato de habilitar a divisão 1C.

É possível usar uma constante com tipo booleano ou um atributo de diretório com tipo booleano.

Importante - você precisa desabilitar o uso desta constante/este livro de referência (selecione Não usar) como parte dos delimitadores, só então ele poderá ser selecionado.

[Botão 7710967300 BUKH RB] Connect=Srvr="%servername%";Ref="%base_name%"; Parâmetros Adicionais=/Z "-0,-0,+7710967300";

Após /Z indicamos os detalhes gerais em ordem. Como nossa contabilidade padrão já possui dois detalhes gerais do sistema, especificamos o valor -0 para eles para que não sejam utilizados, e passamos o TIN como o terceiro (que criamos).

1000 e 1 caixa de seleção

Agora você precisa determinar qual parte dos dados será comum a todas as áreas. Tudo isso é configurado através do configurador. Nas propriedades dos adereços gerais que acabamos de criar, existe um item “Composição” que abre uma pequena lista de 800 parâmetros:

Deixamos a seleção dos parâmetros à sua prudência, discrição e ambiente. Aqui está a nossa versão (cuidado, são 20.000 pixels).

O separador também permite configurar uma lista separada de usuários para cada banco de dados - isso pode ser útil se você tiver centenas de usuários - ao entrar em um banco de dados específico, você não terá que percorrer essa lista até o ponto de sangrento bolhas. Não usamos isso porque configuramos a autorização transparente.

Fazendo upload de dados de bancos de dados atuais

Para baixar dados dos bancos de dados atuais, usamos uma troca XML universal. Você não pode simplesmente pegar e descarregar o banco de dados, você precisa configurar as regras de troca, caso contrário, erros e conflitos podem (e certamente surgirão) durante o carregamento, e o segundo banco de dados simplesmente não caberá. Lembramos que dividimos as áreas do banco de dados para cada organização e no nosso caso as seguintes regras de troca funcionam. Se você decidir usar um separador diferente, terá que usar seu cérebro e caixas de seleção. O principal é não usar o upload padrão - isso levará à duplicação de todos os registros predefinidos.

Nota para a anfitriã: é melhor fazer upload de livros de referência e documentos separadamente - assim você evita erros desnecessários na hora de fazer upload.

Carregando dados em um banco de dados compartilhado

Lançamos 1C com o parâmetro /Z “-0,-0,+%seu separador%”, indicando o separador da organização cujos dados vamos carregar. Lançamos uma troca universal e a alimentamos com os arquivos recebidos durante o upload: primeiro diretórios, depois documentos. Repetimos esta operação para cada área base.

Para simplificar a tarefa, realizamos uploads em massa, primeiro executando um processamento padrão ligeiramente corrigido através da linha de comando (/Execute c:\upload.epf). Em seguida, carregamos manualmente os arquivos resultantes no banco de dados dividido.

Como gastar mais tempo para gastar menos tempo

O processo de separação não é algo rápido. Lembramos que agora temos mais de 500 organizações, mas em algumas semanas conseguimos dividir apenas 70. No entanto, sabemos com certeza que em seis meses agradeceremos ao nosso passado pelo trabalho realizado e muito tempo e esforço economizados.

Os contadores não percebem a transição das organizações de um banco de dados regular para um banco de dados dividido; para eles, o processo é indolor; Somente os administradores estão com o traseiro em chamas :)

Efeitos colaterais: economia de espaço de 1 em 20, aumento indireto na velocidade – inestimável. Em números absolutos: 50 organizações ocupam 2 GB de espaço em SQL, enquanto um banco de dados individual ocupa 800 MB.

A prometida mosca na sopa, até quatro:

  • se um dos usuários bagunçar os dados em uma organização, você terá que reverter todo o banco de dados dividido - você não pode reverter apenas uma área de dados
  • as atualizações precisam ser testadas mais detalhadamente, especialmente aquelas que adicionam ou alteram diretórios
  • se você precisar transferir o banco de dados para o cliente (ou mesclar a repartição de finanças :), terá que fazer o procedimento inverso: descarregar a organização do banco de dados dividido usando uma troca universal, depois carregá-la em um banco de dados regular vazio e salvá-lo para. arquivo dt
  • em um banco de dados dividido, você não pode gerenciar tarefas rotineiras (por exemplo, não será possível atualizar automaticamente as taxas de câmbio)
As três primeiras colheres não são tão amargas - apenas nos obrigam a estar mais atentos. Mas ainda não sabemos o que fazer com o quarto, mas estamos pesquisando diligentemente.

 


Ler:



Como reduzir o tamanho de um PDF, instruções detalhadas

Como reduzir o tamanho de um PDF, instruções detalhadas

Arquivos PDF com muitos elementos gráficos ficam bonitos, mas enviá-los por e-mail é uma chatice devido ao seu tamanho grande...

Os melhores programas para desfragmentar seu disco rígido no Windows

Os melhores programas para desfragmentar seu disco rígido no Windows

E este artigo discutirá os melhores programas para desfragmentar seu disco rígido. Todos eles são gratuitos e você pode encontrá-los facilmente no...

Selecionando um receptor e acústica (hi-fi econômico) De chão e estante

Selecionando um receptor e acústica (hi-fi econômico) De chão e estante

A maioria dos usuários domésticos de áudio não sente nenhum inconveniente especial ao ouvir música no formato MP3 e até mesmo ao assistir filmes com...

Cooler não funciona no notebook

Cooler não funciona no notebook

Hoje, a maioria dos laptops está equipada com hardware poderoso que lhes permite executar aplicativos sérios, bem como jogos exigentes....

imagem de feed RSS