[РЕШЕНО] Количество символов без пробелов

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Peroman, 2 мар 2016.

  1. TopicStarter Overlay
    Peroman
    Offline

    Peroman Опытный в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    879
    Симпатии:
    13
    Баллы:
    29
    Всем доброго времени суток!
    Платформа: 1С:Предприятие 8.3 (8.3.6.2390)

    Из Excel файла загружаю данные в Таблицу. У таблицы есть реквизит(Колонка): тип Строка; длина 16; допустимая длина переменная; - когда данные заполняются из excel то не достающие символы заполняются пробелами.
    Когда пытаюсь посчитать количество символов(СтрДлина), то СокрЛП не убирает пробелы и я всегда получаю 16.
  2. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Это служебные символы. На форуме была такая тема, поиск рулит
  3. TopicStarter Overlay
    Peroman
    Offline

    Peroman Опытный в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    879
    Симпатии:
    13
    Баллы:
    29
    Что-то или я как-то не корректно ищу или... В общем всё что нашёл так это "Подобно" - но это к запросу, а у меня не запрос
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    если не запрос, то узнайте код "пробельного" симовола и сделайте СтрЗаменить(), после чего СтрДлина().
  5. TopicStarter Overlay
    Peroman
    Offline

    Peroman Опытный в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    879
    Симпатии:
    13
    Баллы:
    29
    Решил вот так:
    Код:
    СтрЗаменить(МояСтрока,Символы.НПП,"");
    alexburn нравится это.
  6. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.431
    Симпатии:
    372
    Баллы:
    104
    странно, такое всегда работало
    Код:
    СтрДлина(СокрЛП(нужное));
    
    но данная конструкция не учитывает когда 2 и более пробела внутри строки
  7. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    СокрЛП не удаляет служебные символы - т.е. разделитель разрядов.
  8. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.978
    Симпатии:
    397
    Баллы:
    104
    Чёйте???? Всегда вроде как все проблемы удалял. Именно пробелы.
  9. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.431
    Симпатии:
    372
    Баллы:
    104
    внутри строки ? :)))
    Код:
    7.7
    СокрЛП(<?>)
    Синтаксис:
    СокрЛП(<Строка>)
    Назначение:
    Отсекает стоящие слева и справа пробелы и возвращает результирующую строку.
    Параметры:
    <Строка> - строковое выражение.
    
    
    
    
    
    8.3
    Встроенные функции языка.СокрЛП (Script functions.TrimAll)
    Встроенные функции языка (Script functions)
    СокрЛП (TrimAll)
    Синтаксис:
    
    СокрЛП(<Строка>)
    Параметры:
    
    <Строка> (обязательный)
    
    Тип: Строка.
    Исходная строка.
    Возвращаемое значение:
    
    Тип: Строка.
    Строка, полученная в результате отсечения пробелов .
    Описание:
    
    Отсекает незначащие символы, стоящие слева от первого значащего символа в строке, и пробелы, стоящие справа от последнего значащего символа в строке.
    
    Доступность:
    
    Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
    Примечание:
    
    К незначащим символам относятся символы "пробел", "неразрывный пробел" (НПП), "табуляция" (горизонтальная Таб и вертикальная ВТаб), "возврат каретки" (ВК), "перевод строки" (ПС), "перевод формы (страницы)" (ПФ).
    Пример:
    
    НаименованиеДляПечати = СокрЛП(Товар.Наименование);
    
    --- Объединение сообщений, 3 мар 2016 ---
    но речь то у автора про пробелы
    -"тип Строка; длина 16; допустимая длина переменная; - когда данные заполняются из excel то не достающие символы заполняются пробелами."
  10. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    У ТСа на этапе загрузки, возможно, устанавливается тип - Число, и поэтому ТС думает что это пробелы
  11. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.978
    Симпатии:
    397
    Баллы:
    104
    Снаружи :). Только слева и справа. Внутри пробелы функция не трогает.
  12. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.431
    Симпатии:
    372
    Баллы:
    104
    так я и сказал что внутри строки не действует :) , если там более 1 пробела подряд
    --- Объединение сообщений, 3 мар 2016 ---
    ну он про это не сознался :)
Похожие темы
  1. dmb2006
    Ответов:
    0
    Просмотров:
    442
  2. man37
    Ответов:
    8
    Просмотров:
    545
Загрузка...

Поделиться этой страницей