1c cargar y descargar datos de Excel. Cargar datos a Excel con la configuración de varios parámetros

31.10.2021

No es ningún secreto que se desarrolló una aplicación 1C exitosa para ayudar a los contables, permitiéndoles realizar múltiples operaciones de la manera más rápida y eficiente posible. Sin embargo, los contadores novatos a veces tienen que “sudar un poco” para comprender todas las posibilidades que contiene este software. Por supuesto, al profundizar en el mecanismo para realizar operaciones individuales, al comprender todo hasta el más mínimo detalle, los contadores no solo quedan satisfechos software, pero también notan un aumento en la productividad de su trabajo.

Uno de los problemas urgentes que enfrentan los contadores novatos que no tienen experiencia con 1C es cargar en 1C desde un Excel creado previamente. De hecho, es difícil descubrir por su cuenta cómo guardar un documento en Excel en 1C, y también es problemático descubrir cómo guardarlo en Excel desde 1C para luego trabajar directamente con el editor de hojas de cálculo.

Entonces, para eliminar todos los problemas, debes concentrarte y estudiar las instrucciones, profundizando en cada paso del algoritmo propuesto. Por supuesto, los principiantes no deben mostrar su propia creatividad al realizar tales manipulaciones. Sólo los usuarios experimentados pueden permitirse el lujo de realizar operaciones más complejas. Los contadores principiantes primero solo necesitan “ponerse manos a la obra” y aprender a realizar acciones que permitan guardar datos en Excel. Solo después de esto podrá ampliar sus conocimientos sobre cómo importar Excel al programa 1C.

Mecanismos de transacción

También me gustaría señalar que el mecanismo para realizar las acciones deseadas puede diferir según la versión del programa 1C: Contabilidad instalada en la computadora. En la más Últimas Versiones Este proceso ya no va acompañado de problemas particulares. Es por eso que los usuarios experimentados recomiendan monitorear las actualizaciones y, si las encuentran, asegúrese de actualizar el programa. Si lo tienes instalado en tu ordenador La versión más nueva Software, entonces será más fácil descubrir cómo cargarlo en Excel en 1C o guardarlo en el programa.

Algoritmo de carga

Primero, decida qué es exactamente lo que le gustaría guardar en 1C. Abra la tabla que creó anteriormente en Excel y verifique si todos los datos son importantes para cargarlos en el programa. Si posteriormente no necesita algunas columnas en un documento de hoja de cálculo porque no tienen valor, simplemente elimínelas con anticipación para no sobrecargar el programa 1C: Contabilidad. Después de esto, no olvides volver a guardar la tabla que editaste.

Ahora puede comenzar acciones directas que le permitan cargar en 1C desde Excel. Primero abra el programa, busque la línea "Directorio" en el lado izquierdo y haga clic en ella. Se abrirán subsecciones adicionales, entre las que seleccione la línea "Nomenclatura". Ahora en el panel horizontal habrá un menú en el que busque “Nomenclatura y precios” al hacer clic en él se abrirá una sublista en la que encontrará la palabra deseada “Descargar”.

Para que la importación se realice correctamente, es importante asegurarse de que el documento descargado se guarde en el formato correcto. Puede importar a 1C:Accounting documentos que logró guardar en Excel 2003 o versiones posteriores. El documento también se puede guardar en formato mxl y ods. Si ha hecho todo exactamente de esta manera de antemano, podrá importar.

Es fácil entender cómo guardarlo en Excel en 1C haciendo clic en el botón "Descargar". La ventana de carga habitual aparecerá en la pantalla. Ya solo queda indicar la ruta donde se encuentra el documento que deseas descargar. Una vez completada la importación a 1C desde Excel, tenga en cuenta que en el programa será exactamente igual que en el editor de hojas de cálculo.

En este punto, la importación se completa, pero sus acciones continúan, especialmente si no editó la tabla primero, por lo que quedan filas y columnas adicionales en ella. Arriba de las columnas encontrarás una frase como “Especificar detalles”; al hacer clic en ella, deberás seleccionar una de las opciones que se ofrecen en la lista; Una vez que haya trabajado exitosamente con cada columna, revise las filas. Si encuentra algo innecesario, no dude en eliminarlo.

Para realizar tales manipulaciones, seleccione una fila y luego haga clic en el botón "Eliminar fila".

Al estudiar las instrucciones sobre cómo descargar a 1C desde un Excel existente, encontrará fácilmente consejos de que después de editar la tabla, debe completar los datos que faltan. Si realiza estas manipulaciones con cuidado, será más fácil trabajar con el programa más adelante. De la misma forma será más fácil realizar la búsqueda.

Esto completa la importación del editor de tablas al programa 1C: Contabilidad. Si sigue estrictamente las instrucciones sobre cómo descargar desde Excel en 1C, pero algo sale mal, asegúrese de que el programa venga acompañado de la última versión.

Subir algoritmo

Entonces, habiendo entendido completamente cómo cargar documentos previamente creados en Excel en 1C, ahora puede profundizar en cómo guardar un documento en Excel desde 1C. Algunos contadores también suelen encontrarse con esta necesidad. Afortunadamente, las nuevas versiones del programa no sólo tienen esta característica, sino que la realización de dichas tareas ya viene acompañada de mejoras notables.

En primer lugar, el documento cargado se puede utilizar como lista de precios que se puede enviar a socios y proveedores. Para “forzar” la carga del archivo, inicialmente debes seguir la ruta que ya conoces, abriendo primero “Nomenclatura”, luego “Nomenclatura y Precios”, y finalmente esta vez la línea “Subir”. Después de esto, aparecerá una ventana en la que deberá especificar las columnas que le gustaría ver más adelante en Excel.

También es posible agregar columnas adicionales; los botones "Agregar" y "Eliminar" se encuentran en el panel horizontal superior para resolver dichas tareas intermedias. Una vez que esté convencido de que todos los datos necesarios están incluidos y marcados, debe hacer clic en el botón "Cargar", indicar la ruta donde desea guardar dicho archivo y simplemente esperar a que finalice el proceso realizado por el propio programa.

No tendrás que esperar mucho porque la operación se completa con bastante rapidez.

Cuando el programa anuncia la finalización del proceso, solo queda abrir el archivo descargado y asegurarse de que contiene todo lo necesario para seguir trabajando. Los contadores experimentados pueden crear una carga no solo de un puesto, sino de varios a la vez, no en docenas, sino en cientos. Gracias a estas acciones, se ahorra mucho tiempo, lo que es bien recibido por quienes antes tenían que gastar enormes recursos de tiempo para realizar tales tareas.

Por lo tanto, el proceso de carga y carga de documentos de Excel en el programa 1C: Contabilidad estuvo acompañado anteriormente de mayores problemas. Actualmente, habiendo actualizado el programa al máximo versión actual y habiendo estudiado recomendaciones útiles, cualquier contador puede realizar este tipo de tareas.

En la última lección vimos.

Sin embargo, el ejemplo más común es el intercambio entre contabilidad y nómina. Estas bases no están subordinadas entre sí y es posible que ni siquiera estén conectadas inicialmente.

Todo lo que necesitamos es descargar periódicamente del salario al departamento de contabilidad.

Consideremos el proceso de descarga de datos de 1C.

Principios de carga y descarga de datos 1C.

En Contabilidad, el documento Ventas de bienes y servicios puede tener 30 campos. Esto es contabilidad, tiene sus propios objetivos, muchos campos están dedicados al plan de cuentas y subcuentas.

En Gestión Comercial, el mismo documento Ventas de bienes puede tener 25. Esta es contabilidad operativa, tiene sus propios objetivos. Pero las cuentas del plan de cuentas no se indican allí.

Los nombres de los campos en estas dos bases de datos pueden ser diferentes. Entonces, ¿cómo cargar un documento desde una base de datos y cargar otro en otra base de datos?

Para describir cómo se debe convertir un documento para que pueda cargarse de una base de datos a otra, existen reglas de intercambio.

Son un archivo con extensión XML. Para crearlo, existe una configuración especial de 1C llamada "Conversión de datos".

Para el intercambio entre configuraciones estándar, existen reglas de intercambio de datos estándar que están integradas en configuraciones típicas Exchanges (Servicio/Intercambio con xxx) o se suministran por separado con .

Descargar BU-ZP 1C

Desde la configuración estándar Gestión de salarios y recursos humanos hasta la configuración estándar Contabilidad generalmente carga periódicamente información sobre los resultados de la nómina, incluido el pago de impuestos.

Para que esto sea posible, primero debes subir la configuración de Contabilidad a la nómina.

Para cargar 1C de 1C Contabilidad a 1C Salario, seleccione el elemento del menú Servicio/Intercambio de datos con Salario/Cargar datos en Contabilidad.

Al cargar 1C por primera vez, no olvide marcar la casilla "Información para cargar 1C a una nueva base de información".

Cómo cargar información inicial en Salario: consulte el siguiente artículo Cargando 1C.

Descargar ZP-BU 1C

Después de cargar la información inicial del Departamento de Contabilidad en el Salario, puede cargar las acumulaciones del Salario al Departamento de Contabilidad.

En Salario, seleccione el menú Servicio/Intercambio de datos/Descargar datos en un programa de contabilidad.

En el formulario de configuración de carga de 1C, de forma predeterminada, solo necesita seleccionar el período y la ruta donde desea cargar el archivo de datos.

El formato de carga 1C se muestra como un hipervínculo, en texto azul. Puede cambiarlo haciendo clic en el hipervínculo y seleccionando una configuración de contabilidad diferente.

Descargar BU-UT 1C

Para cargar 1C desde Contabilidad a Gestión comercial, debe crear configuraciones de intercambio. Esto le permitirá no solo realizar cargas únicas de 1C, sino también configurar un intercambio periódico completo, como en.

Para realizar la configuración, seleccione el elemento del menú Servicio/Intercambio de datos con Gestión comercial/Configurar intercambio de datos en Contabilidad.

La configuración se crea mediante un "asistente".

No tomaremos el camino fácil y controlaremos todos los ajustes nosotros mismos; para ello deberá seleccionar el modo de funcionamiento Experto.

Dado que estamos creando una configuración desde cero, seleccionaremos "Crear una configuración de intercambio" (en consecuencia, puede "continuar" si interrumpió el asistente antes o cambiar si el asistente se completó).

Esta configuración de intercambio se realiza en dos bases de datos: primero en una y luego en la otra.

En consecuencia, seleccionaremos "Crear usando archivo" si comenzó a crear uno nuevo desde cero en Gestión comercial y aquí necesita completar la configuración (de manera similar, si comienza en Contabilidad, deberá completarlo en Gestión comercial). .

La configuración para los intercambios "a través de archivos" es simple y no se muestra aquí en las imágenes. Pero para una conexión COM "directa" hay ejemplos aquí.

Por ejemplo, si Trade Management es "archivo", se encuentra en el disco. .

Ejemplo, si Trade Management está ubicado en el servidor 1C. El nombre del servidor y de la base de datos es .

Manera de base de datos de archivos, así como el servidor y el nombre de la base de datos en el servidor, se muestran en la ventana de selección de la base de datos en 1C.

Aquí debe indicar si planea descargar algo de Trade Management. Si es así, entonces se trata de un intercambio “bidireccional”.

Podemos especificar filtros para los documentos cargados. Por ejemplo, en términos de organizaciones.

La siguiente página indica el período a partir del cual se espera el intercambio, así como la lista de documentos que se cargarán.

Esto completa la primera parte de la configuración. Según sus resultados, 1C crea un archivo de configuración. Ahora debe ir a Gestión comercial y continuar la configuración allí, seleccionando la opción "Continuar usando el archivo" y especificando este archivo.

Después de configurar el intercambio desde ambas bases de datos, 1C ofrece realizar una carga inicial de los directorios de 1C y comparar objetos. Este es un análogo de la descarga primaria de 1C para el funcionamiento normal posterior del intercambio.

Atención a este punto, si Trade Management no es una base de datos vacía, tiene sus propios directorios, sobre todo si se mantienen desde hace mucho tiempo.

Si no estás seguro de este punto:

  • Realizar copias de seguridad de ambas bases de datos (especialmente si el intercambio es bidireccional)
  • Solicite a los usuarios que no trabajen en estas bases de datos mientras realiza la descarga inicial de 1C (fines de semana y tardes :)
  • Descargue 1C, verifique que los directorios no estén duplicados
  • Si algo anda mal, regrese a la copia de seguridad.

Descargar UT-Retail 1C

La configuración típica de 1C Retail se utiliza a menudo junto con la configuración de Gestión comercial. Normalmente, UT se utiliza en tiendas minoristas y Retail en oficinas.

Estamos viendo un ejemplo de cómo configurar el intercambio de UT edición 11 con Retail.

Seleccione Administración en la interfaz, luego Intercambios de datos, Agregar/Crear Exchange con configuración minorista.

La configuración del intercambio se realiza en dos bases de datos: primero en una y luego en la otra.

En consecuencia, seleccionaremos "Continuar" si comenzó a crear uno nuevo desde cero en Retail y aquí necesita completar la configuración (de manera similar, si comienza en Trade Management, deberá completarlo en Retail).

En esta pestaña, selecciona el método de transferencia de información entre dos bases de datos: a través de un archivo (compartir). Omita esta página si desea utilizar otra opción.

En esta pestaña, selecciona el método de transferencia de información entre dos bases de datos: a través de un archivo (FTP). Omita esta página si desea utilizar otra opción.

Página de configuración final. Para especificar aclaraciones, haga clic en el botón “Configurar restricciones”.

Aquí puede especificar la fecha a partir de la cual se cargarán los documentos, así como las selecciones (filtros) por organizaciones, almacenes, etc.

En la pestaña de correspondencia, puede configurar la correspondencia de algunos directorios (tiendas = departamentos y cajas).

Esto completa la primera etapa de configuración. Como resultado, se creó un archivo de configuración. Debe completar la configuración en la base de datos minorista especificando Continuar usando el archivo.

Este método es sencillo. Su esencia es que el objeto Documento tabular tiene métodos:

  • Anote (< ИмяФайла>, < ТипФайлаТаблицы >) para cargar datos a un archivo;
  • Leer (< ИмяФайла>, < СпособЧтенияЗначений >) para cargar datos desde un archivo.

¡Atención!

El método Write() está disponible tanto en el cliente como en el servidor. El método Read() solo está disponible en el lado del servidor. Necesito recordar esto
al planificar la interacción cliente-servidor.

Veamos un ejemplo de cómo guardar un documento de hoja de cálculo en un archivo. Es necesario crear y completar el objeto TabularDocument de cualquier forma, y descarga al archivo se hace con una sola línea:

TabDoc . Escribir (ruta de archivo, tipo de archivo de documento tabular. XLSX);

Aquí TabDoc- formado documento de hoja de cálculo, La ruta al archivo— nombre del archivo a cargar, Tipo de archivo de documento tabular.XLSX— formato del archivo creado. Se admiten los siguientes formatos de Excel:

  • XLS95: formato Excel 95;
  • XLS97: formato Excel 97;
  • XLSX es un formato de Excel 2007.

TabDoc = Nuevo documento tabular;
TabDoc . Read(PathToFile, Método de lecturaTabularDocumentValues.Value);

Aquí La ruta al archivo— ruta al archivo de Excel descargado. Método de lectura de valores de un documento tabular.Valor Determina cómo se deben interpretar los datos leídos de un documento fuente. Opciones Disponibles:

  • Significado;
  • Texto.

Intercambio vía OLE

El intercambio a través de la tecnología de automatización OLE es quizás la opción más común para el trabajo de software con archivos excel. Le permite utilizar todas las funciones proporcionadas por Excel, pero es más lento en comparación con otros métodos. Para intercambiar vía OLE, se requiere la instalación de MS Excel:

  • En la computadora del usuario final, si el intercambio ocurre en el lado del cliente;
  • En la computadora servidor 1C:Enterprise, si el intercambio se produce en el lado del servidor.

Ejemplo descarga:

// Crea un objeto COM
Excel = Nuevo COMObject("Excel.Application");
// Deshabilitar advertencias y preguntas
Sobresalir . Alertas de visualización = Falso;
// Crea un nuevo libro
Libro = Excel. Libros de trabajo. Agregar();
// Posición en la primera hoja.
Hoja = Libro. Hojas de trabajo(1);

// Escribe un valor en una celda.
Hoja . Celdas (Número de fila, Número de columna). Valor = ValorCelda;

// Guarda el archivo
Libro . Guardar como (nombre de archivo);


Sobresalir . Abandonar();
Sobresalir = 0;

Ejemplos lectura:

// -- OPCIÓN 1 --

// Crea un objeto COM
Excel = Nuevo COMObject("Excel.Application");
//Abre un libro
Libro = Excel. Libros de trabajo. Abierto( La ruta al archivo);

Hoja = Libro. Hojas de trabajo(1);

// cerrando el libro
Libro . Cerrar(0);

//Cierra Excel y libera memoria
Sobresalir . Abandonar();
Sobresalir = 0;

// -- OPCION 2 --

//Abre un libro
Libro = ObtenerObjetoCOM( La ruta al archivo);
// Posicionamiento en la hoja deseada
Hoja = Libro. Hojas de trabajo(1);

// Lee el valor de la celda, generalmente el bucle transversal de la celda se encuentra aquí
CellValue = Hoja. Celdas (Número de fila, Número de columna). Valor;

// cerrando el libro
Libro . Solicitud. Qui t();

Para derivación Para todas las filas completadas de la hoja de cálculo de Excel, puede utilizar las siguientes técnicas:

// -- OPCIÓN 1 --
Número de filas = Hoja. Celdas(1, 1). Celdas especiales (11). Fila;
Para RowNumber = 1 por ciclo de número de filas
CellValue = Hoja. Celdas (Número de fila, Número de columna). Valor;
Fin del ciclo;

// -- OPCION 2 --
Número de fila = 0;
Mientras el ciclo de la verdad
Número de fila = Número de fila + 1;
CellValue = Hoja. Celdas (Número de fila, Número de columna). Valor;
Si NO está lleno de valor (Valor de celda)) Entonces
Abortar;
terminara si;
Fin del ciclo;

En lugar de recorrer todas las filas de la hoja secuencialmente, puede volcar todos los datos en una matriz y trabajar con él. Este enfoque será más rápido al leer una gran cantidad de datos:

TotalColumnas = Hoja. Celdas(1, 1). Celdas especiales (11). Columna;
Total de filas = Hoja. Celdas(1, 1). Celdas especiales (11). Fila;

Región = Hoja. Rango(Hoja. Celdas(1, 1), Hoja. Celdas(TotalRows,TotalColumns));
Datos = Región. Valor. Descargar();

La siguiente tabla muestra las propiedades y métodos más populares para trabajar con Excel a través de OLE:

Acción Código Un comentario
Trabajando con la aplicación
Configurar la visibilidad de la ventana de la aplicación Sobresalir . Visible= Falso;
Configuración del modo de salida de advertencia (mostrar/no mostrar) Sobresalir . Mostrar alertas= Falso;
Cerrando la aplicación Sobresalir . Abandonar();
trabajando con un libro
Creando un nuevo libro Libro = Excel. Libros de trabajo. Agregar();
Abrir un libro de trabajo existente Libro = Excel. Libros de trabajo. Abrir (nombre de archivo);
guardar un libro Libro . Guardar como (nombre de archivo);
cerrando el libro Libro . Cerrar(0);
trabajando con una hoja
Configurar la hoja actual Hoja = Libro. Hojas de trabajo(Número de hoja);
Configurando el nombre Hoja . Nombre = Nombre;
Configurar la protección Hoja . Proteger();
Quitar la protección Hoja . Desproteger();
Configurar la orientación de la página Hoja . Configuración de página. Orientación = 2; 1 - retrato, 2 - paisaje
Configurar el borde izquierdo Hoja . Configuración de página. Margen izquierdo = Excel. Centímetros A Puntos (Centímetros);
Establecer el límite superior Hoja . Configuración de página. Margen superior = Excel. Centímetros A Puntos (Centímetros);
Establecer el borde derecho Hoja . Configuración de página. MargenDerecho = Excel. Centímetros A Puntos (Centímetros);
Establecer el límite inferior Hoja . Configuración de página. Margen inferior = Excel. Centímetros A Puntos (Centímetros);
Trabajar con filas, columnas, celdas.
Configuración del ancho de columna Hoja . Columnas (Número de columna). Ancho de columna = Ancho;
Eliminar una línea Hoja . Filas (Número de fila). Borrar();
Eliminar una columna Hoja . Columnas (Número de columna). Borrar();
eliminar una celda Hoja . Celdas (Número de fila, Número de columna). Borrar();
Establecer el valor Hoja . Celdas (Número de fila, Número de columna). Valor = Valor;
Fusionar celdas Hoja . Rango (Hoja. Celdas (Número de fila, Número de columna), Hoja. Celdas (Número de fila1, Número de columna1)). Unir();
Configurando la fuente Hoja . Celdas (Número de fila, Número de columna). Fuente. Nombre = Nombre de fuente;
Configurar el tamaño de fuente Hoja . Celdas (Número de fila, Número de columna). Fuente. Tamaño = Tamaño de fuente;
Configuración de fuente en negrita Hoja . Celdas (Número de fila, Número de columna). Fuente. Atrevido = 1 ; 1 — negrita, 0-normal
Poner cursiva Hoja . Celdas (Número de fila, Número de columna). Fuente. Itálico = 1 ; 1 - cursiva, 0 - normal
Configurar la fuente subrayada Hoja . Celdas (Número de fila, Número de columna). Fuente. Subrayar = 2 ; 2 - subrayado, 1 - no

Para saber qué propiedad debe cambiarse o qué método llamar, puede utilizar macros Sobresalir. Si graba una macro con las acciones requeridas, podrá ver el código VBA de la macro grabada.

Usando COMSafeArray

Al descargar grandes cantidades de datos de 1C a Excel, puede utilizar el objeto para acelerar COMSafeArray. Según la definición del asistente de sintaxis, COMSafeArray es un contenedor de objetos sobre matriz multidimensional matriz segura de COM. Le permite crear y utilizar SafeArray para intercambiar datos entre objetos COM. En pocas palabras, es una serie de valores que se pueden utilizar para intercambiar entre aplicaciones utilizando tecnología OLE.

// Crear COMSafeArray
ArrayCom = Nuevo COMSafeArray("VT_Variant", TotalColumns, TotalRows);
// Llenar COMSafeArray
Para Página = 0 Por TotalLines - 1 ciclo
Para Número = 0 Total de columnas - 1 ciclo
ArrayCom . SetValue(Recuento, Página, Valor);
Fin del ciclo;
Fin del ciclo;
// Asignación de un área de hoja de cálculo de Excel a valores de COMSafeArray
Hoja . Rango (Hoja. Celdas (1, 1), Hoja. Celdas (Total de filas, Total de columnas)). Valor = ArrayCom;

Intercambio vía ADO

Un archivo de Excel, cuando se intercambia a través de ADO, es una base de datos a la que se puede acceder mediante consultas SQL. No es necesaria la instalación de MS Excel, pero debe tener un controlador ODBC al que se le proporcionará acceso. El controlador ODBC a utilizar se determina especificando la cadena de conexión al archivo. Normalmente, el controlador requerido ya está instalado en la computadora.

El intercambio a través de ADO es notablemente más rápido que el intercambio a través de OLE, pero al cargar, no es posible utilizar la funcionalidad de Excel para diseñar celdas, diseñar páginas, configurar fórmulas, etc.

Ejemplo descarga:


Conexión = Nuevo COMObject("ADODB.Connection");


Compuesto . Cadena de conexión = "

|Fuente de datos=" + Nombre de archivo + ";
;
Compuesto . Abierto(); //Abrir una conexión

// Crea un objeto COM para el comando
Comando = Nuevo COMObject("ADODB.Command");
Equipo

// Asignar texto de comando para crear una tabla
Equipo . Texto de comando = "CREAR TABLA [Hoja1] (Columna1 char(255), Columna2 fecha, Columna3 int, Columna4 flotante)";
Equipo . Ejecutar(); // Ejecuta el comando

// Asignar texto de comando para agregar una fila de la tabla
Equipo . Texto de comando = "INSERTAR EN [Hoja1] (Columna1, Columna2, Columna3, Columna4) valores ('abvwhere', '11/8/2017', '12345', '12345,6789')";
Comando.Execute(); // Ejecuta el comando

// Elimina el comando y cierra la conexión.
Comando = Indefinido;
Compuesto . Cerca();
Conexión = Indefinida;

Para crear una nueva hoja y formar su estructura, puedes usar objetos. Catálogo ADOX Y Tabla ADOX. En este caso, el código se verá así:

// Crea un objeto COM para trabajar con el libro.
Libro = Nuevo COMObject("ADOX.Catalog");
Libro . ActiveConnection = Conexión;

// Crea un objeto COM para trabajar con la estructura de datos en la hoja
Tabla = Nuevo COMObject("ADOX.Table");
Mesa . Nombre = "Hoja1";
Mesa . Columnas. Agregar("Columna1", 202);
Mesa . Columnas. Agregar("Columna2", 7);
Mesa . Columnas. Agregar("Columna3", 5);
Mesa . Columnas. Agregar("Columna4", 5);

// Crea una hoja con la estructura descrita en el libro de trabajo
Libro . Mesas. Agregar (tabla);
Tabla = Indefinido;
Libro = Indefinido;

En el ejemplo anterior, en el método

Mesa . Columnas. Adjuntar(“Columna1”, 202);

el segundo parámetro especifica el tipo de columna. El parámetro es opcional, aquí hay algunos valores de tipo de columna:

  • 5 - anuncioDoble;
  • 6 - moneda publicitaria;
  • 7 - fecha de anuncio;
  • 11 - anuncio booleano;
  • 202 - adVarWChar;
  • 203 - adLongVarWChar.

Ejemplo lectura:

// Crea un objeto COM para la conexión
Conexión = Nuevo COMObject("ADODB.Connection");

// Establece la cadena de conexión
Compuesto . Cadena de conexión = "
|Proveedor=Microsoft.ACE.OLEDB.12.0;
|Fuente de datos=" + Nombre de archivo + ";
|Propiedades extendidas=""Excel 12.0 XML;HDR=YES"";";
Compuesto . Abierto(); //Abrir una conexión

// Crea un objeto COM para recibir la selección
Seleccionar = Nuevo COMObject("ADODB.Recordset");
SolicitarTexto = "SELECCIONAR * DE [Hoja1$]";

// Ejecutar la solicitud
Muestra . Abrir (QueryText, Conexión);

// Omitir el resultado de la muestra
Aún no hay una selección. Bucle EOF()
Valor de la columna 1 = Selección. Campos. Artículo ("Columna1"). Valor ; //Acceso por nombre de columna
Column2Value = Selección. Campos. Artículo(0). Valor; // Acceso por índice de columna
Muestra . MoverSiguiente();
Fin del ciclo;

Muestra . Cerca();
Muestra = Indefinido;
Compuesto . Cerca();
Conexión = Indefinido;

En la cadena de conexión el parámetro HDR determina cómo se percibirá la primera línea de la hoja. Posibles opciones:

  • SÍ: la primera línea se trata como nombres de columnas. Se puede acceder a los valores por nombre e índice de columna.
  • NO: la primera línea se trata como datos. Solo se puede acceder a los valores por índice de columna.

Estos ejemplos sólo cubren algunos objetos ADO. El modelo de objetos ADO consta de los siguientes objetos:

  • conexión;
  • Dominio;
  • conjunto de registros;
  • Registro;
  • Campos;
  • Arroyo;
  • Errores;
  • parámetros;
  • Propiedades.

Subir sin programar

Para guardar datos de 1C a Excel, no siempre es recomendable recurrir a la programación. Si en el modo Enterprise el usuario puede mostrar los datos necesarios para la descarga, entonces se pueden guardar en Excel sin programación.

Para guardar un documento de hoja de cálculo (por ejemplo, el resultado de un informe), puede llamar al comando Ahorrar o Guardar como… menú principal.

En la ventana que se abre, debe seleccionar el directorio, el nombre y el formato del archivo guardado.

Para guardar datos listas dinámicas(por ejemplo, una lista de elementos) debe:

  1. Enviar datos a un documento de hoja de cálculo usando el comando Más ⇒ Lista...;
  2. Guarde el documento de hoja de cálculo en el formato requerido.

A pesar de que 1C es el más popular, conveniente y confiable sistema de informacion, que tiene en su línea un conjunto de soluciones para automatizar y procesar absolutamente todos los procesos comerciales en empresas de cualquier tamaño y campo de actividad, los usuarios todavía tienen la necesidad diaria de descargar datos de 1C a programas de terceros o archivos. En este artículo veremos qué es la descarga desde 1C y le mostraremos cómo descargar desde 1C y qué problemas pueden surgir durante este proceso.

Datos que se pueden descargar desde 1C

1C de cualquier configuración normalmente admite la carga de datos como:

  • Impresión de formularios;
  • Informes;
  • Tablas y listas.

Es posible cargar datos desde 1C 8.3 en muchos formatos populares:

Cargar formularios e informes impresos

Cualquier formulario o informe impreso en 1C se puede guardar en el formato deseado. Para hacer esto, deberá abrir el formulario o informe, luego seleccionar en el menú principal Archivo - Guardar como.

Después de esto, se abrirá una ventana para guardar el archivo, indicando el nombre y tipo del archivo:



Posibles problemas al descargar desde 1C.


Esto se debe al hecho de que formulario impreso o el informe no está activado actualmente. Para que el formulario impreso esté disponible para guardar, solo necesita hacer clic con el mouse en cualquier parte del mismo:


Subir a Excel

El procesamiento de datos en el formato tabular más popular requiere una carga adecuada. Para guardar los datos necesarios en formato excel, debe especificar el tipo de hoja Excel2007-...(*.xlsx) en el cuadro de diálogo para guardar el archivo. Con menos frecuencia es necesario guardar datos en el antiguo formato de hoja de Excel (*.xls):


Del mismo modo, al elegir el formato deseado, puede cargar desde 1C a PDF, desde 1C a WORD, desde 1C a CSV y también a otros formatos.

Subir tablas arbitrarias desde 1C

Esta sección le mostrará cómo puede cargar cualquier dato, siempre que tenga los derechos para hacerlo.

1C ha desarrollado un mecanismo estándar que le permite cargar cualquier lista (por ejemplo, una lista de documentos o elementos de directorio). Para hacer esto, en el panel de comando de cualquier lista, en el grupo "Más" comando disponible "Obtener una lista":



La información se mostrará en un documento de hoja de cálculo especial. Este documento tiene el mismo aspecto que cualquier otro informe en 1C y se puede cargar de la misma manera usando el comando Archivo - Guardar como:



Cómo subir datos que no están visibles en la lista

A menudo, la tarea de descargar una lista va acompañada de la necesidad de agregar columnas que definitivamente están en el documento (directorio), pero que por alguna razón no son visibles en la lista actual. Ejemplo: en la lista “Clientes”, agregue el campo “Teléfono” para cargar, que se muestra solo en el panel adicional a la derecha:


Para que el teléfono se descargue de 1C, primero debe agregarse a la lista. Para hacer esto necesitas llamar al comando. "Más - Cambiar de forma". A continuación, debemos encontrar el que necesitamos en la lista de columnas. Aquí hay un truco: los desarrolladores configuraciones típicas casi siempre agrega un campo "Enlace". Si te paras sobre él y luego presionas el botón luego veremos todos los campos posibles de este directorio. Encontrar el campo "Teléfono" y marque la casilla de uso.



Después de esto, la base de datos de clientes con números de teléfono se puede cargar en un archivo usando el comando estándar "Obtener una lista" y vender a la competencia.

Código 1C v 8.x // El procedimiento descarga datos del directorio especificado en modo de exportación a un archivo en formato Microsoft Excel
// con el nombre especificado, usando la conversión de datos a tipo de número y tipo de cadena;
Procedimiento BasicActionsFormsExport(Botón)
Intentar
Intentar
// Carga un objeto de Microsoft Excel
Estado("Descargando datos de 1C a Microsoft Excel...");
Aplicación Excel = Nuevo COMObject("Excel.Aplicación");
Excepción
Informe ("Error al iniciar Microsoft Excel."
+ Símbolos.PS + ErrorDescription(), MessageStatus.Attention);
Devolver;
intento final;

// Crea un libro, por defecto ya tiene hojas
Libro = ExcelApplication.WorkBooks.Add();

// Usa la primera hoja del libro de Excel.
Hoja = Libro.WorkSheets(1);

// Crea un encabezado de documento en la primera línea de la hoja.
Columna = 1;
Para cada página del ciclo TP
Si página.Descargar Entonces
Hoja.Celdas(1, Columna).Valor = página.NombreAtributo;
Columna = Columna + 1;
terminara si;
Fin del ciclo;

// Subir datos del directorio
selección = Directorios[Nombre del directorio].Select();
CadenaDeHoja = 2;
Mientras que fetch.Next() bucle
Columna = 1;
Para cada página del ciclo TP

Si página.Descargar Entonces
Intentar
// Establece el valor en fila y columna
Si TypeValue (selección [página.AttributeName]) = Tipo ("Número") Entonces
// Establece el formato para el tipo de Número
Sheet.Cells(SheetRow, Column).NumberFormat = "0.00";

Formato(selección[página.NombreAtributo],"CH=0");
de lo contrario
// Para todos los demás tipos, establece el formato en "Texto"
Sheet.Cells(SheetRow, Column).NumberFormat = "@";
Hoja.Celdas(HojaFila, Columna).Valor =
Línea(selección[página.NombreAtributo]);
terminara si;
excepción
// en caso de error, muestra el número de fila y columna
Informe ("Valor de configuración de error para: " +
selección[páginaAtributoNombre]);
Informe("Página: " +SheetLine+ "Recuento: " +
Columna + " Rec: " + página.Nombre de los accesorios);
intento final;
Columna = Columna + 1;
terminara si;

Fin del ciclo;
CadenaDeHoja = CadenaDeHoja + 1;
Estado("Exportar de 1C a Excel" + SheetString);
Fin del ciclo;

// Guarda el libro creado en un archivo xls
Libro.Guardar como (nombre de archivo);

// Asegúrate de cerrar la conexión al objeto COM para liberar memoria
AplicaciónExcel.Salir();

Notificar("Archivo cargado exitosamente: " + nombre de archivo);

Excepción
// Manejo de errores al exportar datos de 1C a Excel
Informe("Error al escribir los datos del archivo:" + Nombre de archivo);
Informe(DescripciónError());
Intentar
AplicaciónExcel.Salir();
Excepción
intento final;
intento final;
Procedimiento final
Código 1C v 7.x // El ejemplo más simple salida de 1C:Enterprise 7.7 a MS Excel. Asegurándose de que el libro de trabajo tenga una sola hoja,
//establece el tamaño, negrita y color de la fuente, ancho de columnas, marcos y relleno de celda. Alineación del texto
//celdas, agrupar filas, establecer el formato numérico de las celdas, congelar el área.

Salida del procedimiento()
Intentar
Aplicación=CreateObject("Excel.Aplicación");
Excepción
Informe(DescripciónError(),"!!!");
Report("Es posible que MS Excel no esté instalado en esta computadora.");
Devolver;
intento final;

//Crear un libro de trabajo

WorkBook=Aplicación.WorkBooks.Add();
//Obteniendo una ventana

Ventana=WorkBook.Windows(1);
//Establecer la ventana invisible para acelerar la salida

Ventana.Visible=0;
//Asegurar que el libro tenga una sola hoja

Si WorkBook.Worksheets.Count=0 Entonces
Libro de trabajo.Hojas de trabajo.Agregar();
De lo contrario
Application.DisplayAlerts=0;//no emitir advertencias

Mientras WorkBook.Worksheets.Count>1 ciclo
WorkBook.Worksheets(1).Delete();
Fin del ciclo;
Application.DisplayAlerts=-1;//restaurar el indicador de advertencia

terminara si;
//Obteniendo una hoja de trabajo

Hoja de trabajo=Libro de trabajo.Hojas de trabajo(1);
//Establece el nombre de la hoja de trabajo

Worksheet.Name="Resultado de ejemplo";

//Titulo del documento

Worksheet.Range("A1").Value="Ejemplo de salida de 1C:Enterprise en MS Excel";!}
Hoja de trabajo.Range("A2").Value="hoy"+ТекущаяДата();!}
Worksheet.Range("A1:A2").Font.Size=14;//tamaño de fuente

Worksheet.Range("A1:A2").Font.Bold=-1;//fuente en negrita

//Establecer ancho de columna

Hoja de trabajo.Columnas(1).ColumnWidth=60;
Hoja de trabajo.Columnas(2).ColumnWidth=15;
Hoja de trabajo.Columnas(3).ColumnWidth=15;

//encabezado del documento

Worksheet.Range("A4").Value="Primera columna";!}
Para s=7 a 10 ciclos//cuadros

Hoja de trabajo.Range("A4").Borders(s).LineStyle=1;
Hoja de trabajo.Rango("A4").Bordes(s).Peso=-4138;//xlMedio

Fin del ciclo;
Worksheet.Range("A4").Interior.ColorIndex=15;//rellenar con gris

Worksheet.Range("A4").HorizontalAlignment=-4108 //alinear el texto al centro

Hoja de trabajo.Range("B4").Value="Segundo";!}
Para s=7 a 10 ciclos
Hoja de trabajo.Range("B4").Borders(s).LineStyle=1;
Hoja de trabajo.Rango("B4").Bordes(es).Peso=-4138;
Fin del ciclo;
Hoja de trabajo.Range("B4").Interior.ColorIndex=15;
Hoja de trabajo.Range("B4").HorizontalAlignment=-4108;

Hoja de trabajo.Range("C4").Value="Tercero";!}
Para s=7 a 10 ciclos
Hoja de trabajo.Range("C4").Borders(s).LineStyle=1;
Hoja de trabajo.Rango("C4").Bordes(es).Peso=-4138;
Fin del ciclo;
Hoja de trabajo.Range("C4").Interior.ColorIndex=15;
Hoja de trabajo.Range("C4").HorizontalAlignment=-4108;

//Para agrupar filas:
Worksheet.Outline.SummaryRow=0;//Las filas de "resumen" se muestran en la parte superior (si están en la parte inferior, entonces 1)

//cadenas de salida
Worksheet.Range("A5").Value="Objeto de análisis";!}
Worksheet.Range("A5").Font.ColorIndex=5;//color de fuente: azul

Hoja de trabajo.Range("B5").Value=123,45;
Hoja de trabajo.Range("B5").Font.ColorIndex=5;
Hoja de trabajo.Range("C5").Value=678,9;
Hoja de trabajo.Range("C5").Font.ColorIndex=5;

Worksheet.Range("A6").Value="Objeto de análisis";!}
Worksheet.Range("A6").Font.ColorIndex=3;//color de fuente: rojo

Hoja de trabajo.Range("B6").Value=123,45;
Hoja de trabajo.Range("B6").Font.ColorIndex=3;
Hoja de trabajo.Range("C6").Value=678,9;
Hoja de trabajo.Range("C6").Font.ColorIndex=3;

Worksheet.Range("A7").Value="Objeto de análisis";!}
Hoja de trabajo.Range("B7").Value=123,45;
Hoja de trabajo.Range("C7").Value=678,9;

Worksheet.Range("A8").Value="Objeto de análisis";!}
Hoja de trabajo.Range("B8").Value=123,45;
Hoja de trabajo.Range("C8").Value=678,9;

Worksheet.Range("A9").Value="Objeto de análisis";!}
Worksheet.Range("A9").Font.ColorIndex=3;//color de fuente: rojo

Hoja de trabajo.Range("B9").Value=123,45;
Hoja de trabajo.Range("B9").Font.ColorIndex=3;
Hoja de trabajo.Range("C9").Value=678,9;
Hoja de trabajo.Range("C9").Font.ColorIndex=3;

Worksheet.Range("A10").Value="Objeto de análisis";!}
Hoja de trabajo.Range("B10").Value=123,45;
Hoja de trabajo.Range("C10").Value=678,9;

Worksheet.Range("A11").Value="Objeto de análisis";!}
Hoja de trabajo.Range("B11").Value=123,45;
Hoja de trabajo.Range("C11").Value=678,9;

Worksheet.Range("A12").Value="Objeto de análisis";!}
Worksheet.Range("A12").Font.ColorIndex=5;//color de fuente: azul

Hoja de trabajo.Range("B12").Value=123,45;
Hoja de trabajo.Range("B12").Font.ColorIndex=5;
Hoja de trabajo.Range("C12").Value=678,9;
Hoja de trabajo.Range("C12").Font.ColorIndex=5;

Worksheet.Range("A13").Value="Objeto de análisis";!}
Worksheet.Range("A13").Font.ColorIndex=3;//color de fuente: rojo

Hoja de trabajo.Range("B13").Value=123,45;
Hoja de trabajo.Range("B13").Font.ColorIndex=3;
Hoja de trabajo.Range("C13").Value=678,9;
Hoja de trabajo.Range("C13").Font.ColorIndex=3;

Worksheet.Range("A14").Value="Objeto de análisis";!}
Hoja de trabajo.Range("B14").Value=123,45;
Hoja de trabajo.Range("C14").Value=678,9;

Worksheet.Range("A15").Value="Objeto de análisis";!}
Hoja de trabajo.Range("B15").Value=123,45;
Hoja de trabajo.Range("C15").Value=678,9;

Worksheet.Range("A16").Value="Objeto de análisis";!}
Worksheet.Range("A16").Font.ColorIndex=3;//color de fuente: rojo

Hoja de trabajo.Range("B16").Value=123,45;
Hoja de trabajo.Range("B16").Font.ColorIndex=3;
Hoja de trabajo.Range("C16").Value=678,9;
Hoja de trabajo.Range("C16").Font.ColorIndex=3;

Worksheet.Range("A17").Value="Objeto de análisis";!}
Hoja de trabajo.Range("B17").Value=123,45;
Hoja de trabajo.Range("C17").Value=678,9;

Worksheet.Range("A18").Value="Objeto de análisis";!}
Hoja de trabajo.Range("B18").Value=123,45;
Hoja de trabajo.Range("C18").Value=678,9;

//Establecer marcos

Para NomStr=5 a 18 ciclos
Para s=7 a 10 ciclos
Hoja de trabajo.Range("A"+LineNumber).Borders(s).LineStyle=1;
Hoja de trabajo.Range("B"+LineNumber).Borders(s).LineStyle=1;
Worksheet.Range("C"+LineNumber).Borders(s).LineStyle=1;
Fin del ciclo;
Fin del ciclo;

//Agrupando filas

Hoja de trabajo.Range("7:8").Rows.Group();
Hoja de trabajo.Range("10:11").Rows.Group();
Hoja de trabajo.Range("14:15").Rows.Group();
Hoja de trabajo.Range("17:18").Rows.Group();
Hoja de trabajo.Range("6:11").Rows.Group();
Hoja de trabajo.Range("13:18").Filas.Grupo();

//Colapso de agrupaciones al primer nivel

Hoja de trabajo.Esquema.Mostrar niveles(1);

//Establecer formato de número

Intentar
Hoja de trabajo.Range("B5:C18").NumberFormat="# ##0.00";

Excepción
Intentar
Hoja de trabajo.Range("B5:C18").NumberFormat="# ##0.00";

Excepción
intento final;
intento final;

//Establece la visibilidad de la aplicación y su ventana

Aplicación.Visible=-1;
Ventana.Visible=-1;

//Fijar el área

Hoja de trabajo.Range("A5").S_elect();
Ventana.FreezePanes = -1;
Procedimiento final //Salida