Menú
Está libre
registro
hogar  /  Multimedia/ Funciones para trabajar con líneas 1. Nuevas funciones para trabajar con cadenas

Funciones para trabajar con la línea 1c. Nuevas funciones para trabajar con cadenas

Hola, todos
Hoy me pidieron que no mostrara el prefijo del documento al imprimir el documento de implementación, el problema se resolvió de la siguiente manera.

StrReplace (Número, Leo (Número, 3), "");

Cuando miré en el asistente de sintaxis, me gustó tanto que quise escribir sobre trabajar con cadenas en 1C: Enterprise.

Una cadena en 1C se refiere a un tipo de datos primitivo.

Si observa la ayuda de 1C, veremos la siguiente descripción del tipo de cadena
Los valores de este tipo contienen una cadena Unicode de longitud arbitraria.
Si lo dice con sus propias palabras acerca de las cadenas, funcionará. Una cadena es una constante, que consta de varios caracteres, siempre entre comillas.

Especificando una cadena
Llamar = "Hola pasajero";

Las cadenas de varias líneas en configuraciones típicas se crean con mayor frecuencia utilizando el separador vertical "|":
String = "Multilínea
| cadena
| escribir
| texto ";

Las comillas dentro de la cadena se especifican con comillas dobles.
String = "" Texto entre comillas "";

Hay muchas operaciones sobre cadenas (buscar en el interior de una cadena, determinar la primera, etc.), es mejor mirar el Asistente de sintaxis.
Asistente de sintaxis: descripción general del lenguaje integrado-> funciones integradas-> funciones para trabajar con cadenas.

Funciones de cadena

Aquí, de forma breve, daré las funciones para trabajar con cadenas:

BReg (<Строка>) - La función convierte todos los caracteres de la cadena a mayúsculas.

SymbolCode (<Строка>, <НомерСимвола>) - La función recibe el código del carácter ubicado en la cadena pasada en la posición con el número especificado.

Un leon(<Строка>, <ЧислоСимволов>) - La función selecciona los primeros caracteres de la izquierda de la cadena.

Encontrar(<Строка>, <ПодстрокаПоиска>) - La función encuentra la ocurrencia de la cadena de búsqueda como una subcadena en la cadena original.

HPreg (<Строка>) - La función convierte todos los caracteres de la cadena a minúsculas.

Derecha (<Строка>, <ЧислоСимволов>) - Esta función se diferencia de las funciones de la izquierda en que selecciona los últimos caracteres de la cadena de la derecha.

Línea vacía (<Строка>) - La función comprueba la cadena en busca de caracteres significativos.

Símbolo(<КодСимвола>) - La función convierte el código del carácter en una cadena que contiene el carácter.

AbbrL (<Строка>) - La función corta los caracteres insignificantes a la izquierda del primer carácter significativo de la cadena.

SocrLP (<Строка>) - La función elimina los caracteres insignificantes a la izquierda del primer carácter significativo de la línea y los espacios a la derecha del último carácter significativo de la línea.

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

Miércoles (<Строка>, <НачальныйНомер>, <ЧислоСимволов>) - La función selecciona una cadena de caracteres que comienza con un carácter<НачальныйНомер>, en total<ЧислоСимволов>.

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

PReplace (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) - La función encuentra todas las apariciones de la subcadena de búsqueda en la cadena original y la reemplaza con la subcadena de reemplazo.

StrGetString (<Строка>, <НомерСтроки>) - La función obtiene una cadena de una cadena de varias líneas por número.

StrNumber of Occurrences (<Строка>, <ПодстрокаПоиска>) - La función calcula el número de apariciones de la subcadena de búsqueda en la cadena original.

StrNumber of Lines (<Строка>) - La función cuenta el número de líneas en una cadena de varias líneas. En una cadena de varias líneas, las líneas están separadas por caracteres de salto de línea.

Treg (<Строка>) - La función convierte la cadena en el caso del título. Esto significa que para cada palabra, el primer carácter se convierte en un título o en mayúsculas si no se define ningún título para el carácter. El resto de los caracteres se convierten a minúsculas.

Conversiones de tipos
Para la conversión explícita de tipos de datos, hay funciones del mismo nombre con el tipo de datos al que se produce la conversión: String (<Значение>)

StringOfNumbers = String (Número);

Todas estas funciones se describen en detalle en el Asistente de sintaxis, cómo el Asistente de sintaxis puede ayudar a un programador principiante, lo describí en el artículo.

Ejemplos para trabajar con cadenas

Convierte un número en una cadena y viceversa.

Para obtener una representación de cadena del año, use la función Formato.

Año = Formato (Fecha actual (), "DF = aaaa") // Año = "2012"

Para convertir un número en una cadena sin insertar un carácter separador de grupo (espacio sin interrupciones), debe usar la función Formato con el parámetro ChG = 0:

Número = 2012 Cadena = Formato (Número, "CHG = 0"); // String = "2012"

Cadena Sin espacios.

Notas del espejo

18/08/2014 Nuevas funciones para trabajar con cadenas

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 textos. En tareas relacionadas con el análisis de texto que contiene datos formateados. 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 nuevas funciones que podría haber realizado antes. Con la ayuda de algoritmos más o menos complejos escritos en un lenguaje embebido. Por lo tanto, las nuevas funciones no le ofrecen posibilidades fundamentalmente nuevas. Sin embargo, le permiten reducir la cantidad de código, hacer que el código sea más simple y más fácil de entender. Y además de eso, 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 un lenguaje embebido.

Función de formato PpTemplate ()

Esta función sustituye 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:

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

<Шаблон>es una cadena que sustituye a las representaciones de parámetros.

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

Para indicar un lugar específico en la plantilla donde desea realizar la sustitución, debe usar tokens de la forma% 1, ...% 10. El número de marcadores utilizados en la plantilla y el número de parámetros que contienen valores deben ser los mismos.

Por ejemplo, el resultado de ejecutar tal declaración:

habrá una línea:

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

Función para trabajar con cadenas StrCompare ()

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

Podrías haber realizado la misma acción antes de usar el objeto. Comparación de valores:

Sin embargo, el uso de la nueva función parece más sencillo. Y además de esto, una función, a diferencia de un objeto Comparación de valores, funciona tanto en el cliente ligero como en el cliente web.

Funciones para trabajar con cadenas RowStart With (), RREnd With ()

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

Por ejemplo, conviene utilizarlos en el operador Si:

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

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

Función para trabajar con cadenas StrFind ()

En lugar de la vieja función Encontrar() hemos implementado una nueva característica que tiene capacidades adicionales:

  • Busque en diferentes direcciones (desde el principio, desde el final);
  • Buscar desde una posición específica;
  • 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. Función antigua Encontrar() se recomienda no volver a utilizarlo.

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

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

Concatenación de cadenas

Para agregar cadenas en una consulta, se usa la operación "+". Solo se pueden agregar cadenas de longitud limitada.

SELECCIONE "Nombre:" + Contrapartes. Nombre COMO Columna 1 DEL Directorio. Contrapartes COMO Contrapartes DONDE Contrapartes. Enlace = & Enlace

Función de subcadena

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

Análogo de la función Environment () del modelo de objetos. La función Substring () se puede aplicar a datos de un tipo de cadena y le permite seleccionar un fragmento <Строки> comenzando con el número de carácter <НачальнаяПозиция> (los caracteres de la cadena están numerados desde 1) y longitud <Длина> caracteres. El resultado de evaluar la función tiene un tipo de cadena de longitud variable, y la longitud se considerará ilimitada si <Строка> tiene una longitud y un parámetro ilimitados <Длина> no es constante o excede 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. Es mejor usar una operación de conversión como EXPRESS () en su lugar.

Función como

Si necesitamos asegurarnos de que un atributo de cadena cumple con ciertos criterios, lo comparamos:

SELECCIONE las contrapartes. Nombre COMO Columna1 DEL Directorio. Contrapartes COMO contrapartes DONDE Contrapartes. Nombre = "Gazprom"

Pero, ¿y si quieres una comparación más complicada? ¿No solo igualdad o desigualdad, sino como cierto patrón? Esto es exactamente para lo que se creó la función LIKE.

LIKE - Operador para verificar una cadena como 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 el patrón, el operador devolverá VERDADERO; de lo contrario, será FALSO.

Los siguientes caracteres de 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;
  • _ (subrayado): un carácter arbitrario;
  • […] (Uno o más caracteres entre corchetes): cualquier carácter individual enumerado entre corchetes. La enumeración puede contener rangos, por ejemplo, a-z, lo que significa 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 único que no sean los enumerados después del signo de negación.

Cualquier otro símbolo significa en sí mismo y no tiene ningún significado adicional. Si es necesario escribir uno de los caracteres enumerados como uno mismo, debe ir precedido de<Спецсимвол>... Yo mismo<Спецсимвол>(cualquier carácter adecuado) se define en la misma declaración después de la palabra clave SPECIAL CHARACTER.

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

Ejemplo 1. Creemos una variable de cadena con texto.

StringVariable = "¡Hola mundo!";

Funciones para trabajar con cadenas en 1c 8.3

En este apartado se darán las principales funciones que le permitirán cambiar las líneas en 1c, o analizar la información contenida en ellas.

Longitud de Str

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

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

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

El resultado de ejecutar este código será la visualización del número de caracteres en la cadena: 11.

Abreviatura

AbbrL (<Строка>) ... Trunca los caracteres insignificantes a la izquierda del primer carácter significativo de la cadena.
Personajes secundarios:

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

Ejemplo 3. Elimine todos los espacios del lado izquierdo de la línea "¡mundo!" y adjuntarle la cadena "Hola".

String = abreviado ("¡paz!"); String = "Hola" + String; Informe (cadena);

El resultado de la ejecución de este código será la salida de la línea "¡Hola mundo!"

Abreviatura

Abreviatura (<Строка>) ... Trunca los caracteres insignificantes a la derecha del primer carácter significativo de la cadena.

Ejemplo 4. Forma "Hola" y "¡Mundo!" la frase "¡Hola mundo!"

Cadena = abreviado ("Hola") + "" + abreviado ("¡mundo!"); Informe (cadena);

SokrLP

SocrLP (<Строка>) ... Trunca los caracteres insignificantes a la derecha del primer carácter significativo de la cadena y también corta los caracteres insignificantes a la izquierda del primer carácter significativo de la cadena. Esta función se utiliza con más frecuencia que las dos anteriores, ya que es más versátil.

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

Contraparte = Directorios.Contractores.NaytiPoRequisite ("DCI", "0777121211"); CounterpartyObject = Counterparty.GetObject (); CounterpartyObject.Name = ShortLP (CounterpartyObject.Name); CounterpartyObject.Write ();

un leon

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

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

InitialName = Leo (Employee.Name, 1); Patronímico inicial = Leo (Empleado, Patronímico, 1); FullName = Employee.Surname + "" + InitialName + "." + Inicial patronímica + ".";

Derecha

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 especificado de caracteres excede la longitud de la cadena, se devuelve la cadena completa.

Ejemplo 7. Suponga que el final de una variable de cadena contiene una fecha con el formato "aaaammdd", obtenga una cadena con una fecha y conviértala al tipo fecha.

String = "Fecha actual: 20170910"; StringDate = Derecha (Cadena, 8); Fecha = Fecha (StringDate);

miércoles

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

Ejemplo 8. Suponga que una variable de cadena que comienza en la novena posición contiene el código de región, debe obtenerlo y escribirlo en una línea separada.

Line = "Región: 99 Moscú"; Región = Mié (Línea, 9, 2);

Buscar

Encontrar (<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) ... 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;
  • SubstringSearch... La subcadena que se buscará;
  • Dirección de búsqueda... Especifica la dirección para buscar una subcadena en una cadena. Puede tomar valores:
    • Dirección de búsqueda. Desde el inicio;
    • Dirección de búsqueda.;
  • Posición inicial... Especifica la posición en la cadena desde la que comienza la búsqueda;
  • Número de entradas... Especifica el número de apariciones de la subcadena deseada en la cadena original.

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

PositionNumber = StrNayti ("¡Hola mundo!", "Y", DirectionSearch.End); Informe (número de puesto);

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": 9.

VReg

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

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

StringBreg = BReg ("¡hola mundo!"); Informe (StringVreg);

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

Nreg

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

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

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

El resultado de la ejecución de este código será la salida de la línea "¡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úscula las primeras letras de las palabras de 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 línea "¡Hola mundo!"

Símbolo

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

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

StringWithStars = Símbolo ("9733") + "¡Hola mundo!" + Símbolo ("9733"); Informe (StringWithStars);

El resultado de ejecutar este código será el resultado de la línea "★ ¡Hola mundo! ★"

Código de símbolo

SymbolCode (<Строка>, <НомерСимвола>) ... 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. Descubra el código del último carácter de "¡Hola mundo!"

String = "¡Hola mundo!"; CharacterCode = CharacterCode (Cadena, StrLength (Cadena)); Informe (SymbolCode);

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

Línea vacía

Línea vacía (<Строка>) ... Comprueba si una cadena contiene solo caracteres insignificantes, es decir, si está vacía.

Ejemplo 15. Compruebe si una cadena de tres espacios está vacía.

Empty = EmptyString (""); Informe (vacío);

El resultado de la ejecución de este código será la visualización de la palabra "Sí" (expresión de cadena del valor lógico Cierto).

PageReplace

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

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

String = StrReplace ("¡Hola mundo!", "Mundo", "Amigos"); Informe (cadena);

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

StrNumberStrings

StrNumber of Lines (<Строка>) ... Cuenta el número de líneas en una cadena de varias líneas. Para moverse a una nueva línea en 1s 8, use el carácter PD(carácter de avance de línea).

Ejemplo 17. Determine la cantidad de líneas en el texto:
"Primera linea
Segunda linea
Tercera línea "

Number = StrNumber of Lines ("Primera línea" + Symbols.PS + "Segunda línea" + Symbols.PS + "Tercera línea"); Numero de reporte);

El resultado de ejecutar 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 de varias líneas por su número. La numeración de líneas comienza en 1.

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

Texto = "Primera línea" + Símbolos.PS + "Segunda línea" + Símbolos.PS + "Tercera línea"; LastString = StrGetString (Texto, StrNumberLines (Texto)); Informe (LastLine);

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

StrNumber of Occurrences

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

Ejemplo 19. Determine cuántas veces aparece la letra "c" en la línea "Líneas en 1s 8.3 y 8.2", independientemente de su caso.

Line = "Líneas en 1s 8.3 y 8.2"; Número de apariciones = StrNumber of Occurrences (Vreg (String), "S"); Informe (número de ocurrencias);

El resultado de ejecutar este código será la visualización del número de ocurrencias: 2.

La página comienza con

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

Ejemplo 20. Determine si el TIN de la contraparte seleccionada comienza con el número 1. Sea la variable Contraparte Contratistas.

TIN = Counterparty.INN; Empieza por Unidades = Str Empieza por (INN, "1"); If BeginsUnits Then // Su código EndIf;

PageEnds With

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

Ejemplo 21. Determine si el TIN de la contraparte seleccionada termina con el dígito 2. Deje la variable Contraparte se almacena un enlace a un elemento del directorio Contratistas.

TIN = Counterparty.INN; Termina con dos = Str termina con (INN, "2"); Si termina con doble Entonces // Tu código EndIf;

PageSplit

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

Ejemplo 22. Suponga que tenemos una cadena que contiene números separados por ";", obtenga una matriz de números de la cadena.

Cadena = "1; 2; 3"; Matriz = StrSplit (String, ";"); For Rd = 0 By Array.Quantity () - 1 Cycle Attempt Array [Rd] = Number (AbbrLP (Array [Rd])); Matriz de excepciones [Сч] = 0; Fin de los intentos Fin del ciclo;

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

StrConnect

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

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

For Rd = 0 By Array.Quantity () - 1 Loop Array [Rd] = String (Array [Rb]); Fin de ciclo; Cadena = StrConnect (Matriz, ";");

El tipo "Cadena" se encuentra en todos los lenguajes de programación. Es primitivo y en 1C hay muchas funciones para trabajar con él. En este artículo, analizaremos más de cerca varias formas de trabajar con tipos de cadenas en 1C 8.3 y 8.2 usando ejemplos.

Línea

Para convertir una variable de cualquier tipo en una cadena, existe una función del mismo nombre "Cadena ()". El parámetro de entrada será la propia variable, cuya representación en forma de cadena se obtendrá.

String (False) // devuelve "No"
String (12345) // devuelve "12345"
String (CurrentDate ()) // 21/07/2017 11:55:36 ″

Es posible convertir no solo tipos primitivos en una cadena, sino también otros, por ejemplo, elementos de libros de referencia, documentos.

SocrLP, SocrL, SocrP

Los parámetros de entrada de estas funciones son una variable de tipo cadena. Las funciones eliminan caracteres insignificantes (espacios, retornos de carro y otros): del lado izquierdo y derecho, solo del lado izquierdo, y solo del derecho, respectivamente.

AbbrLP ("Los espacios se eliminarán de ambos lados") // "Los espacios se eliminarán de ambos lados"
Abbreviated ("Se eliminarán los espacios de ambos lados") // "Se eliminarán los espacios de la izquierda"
Abreviatura ("Se eliminarán los espacios de ambos lados") // "Se eliminarán los espacios de la derecha"

Leo, derecha, miércoles

Estas funciones le permiten recortar parte de una cuerda. La función "Lion ()" devolverá la parte de la cadena de su lado izquierdo de la longitud especificada. La función "Derecha ()" es la misma, pero el recorte se realiza a la derecha. La función "Med ()" le permite especificar el número del carácter del que se seleccionará la cadena y su longitud.

Lion ("Variable de cadena", 4) // devuelve "Stro"
Derecha ("Variable de cadena", 7) // devuelve "variable"
Miércoles ("Variable de cadena", 2, 5) // devuelve "troco"

Longitud de Str

La función determina el número de caracteres que contiene la variable de cadena.

StrLength ("Word") // el resultado de la ejecución será el número 5

Encontrar

La función permite buscar una parte de una cadena en cualquier variable de cadena. El valor de retorno será un número que muestra la posición del comienzo de la cadena encontrada. Si no se encuentra ninguna coincidencia, se devuelve cero.

Tenga en cuenta que las búsquedas distinguen entre mayúsculas y minúsculas. Si la cadena original contiene más de una aparición de la subcadena de búsqueda, la función devolverá el comienzo de la primera aparición.

Find ("uno, dos, uno, dos, tres", "dos") // la función devolverá el número 6

Línea vacía

El uso de esta función le permite determinar si una cadena está vacía. Los caracteres insignificantes como el espacio, el retorno de carro y otros se ignoran.

EmptyString ("Pupkin Vasily Ivanovich") // la función devolverá el valor False
EmptyString ("") // la función devolverá True

VReg, NReg, Treg

Estas funciones son muy útiles al comparar y convertir variables de cadena. Breg () devolverá la cadena original en mayúsculas, HPreg () en minúsculas y TRreg () la formateará de modo que el primer carácter de cada palabra individual esté en mayúscula y todos los siguientes en minúscula.

Vreg ("DIRECTOR GENERAL") // valor devuelto - "DIRECTOR GENERAL"
НReg ("DIRECTOR GENERAL") // valor devuelto - "director general"
TREG ("DIRECTOR GENERAL") // valor devuelto - "Director general"

PageReplace

Esta función es análoga a la sustitución en los editores de texto. Le permite sustituir un carácter o conjunto de caracteres por otro en las variables de cadena.

StrReplace ("rojo, blanco, amarillo", ",", ";") // devolverá "rojo; Blanco; amarillo"

StrNumberStrings

La función le permite determinar el número de líneas separadas por retornos de carro en una variable de texto.

El ciclo en el ejemplo siguiente pasará por tres círculos ya que la función RowNumber devolverá 3:

Para ind = 1 por StrNumberStrings ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3") Bucle
<тело цикла>
Fin de ciclo;

StrGetString

Esta función funciona con texto de varias líneas de la misma forma que la anterior. Le permite obtener una cadena específica de una variable de texto.

StrGetString ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3", 2) // devolverá "String2"

StrNumber of Occurrences

La función cuenta el número de apariciones de un carácter o subcadena en la cadena de búsqueda.

StrNumber of Attachments ("a; b; c; d;", ​​";") // la función devolverá el número 4

Símbolo y código de símbolo

Estas funciones le permiten obtener un carácter por su código Unicode, así como determinar este código por el propio carácter.

SymbolCode ("A") // la función devolverá el número 1040
SymbolCode (1040) // la función devolverá "A"

Tareas frecuentes al trabajar con cadenas

Concatenar cadenas

Para concatenar múltiples cadenas (para realizar la concatenación), es suficiente usar el operador de suma.

"Línea 1 ″ +" Línea 2 ″ // el resultado de agregar dos líneas será "Línea 1 Línea 2"

Conversión de tipo

Para convertir un tipo en una cadena, por ejemplo, una referencia a un elemento de diccionario, un número, etc., es suficiente usar la función "Cadena ()". Funciones como "Abreviatura ()" también convertirán variables en una cadena, pero inmediatamente con el truncamiento de caracteres insignificantes.

String (1000) // devolverá "1000"

Tenga en cuenta que al convertir un número en una cadena, el programa agrega automáticamente un espacio que separa mil. Para evitar esto, puede utilizar las siguientes construcciones:

StrReplace (String (1000), Characters.NPP, "") // devolverá "1000"

String (Format (1000, "CHG =")) // devolverá "1000"

Citas en una cadena

Muy a menudo, tendrá que lidiar con la necesidad de especificar comillas en una variable de cadena. Puede ser un texto de solicitud escrito en el configurador o simplemente una variable. Para resolver este problema, solo necesita poner dos comillas.

Title = String ("LLC" Cuernos y pezuñas "" - ¡somos nosotros! ") // devuelve" LLC "Cuernos y pezuñas" - ¡somos nosotros! "

Varias líneas, salto de línea

Para crear texto de varias líneas, basta con añadirle caracteres de salto de línea (Symbols.PS).

MultilineText = "Primera línea" + Symbols.PS + "Segunda línea"

Cómo eliminar espacios

Para eliminar espacios a la derecha oa la izquierda, puede utilizar la función "Abreviatura ()" (así como "Abreviatura ()" y "Abreviatura ()"):

StringNoSpaces = AbbreviatedLP ("Muchas letras") // la función devolverá el valor "Muchas letras"

Si, después de convertir un número en una cadena, necesita eliminar los espacios que no se rompen, use la siguiente construcción:

StringNoSpaces = StrReplace (String (99999), Characters.NPP, "") // devolverá "99999"

Además, los programadores suelen utilizar la siguiente construcción, que le permite eliminar o reemplazar todos los espacios de una variable de texto con otro carácter:

StringNoSpaces = StrReplace ("welcome", "", "") // devuelve "hola"

Comparando cadenas entre sí

Los términos se pueden comparar con el signo igual habitual. La comparación distingue entre mayúsculas y minúsculas.

"Hola" = "hola" // devolverá Falso
"Hola" = "Hola" // devolverá True
"Hola" = "Adiós" // devolverá Falso