7.7 Как разделить строку

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Dmitrij, 3 дек 2008.

  1. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Есть поле с данными например 24а/1 мне нужно из этого поля вытащить а/1, подскажите как это сделать :unsure:
  2. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    Значение = 24а/1
    Иск = Прав(Значение,3)

    пардон... это для 8 _)) А для 7 наверное накже))
  3. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Этот вариант не подойдет это в примере 24а/1, а может быть и так 24а тогда нужно только "а" вытащить, а если просто 24 тогда ничего не надо
  4. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    Значит проверять слева символы.. если это число то дальше.. если буква то обрезаем с этого символа
  5. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    а можно пример как мне проверить?
  6. MagTux
    Offline

    MagTux Опытный в 1С

    Регистрация:
    28 ноя 2008
    Сообщения:
    58
    Симпатии:
    0
    Баллы:
    26
    Код:
    Значение="1234абв";
    ДлинаСтр=СтрДлина(Значение);
    ДлинаЧисла=СтрДлина(Строка(Число(Значение)));
    Иск=Прав(Значение,ДлинаСТр-ДлинаЧисла);
    
    
    
  7. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    а у меня длина поля всегда 4 в конфе так задано
  8. MagTux
    Offline

    MagTux Опытный в 1С

    Регистрация:
    28 ноя 2008
    Сообщения:
    58
    Симпатии:
    0
    Баллы:
    26
    Пример работает для любого количества символов. Для 4-х тоже.
  9. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    спасибо сейчас кое что работает, др проблема значение 24/а=иск /а либо иск -1 если значение 24-1 как убрать символы / и - если они будут
  10. MagTux
    Offline

    MagTux Опытный в 1С

    Регистрация:
    28 ноя 2008
    Сообщения:
    58
    Симпатии:
    0
    Баллы:
    26
    Я так полагаю, что разделительные символы стоят (или не стоят) сразу после числа.
    Тогда так:
    Код:
    ДлинаСтр=СтрДлина(Значение);
    ДлинаЧисла=СтрДлина(Строка(Число(Значение)));
    Иск=Прав(Значение,ДлинаСТр-ДлинаЧисла);
    Если Найти("-, /, \, =", Лев(Иск,1))=1 тогда
    Иск=Прав(Иск,СтрДлина(Иск)-1);
    КонецЕсли;
    
    
    Т.е. если первый символ - один из перечисленных, тогда убрать его. Не универсально, но по-идее вам подходит.
  11. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Для обрезания левых символов рекомендую другой оператор:
    Код:
    // Иск=Прав(Иск,СтрДлина(Иск)-1);
    Иск=Сред(Иск,2);
    
    
  12. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    у Вас жестко будет убирать два символа, а мне нужно чтоб убиралось где 2 где 3 где 1 везде по разному
  13. MagTux
    Offline

    MagTux Опытный в 1С

    Регистрация:
    28 ноя 2008
    Сообщения:
    58
    Симпатии:
    0
    Баллы:
    26
    Вы ошибаетесь. Функция Сред(Иск,2) возвращает все символы строки Иск начиная со 2-го.

    Вариант
    Иск=Сред(Иск,2);
    действительно лучше предложенного мною.
  14. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    а ты попробуй :unsure:
    из того что ты просил, это то что надо. если есть какие-то предложения, то покажи какая строка не обрабатывается нужным образом?
  15. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    то же работает отлично спасибо

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