Contactos

Funciones para trabajar con cadenas 1s. Nuevas funciones para trabajar con cadenas. Función de formato StrTemplate()

Las cadenas en 1C 8.3 en el lenguaje incorporado 1c son valores de un tipo primitivo Línea. Valores de este tipo contener una cadena Unicode de longitud arbitraria. Las variables de tipo cadena son un conjunto de caracteres encerrados entre comillas.

Ejemplo 1. Vamos a crear una variable de cadena con texto.

StringVariable = "¡Hola mundo!";

Funciones para trabajar con cadenas en 1s 8.3

Esta sección le brindará las principales funciones que le permitirán cambiar líneas en 1s, o analizar la información contenida en ellas.

StrLength

StrLength(<Строка>) . Devuelve el número de caracteres contenidos en la cadena pasada en el parámetro.

Ejemplo 2. Contemos el número de caracteres en la cadena "¡Hola mundo!".

Cadena = "¡Hola mundo!"; Número de Caracteres = StrLength(String); Informe (Número de Caracteres);

El resultado de ejecutar este código será mostrar el número de caracteres de la cadena: 11.

Abreviado

Abr(<Строка>) . Recorta los caracteres no significativos a la izquierda del primer carácter significativo de una cadena.
Caracteres insignificantes:

  • espacio;
  • espacio irrompible;
  • tabulación;
  • retorno de carro;
  • traducción de línea;
  • traducción del formulario (página).

Ejemplo 3. Elimina todos los espacios del lado izquierdo de la cadena "peace!" y añádale la cadena "Hola".

Cadena = abbr("¡mundo!"); Cadena = "Hola"+Cadena; Notificar (Cadena);

El resultado de la ejecución de este código será la visualización de la cadena "¡Hola mundo!".

Abreviatura

abr(<Строка>) . Recorta los caracteres no significativos a la derecha del primer carácter significativo de una cadena.

Ejemplo 4. Forma a partir de las cadenas "Hola" y "mundo!" frase "¡Hola mundo!"

String = abbr("Hola")+" "+abbr("¡mundo!"); Notificar (Cadena);

LP abreviado

abrl(<Строка>) . Recorta los caracteres no significativos a la derecha del primer carácter significativo de la cadena, también recorta los caracteres no significativos a la izquierda del primer carácter significativo de la cadena. Esta función Se usa con más frecuencia que los dos anteriores, ya que es más versátil.

Ejemplo 5. Eliminar caracteres insignificantes a la izquierda y derecha del nombre de la contraparte.

Contratista = Directorios.Contratistas.FindBy Details("TIN", "0777121211"); ContratistaObjeto = Contratista.ObtenerObjeto(); ContractorObject.Description = LP abreviado(ContractorObject.Description); ContratistaObject.Write();

un leon

Un leon(<Строка>, <ЧислоСимволов>) . Obtiene los primeros caracteres de una cadena, el número de caracteres se especifica en el parámetro Número de caracteres.

Ejemplo 6. Deja que la estructura Empleado contener el nombre, apellido y patronímico del empleado. Obtenga una cadena con el apellido y las iniciales.

NombreInicial = León(Empleado.Nombre, 1); Patronímico Inicial = Leo(Empleado.Patronímico, 1); Nombre completo = Empleado.Apellido + " " + Inicial del nombre + "." + Inicial del patronímico + ".";

Derechos

Derecha(<Строка>, <ЧислоСимволов>) . Obtiene los últimos caracteres de una cadena, el número de caracteres se especifica en el parámetro Número de caracteres. Si el número de caracteres especificado supera la longitud de la cadena, se devuelve la cadena completa.

Ejemplo 7. Deje que la fecha en el formato "yyymmdd" se escriba al final de la variable de cadena, obtenga la cadena con la fecha y conviértala al tipo la fecha.

cadena = " la fecha actual: 20170910"; StringDate = Derechos (String, 8); Fecha = Fecha (StringDate);

miércoles

Miércoles(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) . Obtiene una subcadena de la cadena pasada en el parámetro Línea, a partir del carácter cuyo número se especifica en el parámetro NúmeroInicial y la longitud pasada al parámetro Número de caracteres. La numeración de caracteres en una cadena comienza desde 1. Si el parámetro NúmeroInicial se especifica un valor menor o igual a cero, entonces el parámetro toma el valor 1. Si el parámetro Número de caracteres no se especifica, se seleccionan los caracteres hasta el final de la cadena.

Ejemplo 8. Deje que la variable de cadena contenga el código de región a partir de la novena posición, debe obtenerlo y escribirlo en una línea separada.

String = "Región: 99 Moscú"; Región = Promedio(Fila, 9, 2);

Buscar página

StrBuscar(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) . Busca la subcadena especificada en una cadena, devuelve el número de posición del primer carácter de la subcadena encontrada. Considere los parámetros de esta función:

  • Línea. cadena de origen;
  • Búsqueda de subcadenas. La subcadena deseada;
  • DirecciónBúsqueda. Especifica la dirección para buscar una subcadena en una cadena. Puede tomar valores:
    • Dirección de búsqueda.Desde el principio;
    • Dirección de búsqueda.Desde el final;
  • Posición de salida. Especifica la posición en la cadena en la que se inicia la búsqueda;
  • Número de entrada. Especifica el número de apariciones de la subcadena buscada en la cadena de origen.

Ejemplo 9. En la línea "¡Hola mundo!" determinar la posición de la última aparición del carácter "y".

PositionNumber = StrFind("¡Hola mundo!", "y", SearchDirection.From End); Notificar (Número de Posición);

El resultado de la ejecución de este código será la visualización del número de la última aparición del símbolo "y" en la pantalla: 9.

Vreg

VReg(<Строка>) . Convierte todos los caracteres de la cadena especificada a 1s 8 a mayúsculas.

Ejemplo 10. Convierte la cadena "¡hola mundo!" a mayúsculas.

StringVreg = Vreg("¡hola mundo!"); Informe (StringVreg);

El resultado de la ejecución de este código será la visualización de la cadena "¡HOLA MUNDO!"

HReg

Hreg(<Строка>) . Convierte todos los caracteres de la cadena especificada a 1s 8 a minúsculas.

Ejemplo 11. Convierta la cadena "¡HOLA MUNDO!" a minúsculas.

StringNreg = NReg("¡HOLA MUNDO!"); Informe (StringVreg);

El resultado de la ejecución de este código será la visualización de la cadena "¡Hola mundo!"

TReg

TReg(<Строка>) . Convierte una cadena de la siguiente manera: el primer carácter de cada palabra se convierte a mayúsculas, los caracteres restantes de la palabra se convierten a minúsculas.

Ejemplo 12. Ponga en mayúsculas las primeras letras de las palabras en la cadena "¡Hola mundo!".

StringTreg = TReg("¡hola mundo!"); Informe (StringTreg);

El resultado de la ejecución de este código será la visualización de la cadena "¡Hola mundo!"

Símbolo

Símbolo(<КодСимвола>) . Obtiene un carácter por su código Unicode.

Ejemplo 13. Agregue izquierda y derecha a la línea "¡Hola mundo!" símbolo ★

StringWithStars = Carácter("9733")+"¡Hola Mundo!"+Carácter("9733"); Informe(CadenaConEstrellas);

El resultado de la ejecución de este código será la visualización de la cadena "★Hello World!★"

SímboloCódigo

SímboloCódigo(<Строка>, <НомерСимвола>) . Obtiene el código de carácter Unicode de la cadena especificada en el primer parámetro, ubicada en la posición especificada en el segundo parámetro.

Ejemplo 14. Averigüe el código del último carácter de la cadena "¡Hola mundo!".

Cadena = "¡Hola mundo!"; CharacterCode =CharacterCode(String, StrLength(String)); Notificar (Código de carácter);

El resultado de la ejecución de este código será la visualización del código del símbolo "!" — 33.

línea vacía

línea vacía (<Строка>) . Comprueba si la cadena consta solo de caracteres no significativos, es decir, si está vacía.

Ejemplo 15. Comprueba si la cadena está vacía y consta de tres espacios.

Vacío = Cadena Vacía(" "); Informe (Vacío);

El resultado de la ejecución de este código será la visualización de la palabra "Sí" (expresión en cadena de un valor booleano Verdadero).

StrReemplazar

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . Busca todas las apariciones de la subcadena de búsqueda en la cadena de origen y la reemplaza con la subcadena de reemplazo.

Ejemplo 16. En la línea "¡Hola mundo!" reemplace la palabra "Mundo" con la palabra "Amigos".

String = StrReplace("¡Hola mundo!", "Mundo", "Amigos"); Notificar (Cadena);

El resultado de la ejecución de este código será la visualización de la cadena "¡Hola amigos!"

StrNumberRows

StrNúmero de líneas(<Строка>) . Le permite contar el número de líneas en una cadena de varias líneas. para cambiar a nueva línea en 1s 8 se usa el símbolo PD(carácter de salto de línea).

Ejemplo 17. Determinar el número de líneas del texto:
"Primera linea
Segunda linea
tercera linea"

Número = StrNúmero de Líneas("Primera línea"+Símbolos.PS +"Segunda línea"+Símbolos.PS +"Tercera línea"); Numero de reporte);

El resultado de la ejecución de este código será la visualización del número de líneas en el texto: 3

StrGetString

StrGetString(<Строка>, <НомерСтроки>) . Obtiene una cadena en una cadena multilínea por su número. La numeración de líneas comienza desde 1.

Ejemplo 18. Obtenga la última línea del texto:
"Primera linea
Segunda linea
tercera linea"

Texto = "Primera línea"+Caracteres.PS +"Segunda línea"+Caracteres.PS +"Tercera línea"; LastLine = StrGetLine(Text, StrNumber of Lines(Text)); Notificar (Última Línea);

El resultado de la ejecución de este código será la visualización de la línea "Tercera línea".

StrNumberOcurrencias

StrNumberOcurrences(<Строка>, <ПодстрокаПоиска>) . Devuelve el número de ocurrencias de la subcadena especificada en una cadena. La función distingue entre mayúsculas y minúsculas.

Ejemplo 19. Determinar cuántas veces entra la letra “c” en la línea “Líneas en 1s 8.3 y 8.2”, independientemente de su caso.

String = "Líneas en 1s 8.3 y 8.2"; Número de Ocurrencias = StrNúmero de Ocurrencias(Vreg(String), "C"); informe (número de ocurrencias);

El resultado de ejecutar este código mostrará el número de ocurrencias en la pantalla: 2.

PageBeginsFrom

StrBeginsFrom(<Строка>, <СтрокаПоиска>) . Comprueba si la cadena dada en el primer parámetro comienza con la cadena en el segundo parámetro.

Ejemplo 20. Determinar si el TIN de la contraparte seleccionada comienza con el número 1. Sea la variable contraparte contrapartes.

TIN = Contratista.TIN; StartsCUnits = StrStartsC(TIN, "1"); If StartsFROM1 Then //Su código EndIf;

La página termina el

StrEndsOn(<Строка>, <СтрокаПоиска>) . Comprueba si la cadena pasada en el primer parámetro termina con la cadena en el segundo parámetro.

Ejemplo 21. Determinar si el NIF de la contraparte seleccionada termina en el número 2. Sea la variable contraparte el enlace al elemento de directorio se almacena contrapartes.

TIN = Contratista.TIN; termina en dos = Str termina en (TIN, "2"); Si termina en dos, entonces //Tu código EndIf;

división de página

DividirCadena(<Строка>, <Разделитель>, <ВключатьПустые>) . Divide una cadena en partes por los caracteres delimitadores especificados y escribe las cadenas resultantes en una matriz. El primer parámetro almacena la cadena original, el segundo parámetro contiene la cadena que contiene el delimitador, el tercer parámetro indica si escribir en la matriz líneas vacías(defecto Verdadero).

Ejemplo 22. Supongamos que tenemos una cadena que contiene números separados por el símbolo ";", obtenga una matriz de números de la cadena.

Cadena = "1; 2; 3"; Matriz = StrSplit(Cadena, ";"); For Count = 0 By Array.Quantity() - 1 Loop Attempt Array[Count] = Number(Ablp(Array[Count])); Matriz de excepciones[W] = 0; EndTry EndCycle;

Como resultado de la ejecución se obtendrá una matriz con números del 1 al 3.

Conexión de cadena

StrConnect(<Строки>, <Разделитель>) . Convierte una matriz de cadenas del primer parámetro en una cadena que contiene todos los elementos de la matriz utilizando el delimitador especificado en el segundo parámetro.

Ejemplo 23. Usando la matriz de números del ejemplo anterior, obtenga la cadena original.

For Count = 0 By Array.Quantity() - 1 Loop Array[Count] = String(Array[Count]); FinCiclo; Cadena = StrConnect(Array, "; ");

Implementado en la versión 8.3.6.1977.

Hemos ampliado el conjunto de funciones para trabajar con cadenas. Hicimos esto para brindarle herramientas más avanzadas para analizar datos de cadenas. Las nuevas funciones serán convenientes y útiles en tareas tecnológicas de análisis de texto. En tareas relacionadas con el análisis de texto que contiene datos en forma formateada. Este puede ser el análisis de algunos archivos recibidos del equipo o, por ejemplo, el análisis de un registro tecnológico.

Todas las acciones que realizan las nuevas funciones, las podrías realizar antes. con mas o menos algoritmos complejos escrito en un lenguaje incrustado. Por lo tanto, las nuevas funciones no le brindan ninguna oportunidad fundamentalmente nueva. Sin embargo, le permiten reducir la cantidad de código, hacerlo más simple y comprensible. Además, te permiten agilizar la ejecución de acciones. Porque las funciones implementadas en la plataforma funcionan, por supuesto, más rápido que un algoritmo similar escrito en el lenguaje integrado.

Función de formato StrTemplate()

Esta función sustituye los parámetros en una cadena. La necesidad de tal conversión surge a menudo, por ejemplo, cuando se muestran mensajes de advertencia. La sintaxis de esta función es la siguiente:

Plantilla de cadena(<Шаблон>, <Значение1-Значение10>)

<Шаблон>es la cadena en la que se sustituyen las representaciones de parámetros.

<Значение1> , ... <Значение10>- estos son los parámetros (máximo - diez), cuyas representaciones deben sustituirse en la cadena.

Para especificar un lugar específico en la plantilla donde desea realizar la sustitución, debe usar marcadores como %1, ... %10. La cantidad de marcadores involucrados en la plantilla y la cantidad de parámetros que contienen valores deben coincidir.

Por ejemplo, el resultado de ejecutar dicho operador:

habrá una línea:

Error de datos en la línea 2 (requiere tipo de fecha)

Función de cadena StrCompare()

Esta función compara dos cadenas sin distinción entre mayúsculas y minúsculas. Por ejemplo, así:

Podría realizar la misma acción antes de usar el objeto ValueComparison:

Sin embargo, usar la nueva función parece más simple. Y además, la función, a diferencia del objeto Value Compare, funciona tanto en el cliente ligero como en el cliente web.

Funciones de cadena StrBeginsC(), StrEndsTo()

Estas funciones determinan si una cadena comienza con una subcadena específica o si una cadena termina con una subcadena específica. El algoritmo de estas funciones no es difícil de implementar en un lenguaje integrado, pero su presencia le permite escribir un código más claro y comprensible. Y trabajan más rápido.

Por ejemplo, son convenientes para usar en la instrucción If:

Funciones para trabajar con cadenas StrSplit(), StrJoin()

Estas funciones dividen la cadena en partes según el delimitador especificado. O viceversa, combinan varias líneas en una, insertando el separador seleccionado entre ellas. Son convenientes para crear o analizar registros, un registro tecnológico. Por ejemplo, puede desmontar fácilmente una entrada de registro tecnológico en partes adecuadas para un análisis posterior:

Función de trabajar con cadenas StrFind()

En lugar de la antigua función Find(), implementamos nueva caracteristica, que tiene características adicionales:

  • Buscar en diferentes direcciones (desde el principio, desde el final);
  • Buscar desde la posición especificada;
  • Busque una ocurrencia con el número especificado (segundo, tercero, etc.).

De hecho, duplica las capacidades de la función anterior. Esto se hace para mantener la compatibilidad con los módulos compilados en versiones anteriores. Se recomienda no utilizar más la antigua función Find().

A continuación se muestra un ejemplo que utiliza las nuevas capacidades de búsqueda. Buscar hacia atrás es útil cuando necesita la última parte de una cadena formalizada, como el nombre completo de un archivo en una URL. Y buscar desde una posición específica ayuda en los casos en los que necesita buscar en un fragmento conocido y no en toda la cadena.

String es uno de los tipos de datos primitivos en los sistemas 1C:Enterprise 8. Variables con tipo línea contener texto.

Escriba los valores de las variables línea se encierran entre comillas dobles. Se pueden añadir varias variables de este tipo.

por1 = "Palabra 1" ;
Per2 = "Palabra 2" ;
Per3 = Per1 + " " + Per2 ;

Eventualmente por3 importará" Palabra 1 Palabra 2″.

Además, los sistemas 1C:Enterprise 8 proporcionan funciones para trabajar con cadenas. Considere los principales:

EntrarCadena(<Строка>, <Подсказка>, <Длина>, <Многострочность>) — la función está destinada a mostrar un cuadro de diálogo en el que el usuario puede especificar un valor variable de tipo Línea. Parámetro <Строка> es obligatorio y contiene el nombre de la variable en la que se escribirá la cadena introducida. Parámetro <Подсказка> opcional es el título del cuadro de diálogo. Parámetro <Длина> opcional, espectáculos longitud máxima cadena de entrada El valor predeterminado es cero, lo que significa una longitud ilimitada. Parámetro <Многострочность> Opcional. Especifica el modo de entrada de texto de líneas múltiples: Verdadero: entrada de texto de líneas múltiples con separadores de línea; Falso: ingrese una cadena simple.

Se puede ingresar una cadena y, conociendo el código de carácter en Unicode:

Símbolo(<КодСимвола>) — El código se ingresa como un número.

Letra= Símbolo(1103 ) ; // YO

También hay una función inversa que te permite averiguar el código de un personaje.

SímboloCódigo(<Строка>, <НомерСимвола>) — Devuelve el número Unicode del carácter especificado como un número.

Funciones de conversión de mayúsculas y minúsculas:

VReg(<Строка>) - Convierte todos los caracteres de una cadena a mayúsculas.

Hreg(<Строка>) - Convierte todos los caracteres de una cadena a minúsculas.

TReg(<Строка>) - convierte todos los caracteres de la cadena a mayúsculas y minúsculas. Es decir, las primeras letras de todas las palabras se convierten a mayúsculas y las letras restantes se convierten a minúsculas.

Funciones para buscar y reemplazar caracteres en una cadena:

Encontrar(<Строка>, <ПодстрокаПоиска>) - encuentra el número de carácter de la aparición de la subcadena de búsqueda. Por ejemplo:

Buscar ("Cadena", "ojo"); // 4

StrBuscar(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) — encuentra el número de carácter de la ocurrencia de la subcadena de búsqueda, el número de ocurrencia se especifica en el parámetro correspondiente. En este caso, la búsqueda comienza desde el carácter, cuyo número se especifica en el parámetro Posición de salida. La búsqueda es posible desde el principio o desde el final de la cadena. Por ejemplo:

Número4 Entrada= StrFind( "Estar a la defensiva", "o", dirección de búsqueda. Primero, 1, 4); // 7

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) Encuentra todas las apariciones de la subcadena de búsqueda en la cadena de origen y la reemplaza con la subcadena de reemplazo.

StrReplace("Cadena", "ojo", ""); // Página

línea vacía (<Строка>) - comprueba la cadena en busca de caracteres significativos. Si no hay caracteres significativos, o ningún carácter, se devuelve el valor Verdadero. De lo contrario - Mentir.

StrNumberOcurrences(<Строка>, <ПодстрокаПоиска>) – calcula el número de ocurrencias de la subcadena de búsqueda en la cadena fuente.

StrNumberOcurrences ( "Estudia, estudia y vuelve a estudiar", "para estudiar" , "" ) ; // 3

Plantilla de cadena(<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — sustituye los parámetros en la cadena por número. La cadena debe contener marcadores de sustitución de la forma: "%1..%N". La numeración de los marcadores comienza desde 1. Si el valor del parámetro Indefinido, se sustituye la cadena vacía.

Patrón de cadena ( "Opción 1 = %1, Opción 2 = %2", "1" , "2" ) ; // Parámetro 1= 1, Parámetro 2 = 2

Funciones de conversión de cadenas:

Un leon(<Строка>, <ЧислоСимволов>) devuelve los primeros caracteres de la cadena.

Derecha(<Строка>, <ЧислоСимволов>) - devuelve los últimos caracteres de la cadena.

Miércoles(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) - devuelve una cadena de longitud<ЧислоСимволов>, comenzando con un símbolo<НачальныйНомер>.

Abr(<Строка>) trunca los caracteres no significativos a la izquierda del primer carácter significativo de la cadena.

abr(<Строка>) - corta los caracteres insignificantes a la derecha del último carácter significativo de la cadena.

abrl(<Строка>) - corta los caracteres no significativos a la izquierda del primer carácter significativo de la cadena ya la derecha del último carácter significativo de la cadena.

StrGetString(<Строка>, <НомерСтроки>) – obtiene la cadena de una cadena multilínea por número.

Otras características:

StrLength(<Строка>) - devuelve el número de caracteres en una cadena.

StrNúmero de líneas(<Строка>) - devuelve el número de filas en una cadena de varias líneas. Una línea se considera nueva si está separada de la línea anterior por un carácter de nueva línea.

StrCompare(<Строка1>, <Строка2> ) - compara dos cadenas de mayúsculas y minúsculas sin distinción. La función funciona como un objeto. Comparando valores. Devoluciones:

  • 1 - si la primera línea es mayor que la segunda
  • -1 - si la segunda línea es mayor que la primera
  • 0 - si las cadenas son iguales

StrCompare("Primera fila", "Segunda fila"); // uno

Existen pocos mecanismos para trabajar con cadenas en consultas 1C. Primero, se pueden agregar cadenas. En segundo lugar, se puede tomar una subcadena de una cadena. En tercer lugar, las cadenas se pueden comparar, incluso por patrón. Eso es todo lo que puedes hacer con cadenas.

Adición de cadenas

El operador "+" se usa para agregar cadenas en una consulta. Solo puede agregar cadenas de longitud limitada.

SELECCIONE "Nombre: " + Contratistas.Nombre AS Columna 1 DESDE Directorio.Contratistas AS Contratistas WHERE Contratistas.Referencia = &Referencia

Función de subcadena

SUBCADENA(<Строка>, <НачальнаяПозиция>, <Длина>)

Un análogo de la función Environment() de modelo de objeto. La función Substring() se puede aplicar a datos de tipo cadena y le permite seleccionar un fragmento <Строки> , comenzando con un carácter de número <НачальнаяПозиция> (los caracteres de una cadena se numeran a partir del 1) y la longitud <Длина> caracteres. El resultado de la evaluación de la función tiene un tipo de cadena de longitud variable, y la longitud se considerará ilimitada si <Строка> tiene longitud y parámetro ilimitados <Длина> no es una constante o mayor que 1024.

Si la longitud de la cadena es menor que la especificada en el segundo parámetro, la función devolverá una cadena vacía.

¡Atención! No se recomienda utilizar la función SUBSTRING() para convertir cadenas de longitud ilimitada en cadenas de longitud limitada. En su lugar, es mejor utilizar el operador de conversión EXPRESS().

Función similar

Si necesita asegurarse de que el accesorio de cadena coincida cierto criterio lo comparamos:

SELECCIONE Contrapartes.Nombre AS Columna 1 DESDE Directorio.Contrapartes COMO Contrapartes DONDE Contrapartes.Nombre = "Gazprom"

Pero, ¿y si se necesita una comparación más sutil? ¿No solo por la igualdad o la desigualdad, sino por la similitud con un cierto patrón? Eso es exactamente para lo que se creó la función LIKE.

LIKE: un operador para verificar si una cadena es similar a un patrón. Análogo de LIKE en SQL.

El operador LIKE le permite comparar el valor de la expresión especificada a la izquierda con la cadena de plantilla especificada a la derecha. El valor de la expresión debe ser de tipo cadena. Si el valor de la expresión coincide con la plantilla, el resultado del operador será VERDADERO, de lo contrario será 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 único que figure entre corchetes. Una enumeración puede contener rangos, como a-z, lo que significa cualquier carácter dentro del rango, incluidos los extremos del rango;
  • [^…] (entre corchetes, un signo de negación seguido de uno o más caracteres): Cualquier carácter único que no sean los enumerados después del signo de negación.

Cualquier otro símbolo significa en sí mismo y no lleva ninguna carga adicional. Si es necesario escribir uno de los caracteres enumerados por sí mismo, debe ir precedido de<Спецсимвол>. Mí mismo<Спецсимвол>(cualquier carácter adecuado) se define en la misma declaración después de palabra clave SÍMBOLO ESPECIAL.

Para capacidades básicas Los lenguajes de programación suelen incluir trabajo con números y cadenas. Por lo general, estas características están integradas en el código del compilador (o se implementan clases "base" del lenguaje de programación).

En 1C, las capacidades de trabajar con cadenas están programadas en la propia plataforma. Hoy consideraremos las características de trabajar con cadenas 1C en programas en el lenguaje 1C incorporado.

Valor de línea 1C

1. Empecemos por lo más sencillo. Crear una variable y asignarle un valor constante de cadena se ve así en 1C:

Variable = "¡Hola mundo!";

Si desea especificar un carácter de comillas en un valor de cadena constante 1C, debe duplicarlo ""

Variable = "Hola, "mundo""!";

2. El salto de línea 1C se puede especificar de dos formas a la vez. El primero está usando el símbolo |

Variable = "Hola,
| ¡mundo! ";

El segundo es usar la enumeración del sistema Symbols. Le permite agregar un salto de línea 1C y otros caracteres que no se imprimen, como TAB.

Variable = "Hola" + Símbolos.ps + "¡paz!";

3. Las configuraciones en 1C se pueden desarrollar no solo para un idioma (ruso, inglés u otro), sino simultáneamente para varios idiomas. En este caso, el idioma utilizado actualmente se selecciona en la parte inferior de la ventana 1C.

La lista de idiomas se encuentra en la ventana de configuración en la rama General/Idiomas. Cada idioma tiene un identificador corto como es o ing.

Está claro que al programar una configuración de este tipo, las líneas 1C también pueden ser multilingües. Para hacer esto, es posible crear una línea 1C de este tipo especificando a través de; opciones por ID de idioma:

Variable = "ru=""¡Hola, mundo!""; en=""¡Hola, mundo! """;

Si usa la línea 1C formada de esta manera como de costumbre, entonces será lo que está escrito en ella. Para que el sistema lo divida en dos opciones y use la deseada, debe usar la función NStr():

//correcto para configuraciones bilingües
Informe(NStr(Variable));

Atrezzo con línea tipo 1C

El requisito es un campo del directorio/documento 1C. Se diferencia de una variable en un programa en el lenguaje 1C en que su tipo se indica con precisión para el atributo (número, cadena 1C, etc.). Si necesita repasar qué son los accesorios, consulte el tutorial en .

Si especifica el tipo de atributo - línea 1C, también debe especificar los parámetros.

Las cadenas 1C tienen una longitud ilimitada (indicada como longitud = 0) y una longitud limitada, lo que indica el número exacto de caracteres. Las cadenas 1C de longitud ilimitada se almacenan en una tabla SQL separada, por lo que su uso es menos productivo que las limitadas.

Es por eso que el uso de cadenas 1C de longitud ilimitada tiene sus limitaciones: no es posible usarlas en todas partes. Por ejemplo, no es posible como número de documento, código de directorio, medida.

Trabajando con líneas 1C

Para trabajar con cadenas, hay varias funciones integradas de la plataforma 1C.

  • AbbrLP("¡Increíble, pero cierto!")
    Elimina espacios adicionales de la cadena 1C. También se puede usar para convertir cualquier tipo en una cadena 1C (por ejemplo, números).
  • Variable = "Vasya" + Abbrl("más") + "Olya"; //será "Vasya más Olya"
    Un ejemplo de sumar varios valores de cadena 1C. El resultado es una línea 1C.
  • Variable = León("Música", 2); // será "Mu"
    Variable = Promedio("Música", 2, 2); // será "ps"
    Variable = Derechos ("Música", 2); // será "ka"
    Varias opciones para obtener una subcadena a partir de una cadena 1C.
  • Variable = Buscar("Música", "ps"); //Serán 3
    Busque una subcadena en la cadena 1C, comenzando con el carácter 1.
  • Variable = StrLength("Música"); //Serán 6
    Devuelve el número de caracteres de una cadena 1C.
  • Notificar("Hola") //en el cuadro de mensaje en la parte inferior de la ventana 1C
    alert("hola") //diálogo emergente
    Status("Hello") //en la línea de visualización de estado en la parte inferior izquierda
    .

Llevar objetos a la línea 1C

Como sabes, el formato más popular para el intercambio de información estructurada en la actualidad es XML. Incluso ultima versión EM Palabra de oficina y Excel guarda archivos en este formato (docx y xlsx respectivamente, cambia la extensión a zip, abre en un archivador).

La plataforma 1C para el intercambio de datos ofrece varias opciones, la principal de las cuales también es XML.

1. El método más simple es usar la función ShortLP() o String(). Puede utilizar la función REPRESENTATION() en el texto de la consulta. El resultado de su acción es el mismo: generan una representación de cadena de cualquier objeto 1C para el usuario.

Para el directorio predeterminado, este será su nombre. Para un documento, el nombre, el número y la fecha del documento.

2. Cualquier objeto 1C (con restricciones) se puede convertir a XML y viceversa. El proceso de conversión se llama serialización.

ViewStringXml = XMLString(Valor); // obtener XML del valor 1C
Value1С = XMLValue(Type("CatalogReference.Nomenclature"),ViewStringXml); // obtenga el valor 1C de la cadena XML, debe especificar el tipo de 1C que debe recibirse

3. Existe una forma nativa de la plataforma 1C para convertir cualquier objeto 1C en una cadena. Migró de la versión 1C 7.7. Otros programas no entienden este formato, pero entienden otro 1C, lo que facilita su uso para intercambiar entre bases de datos 1C.

Cadena = ValorEnCadenaInt(Valor1S); // obtener la cadena 1C del valor 1C
ValueToFile("C:\MiArchivo.txt", Valor1C); //otra opción, obtenemos un archivo con una cadena guardada del valor 1C
Valor1C = ValorDeCadenaInt(Cadena); // de regreso de la línea 1C
Valor1C = ValorDeArchivo("C:\MiArchivo.txt"); //volver del archivo

Editando las líneas 1C en el formulario

Además de trabajar con cadenas 1C en un programa 1C, por supuesto, me gustaría que el usuario pudiera editarlas. Hay varias posibilidades para esto:

1. La forma más sencilla es solicitar la entrada de la línea 1C bajo demanda. Este método se usa cuando se enseña programación 1C, en la vida se usa con mucha menos frecuencia (¡pero se usa!).

variable = "";
String = EnterValue(Variable, "Ingrese el nombre completo");

2. Para mostrar los detalles del objeto 1C (directorio / documento) o los detalles del formulario (ver), el campo de entrada se usa con mayor frecuencia. Esta es la herramienta más común en 1C para que el usuario trabaje con campos de edición.

3. Las capacidades del campo de entrada se pueden ampliar (consulte las propiedades del campo de entrada, haga clic derecho sobre él para obtener más detalles):

  • Casilla de verificación Modo de edición multilínea
  • Casilla de verificación de edición avanzada (disponible si la casilla de verificación anterior está marcada)
  • Casilla de verificación Modo de contraseña (ver ).

4. Si todas las posibilidades del campo de entrada no son suficientes para usted, hay un editor incorporado. Para agregarlo al formulario, debe agregar un Campo en el menú Formulario / Insertar control Documento de texto. En sus propiedades, puede especificar el modo de su operación: la propiedad Extensión.

Un campo de documento de texto no se puede vincular directamente a los datos. Es necesario escribir la siguiente función en el manejador de eventos del formulario OnOpening() (ver ):

FormElements.ElementNameTextDocumentField.SetText(StringValue); //aquí ValueString es el texto recibido, por ejemplo, del atributo

Y en el controlador de guardado, por ejemplo, en el botón Guardar, agregue un guardado:

ValueString = FormElements.ElementNameTextDocumentField.GetText(); //ValueString aquí están los accesorios donde guardamos el valor

5. En 1C versión 8.2.11, en formularios administrados, apareció nueva oportunidad representación de línea 1C - Campo de documento formateado.


Similar al campo de un documento de texto, es necesario configurar al abrir y escribir al guardar el texto usted mismo usando el programa.

  • En el objeto 1C, cuya forma estamos creando (libro de referencia, documento, procesamiento, etc.), agregue un atributo con el tipo Almacenamiento de valor
  • En la función OnReadOnServer(), establezca el texto del atributo

    //aquí Requisito es el atributo agregado del objeto 1C
    //aquí FormattedDocument es el nombre del campo en el formulario de edición
    &En el servidor

    FormattedDocument = CurrentObject.Attributes.Get();
    Procedimiento final

  • En la función BeforeWriteOnServer() o presionando el botón, escriba el texto del campo

    &En el servidor
    Procedimiento OnReadingOnServer(CurrentObject)
    CurrentObject.Attributes = NewValueStorage(FormattedDocument);
    Procedimiento final



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