Разделение численно-буквенного на...

Тема в разделе "1C и всё что с ней связано", создана пользователем bremlin, 10 дек 2008.

  1. bremlin

    bremlin Гость

    Доброго времени суток! Возникла недавно потребность в следующей заморочке:
    Существует отчет, который выдает список контрагентов и их некоторых данных. Первый столбец собственно идет "Ит.ПредставлениеСубконто()". Там числобуквенное значение, а иногда еще и "/". Номер квартиры(если малосемейка, то 3/1, 3/2).
    Вот нужно вместо одного столбца с таким содержимым, сделать 2 столбца, в одном из них должны быть цифры(номер квартиры), а если представлено как 3/2 , то должно быть 3/2. А во втором стобце, должны быть просто фамилии.
    Не подскажите, можно ли это реализовать в самой таблице командами "Формат". Или как-нибудь с занесением данных в переменую в модуле программы и выведением их значений?
    При Формат(Ит.ПредставлениеСубконто(),"Ч-5"); выдает только первые цифры до "/". Как можно исправить?

    И еще, если чтоб для выдачи номера квартиры, можно использовать Формат(Ч). То как сделать чтоб выдавало только текст из всего содержимого?
     
  2. ania

    ania Гость

    попробуйте Шаблон("[Ит.ПредставлениеСубконто()]")
     
  3. bremlin

    bremlin Гость

    Увы - нет. Просто также выводит те же данные.
     
  4. kaa

    kaa Гость

    Функции работы со строкой Найти,Лев,Сред,Прав
     
  5. bremlin

    bremlin Гость

    Kaa, большое спасибо за совет. Получается что это самое то:) Попробовал что-то вроде такого:

    Раздел = "/";
    Кварт = Найти(Раздел+Ит.ПредставлениеСубконто(), + Раздел+Число(Ит.ПредставлениеСубконто())+Раздел);
    Т.ВывестиСекцию("Секция_2");

    И в общем-то это работает:) Только выводит в квартирах с "/" единицу, а в остальных 0. В общем-то получилась простая проверка строк на использование разделителей.
    Я так понимаю тут надо будет использовать еще и условие. Что-то вроде если разделителя нет, то выводим обычное Число(Ит.ПредставлениеСубконто(), а если разделитель есть, то...
    Можно подсказочку, как вывести такое число с разделителем?
     
  6. kaa

    kaa Гость

    Если Кварт = 0 Тогда
    //разделителя нет
     
  7. bremlin

    bremlin Гость

    Это я понимаю. У меня проблема в том, чтобы вывести первое число + разделитель + второе число, а при:

    Раздел = "/";
    Условие = Найти(Раздел+Ит.ПредставлениеСубконто(), + Раздел +Число(Ит.ПредставлениеСубконто())+Раздел);
    Если Условие = 0 Тогда
    Кварт = Число(Ит.ПредставлениеСубконто());
    Иначе
    Кварт = Число(Ит.ПредставлениеСубконто())+"/"+Число(Ит.ПредставлениеСубконто());
    КонецЕсли;
    Т.ВывестиСекцию("Секция_2");

    В квартирах с номерами без разделителя выводит нормальный номер квартиры, а в квартирах с номерами где разделитель есть, выводит их удвоенное первое число:)
    1 - 1
    2 - 2
    3 - 3
    4 - 4
    5/1 - 10
    5/2 - 10
    5/3 - 10

    Как победить такую штуку?:)
     
  8. kaa

    kaa Гость

    Кварт = Ит.ПредставлениеСубконто();
    Поз = Найти(Кварт,"/");
    Если Поз = 0 Тогда
    Кварт1 = Кварт;
    Иначе
    Кварт1 = Лев(Кварт,Поз-1)
    Кварт2 = Сред(Кварт,Поз+1);
    КонецЕсли;
     
  9. bremlin

    bremlin Гость

    Большое спасибо, kaa. Подтесал немножко, работает идеально вот так:
    Поз = Найти(Ит.ПредставлениеСубконто(),"/");
    Раздел = Найти(Ит.ПредставлениеСубконто()," ");
    Если Найти("/"+Ит.ПредставлениеСубконто(), + "/" +Число(Ит.ПредставлениеСубконто())+"/") = 0 Тогда
    Кварт = Число(Ит.ПредставлениеСубконто());
    Фамка = Сред(Ит.ПредставлениеСубконто(),Раздел+1);
    Иначе
    Кварт = (Лев((Ит.ПредставлениеСубконто()),Поз+1));
    Фамка = Сред(Ит.ПредставлениеСубконто(),Поз+3);
    КонецЕсли;
    Т.ВывестиСекцию("Секция_2");

    И маленькая проблема :( При сохранении выдаваемой таблицы в Excel, при сортировке по столбцу с квартирами, Excel сортирует по квартирам без "/". А те которые с "/" закидывает в конец файла;) Можно как-нибудь сделать так, чтобы 1С сам сортировал элементы во время выдачи таблицы на экран?

    Просто я так думаю из-за "/" Excel считает эту строку текстовой, хотя пробовал все ячейки отформатировать как число.
     
  10. kaa

    kaa Гость

    Заполний сперва таблицу значений потом сортируй как надо и выводи в печатную форму
     
Загрузка...
Похожие Темы - Разделение численно буквенного
  1. erhe
    Ответов:
    22
    Просмотров:
    1.268
  2. alekssgor
    Ответов:
    1
    Просмотров:
    1.785
  3. Omh
    Ответов:
    32
    Просмотров:
    7.261
  4. 203
    Ответов:
    1
    Просмотров:
    1.442
  5. 203
    Ответов:
    0
    Просмотров:
    1.065

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