8.х Работа со строками 1С

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Александр-СЧ, 6 май 2016.

  1. TopicStarter Overlay
    Александр-СЧ
    Offline

    Александр-СЧ

    Регистрация:
    6 май 2016
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Привет, Друзья!
    Помогите разобраться

    Мне нужно изменить строку, есть А получаю Б
    А="24.03.2014";

    Б=СтрЗаменить(А,".",""); //// Получается 24032014

    Теперь нужно сделать что бы Б было 20140324

    Все это нужно мне что бы преобразовать строку в дату

    Помогите пожалуйста
  2. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.647
    Симпатии:
    948
    Баллы:
    204
    Ну тебе лучше сначало Через Найти искть точку получаешь ее позицию - вырезаешь с помошью Сред это и присваиваешь переменной, из исходной Через СТРЗаменить этот кусок убираешь и так до конца по все точки нашел в цикле типа пока Найти(А,".")>0
    в твоем случае будет
    первый шаг
    строкаИсходная="03.2014";
    строкаПолучаем=""24"
    второй шаг
    строкаИсходная="2014";
    строкаПолучаем=""0324"
    Третий
    строкаИсходная="";
    строкаПолучаем=""20140324"
  3. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Не надо там ничего заменять.

    Код:
    А="24.03.2014";
    СтрокаДатой = Дата(Сред(А, 7, 4), Сред(А, 4, 2), Сред(А, 1, 2));
    
  4. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.647
    Симпатии:
    948
    Баллы:
    204
    Ну я ему по сути предложил то же самое только более гибкое решение не только для дата, а дял строки которая точками разделена как ее в обратном порядке построить.

    Ну если локально решать то можно и так.
  5. MaxxaM
    Offline

    MaxxaM Опытный в 1С

    Регистрация:
    16 окт 2007
    Сообщения:
    288
    Симпатии:
    2
    Баллы:
    29
    А чем не вариант, перевести в тип - дата, получить числовое значение дня, месяца и года и потом перевести их обратно в строку в любом угодном для вас порядке?
  6. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    412
    Симпатии:
    72
    Баллы:
    54
    Здравствуйте.
    Вариант со Сред хорош, но только если мы уверены, что год записан полностью, а не последние 2 цифры. Позвольте предложить вам свою версию:
    Код:
    Стр = "";
    Дата = "11.05.2016";
        Пока 1 = 1 Цикл
            Поз = Найти(Дата,".");
            Стр = Лев(Дата,Поз-1) + Стр;
            Дата = Прав(Дата,СтрДлина(Дата) - Поз);
            Если Поз = 0 Тогда
                Если СтрДлина(Дата) = 2 Тогда
                    Если Число(Дата) > 30 Тогда
                        Дата = "19" + Дата;
                    Иначе
                        Дата = "20" + Дата;
                    КонецЕсли;
                КонецЕсли;
                Стр = Дата + Стр;
                Прервать;
            КонецЕсли;
        КонецЦикла;
        Сообщить(Стр);
    
    Последнее редактирование: 11 май 2016
Похожие темы
  1. Greck
    Ответов:
    10
    Просмотров:
    2.579
  2. KirillSemenov
    Ответов:
    4
    Просмотров:
    1.138
  3. BoryaPOC
    Ответов:
    9
    Просмотров:
    569
  4. Lo1jke
    Ответов:
    2
    Просмотров:
    427
  5. Samouchka
    Ответов:
    3
    Просмотров:
    688
Загрузка...

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