|   |   | 
| 
 | Как разделить строку | ☑ | ||
|---|---|---|---|---|
| 0
    
        DenisK2020 09.08.22✎ 11:13 | 
        Добрый день, подскажите начинающему программисту
 Как разделить строку: Заказ № ZX11138165 от 03.08.2022 Заказ № TR1113816545 от 05.08.2022 Отдельно получить номер заказа и отдельно дату заказа Спасибо | |||
| 1
    
        Галахад гуру 09.08.22✎ 11:19 | 
        Методы СтрНайти, Лев, Прав, Сред.     | |||
| 2
    
        Garykom гуру 09.08.22✎ 11:36 | 
        лучше СтрЗаменить() и СтрРазделить()
 
 | |||
| 3
    
        Fish гуру 09.08.22✎ 11:37 | 
        (2) Главное, чтобы пробелы всегда были на месте в строке. И не по 2 :)     | |||
| 4
    
        Fish гуру 09.08.22✎ 11:39 | 
        +(3) Имхо, надёжнее сначала сделать СтрРазделить по пробелу, ну а потом уже в массиве оставить только номер заказа и дату, выкинув лишнее.     | |||
| 5
    
        Кирпич 09.08.22✎ 11:47 | 
        Массив = СтрРазделить(ИсходнаяСтрока, " ", Ложь);
 ЗаказНомер = Массив[2]; ЗаказДата = Массив[4]; Это если в номере заказа не бывает пробелов. | |||
| 6
    
        Garykom гуру 09.08.22✎ 12:04 | 
        (5) И дата не пустая     | |||
| 7
    
        6awkup_true 09.08.22✎ 12:20 | 
        RegExp = Новый COMОбъект("VBScript.RegExp");
 RegExp.IgnoreCase = истина; RegExp.Global = Истина; RegExp.MultiLine = Ложь; RegExp.Pattern = " ([^от№]*)"; Matches=RegExp.Execute("Заказ № TR1113816545 от 05.08.2022"); Номер = Matches.Item(1); Дата = Matches.Item(2); КонецПроцедуры | |||
| 8
    
        Kassern 09.08.22✎ 12:24 | 
        (7) а ТС на линуксе и приехали))     | |||
| 9
    
        Garykom гуру 09.08.22✎ 12:30 | 
        (8) в платформу скоро добавят     | |||
| 10
    
        Kassern 09.08.22✎ 12:40 | 
        (9) так же скоро, как поддержку sftp?)     | |||
| 11
    
        Garykom гуру 09.08.22✎ 12:46 | 
        (10) поддержку sftp вряд ли добавят
 в отличие от https://wonderland.v8.1c.ru/blog/podderzhka-regulyarnykh-vyrazheniy-vo-vstroennom-yazyke/ | |||
| 12
    
        DenisK2020 09.08.22✎ 12:48 | 
        (2) пытаюсь получить формат Дата выходит ошибка СокрЛП(Формат(Дата(ЗаказДата),"ДФ=""ггггММдд""")))     | |||
| 13
    
        Fish гуру 09.08.22✎ 12:51 | 
        (12) Какой текст ошибки? Чему равна переменная ЗаказДата? Какого она типа?     | |||
| 14
    
        Garykom гуру 09.08.22✎ 12:52 | 
        (12) функция Формат() она не предназначена чтобы из типа Строка сделать тип Дата     | |||
| 15
    
        СеменовСемен 09.08.22✎ 12:53 | 
        01.01.2001 по простому в дату не преобразуешь     | |||
| 16
    
        DenisK2020 09.08.22✎ 12:57 | 
        подскажите как правильно из строки теперь получить формат Дата. Спасибо     | |||
| 17
    
        Garykom гуру 09.08.22✎ 13:01 | ||||
| 18
    
        rsv 09.08.22✎ 13:01 | 
        (0) только парсингом. Т.е. без разбора символов и привязки к некоторым - никак.
 Хоть в цикле. | |||
| 19
    
        mistеr 09.08.22✎ 13:04 | 
        Есть такой хак: Дата("03.08.2022" + " 00:00:00")     | |||
| 20
    
        Garykom гуру 09.08.22✎ 13:05 | 
        (19) эээ переставить ничего не надо местами?     | |||
| 21
    
        DenisK2020 09.08.22✎ 13:07 | 
        пошел путем таким пока вроде работает
 Спасибо всем. //Преобразование строки в дату &НаСервере Функция СтрокаВДату(Знач ДатаСтрока) ПозицияПробела = СтрНайти(ДатаСтрока, " ", НаправлениеПоиска.СНачала); Если ПозицияПробела > 0 Тогда ДатаСтрока = Лев(ДатаСтрока, ПозицияПробела - 1); КонецЕсли; ДатаСтрока = СокрЛП(СтрЗаменить(ДатаСтрока, ".", "")); ДатаСтрока = Сред(ДатаСтрока, 5) + Сред(ДатаСтрока, 3, 2) + Лев(ДатаСтрока, 2); Если СтрДлина(ДатаСтрока) = 6 Тогда ДатаСтрока = "20" + ДатаСтрока; КонецЕсли; ОписаниеТипа = Новый ОписаниеТипов("Дата"); Результат = ОписаниеТипа.ПривестиЗначение(ДатаСтрока); Возврат Результат; КонецФункции | |||
| 22
    
        mistеr 09.08.22✎ 13:27 | 
        (20) Что?     | |||
| 23
    
        Kassern 09.08.22✎ 13:33 | 
        (20) не надо https://disk.yandex.ru/i/eDUrWZfwjr69XQ     | |||
| 24
    
        Garykom гуру 09.08.22✎ 13:45 | 
        (23) прикольно интересно когда это добавили     | |||
| 25
    
        RomanYS 09.08.22✎ 13:46 | 
        (24) в 8.0 приблизительно)     | |||
| 26
    
        Kassern 09.08.22✎ 13:46 | 
        (24) видимо, когда разрабам надоело каждый раз переворачивать дату, но в СП почему-то решили об этом умолчать)     | |||
| 27
    
        RomanYS 09.08.22✎ 13:57 | 
        (26) почему умолчать? 
 "Строка должна содержать дату в локальном формате даты или в каноническом виде YYYYMMDDHHMMSS." Под локальным понимается представление даты по-умолчанию в соответствии с региональными настройками, т.е. (23). | |||
| 28
    
        Garykom гуру 09.08.22✎ 14:24 | 
        (25)(27) Ааа понял почему я никогда не юзал
 Ибо словил глюк на серверах где настройки даты были не того | |||
| 29
    
        Garykom гуру 09.08.22✎ 14:24 | 
        (28)+ Всегда привожу к каноническому "20220803"     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |