7.7 выбрать часть из произвольной строки

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

  1. TopicStarter Overlay
    She
    Offline

    She Опытный в 1С

    Регистрация:
    7 ноя 2007
    Сообщения:
    186
    Симпатии:
    0
    Баллы:
    26
    Есть вот такой текст. Нужно вытащить из него часть после слова КОНТРАКТ до следующей "-" или определенное количество символов.
    Подскажите пожалуйста как это написать.

    - 08110021/0354/0000/1/0 от 05.11.08
    - 31 от 29.01.11
    -КОНТРАКТ № СМ-08/01100/241/Д от 24.06.08
    -ПРИЛОЖЕНИЕ № П-074 от 06.12.10
    -ДОПОЛНЕНИЕ № 3 от 01.09.09
    -ДОПОЛНЕНИЕ № 4 от 01.12.09
    -ДОПОЛНЕНИЕ № 5 от 29.12.10
    -ДОПОЛНЕНИЕ № 2 от 30.10.08
    - 08110021/0354/0000/1/0 от 05.11.08
    - 31 от 29.01.11

    Заранее спасибо
  2. volodya1122
    Offline

    volodya1122 Опытный в 1С

    Регистрация:
    25 фев 2011
    Сообщения:
    96
    Симпатии:
    1
    Баллы:
    26
    Вопрос не совсем понятен. Смотри функции Сред(), Лев(), Найти(), СокрЛП(), СтрДлина()
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Текст как я понял многострочный и вы привели в примере только один "блок"?
  4. TopicStarter Overlay
    She
    Offline

    She Опытный в 1С

    Регистрация:
    7 ноя 2007
    Сообщения:
    186
    Симпатии:
    0
    Баллы:
    26
    да текст многострочный.
    да в таком блоке и нужно найти часть, которая показывает контракт
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Приложения не нужны?
  6. TopicStarter Overlay
    She
    Offline

    She Опытный в 1С

    Регистрация:
    7 ноя 2007
    Сообщения:
    186
    Симпатии:
    0
    Баллы:
    26
    нет
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Думаю что так:
    Код:
    Функция ВернутьКонтракт(Перем Стр)
    Стр=ВРег(Стр);
    Поз=Найти(Стр,"КОНТРАКТ");
    Если Поз=0 Тогда
    Возврат ""; //это дополнение
    КонецЕсли;
    Возврат Сред(Стр,Поз+9); //9 это длина контракта + пробел
    КонецФункции
    
    
  8. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    КОНТРАКТ № СМ-08/01100/241/Д от 24.06.08

    >Нужно вытащить из него часть после слова КОНТРАКТ до следующей "-"

    это будет "№ СМ" - а это чушь, ни уму ни сердцу

    после контракт нужно искать "от" + 11симв - это и будет строка контракта

    Поз=Найти(Стр,"КОНТРАКТ");
    стр=сред(стр, поз);
    Поз1=Найти(Стр,"от");
    стр=лев(стр, поз1+11)
  9. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    тут да - неудачно выразились....

    зачем?
    А вдруг "-" в начале не стоит? Функция итак вернет № СМ-08/01100/241/Д от 24.06.08
    то что нужно я думаю

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