Contactos

La sintaxis es similar a la solicitud 1c. Similar a las condiciones de consulta. La descripción de la sintaxis del operador es similar a

43
NULO: valores faltantes. ¡No debe confundirse con valor cero! NULL no es un número, no es igual a un espacio, una referencia vacía o Indefinido. NULL es un valor formador de tipos, es decir hay un tipo NULL y un único valor de este tipo. NULO... 26
Para generar y ejecutar consultas a tablas de bases de datos en la plataforma 1C, se utiliza un objeto especial del lenguaje de programación Query. Este objeto se crea llamando a la construcción Nueva solicitud. Solicitud conveniente... 18
El artículo proporciona técnicas útiles al trabajar con consultas 1C v.8.2, así como información no tan conocida sobre el lenguaje de consulta. No estoy tratando de dar una descripción completa del lenguaje de consulta, pero quiero detenerme sólo en... 12
¡Me enfrenté a la tarea de seleccionar todos los documentos de pago y agruparlos por tipo de documento! Después de revisar todos los servicios de vivienda y comunales e Internet, me di cuenta de que no hay una manera fácil de obtener el tipo de documento en la solicitud: (tuve que...

A pesar de todas las deficiencias, la búsqueda de campos de texto sigue siendo una de las más populares. Podemos encontrar tipos de datos de cadenas en todas partes: nombres, números de cuenta, direcciones y otra información se pueden almacenar en este formato. En consultas en el lenguaje 1C incorporado, para comodidad de los desarrolladores, se utiliza un operador especial "ME GUSTA". Este es uno de los comandos más utilizados, por lo que sin un conocimiento profundo de su sintaxis y capacidades, a un programador le resultará difícil trabajar.

Usando el operador LIKE

Antes de utilizar cualquier operador en la práctica, es necesario comprender claramente su propósito, lugares de aplicación y sintaxis. El propósito de utilizar "ME GUSTA" en una solicitud 1C es verificar el cumplimiento de la condición presentada como plantilla. El valor de retorno es de tipo booleano (verdadero o falso) que indica si la condición especificada es verdadera. El operador LIKE se puede utilizar en varios lugares de una consulta:

  • En el bloque de condiciones, indicado por la palabra clave “DÓNDE”;
  • En el diseño de Elección cuando termina de otra manera;
  • Directamente en los campos de selección, como resultado de la comparación de campos.

La sintaxis de verificación es siempre la misma y consta de 3 enlaces. A la izquierda está el valor de texto que se está verificando, luego el operador "ME GUSTA" y a la derecha está la plantilla que se está verificando. Para crear plantillas de forma rápida y sencilla, existen símbolos especiales que facilitan el desarrollo:

  1. “%” es una secuencia de caracteres de longitud arbitraria. Se utiliza para buscar palabras o números individuales en una cadena;
  2. “_” – cualquier carácter individual. Destinado a indicar la presencia de un solo carácter;
  3. “[...]” es una secuencia de caracteres para comparar con un carácter en una cadena. Con la ayuda de dicho patrón, se comprueba la coincidencia con cualquiera de los caracteres enumerados entre paréntesis. También puede especificar un rango de números o letras ([a-g], );
  4. “[^...]” es el patrón opuesto al anterior. Se comprueba la diferencia entre el carácter especificado en la línea y los que figuran entre paréntesis.

Para comprender y comprender mejor los principios de la creación de plantillas correctas, veamos algunos ejemplos que se encuentran a menudo en la vida de los desarrolladores. La primera es cuando necesitamos seleccionar del directorio de nomenclatura todos los elementos en cuyos nombres aparece la palabra “CUTTER”. En este caso, necesitamos usar LIKE en las condiciones de consulta:

SELECCIONE Nomenclatura.Nombre COMO Nombre DESDE Directorio.Nomenclatura COMO Nomenclatura DONDE Nomenclatura.Nombre SIMILAR a "% CORTADOR%"

Si eliminamos ambos símbolos “%”, la consulta mostrará un producto cuyo nombre coincida completamente con el especificado entre comillas. Si dejamos la plantilla “CUTTER%” o “% CUTTER”, el resultado será una lista de elementos que terminan o comienzan, respectivamente, con una determinada combinación de caracteres.


Veamos un problema que puede confundir a los programadores novatos que no conocen la sintaxis de consulta. Digamos que necesita encontrar todos los elementos que tienen el símbolo "%" en sus nombres. Especialmente para los casos en los que necesita buscar caracteres reservados, existe un operador de "caracteres especiales". #,\,/,~ y otros caracteres se pueden utilizar como caracteres especiales, después de lo cual cualquier carácter reservado simplemente denotará un signo.

SELECCIONE Nomenclatura.Nombre COMO Nombre DESDE Directorio.Nomenclatura COMO Nomenclatura DONDE Nomenclatura.Nombre SIMILAR a "%#%" CARÁCTER ESPECIAL "#"

Si necesita utilizar un parámetro en la búsqueda, entonces la variable en la consulta con el parámetro SIMILAR se utiliza mediante la suma. Recuerde que el parámetro debe ser de tipo cadena o deberá convertirlo a una cadena en la solicitud. Esta es una operación bastante complicada y es mejor excluirla de antemano.

SELECCIONE Nomenclatura.Nombre COMO Nombre DESDE Directorio.Nomenclatura COMO Nomenclatura DONDE Nomenclatura.Nombre SIMILAR a "%" + &nombre + "%"

La función SIMILAR es aplicable en todas las versiones de la plataforma, a partir de la 8, y debido a su aplicabilidad, los desarrolladores de 1C no querrán cambiarla. Por supuesto, la búsqueda de texto siempre depende de la precisión del nombre ingresado, pero sigue siendo una de las más comunes. En este sentido, los desarrolladores profesionales de 1C deben estudiar el uso de SIMILAR con todos sus matices.

COMO- Operador para comprobar la similitud de una cadena con un patrón. Análogo de LIKE en SQL.
Operador COMO le permite comparar el valor de la expresión especificada a la izquierda con la cadena de patrón especificada a la derecha. El valor de la expresión debe ser de tipo cadena. Si el valor de la expresión coincide con el patrón, el resultado del operador será VERDADERO; de lo contrario, FALSO.
Los siguientes caracteres en la cadena de plantilla son caracteres de servicio y tienen un significado diferente al carácter de cadena:
. % (porcentaje): una secuencia que contiene cualquier número de caracteres arbitrarios
. _ (guión bajo): un carácter arbitrario
. […] (uno o más caracteres entre corchetes): cualquier carácter incluido dentro de los corchetes
Una enumeración puede contener rangos, por ejemplo a-z, es decir, un carácter arbitrario incluido en el rango, incluidos los extremos del rango.
. [^...] (entre corchetes un signo de negación seguido de uno o más caracteres): cualquier carácter distinto de los enumerados después del signo de negación
Cualquier otro símbolo significa sí mismo y no conlleva ninguna carga adicional.
Si uno de los caracteres enumerados debe escribirse como sí mismo, debe ir precedido de<Спецсимвол>. Mí mismo<Спецсимвол>(cualquier carácter adecuado) se define en la misma declaración después de la palabra clave SPECIAL CHARACTER.
Por ejemplo, patrón “%ABV[abvg]\_abv%” CARÁCTER ESPECIAL “\” significa una subcadena que consta de una secuencia de caracteres:
letras A; letras B; letras B; un dígito; una de las letras a, b, c o d; guion bajo; letras a; letras b; letras v.
Además, esta secuencia puede ir precedida de un conjunto arbitrario de caracteres.

Ejemplos de uso:
Código 1C v 8.x Procedimiento BankEndTextInput (Elemento, Texto, Valor, Procesamiento estándar)
Procesamiento estándar = Falso;
//Hacer una consulta con una búsqueda usando un patrón como "%" +<Текст введенный пользователм в поле ввода> + "%"
Solicitud = Nueva Solicitud;
Query.SetParameter("Nombre", "%" + Texto + "%");
Consulta.Texto = "SELECCIONAR
| Bancos.Enlace
|DESDE
| Directorio.Bancos CÓMO Bancos
|DONDE
| Bancos.Nombre SIMILAR &Nombre";

Resultado = Consulta.Ejecutar();
Selección = Resultado.Select();
Si Resultado.Empty() Entonces
//Nada Encontrado. Aquí puedes mostrar un mensaje o hacer otra cosa :)
De lo contrario
//Obtener los resultados
tzResultados = Resultado.Descargar();
//Prepara una lista de valores que contendrán los elementos encontrados.
Valor = Nueva Lista de Valores();
Value.LoadValues(tzResults.UnloadColumn("Enlace"));
terminara si;
Fin del Procedimiento

Es necesario que los “Acuerdos por Defecto” incluyan únicamente los Nombres del Acuerdo Principal, etc.:
Código 1C v 8.x Elección
Cuando el Nombre es SIMILAR a “Acuerdo No.%”, entonces “Acuerdo con número” // Cualquier línea que comience con “Acuerdo No.” es adecuada.
Cuando el nombre es SIMILAR a "Acuerdo principal%[^А-яЁе"+Símbolo(33)+"-"+Símbolo(126)+"№"""+Símbolos.PS+Símbolos.Tab+Símbolos.PF+Símbolos .NPP+ Symbols.VTab+"]%" y luego "Contratos predeterminados" // Cualquier línea que comience con "Contrato principal" es adecuada
De lo contrario "Otro"
Terminar como una especie de contrato

Información extraída del sitio.



¿Te gustó el artículo? Compártelo