Mxl do que abrir. Mxl do que abrir a caixa de diálogo para salvar arquivo 1s 8.3
O tempo avança inexoravelmente e a plataforma 1C 8 funciona ainda mais rápido do que desta vez.
Os formulários gerenciados agora são chamados de "interface TAXI", as janelas modais são proibidas e o modo de usar chamadas síncronas para ramais e componentes externos interrompeu completamente a funcionalidade da maioria dessas extensões e componentes externos, além de metade dos métodos antigos. .
Em geral, pessoal, as coisas são assim - muitos de vocês leram o artigo do magnífico P. Chistov sobre como trabalhar com arquivos no 8.3
Se você ainda não fez isso, vá em frente e marche! ()
A essência do mecanismo para trabalhar com arquivos é resumida:
1) No cliente, selecione o arquivo
2) Colocamos em uma caixa preta
3) Salve o conteúdo da caixa preta no servidor
O problema é que isso deve ser feito especialmente, de uma forma nova e com alma.
Portanto seu
Arquivo Selecionado.Exists()
e outras coisas pagãs não funcionarão aqui.
Então, vamos lá!
Aqui está uma listagem de código que permite baixar um arquivo do cliente
Descrição do Alerta = Nova Descrição do Alerta("ProcessFileSelection", ThisForm); OpenFileDialog = NewFileSelectDialog(FileSelectDialogMode.Open); FileOpenDialog.MultipleSelect = Falso; StartFilePlace(AlertDescription, FileOpenDialog, True, UniqueIdentifier);
Estamos interessados no método " Arquivos StartPlace", que, de fato, abre uma caixa de diálogo de seleção de arquivo e coloca esse arquivo no armazenamento temporário. Não faz sentido se preocupar com a descrição do armazenamento temporário, apenas lembre-se - este é o local onde todos os arquivos que selecionamos são colocados a forma de dados binários (caixa preta).
&No procedimento do cliente ProcessFileSelection(PlacedFiles, AdicionalParameters) Exportar If PlacedFiles = Indefinido Então Retornar;
fimSe; Para cada TransferredFile de PlacedFiles Cycle PathToFile = TransferredFile.Name;").
Record.FileName = ParseLine(PathToFile, "\"); Items.OpenFile.Header = Entry.NomeArquivo;", acho que ninguém vai discutir. Obtenha o arquivo do armazenamento temporário e coloque-o em um atributo com o tipo " Items.OpenFile.Header = Entry.NomeArquivo;" pode ser feito da seguinte forma:
NewValueStorage(GetFromTemporaryStorage(Endereço));
Já resolvemos uma coisa, agora a segunda é como obter um arquivo desse armazenamento de valor (que, deixe-me lembrá-lo, está localizado no servidor) e salvá-lo no disco do cliente?
Primeiro de tudo, precisamos obter um link de navegação para o atributo do tipo " Items.OpenFile.Header = Entry.NomeArquivo;", onde colocamos o arquivo na forma de dados binários.
Tome cuidado! Este link de navegação não tem mais nada a ver com armazenamento temporário! Você pode verificar o tipo de link de navegação usando o método
Este é o endereço de armazenamento temporário (endereço)
Por tradição, a listagem de código que chama a caixa de diálogo para salvar arquivo
Descrição do Alerta = Nova Descrição do Alerta("Processamento de Salvamento de Arquivo", ThisForm); Arquivo = Nova DescriçãodeTransferFile(NomeArquivo, Endereço); ReceiveFiles = Nova Matriz; ReceiveFiles.Add(Arquivo); OpenFileDialog = NewFileSelectDialog(FileSelectDialogMode.Save); FileOpenDialog.MultipleSelect = Falso; StartReceiveFiles(DescriptionAlerts, RecomingFiles, OpenFileDialog, True);
Valor variável " Arquivo“Esta é outra característica este método. Aqui vale a pena prestar atenção em " Nome do arquivo“O fato é que ao colocar um arquivo no armazenamento temporário, perdem-se informações sobre seu nome e extensão. Portanto, não se esqueça de salvar o nome correto do arquivo, ou pelo menos sua extensão, em algum lugar, para não se incomodar com o pergunta mais tarde" Este é um documento do Word ou um MP3?"
Método " Comece a receber arquivos"semelhante ao método" Arquivos StartPlace". Simplesmente um abre uma caixa de diálogo para selecionar um arquivo, enquanto o outro, ao contrário, abre uma caixa de diálogo para salvar o arquivo.
É basicamente isso.
Ao usar este método, não há necessidade de definir nenhuma modalidade e compatibilidade de chamada síncrona nas propriedades de configuração.
Escrevi o artigo mais como um lembrete para mim mesmo.
O tempo avança inexoravelmente e a plataforma 1C 8 funciona ainda mais rápido do que desta vez.
Os formulários gerenciados agora são chamados de “interface TAXI”, as janelas modais são proibidas e o modo de usar chamadas síncronas para ramais e componentes externos interrompeu completamente a funcionalidade da maioria dessas extensões e componentes externos, além de metade dos métodos antigos. .
Em geral, pessoal, as coisas são assim - muitos de vocês leram o artigo do magnífico P. Chistov sobre como trabalhar com arquivos no 8.3
Se ainda não o fez, vá em frente e marche! ()
A essência do mecanismo para trabalhar com arquivos é resumida:
1) No cliente, selecione o arquivo
2) Colocamos em uma caixa preta
3) Salve o conteúdo da caixa preta no servidor
O problema é que isso deve ser feito especialmente, de uma forma nova e com alma.
Portanto seu
Arquivo Selecionado.Exists()
e outras coisas pagãs não funcionarão aqui.
Então, vamos lá!
Aqui está uma listagem de código que permite baixar um arquivo do cliente
Descrição do Alerta = Nova Descrição do Alerta("ProcessFileSelection", ThisForm); OpenFileDialog = NewFileSelectDialog(FileSelectDialogMode.Open); FileOpenDialog.MultipleSelect = Falso; StartFilePlace(AlertDescription, FileOpenDialog, True, UniqueIdentifier);
Estamos interessados no método “ Arquivos StartPlace“, que, na verdade, abre uma caixa de diálogo de seleção de arquivo e coloca esse arquivo em armazenamento temporário. Não adianta se preocupar com a descrição do armazenamento temporário, apenas lembre-se - este é o local onde todos os arquivos que selecionamos são colocados na forma de dados binários (caixa preta).
&No procedimento do cliente ProcessFileSelection(PlacedFiles, AdicionalParameters) Exportar If PlacedFiles = Indefinido Então Retornar;
É quase impossível entender o que existe e como armazená-lo neste armazenamento temporário. Você só pode acessar nosso arquivo através do link de navegação, que é atribuído automaticamente (veja a variável “ Para cada TransferredFile de PlacedFiles Cycle PathToFile = TransferredFile.Name;“).
Com o fato de os arquivos precisarem ser armazenados em um atributo ou recurso do tipo “ Items.OpenFile.Header = Entry.NomeArquivo;“Acho que ninguém vai discutir. Obtenha o arquivo do armazenamento temporário e coloque-o em um atributo do tipo “ Items.OpenFile.Header = Entry.NomeArquivo;”pode ser feito da seguinte forma:
NewValueStorage(GetFromTemporaryStorage(Endereço));
Já resolvemos uma coisa, agora a segunda é como obter um arquivo desse armazenamento de valor (que, deixe-me lembrá-lo, está localizado no servidor) e salvá-lo no disco do cliente?
Primeiro de tudo, precisamos obter um link de navegação para o atributo do tipo “ Items.OpenFile.Header = Entry.NomeArquivo;“, onde colocamos o arquivo na forma de dados binários.
Tome cuidado! Este link de navegação não tem mais nada a ver com armazenamento temporário! Você pode verificar o tipo de link de navegação usando o método
Este é o endereço de armazenamento temporário (endereço)
Por tradição, a listagem de código que chama a caixa de diálogo para salvar arquivo
Descrição do Alerta = Nova Descrição do Alerta("Processamento de Salvamento de Arquivo", ThisForm); Arquivo = Nova DescriçãodeTransferFile(NomeArquivo, Endereço); ReceiveFiles = Nova Matriz; ReceiveFiles.Add(Arquivo); OpenFileDialog = NewFileSelectDialog(FileSelectDialogMode.Save); FileOpenDialog.MultipleSelect = Falso; StartReceiveFiles(DescriptionAlerts, RecomingFiles, OpenFileDialog, True);
O valor da variável “ Arquivo“Esta é outra característica deste método. Aqui vale a pena prestar atenção a “ Nome do arquivo“. O fato é que ao colocar um arquivo em armazenamento temporário, perdem-se informações sobre seu nome e extensão. Portanto, não se esqueça de salvar em algum lugar o nome correto do arquivo, ou pelo menos sua extensão, para que você não precise se preocupar com a questão “ Este é um documento do Word ou um MP3?“
Método “ Comece a receber arquivos”semelhante ao método“ Arquivos StartPlace“. Um simplesmente abre uma caixa de diálogo para selecionar um arquivo, enquanto o outro, ao contrário, abre uma caixa de diálogo para salvar o arquivo.
É basicamente isso.
Ao usar este método, não há necessidade de definir nenhuma modalidade e compatibilidade de chamada síncrona nas propriedades de configuração.
Escrevi o artigo mais como um lembrete para mim mesmo.
A plataforma tecnológica 1C:Enterprise 8 permite salvar arquivos arbitrários na base de informações, recuperá-los de lá e usá-los de várias maneiras. Vejamos essas operações usando exemplos.
Antes de enviar um arquivo para a base de informações 1C, você precisa obter o endereço completo do arquivo no disco. Trabalhar com caixas de diálogo de seleção de arquivos é descrito em .
Para armazenar arquivos, use um atributo (ou registrar recurso) com o tipo Valores de armazenamento.
Carregando um arquivo arbitrário para a base de informações 1C
Qualquer arquivo pode ser representado como dados binários e carregado em Armazenamento de valor.
Ao converter dados binários em um objeto Valores de armazenamento projeto usado novos StorageValues (dados, compactação) com dois parâmetros:
- Dados— dados binários que precisam ser armazenados no armazenamento
- Compressão— taxa de compressão do algoritmo Deflation. Número inteiro no intervalo -1...9. -1 é o nível de compactação padrão. 0 - sem compactação, 9 - compactação máxima. Valor padrão: -1. O parâmetro é opcional; se não for especificado, a compactação não será usada.
//Converte o arquivo em dados binários
Arquivo = Novo BinaryData(Caminho);
//Criar novo objeto Valores de armazenamento
DataStorage = NewValueStorage(Arquivo, NewDataCompression(9) ) ;
Salvando um arquivo arbitrário da infobase 1C no disco
Para salvar um arquivo do banco de dados 1C no disco, você precisa determinar o caminho e o nome do arquivo. Para fazer isso, existe uma caixa de diálogo para salvar arquivos, cujo trabalho é descrito em.
//Obtém dados binários do armazenamento
//Data Storage - atributo de um objeto com o tipo Value Storage
//grava os dados recebidos no disco
//A variável Path contém o endereço completo do arquivo no disco
Dados. Escreva(Caminho);
Visualizando um arquivo localizado na base de informações 1C
Para visualizar um arquivo salvo no banco de dados, você deve ter um aplicativo instalado em seu computador que abra o arquivo.
//Obtém o nome do arquivo temporário com a extensão necessária
//Na variável Extension você precisa colocar a extensão do arquivo, por exemplo "pdf"
Caminho = GetTemporaryFileName(Extensão);
//Recebe dados do armazenamento
//Data Storage - atributo de um objeto com o tipo Value Storage
Dados = armazenamento de dados. Pegar() ;
//Escreve dados em um arquivo temporário
Dados. Escreva(Caminho);
//Tentando abrir o arquivo na aplicação pretendida
//Se a aplicação não for encontrada, a caixa de diálogo do sistema "Abrir com..." aparecerá.
LaunchApplication(Caminho);
O programa "1C:Enterprise - Trabalhando com Arquivos" é um programa separado produto de software, que é distribuído gratuitamente. Destina-se à visualização e edição de arquivos 1C:Enterprise em computadores onde o sistema 1C:Enterprise não está instalado.
Os seguintes formatos de arquivo são suportados:
- (*.TXT);
- (*.mxl);
- (*.htm, *.html);
- (*.grs);
- (*.geo);
Durante o processo de instalação, o programa registra as extensões mxl, grs e geo, para visualizar e editar esses arquivos basta clicar sobre eles com o mouse:
É suportado o lançamento do programa a partir de linha de comando. Neste caso é possível especificar o arquivo a ser processado. Por exemplo, para processar o arquivo “Remains.mxl”, basta executar o comando:
"D:\Arquivos de programas\1cv82fv\bin\1cv8fv.exe" D:\FileWorkshop\Remainings.mxl
"1C:Enterprise - Trabalhando com arquivos" suporta um modo semelhante ao implementado no sistema 1C:Enterprise. Assim, por exemplo, o usuário pode comparar visualmente dois relatórios de saldo:
Opções de entrega
Existem duas opções de entrega para o programa 1C:Enterprise - Trabalhando com Arquivos:
- Falante russo;
- internacional.
A diferença entre a entrega internacional e a entrega no idioma russo é que ela inclui as mesmas que o sistema 1C:Enterprise usa.
Além disso, para entrega internacional, a opção de linha de comando /L pode ser usada para especificar o idioma da interface a ser usado. Por exemplo, para processar o arquivo "Remainings.mxl" em um programa com Inglês interface (pt), basta executar o comando:
"D:\Arquivos de Programas\1cv82fv\bin\1cv8fv.exe" /Len D:\FileWorkshop\Remainings.mxl