Перейти к содержимому

Сокрлп 1с функция что делает

  • автор:

Новые функции языка запросов и системы компоновки данных

Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.

Реализовано в версии 8.3.20.1549

Когда мы пишем запросы и создаем отчёты, нередко бывает нужно не просто показать данные в том виде, в котором они лежат в БД, а произвести над ними какие-то операции. Например, посчитать разницу между двумя датами или округлить число до нужной разрядности. Хорошо, если нужная функция есть в языке запросов (или в языке СКД) — тогда мы можем сделать с данными то, что хотим, на уровне запроса / СКД, а потом просто отобразить результат. Если же нужная функция в языке запросов не реализована – приходится делать постобработку запроса в языке 1С, проходясь в цикле по результатам запроса и выполняя нужные операции. Что приводит к разрастанию кода конфигурации и может снизить производительность.

К нам довольно часто обращаются разработчики с пожеланиями о добавлении дополнительных функций в язык запросов и язык СКД. Мы внимательно проанализировали пожелания и выделили список наиболее востребованных функций, которые планируем реализовать в версии 8.3.20.

Язык запросов

В язык запросов добавляются функции:

Строка(String) – преобразует значение в примитивного типа в строку с учетом национальных установок.

Тригонометрические функции Sin, Cos, Tan, ASin, ACos, ATan (все вычисления производятся в радианах)

Exp — вычисляет результат возведения основания натурального логарифма (числа e) в степень

Log — вычисляет натуральный логарифм числа.

Log10 — вычисляет десятичный логарифм числа.

Pow — вычисляет возведение в степень.

Sqrt – вычисляет квадратный корень.

Окр(Round) — округляет исходное число до нужной разрядности

Цел(Int) — вычисляет целую часть переданного числа, полностью отсекая дробную часть.

ДлинаСтроки(StringLength) – вычисляет длину строки.

СокрЛ(TrimL) – отбрасывает незначащие пробелы слева.

СокрП(TrimR) – отбрасывает незначащие пробелы справа.

СокрЛП(TrimAll) – отбрасывает незначащие пробелы слева и справа.

Лев(Left) – получает первые слева символы строки.

Прав(Right) – получает первые справа символы строки.

СтрНайти(StrFind) – находит первую позицию подстроки в строке (без учета регистра).

ВРег(Upper) – преобразует все символы строки в верхний регистр.

НРег(Lower) – преобразует все символы строки в нижний регистр.

СтрЗаменить(StrReplace) – заменяет все вхождения подстроки на другую подстроку (без учета регистра).

РазмерХранимыхДанных(StoredDataSize) – возвращает размер данных в байтах, которые занимают данные параметра.

Система компоновки данных

В язык выражений системы компоновки данных добавлены новые функции:

СокрЛ(TrimL) – отбросить незначащие пробелы слева.

СокрП(TrimR) – отбросить незначащие пробелы справа.

СокрЛП(TrimAll) – отбросить незначащие пробелы слева и справа.

Лев(Left) – получить первые слева символы строки.

Прав(Right) – получить первые справа символы строки.

СтрНайти(StrFind) – найти подстроку в строке (без учета регистра).

ВРег(Upper) – преобразует все символы строки в верхний регистр.

НРег(Lower) – преобразует все символы строки в нижний регистр.

СтрЗаменить(StrReplace) – заменяет все вхождения подстроки на другую подстроку (без учета регистра).

НСтр(NStr) – получает строку на языке пользователя (аналогично тому, как работает метод НСтр глобального контекста). Параметры:

ИсходнаяСтрока – строка, содержащая строки на разных языках (например, «ru = ‘Добрый вечер!’; en = ‘Good Evening!'»).

КодЯзыка (необязательный) – строка с кодом языка, на котором нужно получать строку. Если не указан — строка получается на языке текущего пользователя.

Функция СокрЛП()

Функция СокрЛП() удаляет пробельные символы в начале (до первого значащего символа) и в конце (после последнего значащего символа) исходной строки.

Примечание: К незначащим символам относятся символы:

  • «пробел»,
  • «неразрывный пробел» (НПП),
  • «табуляция» (горизонтальная Таб и вертикальная ВТаб),
  • «возврат каретки» (ВК),
  • «перевод строки» (ПС),
  • «перевод формы (страницы)» (ПФ).

Доступность

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

Cтроковые функции 1c

Строковые функции в 1с позволяют работать с примитивным типом данных строка. Полный набор этих функций доступен в самых новых версиях платформы. В старых платформах некоторые функции могут отсутствовать.

Строка-примитивный тип данных в языке программирования 1с.

Значения типа “Строка” в тексте программного модуля заключаются в кавычки.
Пример значения строкового типа: “это — строка”.
Рассмотрим функции работы со строками.

строковые функции 1с

строковые функции 1с

Строка()

Функция Строка() позволяет получить текстовое представление переменной другого типа.

СтрДлина()

Длина строки СтрДлина(Строка)-определяет количество символов в строке.

строковые функции 1с

Вычисление длины строки 1с

СокрЛ(), СокрП(), СокрЛП()

Функции удаление пробелов и незначащих символов.
Эта функция удаляет следующе незначащие символы:

  • “Пробел”;
  • “Неразрывный пробел (НПП)”;
  • “Горизонтальная табулция (Таб)”;
  • “Вертикальная табуляция (ВТаб)”;
  • “Возврат коретки (ВК)”;
  • “Перевод строки (ПС)”.

Удаление пробелов слева. СокрЛ(Строка).

строковые функции 1с

Функция удаления пробелов слева

Удаление пробелов справа. СокрП(Строка).

строковые функции 1с

Функция удаления пробелов справа

Удаление пробелов слева и справа. СокрЛП(Строка).

строковые функции 1с

Функция удаления пробелов слева и справа

Лев(), Прав(), Сред()

Функции выделения или выбора символов из строки.

Лев(Строка,3)-выделить 3 символа слева. Функция имеет два аргумента Строка откуда выбираются символы и 3-количество выбираемых символов.

строковые функции 1сФункция Лев() в 1с

Прав(Строка,3)- выделить 3 символа слева. Функция имеет два аргумента Строка откуда выбираются символы и 3-количество выбираемых символов.

строковые функции 1сФункция Прав() в 1с

Сред(Строка,2,3)-Выделить начиная со второго три символа. Функция имеет три аргумента: Строка откуда выбираются символы, номер позиции с которой начинается выбор символов и количество выбираемых символов.

строковые функции 1сФункция Сред() в 1с

ВРег(), НРег(), ТРег()

Строковые функции управляющие регистром букв.

  • ВРег()-верхний регистр
  • НРег()-нижний регистр
  • ТРег()-у каждого слова первая буква большая

ПустаяСтрока()

Функция, осуществляющая сравнение исходной строки с пустой строкой. Результатом функции будет логическое значение истина или ложь.

СтрНайти()

Функция Найти() возвращает положение первого символа заданной подстроки. Если такая подстрока не найдена, система возвращает ноль.

СтрЗаменить()

Эта функция позволяет массово заменить искомое значение на заданное

СтрЧислоСтрок()

Позволяет получить количество строк в многострочном тексте. Функция считает количество переносов строк (Символ.ПС)

СтрПолучитьСтроку()

Данная функция предназначена для получения строки из многострочного текста.

СтрЧислоВхождений()

Функция для подсчета числа вхождений произвольного фрагмента в строку.

Символ() и КодСимвола()

Две обратные функции. С помощью функции КодСимвола() можно получить код символа в кодировке Unicode.

Функция Символ() позволяет получить символ зная его Unicode кодификатор.

СтрРазделить()

Функция СтрРазделить() позволяет разделить Строку в массив подстрок. Пример использования функции рассмотрен в статье: Преобразовать массив 1с в строку.

СтрСоединить

Функция СтрСоединить() обратная функции СтрРазделить(). СтрСоединить объединяет массив подстрок в одну строку. Пример использования функции рассмотрен в статье: Преобразовать масссив 1с в строку.

ВвестиСтроку()

Введение строкового значения возможно с помощью функции ВвестиСтроку(). Пример:

СтрШаблон()

Функция СтрШаблон() формирует конечную строку, путем подстановки строковых представлений фактических параметров в указанные места шаблона. Шаблон может состоять из текста и параметров. Каждый параметр начинается с подстановочного знака %(процент), за которым следует порядковый номер параметра. Нумерация параметров начинается с 1. Если количество параметров в шаблоне не совпадает с количеством фактически переданных параметров, будет сгенерировано исключение: «Недостаточно фактических параметров» или «Очень много параметров».

Строковые функции 1с. Примеры использования.

Конкатенация строк в 1с

Конкатенация или объединение строк в 1с производиться оператором “+”.

Кавычки в строке 1с

Для заключения названия в кавычки, необходимо внутри строки отобразить кавычку как символ. Для этого, в строке необходимо написать две кавычки подряд. Например

Сокрлп 1с функция что делает

« Как стать программистом 1С » Язык 1С » 1С СокрЛП, 1С СокрЛ, 1С СокрП – удаление лишних символов

1С СокрЛП, 1С СокрЛ, 1С СокрП – удаление лишних символов

Функции 1С СокрЛП(Строка), 1С СокрЛ(Строка) и 1С СокрП(Строка) удаляют из текста лишние символы.

  • Выполняем

    СокрЛП(»
    | Привет, мир!
    | «)

  • 1С возвращает «Привет, мир!»
  • 1С СокрЛ – с начала строки до «значащих символов»
  • 1С СокрП – с последнего «значащего символа» до конца строки
  • 1С СокрЛП – одновременно слева и справа.

«Лишние символы», которые можно убрать с помощью 1С СокрЛ, 1С СокрП, 1С СокрЛП:

  • Пробел
  • Перенос строки, страницы
  • Табуляция.

Лишние пробелы внутри строки, между словами функции 1С СокрЛ, 1С СокрП, 1С СокрЛП не удаляют.

Строковые реквизиты, например справочнков, имеют обычно определенную длину, например возьмем 50 символов. При вводе пользователи может ввести лишние пробелы в конце, особенно если текст в поле не вводится вручную, а копируется из сторонней программы.

Если пользователь ввел значение с пробелом, то сравнение с заданной строкой не будет работать – ведь сравнение учитывает все символы, включая незначимые.

  • Пользователь ввел: «РОССИЯ «
  • Мы сравниваем: Если Страна = «РОССИЯ» //не сработает
  • Чтобы сработало, пишем: Если СокрЛП(Страна) = «РОССИЯ» //сработает

1С СокрЛП() некоторые программисты используют при переводе чисел в строку, вместо Строка(). Дело в том, что числа форматируются при переводе по настройкам локализации с пробелами между разрядами: 22500 -> «22 500». Однако 1С СокрЛП() не убирает пробелы между словами. Вместо этого можно применять Формат():

Число = 22500;
ЧислоСтрокой = Формат(Число, «ЧГ=0»);
//ЧислоСтрокой будет равно «22500»

Добавим в наш анализатор строки программы, позволяющие удалить незначащие символы как слева и справа, так и между словами (про анализатор текста см. выше «Функции работы со строками 1С»).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *