En este artículo analizaremos las posibilidades de conversión de tipos en el lenguaje de consulta 1C, que proporciona la función "Express".
Veamos varias opciones para usar esta función.
Y la primera opción es redondear números.

Para hacer esto, necesita utilizar la función Express en el siguiente formato:

Expresar(<Число>como número (<ДлинаЧисла>,<Точность>))

Dónde:
Número— el campo que necesita ser redondeado
LongitudNúmeros— longitud máxima del número
Exactitud— precisión del redondeo de números

Los parámetros tanto de longitud como de precisión deben ser números enteros positivos.
Vea cómo funciona esta función en la imagen a continuación.

El segundo caso de uso es el casting de cuerdas. Muy a menudo, las configuraciones utilizan cadenas de longitud ilimitada, lo que impone algunas restricciones. Por ejemplo, no podemos comparar cadenas de longitud ilimitada.
En la consulta siguiente, el campo Nombre completo es de tipo cadena de longitud ilimitada y esta consulta no funcionará.

Para que funcione es necesario convertir un campo de longitud ilimitada en una cadena de cierta longitud, esto se hace mediante la función Express en el siguiente formato:

Expresar(<Строка>como cuerda(<ДлинаСтроки>)

Dónde
Longitud de la línea– la longitud máxima a la que se reducirá la cuerda.
Reelaboremos la consulta: en la condición convertiremos una cadena ilimitada en una cadena con una longitud determinada. Entonces no habrá errores.

Consideremos la última y, diría yo, la opción más importante para su aplicación: cuando se trabaja con campos de tipo compuesto.
A continuación se muestran dos consultas que utilizan campos compuestos. El primero está mal y el segundo es correcto.

Aquellos. Cuando necesite obtener un campo de algún tipo complejo, obtenga siempre el valor de este campo solo después de convertir el tipo usando la función Express. En este caso, los documentos y libros de referencia tendrán el siguiente formato:

Expresar(<Документ>como documento.<ИмяТаблицы>)
Expresar(<Справочник>como directorio.< ИмяТаблицы >)
.

Dónde
Nombre de la tabla— nombre del objeto en .

Utilice siempre la función express cuando trabaje con tipos compuestos, optimiza enormemente la consulta.

Si todavía está "nadando" en las construcciones del lenguaje de consulta, e incluso las consultas más simples le causan dificultades, le recomiendo mi curso "Consultas en 1C de principiante a profesional". Donde estos y muchos otros temas se tratan con más detalle.

Lo que tiene de especial este curso:
El curso está diseñado para quienes no están familiarizados con el lenguaje de consulta en 1C;
El material educativo está bien diseñado y es fácil de aprender;
Varias docenas de lecciones;
Ejemplos prácticos útiles;
Todas las lecciones se presentan en un lenguaje claro y sencillo.

Para mis lectores, cupón de descuento del 25%: hrW0rl9Nnx

Intento publicar varios artículos gratuitos interesantes y tutoriales en vídeo con la mayor frecuencia posible. Por lo tanto, estaré muy contento si apoyas mi proyecto transfiriendo cualquier cantidad:

Puedes transferir cualquier cantidad directamente:
Yandex.Dinero - 410012882996301
Dinero Web - R955262494655

Únete a mis grupos.

Mucha gente interpreta la función EXPRESS en el lenguaje de consulta 1C 8 como un convertidor de tipos, pero no está diseñada para estos fines en absoluto. Detalles bajo el corte...

Entonces, muchas personas creen erróneamente que pueden convertir un campo con tipo Línea en el campo con tipo Número o enlace en línea. De hecho, el operador EXPRESS puede convertir:

  • configuraciones de tipo primitivo;
  • un campo de tipo compuesto en un campo de tipo único;

Veamos estas situaciones con más detalle...

Conversión de configuraciones de tipo primitivo

Consideremos una situación en la que queremos agrupar datos por una cadena de tipo ilimitado; por ejemplo, dicha cadena suele ser un comentario en los documentos. En este caso, no podremos agrupar por comentario; obtendremos un error. Por lo tanto, necesitamos convertir una cadena de longitud ilimitada en una cadena de longitud limitada y luego agruparla. Por ejemplo, contamos la cantidad de documentos con los mismos comentarios:

ELEGIR
EXPRESS(Admisión.Comentario COMO LÍNEA(300)) COMO Comentario,
CANTIDAD(Entrante.Enlace) COMO Enlace
DE
Documento Hall de entrada AS Hall de entrada

AGRUPAR POR
EXPRESS(Admisión.Comentario COMO FILA(300))

Otra situación es cuando la solicitud utiliza cálculos, en la salida podemos obtener un número con una gran cantidad de decimales (1100.001568794). Para no procesar este número una vez completada la consulta, puede recortarlo inmediatamente a la longitud requerida, pero es importante comprender que el número se está recortando y no redondeando. Ejemplo:

ELEGIR
Ventas.Producto,
EXPRESS(Ventas.Cantidad * Ventas.Precio COMO NÚMERO(15, 2)) COMO Cantidad
DE

Convertir un tipo compuesto en un tipo único

Los registros de registro suelen tener un tipo compuesto; para convertirlo a un tipo único, utilice la construcción EXPRESAR Sin embargo, si en la etapa de muestreo intenta convertir el documento de implementación en un documento de recibo, la solicitud definitivamente fallará con un error, por lo que antes de convertir debe verificar el tipo de enlace. Esto es una tontería))) ¿Por qué es necesario todo esto?, preguntas. Respondo, este es uno de los momentos de optimización implícita de consultas a expensas de la brevedad de la redacción. Veamos la aplicación de este punto con un ejemplo.

Supongamos que se propone obtener el número de cada registrador de RN Sales. escribe una solicitud:

SELECCIONA VARIOS
Número.de.registro.de.ventas
DE
RegistrarseAcumulaciones.Ventas CÓMO Ventas

En realidad, nada podría ser más sencillo. Pero 1C, en la etapa de ejecución, convierte esta solicitud sin ninguna conexión en una solicitud con tantas conexiones restantes como registradores posibles tengamos. Aquellos. Si se escriben 20 documentos en este registro, obtendremos una consulta SQL con 20 uniones izquierdas. ¿Por qué está pasando esto? Debido a que el optimizador 1C integrado no procesa muy bien los campos recibidos a través de un punto, en este caso es el atributo Número. Estos son los pasteles, si a menudo queremos recibir el número de documento, entonces lo más razonable es incluirlo en los datos del registro o utilizar el operador EXPRESS, pero a costa de la brevedad:

SELECCIONA VARIOS
Número.de.registro.de.ventas,
ELECCIÓN
CUANDO Ventas.Registrador ENLACE Documento.Consumible
ENTONCES EXPRESS(Ventas.Registrador COMO Documento.Consumible)
OTRA ELECCIÓN
CUANDO Ventas.Registrador ENLACE Documento.Implementación
ENTONCES EXPRESS(Ventas.Registrador COMO Documento.Implementación)
FIN
...
FINALIZAR COMO Número
DE
RegistrarseAcumulaciones.Ventas CÓMO Ventas

Ahora la unión izquierda involucrará una tabla específica.

En general, debes referirte cuidadosamente a los datos a través de un punto, porque 1C en este caso utiliza una combinación izquierda en la consulta SQL, lo que puede afectar significativamente el rendimiento. Este es uno de los puntos de optimización.

¡Atención! Esta es una versión introductoria de la lección, cuyos materiales pueden estar incompletos.

Inicie sesión en el sitio como estudiante

Inicie sesión como estudiante para acceder a los materiales escolares.

Lenguaje de consulta 1C 8.3 para programadores principiantes: funciones y operadores para trabajar con tipos (TIPO DE VALOR, TIPO, REFERENCIA, ISNULL, EXPRESS)

Recordemos que cada atributo (propiedad, campo) de un directorio, documento o cualquier otro objeto de aplicación tiene su propio tipo. Y podemos mirar este tipo en el configurador:

En el lenguaje de consulta existe toda una clase de funciones y operadores para trabajar con tipos de detalles. Mirémoslos.

Función TIPO DE VALOR

Esta función toma un parámetro (valor) y devuelve su tipo. Para los accesorios descritos en la imagen (arriba) Gusto directorio Alimento se devolverá lo siguiente:

Ahora veamos los accesorios. Rasgo distintivo en el directorio Ciudades:

Verás que este accesorio puede ser de varios tipos: Línea, Directorio.Sabores, Directorio.Colores. Este tipo de detalles se llama COMPUESTO.

Si intentamos completar el valor de dicho detalle en el modo 1C:Enterprise, el sistema nos preguntará qué tipo de valor se ingresará:

Y solo después de nuestra selección nos permitirá ingresar el valor del tipo seleccionado.

Por tanto, elementos de directorio del mismo tipo ( Directorio.Ciudades) podrá almacenar en el mismo atributo ( Rasgo distintivo) valores de diferentes tipos (Cadena, Colores o Sabores).

Puedes comprobarlo tú mismo haciendo clic en los elementos del directorio. Ciudades en 1C: modo empresarial. Estás leyendo una versión de prueba de la lección; hay lecciones completas disponibles.

Aquí el valor distintivo es un elemento de directorio. Sabores:

Aquí está la línea:

Y aquí hay generalmente un elemento del libro de referencia. Colores:

¡Estas son las posibilidades que nos abre un tipo de datos compuestos!

Me pregunto cómo se comportará la función. TIPO DE VALORES en los accesorios Elemento distintivo, que tiene un tipo de datos compuesto:

Esto ya es muy interesante. Veamos cada línea individualmente.

El tipo de valor del rasgo distintivo del elemento Rusia es igual a NULO. Esta es la primera vez que nos encontramos con este tipo. Los valores de este tipo se utilizan únicamente para determinar el valor faltante cuando se trabaja con la base de datos.

Esto es cierto porque el elemento Rusia es un grupo y no un elemento de directorio ordinario. Ciudades, por lo que no tiene campo Rasgo distintivo. Y el tipo de valor faltante, como leímos arriba, siempre es igual a NULO.

El tipo de valor del rasgo distintivo para Perm es igual a Sabores. Esto es cierto porque el valor del rasgo distintivo ingresado en la base de datos de la ciudad de Perm es un enlace al elemento del directorio. Sabores.

Para Krasnoyarsk, el tipo de atributo es igual a Colores, porque el valor seleccionado en la base de datos es un enlace a un elemento del directorio Colores.

Para Voronezh, el tipo de atributo es igual a Línea, porque el valor ingresado en la base de datos es una cadena normal.

India vuelve a ser un grupo, por lo que no tiene importancia. Y el tipo del valor faltante, como recordamos, es igual a NULO.

Aquí está la cosa. Si vas al elemento del directorio Ciudades con nombre Sao Paulo, entonces verás que el campo Rasgo distintivo no completado en absoluto. Esta vacio. A todos los campos vacíos de un tipo compuesto tienen un significado especial INDEFINIDO .

CON INDEFINIDO también nos encontramos por primera vez. Significado INDEFINIDO Se utiliza cuando es necesario utilizar un valor vacío que no pertenece a ningún otro tipo. Esta es exactamente nuestra situación. Y el tipo de valor INDEFINIDO, como probablemente ya habrás adivinado, es igual a NULO.

TIPO de función

Solo se necesita un parámetro: el nombre del tipo primitivo ( LÍNEA, NÚMERO, FECHA, BOOLEANO), o el nombre de la tabla cuyo tipo de enlace desea obtener.

El resultado de esta construcción será un valor de tipo Tipo para el tipo especificado.

Suena vago, ¿no?

Miremos la aplicación de este diseño y todo encajará inmediatamente.

Supongamos que necesitamos seleccionar todas las entradas del directorio. Ciudades, que tienen accesorios compuestos Rasgo distintivo tiene un valor de tipo LÍNEA:

Ahora seleccionemos todos los registros que tienen valores de atributos. Rasgo distintivo son enlaces a elementos del directorio Colores(mesa Directorio.Colores):

Retiro

Como recordarás, algunos elementos del directorio. Ciudades no tengo accesorios Rasgo distintivo. Función TIPO DE VALORES para tales elementos produce NULO.

¿Cómo se pueden seleccionar dichos elementos en una consulta? Para esto se proporciona un operador lógico especial. ES NULO(no confundir con la función ES NULO, que veremos a continuación). Estás leyendo una versión de prueba de la lección; hay lecciones completas disponibles.

A continuación se muestra un ejemplo de su uso:

Excelente. Pero, ¿notaste que no hay ningún elemento de Sao Paulo, tipo de valor de accesorios? Rasgo distintivo que también entregó NULO. ¿Por qué sucedió?

Pero el caso es que la situación de los grupos (Rusia, India, Brasil), para los cuales completar los datos Rasgo distintivo imposible en principio, ya que no lo tienen en absoluto, difiere de la situación del elemento de Sao Paulo, para el cual es posible completar los accesorios, pero simplemente no se completa y equivale, como recordamos, a un valor especial INDEFINIDO.

Para seleccionar todos los registros que tengan el requisito Rasgo distintivo presente, pero no lleno, se debe utilizar una construcción diferente:

Pero la comparación con UNDEFINED para determinar atributos vacíos (sin llenar) solo funcionará para tipos compuestos.

Por cierto, el operador lógico IS NULL tiene una forma de negación similar a esta:

Operador lógico ENLACE

Por ejemplo, seleccionemos del directorio Ciudades sólo aquellos registros que tienen el valor de un atributo compuesto Rasgo distintivo son un enlace a un elemento del directorio Sabores:

Como recordarás, podríamos resolver el mismo problema usando TIPO DE VALORES Y TIPO:

Función ES NULL

La función está diseñada para reemplazar un valor. NULO a un significado diferente.

Recordamos que el significado NULO devuelto si el atributo solicitado (campo, propiedad) no existe.

Por ejemplo, accesorios Rasgo distintivo para grupos de directorio Ciudades:

Función ES NULO nos ayudará a generar un valor diferente si este valor es igual a NULO. Estás leyendo una versión de prueba de la lección; hay lecciones completas disponibles. Sea en este caso la línea "¡No existe tal accesorio!":

Resulta que si el primer parámetro de la función ES NULO no es igual NULO, luego regresa. Si es NULL, se devuelve el segundo parámetro.

Función EXPRESA

Esta función es sólo para campos que tienen un tipo compuesto. Un excelente ejemplo de tal campo es la propiedad. Rasgo distintivo para elementos de directorio Ciudades.

Como recordamos, los campos compuestos pueden ser de uno de varios tipos especificados en el configurador.

Para campo Rasgo distintivo tales tipos válidos son LÍNEA, Directorio.Colores Y Directorio.Sabores.

A veces resulta necesario convertir los valores de un campo compuesto a un tipo específico.

Enumeremos todos los valores de campo. Rasgo distintivo digitar Referencia.Colores:

Como resultado, todos los valores de elementos que eran del tipo Directorio.Colores, permanecieron llenos y se convirtieron al tipo especificado. Todos los valores de otros tipos ( LÍNEA, Directorio.Sabores) ahora son iguales NULO. Ésta es la peculiaridad de la conversión de tipos utilizando la función. EXPRESAR.

Puede convertir un tipo a un tipo primitivo ( BOOLEANO, NÚMERO, LÍNEA, FECHA) o a un tipo de referencia. Estás leyendo una versión de prueba de la lección; hay lecciones completas disponibles. Pero el tipo al que se realiza la conversión debe incluirse en la lista de tipos para este campo compuesto; de lo contrario, el sistema arrojará un error.

Tomar el examen

Iniciar prueba

1. Elige la afirmación más correcta

2. Los detalles que pueden tomar valores de uno de varios tipos se denominan

3. Para determinar el tipo de valor de atributo, utilice la función

4. Los detalles vacíos de tipo compuesto son importantes.

Veamos el resto ahora.

Funciones para trabajar con cadenas en consultas 1C

Existen pocas funciones y operadores para trabajar con datos de cadenas en consultas 1C.

En primer lugar, se pueden agregar cadenas en las consultas. Para hacer esto, use el operador “+”:

Pedido. Texto = "SELECCIONAR
" "Línea: " " + Fuente.Nombre
;

En segundo lugar, puede seleccionar parte de la línea. Para hacer esto, use la función BASE. La función es similar al lenguaje 1C integrado. Tiene tres parámetros:

  1. Cadena fuente.
  2. El número del carácter con el que debe comenzar la línea seleccionada.
  3. Caracteres.

Pedido. Texto= "ELEGIR
SUBCADE("
"Línea: " ", 4, 3) COMO RESULTADO"; // Resultado: está bien

Función ES NULO

NULL es un tipo de datos especial en la plataforma 1C:Enterprise. También es el único valor posible de este tipo. NULL puede aparecer en consultas en varios casos: al conectar fuentes de consulta, si no se encontró el valor correspondiente en una de las tablas; al acceder a los detalles de un objeto inexistente; si se especificó NULL en la lista de campos de consulta (por ejemplo, al combinar resultados de selección de varias tablas), etc.

Porque NULL no es nulo, ni la cadena vacía, ni siquiera un valor Indefinido, A menudo resulta útil reemplazarlo con algún tipo de datos más útil. Para esto está diseñada la función. ES NULO.

Tiene dos parámetros:

  1. El valor que se está comprobando.
  2. El valor con el que reemplazar el primer parámetro si resulta ser NULL.

Pedido. Texto= "ELEGIR
ISNULL(Fuente.Remanente, 0) COMO Resto"
; // Si el resultado de la solicitud es el resto del campo = NULL,
// entonces será reemplazado por 0 y podrás realizar operaciones matemáticas con él

Funciones ACTUACIÓN Y INTRODUCCIÓN ENLACES

Estas funciones están diseñadas para obtener representaciones de cadenas de varios valores. Es decir, convierten referencias, números, booleanos, etc. en texto plano. La diferencia entre ellos es que la función ACTUACIÓN convierte cualquier tipo de datos a texto (cadena), y la función INTRODUCCIÓN ENLACES- solo enlaces y devuelve los valores restantes tal como están, no convertidos.

Pedido. Texto= "ELEGIR
REPRESENTACIÓN (VERDADERA) COMO booleana,
REPRESENTACIÓN (4) COMO Número,
REPRESENTACIÓN (Fuente.Enlace) COMO Enlace,
REPRESENTACIÓN (FECHA HORA (2016,10,07)) COMO Fecha"
;
// Booleano = "Sí", Número = "4", Enlace = "Documento Orden de recibo de efectivo No.... de..."
// Fecha="07.10.2016 0:00:00"

Pedido. Texto= "ELEGIR
REPRESENTACIÓNREFERENCIA(VERDADERO) COMO booleano,
REPRESENTACIÓNREFERENCIA(4) COMO NÚMERO
PRESENTINGLINK(Fuente.Enlace) COMO Enlace,
REPRESENTACIÓNREFERENCIA(FECHA HORA(2016,10,07)) COMO Fecha"
;
// Booleano = VERDADERO, Número = 4, Enlace = "Documento Orden de recibo de efectivo No.... de..."
// Fecha=07.10.2016 0:00:00

Funciones TIPO Y TIPO DE VALORES

Función TIPO devuelve el tipo de datos de la plataforma 1C:Enterprise.

Pedido. Texto= "ELEGIR
Teclea un número)
TIPO (cadena),
TIPO (Documento. Orden de Gastos en Efectivo)"
;

Función TIPO DE VALORES devuelve el tipo del valor que se le pasa.

Pedido. Texto= "ELEGIR
VALORES TIPO (5) AS Número,
TIPO ("
"Línea" ") Como cuerda,
TIPO (Fuente.Enlace) COMO Referencia
Del Directorio.Fuente AS Fuente"
;
//Número=Número, Cadena=Cadena, Directorio = DirectoryLink.Source

Estas funciones son cómodas de utilizar, por ejemplo, cuando necesita saber si un campo recibido en una solicitud es un valor de algún tipo. Por ejemplo, obtengamos la información de contacto de las contrapartes del registro de información ContactInformation (allí se almacenan los contactos no solo de las contrapartes, sino también de organizaciones, individuos, etc.):

Pedido. Texto= "ELEGIR

DE

DÓNDE
TIPO DE VALORES(Información de contacto.Objeto) = TIPO(Directorio.Contrapartes)"
;

Función SIGNIFICADO

Función Significado le permite usar objetos de configuración 1C directamente en una solicitud, sin usar .

Agreguemos una condición más al ejemplo anterior. Sólo necesita obtener los números de teléfono de sus contrapartes.

Pedido. Texto= "ELEGIR
Información de contacto. Introducción
DE
Registro de Información Información de Contacto CÓMO Información de Contacto
DÓNDE
VALORES TIPO(Información de contacto.Objeto) = TIPO(Directorio.Contrapartes)
Y ContactInfo.Type = VALOR(Enum.ContactInfoTypes.Phone)"
;

Cabe señalar que esta función solo se puede utilizar con valores predefinidos, es decir. con valores a los que se puede acceder directamente desde el configurador. Es decir, la función SIGNIFICADO no se puede utilizar con elementos de directorio creados por usuarios, pero puede funcionar con enumeraciones, con elementos de directorio predefinidos, con valores Enlace vacío.

Operador ENLACE

Operador ENLACE está diseñado para verificar los valores devueltos por una solicitud para ver si pertenecen a un tipo de referencia específico. La misma tarea se puede realizar usando funciones. TIPO Y TIPO DE VALORES(que tienen un alcance más amplio y fueron discutidos anteriormente).

Por ejemplo, la tarea de seleccionar la información de contacto de las contrapartes podría resolverse de esta manera:

Pedido. Texto= "ELEGIR
Información de contacto. Introducción
DE
Registro de Información Información de Contacto CÓMO Información de Contacto
DÓNDE
Información de contacto.Objeto LINK Directorio.Contrapartes"
;

Operador EXPRESAR

Operador EXPRESAR utilizado en consultas 1C en dos casos:

  • cuando es necesario cambiar las características de un tipo primitivo;
  • cuando necesita convertir un campo con un tipo de datos compuesto en un campo con un solo tipo.

Los tipos de datos primitivos incluyen: número, cadena, fecha, booleano. Algunos de estos tipos de datos tienen características adicionales. Tipo Número tiene longitud y precisión, tipo Línea - duración o ilimitada.

Operador EXPRESAR le permite cambiar no el tipo de datos, sino características adicionales. Por ejemplo, puede convertir una cuerda de longitud ilimitada en una cuerda de longitud limitada. Esto puede resultar útil si necesita agrupar los resultados de una consulta por dicho campo. No puedes agrupar por campos con una longitud ilimitada, por lo que lo convertimos en una cadena con una longitud de 200 caracteres.

Pedido. Texto= "ELEGIR
CANTIDAD (DIFERENTE Llegada de Bienes y Servicios. Enlace) COMO Enlace
DE
Documento Recepción de Bienes y Servicios CÓMO Recepción de Bienes y Servicios
AGRUPAR POR
EXPRESS(Recepción de Bienes y Servicios. Comentario COMO FILA (200))"
;

En algunos casos, es posible que la plataforma 1C no procese de manera óptima las consultas a campos con un tipo de datos compuestos. Esto da como resultado tiempos de consulta más prolongados, por lo que puede resultar útil convertir un tipo compuesto en un tipo único por adelantado.

Pedido. Texto= "ELEGIR
EXPRESS(Movimiento de facturación de mercancías.Pedido como documento.Pedido del cliente).Fecha COMO fecha del pedido,
Movimiento de MercancíasFacturación.Nomenclatura
DE
RegistroAcumulaciones.Movimiento de Mercancías.Facturación AS Movimiento de MercancíasFacturación
DÓNDE
Movimiento de MercancíasFacturación.Enlace de Pedido Documento.Pedido de Cliente"
;

Operadores ELECCIÓN Y ES NULO

Operador ELECCIÓN similar al operador SI en el lenguaje 1C incorporado, pero tiene una funcionalidad algo reducida.

Digamos que queremos recibir información de contacto del registro de información ContactInformation y, al mismo tiempo, indicar en un campo de solicitud separado si pertenece a una contraparte o a un individuo.

Pedido. Texto= "ELEGIR
Información de contacto. Introducción,
ELECCIÓN
CUANDO VALORES TIPO(Información de contacto.Objeto) = TIPO(Directorio.Contrapartes)
ENTONCES "
Contraparte "
OTRA ELECCIÓN
CUANDO VALORES TIPO(Información de contacto.Objeto) = TIPO(Directorio.Individuos)
ENTONCES "
Individual"
MÁS "Alguien más" "
FIN
TERMINAR COMO PROPIETARIO
DE
Registro de Información Información de Contacto AS Información de Contacto"
;

Como se puede ver en el ejemplo, en el diseño. ELECCIÓN siempre hay una condición después de la palabra CUANDO; valor aplicado si la condición es verdadera después de la palabra ENTONCES y el valor aplicado si no se cumple la condición, después de la palabra DE LO CONTRARIO. Los tres elementos de diseño. ELECCIÓN son obligatorios. Omitir elemento DE LO CONTRARIO, de la misma manera que cuando se utiliza el operador SI en el lenguaje 1C incorporado, esto es imposible. También del operador. ELECCIÓN no hay análogo del diseño ELSEIF, pero puedes invertir uno ELECCIÓN en otro, como se hizo en nuestro ejemplo.

Operador ES NULO utilizado en diseño ELECCIÓN para comparar un campo de consulta con tipo NULL.

Pedido. Texto= "ELEGIR
ELECCIÓN
CUANDO EL VALOR ES NULO ENTONCES 0
ELSE Significado
FIN"
;

Además, el operador ES NULO se puede utilizar en condiciones de consulta, como en una oración DÓNDE.

Tipos incompatibles "EXPRESS"- este mensaje aparece cuando un programador 1C 8.2 o 8.3 intenta comparar dos tipos diferentes.

La función Express() le permite convertir el valor de un campo de solicitud 1C a un tipo específico. Esto puede ser necesario en dos casos:

1. Obtenga la capacidad numérica requerida o la cantidad requerida de caracteres de un valor de cadena. La cantidad de caracteres en campos de tipo ilimitado debe estar limitada debido a ciertas características.

Obtenga 267 lecciones en video sobre 1C gratis:

Por ejemplo:

EXPRESS(Nomenclatura.Comentario AS STRING(300))
EXPRESS(Nomenclatura.Precio COMO NÚMERO(15, 2)) COMO Importe

2. Convierta un campo de tipo compuesto en un campo de tipo único. Esto puede ser necesario para ciertos fines. Si un campo escrito contiene un valor de otro tipo, el sistema devolverá NULL, por lo que siempre es necesario establecer adicionalmente una condición en la sección "DÓNDE", limitándola con el operador ENLACE.

Por ejemplo:

ELEGIR

EXPRESS(Ventas.Registrador AS Documento.Implementación)

DE

DONDE Ventas.Registrador ENLACE Documento.Implementación

Cómo evitar errores

Errores como "Tipos incompatibles EXPRESS..." pueden ocurrir cuando la sintaxis se usa incorrectamente.

Por ejemplo, la construcción “EXPRESS(“123″ AS NUMBER(5, 2)) AS SUM” se considera errónea, ya que la solicitud no se puede convertir de un tipo a otro mediante métodos estándar.

Si estás empezando a aprender programación 1C, te recomendamos nuestro curso gratuito (no olvides