Submenu em um aplicativo 1C gerenciado. Como posso controlar o layout dos comandos na barra de comandos de um formulário? Preenchendo manualmente os itens do menu

31.10.2021

Trabalhando em uma ou outra configuração na plataforma 1C:Enterprise 8.1, os contadores usam diariamente principalmente os mesmos itens de menu e submenus, botões nas barras de ferramentas. No entanto, nem todo usuário se sente confortável com a interface padrão do programa. V.V. fala sobre como personalizar a interface para você. Pesca, empresa "1C".

Há situações em que um item de menu usado com frequência está oculto “profundamente”, ou o botão necessário não cabe na tela e uma ação importante não possui uma combinação de teclas “de atalho”.

A solução mais simples que vem à mente é ir ao configurador e configurar a interface da maneira que você precisa. Mas nem sempre há especialistas com o nível de qualificação adequado por perto. Além disso, nem todos os usuários possuem os mesmos critérios de experiência de usuário.

É realmente necessário ajustar o atual para cada usuário do banco de dados (podendo ser mais de uma dezena) ou criar nova interface no configurador? Não! Graças às possibilidades de afinação interface para plataforma 8.1 não há necessidade de chamar um especialista qualificado ou entrar no configurador*.

Observação:
* Para ser totalmente preciso, pode haver pré-requisitos para a criação de uma interface individual para o usuário no modo configurador, mas essas questões estão além do escopo deste artigo.

As tarefas de personalização são resolvidas com bastante elegância - usando barras de ferramentas pessoais. Por exemplo, usaremos a interface de contabilidade configuração típica"Enterprise Accounting" (rev. 1.6) com dados de demonstração.

Mas antes de passarmos à descrição do mecanismo personalização interface, designaremos algumas capacidades gerais que a plataforma 8.1 fornece aos seus usuários. Em particular, você não pode ver todos os itens de menu padrão e todas as barras de ferramentas que estão integradas na plataforma por padrão de uma vez (independentemente da configuração). E isso não é um erro. A questão é que alguns recursos são sensíveis ao contexto e, portanto, só estão disponíveis quando fazem sentido.

É fácil obtê-los - em qualquer espaço vazio próximo às barras de ferramentas disponíveis, basta clicar com o botão direito do mouse. Na lista que se abre, você verá imediatamente todos os painéis disponíveis, e os habilitados (visíveis) serão marcados com uma marca de seleção.

Um bom exemplo é trabalhar com uma planilha. Compare a composição dos menus e painéis na ausência de uma planilha ativa - veja a fig. 1 e se presente, veja a Fig. 2.


Arroz. 1


Arroz. 2

Na maioria dos casos, basta utilizar os itens de menu que aparecem ou ativar as barras de ferramentas desejadas.

Esteja ciente: os elementos da interface do usuário sensíveis ao contexto desaparecerão se não janelas ativas, aos quais estão associados, e aparecem quando essas janelas são ativadas.

Então, vamos começar a aprender como personalizar a interface.

Primeiro, vamos decidir quais itens de menu ou botões importantes você deve ter sempre à mão. Por exemplo, vamos escolher o seguinte:

  • “Operações” -> “Operações de rotina” -> “Referências e cálculos” -> “Cálculo”;
  • “Vendas” -> “Manutenção de livro de vendas” -> “Livro de vendas”;
  • “Relatórios” -> “Outros” -> “Relatório universal”;
  • “Serviço” -> “Pesquisa de Dados”;
  • “Empresa” -> “Calendário de produção”;
  • "Tabela" -> "Visualizar" (nota - este é um submenu).
  • “Dicas”, que estão localizadas na barra de ferramentas “Suporte” (painel criado ao desenvolver nossa configuração);
  • Barra de ferramentas padrão "Congelar tabela" documento de planilha" (digamos que ao trabalhar com tabelas você precisa corrigir o cabeçalho com frequência).

Decidimos as funções necessárias.

Sua composição, embora um tanto caótica, é indicativa.

Por exemplo, o item de menu “Cálculo” está profundamente oculto e o submenu “Visualizar” nem sempre está imediatamente acessível para nós.

Para garantir que sempre teremos todo esse conjunto ao nosso alcance, usaremos a capacidade da plataforma 8.1 para criar barras de ferramentas pessoais.

Para fazer isso, você precisa entrar no modo de configurações, acessar a lista de barras de ferramentas (semelhante ao método descrito acima para ativar/desativar as barras de ferramentas padrão - veja a Fig. 1) e selecionar “Configurações...”. Será aberta uma janela de configurações da interface, na qual na aba "Barras de ferramentas" você verá todos os disponíveis em no momento barra de ferramentas (Fig. 3).


Arroz. 3

Vamos criar nossa própria barra de ferramentas e nomeá-la, por exemplo, “Meu Menu”. Para fazer isso, clique no botão “Criar…” e escreva um nome.

Após clicar em “OK” veremos nosso painel na lista de painéis disponíveis (Fig. 4).

Arroz. 4

Além disso, nosso novo painel vazio (sem um único elemento) aparecerá no centro da tela (Fig. 5). O mais importante já foi feito.

Arroz. 5

Resta preencher o nosso menu com os elementos necessários.

Permanecendo no modo de configuração, vamos preencher sequencialmente o painel com os elementos previamente selecionados.

O princípio geral é este: selecionamos o elemento desejado nos locais onde normalmente o encontramos na interface que nos é apresentada, pressionamos e seguramos a tecla Ctrl e “arrastamos” este elemento para o nosso painel com o mouse (botão esquerdo) (arraste e copiar).

O que devemos fazer se o menu suspenso bloquear a visibilidade do nosso painel (Fig. 6)?


Arroz. 6

Basta agarrá-lo com o mouse pela borda esquerda do título e arrastá-lo para um local conveniente.

O primeiro elemento da nossa lista é “Cálculo” - arrastar e soltar (Fig. 7).


Arroz. 7

Observe que a tecla Ctrl deve ser pressionada até o final do arrasto.

Isso é fácil de controlar: depois de terminar de arrastar um elemento para o nosso painel, deverá haver um sinal de mais (“+”) próximo ao cursor do mouse. Se tudo for feito corretamente, você verá um resultado semelhante ao da Fig. 8.


Arroz. 8

Da mesma forma, arrastamos o segundo item do nosso menu pessoal - “Livro de Vendas”. O resultado é algo semelhante à Fig. 9. Por que apenas o ícone está visível? Porque os desenvolvedores de configuração atribuíram uma imagem a este item de menu, e a plataforma 8.1 por padrão exibe apenas imagens em painéis se forem especificadas. Se quiser ver uma inscrição ou uma imagem e uma inscrição (como no menu original), basta clicar com o botão direito no elemento desejado e selecionar modo desejado mostrar. Vamos optar por exibir imagens e texto para o “Livro de Vendas” (Fig. 10).


Arroz. 9

Arroz. 10

A seguir, preenchemos nosso painel com os elementos selecionados. Para “Pesquisa de Dados” também habilitaremos a exibição de imagens e texto. Chegando ao item “Tabela/Visualização” da nossa lista, já temos um painel no formato mostrado na Fig. 11.


Arroz. 11

Aqui podemos nos deparar com o fato de o menu “Mesa” estar indisponível no momento (os motivos estão descritos acima). Decidindo este problema, ao mesmo tempo testaremos as possibilidades de adicionar itens a um menu existente. Todo esse tempo trabalhamos no modo de configuração de interface. Agora você terá que fechá-lo temporariamente - na janela “Configurações”, clique no botão “Fechar”. Observe que todos os nossos empreendimentos foram preservados e já estão disponíveis para trabalho em nosso painel. Para acessar o menu “Tabela”, abra qualquer documento de planilha ou crie um novo. Depois disso, ligue novamente para o modo de configuração. Agora temos acesso ao menu desejado e podemos arrastar, à semelhança das regras anteriores, o submenu “Visualizar” dele (Fig. 12).


Arroz. 12

Existem mais dois botões disponíveis nas barras de ferramentas da nossa interface. Arrastá-los é completamente semelhante a arrastar itens de menu: basta clicar com o botão esquerdo no botão desejado, pressionar Ctrl e arrastar este botão para o nosso painel.

O botão “Congelar Tabela” pode ser encontrado no menu “Tabela”, que disponibilizamos anteriormente. Mas para a pureza do experimento, experimente ativar o painel “Documento Tabular” que também está disponível (Fig. 13).


Arroz. 13

Isso é tudo - preenchemos completamente a barra de ferramentas "Meu Menu" com os elementos que precisamos. Basta fechar novamente a janela de configurações com o botão “Fechar” e você poderá começar a trabalhar, tendo sempre seu próprio conjunto de funções em mãos.

Concluindo, destacamos alguns pontos importantes.


Subsistema em 1C 8.3— um objeto de árvore de metadados responsável por construir a interface de comando de configuração.

Abaixo no artigo falaremos sobre subsistemas a partir da versão 8.2.

O fato é que a versão 8.1 (assim como o aplicativo 8.2 normal) também tinha subsistemas, mas serviam a propósitos completamente diferentes, mais provavelmente para o desenvolvedor do que para o usuário. Usando subsistemas no 8.1, diferentes funcionalidades geralmente eram separadas. Os subsistemas também ajudaram na combinação de diferentes configurações 1C - foi possível especificar qual sistema transferir.

Subsistemas 1C e interface do programador

Nas versões 8.3 e 8.2, os subsistemas são a principal ferramenta para construir uma interface de usuário de comando. Os objetos de metadados “Subsistemas” possuem uma estrutura hierárquica; para configurar um “submenu” na interface, é necessário adicionar um subsistema subordinado:

Propriedades e configurações

Vejamos as configurações e propriedades dos subsistemas no configurador:

Obtenha 267 videoaulas em 1C gratuitamente:

Incluir na interface de comando— se você esqueceu de definir este sinalizador, subsistema não será exibido na interface.

O botão abre o painel de configurações da interface, onde você pode configurar interfaces dependendo da função do usuário atual:

Foto— a imagem atribuída ao subsistema é exibida no modo empresarial. Você pode escolher imagem padrão, ou você pode adicionar o seu próprio primeiro criando-o como um objeto de configuração Foto:

Na aba Opções funcionais indica uma lista de opções funcionais nas quais este subsistema é usado.

Guia Composto define um conjunto de objetos de metadados que participam de um determinado subsistema.

Na aba Outro você pode descrever a ajuda do subsistema e especificar as configurações Incluir no conteúdo de ajuda— se este tópico de ajuda deve ser incluído nas informações gerais de ajuda de configuração.

Se você não vir um relatório ou processamento na interface gerenciada

Esse problema surge frequentemente entre desenvolvedores iniciantes - parece que um relatório ou processamento foi adicionado ao subsistema, mas não é visível.

A primeira razão para isso pode ser que o objeto não possui uma forma controlada definida.

A segunda razão é que na aba Comandos do objeto, a caixa de seleção “Usar comandos padrão” está marcada. Isso se deve ao fato de que para abrir o processamento pode-se descrever seu próprio procedimento ou utilizar um procedimento padrão:

Qualquer grupo de botões (barra de comando, submenu, grupo de botões, menu de contexto) é preenchido de acordo com as mesmas regras:

  1. primeiro vêm os botões fornecidos pela fonte de comando à qual este grupo está associado;
  2. depois vem um fragmento da interface de comando, caso a fonte do comando implique sua inclusão;
  3. depois, há comandos personalizados adicionados a este grupo;
  4. então há um submenu Todas as ações(somente para painel de comando);
  5. e no final há um botão Referência se foi fornecido pela fonte do comando.

Consideremos a opção mais simples, quando dois comandos são criados na forma de um elemento de diretório e colocados no painel de comandos do formulário.

Como resultado, no modo 1C:Enterprise, a localização dos botões correspondentes aos comandos criados Equipe1, Equipe2 corresponde ao algoritmo descrito acima: no painel de comando do formulário e no submenu Todas as ações primeiro estão os comandos fornecidos pela fonte de comando - a forma do elemento de diretório (por exemplo, Escreva e feche, Escreva etc.), depois comandos criados pelo desenvolvedor ( Equipe1, Equipe2) e então o comando Referência.

No entanto, existem várias maneiras de um desenvolvedor intervir significativamente neste processo e melhorar a legibilidade do painel de comando. menu de contexto etc. Quais opções existem para alterar a composição e a ordem dos botões?

1. Você pode separar comandos criados pelo desenvolvedor de outros comandos com um separador.

Para fazer isso, você precisa criar um grupo como este no painel de comando Grupo de botões e transfira esses comandos para ele.

2. Você pode colocar alguns comandos do desenvolvedor no início de um grupo de comandos.

Para fazer isso, você precisa cancelar a fonte de comando do grupo (para o menu de contexto e barra de comando automática, você precisa desabilitar a caixa de seleção Preenchimento automático), em seguida, adicione seu botão ao grupo, depois adicione um grupo do formulário Grupo de botões e instale este grupo fonte de comando- Por exemplo, Forma.

Todas as ações terá o seguinte formato.

3. Você pode mover os botões de preenchimento automático.

Para fazer isso, você precisa colocar na árvore da barra de comandos ou no menu de contexto um botão associado ao mesmo comando que é preenchido a partir da fonte de dados (por exemplo, Excluir, Cópia etc.). Automaticamente, tal botão não será colocado entre os comandos padrão e, assim, você poderá mover o comando padrão para outro local.

Como resultado, no modo 1C:Enterprise, os formulários e submenus do painel de comando Todas as ações terá o seguinte formato.

Para comandar o ícone Excluir foi exibido no painel de comando do formulário, você precisa definir a propriedade deste botão OnlyInAllActions em significado Não.

4. Você pode alterar a ordem e a visibilidade dos botões do fragmento da interface de comando fornecido pela fonte de comando Forma.

Por exemplo, um objeto de configuração possui um diretório Contrapartes há uma equipe Equipe3. Este comando possui grupo de posicionamento de comando - Painel de comando do formulário Importante. e tipo de parâmetro de comando - DirectoryLink.Contrapartes.

Depois de definir essas propriedades, Equipe3 fica disponível para o marcador Interface de comando o formulário de um objeto cujo tipo é um comando e está localizado no painel de comando do formulário após os comandos padrão fornecidos pelo formulário de um elemento de diretório.

Como resultado, no modo 1C:Enterprise, os formulários e submenus do painel de comando Todas as ações terá o seguinte formato.

Equipe3 faz parte do grupo de comandos do fragmento da interface de comando. Se você não estiver satisfeito com o local onde um fragmento da interface de comando é inserido, você pode colocar um grupo como este no painel de comando Grupo de botões e instale este grupo fonte de comando - Equipes globais barra de comando do formulário.

Neste caso, o posicionamento automático do fragmento será cancelado (semelhante a um botão padrão adicionado manualmente) e o fragmento da interface de comando será exibido em um novo grupo.

Quanto ao conteúdo do fragmento da interface de comando, sua edição está disponível na aba Interface de comando editor de formulários.

5. Você pode ativar/desativar a visibilidade dos comandos padrão fornecidos pela fonte de comando, por exemplo - Forma.

Para fazer isso você precisa abrir uma janela Composição da equipe na paleta de propriedades do formulário.

Por fim, observe que não há opção de alterar a ordem dos botões fornecidos pela fonte do comando. Se tal necessidade surgir, você precisará cancelar a fonte do grupo de comandos e preencher completamente o grupo manualmente.

Como em qualquer outro Aplicativo Windows, em 1C o menu de contexto é chamado clicando com o botão direito em um elemento do formulário. A composição do menu e conjuntos de comandos a serem executados podem ser editados:

  1. Manualmente, criando uma lista correspondente e definindo um conjunto de procedimentos;
  2. Automaticamente.

Nosso artigo é dedicado aos princípios de trabalho com o menu de contexto. Tentaremos considerar as questões de habilitar e desabilitar este elemento nos formulários gerenciados e regulares, bem como os princípios criação de software lista de comandos chamados pelo botão direito do mouse.

Criação automática de menu de contexto

A ativação e desativação do menu de contexto de qualquer elemento do formulário ocorre diretamente no configurador. Deve-se ter em mente que para os formulários gerenciados e regulares a capacidade de realizar esta ação é implementada de forma diferente.

Digamos que a condição da tarefa pressupõe a presença de um menu de contexto para o elemento do formulário “TabularDocument”. Vamos resolver esse problema para formulário normal processamento externo.

Desativar a caixa de seleção “AutoContextMenu” permite ao desenvolvedor criar um menu composto apenas por seus próprios itens. Se a caixa de seleção estiver ativada, o menu criado automaticamente estará localizado abaixo da lista de comandos gerados pelo usuário.

Nas propriedades do parâmetro “Menu de Contexto” você pode definir uma lista típica de comandos que existe no formulário (Fig. 2).

Figura 2

No nosso caso podemos:

  • Vincule o menu de contexto ao painel de comando do formulário de processamento;
  • Chame as mesmas ações incluídas na lista suspensa do comando “Ações”;
  • Defina o mesmo conjunto de itens que são implementados nas ações principais do formulário.

Se quisermos que a lista suspensa do botão direito implemente um conjunto de comandos característicos de um campo de tabela, devemos:

  1. Crie um painel de comando para o qual nosso campo de tabela será a fonte das ações;
  2. Remova a visibilidade deste elemento;
  3. Defina o parâmetro “Menu de contexto” para nosso painel de comando.

Vamos resolver o mesmo problema para formulários gerenciados. Não consideraremos o processo de criação de um formulário e adição de novos detalhes a ele separadamente. Prestemos atenção ao fato de que não existe nenhum parâmetro associado ao menu de contexto, nem nas propriedades do campo (Fig. 3), nem nas propriedades dos atributos do formulário, nem nas propriedades do elemento.

Figura 3

Você pode ativar o menu de contexto clicando com o botão direito no elemento do formulário “Props1” (Fig. 4). Na lista suspensa, selecione “Mostrar menu de contexto”.

Figura 4

Após isso, a árvore de elementos do formulário receberá um novo ramo (Fig. 5)

Figura 5

Agora vamos ver o processo de preenchimento do menu de contexto.

Preenchendo manualmente os itens do menu

Você pode implementar o preenchimento manual do menu de contexto de um elemento de um formulário normal por simples adição botões para a barra de comando, que é definida no parâmetro correspondente.

Para forma controlada o conjunto de comandos implementados na lista suspensa pode ser determinado arrastando-os da aba “Comandos” para o ramo correspondente da árvore de elementos (Fig. 6).

Figura 6

É importante compreender que não apenas comandos de formulário, mas também comandos padrão e globais podem atuar como itens de menu.

Adicionando programaticamente um menu de contexto e uma lista de comandos nele

Digamos que nós, como desenvolvedores, nos deparamos com a tarefa de criar comandos no menu de contexto que movem as linhas da seção tabular para cima e para baixo na lista. Não descreveremos os procedimentos de movimentação em si; consideraremos apenas a adição dos itens correspondentes programaticamente;

Para fazer isso:


Após essas etapas, o menu de contexto ficará como na Fig.

Figura 10

Se não precisarmos do restante das ações da tabela e quisermos que o menu consista apenas em nossos itens, teremos que adicionar mais algumas linhas de código.

O primeiro pensamento que vem à mente é desativar o preenchimento automático. Se nosso menu de contexto não tivesse sido criado programaticamente, teríamos feito isso, mas as tentativas de detectar a propriedade correspondente no menu criado usando o código (pelo autor do artigo) não tiveram sucesso. E foi tomada a decisão de tornar invisíveis todas as linhas da lista predefinidas.

Para isso, o seguinte loop foi inserido antes do código acima (Fig. 11):

Assim, todos os elementos subordinados do menu de contexto tornaram-se invisíveis e assumiram a aparência da Fig.

Figura 12