Глобальный контекст.СтрДлина

Методы · StrLen

Получает количество символов в строке.

Синтаксис

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

Примеры платформы

ДлинаНаименования = СтрДлина(Товар.Наименование);
Полное описание, параметры и ограничения

Глобальный контекст.СтрДлина (Global context.StrLen)

Глобальный контекст (Global context)

СтрДлина (StrLen)

Доступен, начиная с версии 8.0.

Синтаксис:
СтрДлина(<Строка>)
Параметры:

<Строка> (обязательный)
Тип: Строка.
Исходная строка.
Возвращаемое значение:
Тип: Число.
Длина строки.
Описание:

Получает количество символов в строке.

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Внимание: Данный метод не поддерживается при работе через COM-соединение
Пример:

ДлинаНаименования = СтрДлина(Товар.Наименование);

Использование в версии:

Доступен, начиная с версии 8.0.

Описание изменено в версии 8.3.13.

Методическая информация

Практические примеры

Преобразовать русское название в UTF-8 и вернуть обратно

Размер строки в символах и размер передаваемых байтов различаются. Явно выбираем UTF-8 без BOM для обмена.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Выполняйте на сервере; файл не создаётся, сеть не используется.

  2. В первом запуске оставьте название Книга и параметр ЗаписатьBOM равным Ложь.

Название = "Книга";
Данные = ПолучитьДвоичныеДанныеИзСтроки(Название, КодировкаТекста.UTF8, Ложь);
Буфер = ПолучитьБуферДвоичныхДанныхИзДвоичныхДанных(Данные);
Сообщить(СтрДлина(Название));
Сообщить(Данные.Размер());
Сообщить(Буфер.Размер);
НазваниеИзДанных = ПолучитьСтрокуИзДвоичныхДанных(Данные, КодировкаТекста.UTF8);
НазваниеИзБуфера = ПолучитьСтрокуИзБуфераДвоичныхДанных(Буфер, КодировкаТекста.UTF8);
Сообщить(НазваниеИзДанных = Название);
Сообщить(НазваниеИзБуфера = Название);
ДругойБуфер = ПолучитьБуферДвоичныхДанныхИзСтроки(Название, КодировкаТекста.UTF8, Ложь);
ДругиеДанные = ПолучитьДвоичныеДанныеИзБуфераДвоичныхДанных(ДругойБуфер);
Сообщить(ДругиеДанные.Размер() = Данные.Размер());

Разбор по шагам

  1. Кодируем строку в двоичные данные с явно заданной кодировкой.

  2. Преобразуем двоичные данные в изменяемый буфер и сравниваем размеры.

  3. Декодируем данные и буфер той же кодировкой и проверяем равенство исходному названию.

  4. Повторяем путь через создание буфера прямо из строки.

Как проверить результат

  1. В названии 5 символов, в UTF-8 без BOM 10 байтов.

  2. Оба обратных преобразования возвращают Книга; все сравнения равны Истина.

Ожидаемый результат

Название восстановлено без потери русских букв; различие байтов и символов показано явно.

На что обратить внимание

  1. Передавая длину в сетевой протокол, уточните, требуются байты или символы: СтрДлина не заменяет размер UTF-8.

  2. Декодирование другой кодировкой может дать испорченный текст. BOM добавляйте только если его ждёт принимающая сторона.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Получить свою существующую схему с сервера аналитики

Настоящее соединение получается от менеджера; путь и отбор определяет используемый сервер.

Где и как запускать

Серверный модуль собственной учебной обработки; система аналитики настроена отдельно.

Подготовка

  1. Нужен собственный тестовый сервер системы аналитики, настроенный для вашей учебной базы. Путь training/sales и идентификатор замените значениями своей уже существующей схемы по документации этого сервера. Справка платформы не определяет формат пути или содержимого схемы.

  2. Реквизит своей обработки УчебныйИдентификаторСхемы типа Строка заполните настоящим идентификатором своей схемы. Это сетевое чтение; здесь оно не выполнялось.

Соединение = СистемаАналитики.ПолучитьСоединение();
Путь = "training/sales";
Идентификатор = УчебныйИдентификаторСхемы;
Схема = Соединение.ПолучитьСхему(Путь, Идентификатор);
ТекстСхемы = Схема.ПолучитьКакСтроку();
Сообщить("Получено символов: " + Строка(СтрДлина(ТекстСхемы)));

Разбор по шагам

  1. Получите штатное соединение.

  2. Укажите существующий путь и идентификатор.

  3. Прочитайте полученную схему как строку.

Как проверить результат

  1. Сравните схему с объектом в своем сервисе.

  2. Не заменяйте настоящую схему случайной структурой.

Ожидаемый результат

Содержимое действительной схемы при выполненной подготовке сервиса.

На что обратить внимание

  1. Соединение не создается через Новый. Отбор может быть строковым идентификатором или структурой полей, но имена полей определяет сервер аналитики, не этот пример.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.