7.7 Как убрать символы.

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

  1. TopicStarter Overlay
    roalang
    Offline

    roalang Опытный в 1С

    Регистрация:
    31 мар 2008
    Сообщения:
    50
    Симпатии:
    0
    Баллы:
    26
    Доброй день. Считываю с ДБФ столбец со значениями:
    г. "название города", 654787, ул. "название улицы",д. 34, кв. 7 или г. "название города", ул. "название улицы",д. 34, кв. 7.
    в ДБФ-ке и может быть строка с индексом, а может быть только название города и дальше идет улица, как сделать проверку.

    Подскажите как убрать название города и индекс, чтобы получилось название улицы, дом и квартира.
  2. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Код:
    Функция КороткийАдрес(Адрес)
    
    Поз=Найти(Адрес,"ул");
    Если Поз>0 Тогда
    Возврат Сред(Адрес,Поз-1);
    Иначе
    Возврат  Адрес;
    КонецЕсли;
    КонецФункции
    
  3. TopicStarter Overlay
    roalang
    Offline

    roalang Опытный в 1С

    Регистрация:
    31 мар 2008
    Сообщения:
    50
    Симпатии:
    0
    Баллы:
    26
    А куда эту функцию вставлять, в какое место?

    Код:
     ПутьФайл = "C:\SZN\tom.dbf";
    
    ФайлБазы = СоздатьОбъект("XBase");
    //НачДата = НачМесяца(ВыбДата);
    ФайлБазы.КодоваяСтраница(1);
    ФайлБазы.ОткрытьФайл(ПутьФайл,"",0);
    Если ФайлБазы.Открыта()=0 Тогда //проверяем, удалось ли открыть файл
    Сообщить("Не удалось открыть файл!");// иначе   Сообщить("База открыта");
    КонецЕсли;   
    Для i=1 по ФайлБазы.КоличествоЗаписей() Цикл
    ФайлБазы.Перейти(i);	  
    FIO = НРег(СокрЛП(ФайлБазы.ПолучитьЗначениеПоля("FM")) + " " + СокрЛП(ФайлБазы.ПолучитьЗначениеПоля("IM")) + " " + СокрЛП(ФайлБазы.ПолучитьЗначениеПоля("OT")));
    
    adr =СокрП(ФайлБазы.ПолучитьЗначениеПоля("ADDR"));
    
    КонецЦикла; 
  4. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Вот сюДы.....
    Код:
    
    
    ...
    adr =СокрП(ФайлБазы.ПолучитьЗначениеПоля("ADDR"));
    adr=КороткийАдрес(Adr);
    //стр=СтрЗаменить(adr, ",", "");
    //с=СтрПолучитьСтроку(adr,)
    КонецЦикла;
    
  5. Vlan
    Online

    Vlan Гость Гость

    А случайно не из КЛАДРа данные берутся? Там "ул" в конце.
  6. Vlan
    Online

    Vlan Гость Гость

    А что будет, если городом окажется Барнаул?
  7. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    конкрентый пример же привели...........
    Здесь полностью согласен - "ляп" допустил. Конечно же нужно
    Код:
    Поз=Найти(Адрес,"ул.");
  8. Vlan
    Online

    Vlan Гость Гость

    Я бы еще изменил эту строчку
    Код:
    Возврат Сред(Адрес,Поз-1);
    на
    Код:
    Возврат Сред(Адрес,Поз);
    Зачем возвращать лишний пробел или запятую?
  9. Бухгалтерский угодник
    Offline

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

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

    roalang Опытный в 1С

    Регистрация:
    31 мар 2008
    Сообщения:
    50
    Симпатии:
    0
    Баллы:
    26
    Спасибо все получилось.
    У меня две строковых переменных. Можно ли их совместить вместе, т.е. чтобы получить значение 1-15-41
    Код:
    //Первая цифра кода
    Если НРег(Лев(adr,Найти(adr,",") - 1)) = " кв-л. 17-й" тогда
    кодул = 1;
    иначеЕсли НРег(Лев(adr,Найти(adr,",") - 1)) = " кв-л. 18-й" тогда
    кодул = 2;
    конецесли;
    
    //номер дома и квартиры
    street =  НРег(СокрП(ФайлБазы.ПолучитьЗначениеПоля("DOM")) + СокрП(ФайлБазы.ПолучитьЗначениеПоля("DOML")) + "-" + СокрП(ФайлБазы.ПолучитьЗначениеПоля("KV")) + СокрП(ФайлБазы.ПолучитьЗначениеПоля("KVL")));
    
  11. TopicStarter Overlay
    roalang
    Offline

    roalang Опытный в 1С

    Регистрация:
    31 мар 2008
    Сообщения:
    50
    Симпатии:
    0
    Баллы:
    26
    Сама нашла ответ.
    Код:
    str = Строка(кодул) + "-"+ street;

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