Имя: Пароль:
1C
1С v8
Поиск даты в строке 8,2
0 KonstantinK90
 
26.02.15
07:23
Здраствуйте помогите с проблемой. необходимо найти дату в строке как это сделать чет на форумах почитал и ни чего не понял вот мой код в НаборЗаписей = РегистрыСведений.уатПервоначальныеСведенияТС.СоздатьНаборЗаписей();
Если  ЗначениеЗаполнено(Строка.Колонка1) = Истина Тогда     
    НаборЗаписей.Отбор.ГосударственныйНомер_.Установить(Строка.Колонка1);
    НаборЗаписей.Прочитать();
    Для Каждого Запись Из НаборЗаписей Цикл
                   // Чтение и сообщение данных полей записи.
                   Сообщить(Строка(Запись.ГосударственныйНомер_));    
                   // Запись.ГосударственныйНомер =   СтрЗаменить(Запись.ГосударственныйНомер," ","");  //УбратьПробел
                     // оригинал
                  // Запись.VIN_ = Запись.VIN;
                  Запись.ИсправленОбработкой = Истина;
                  
                   Запись.VIN = НоваяСтрока.VINНомер;
                   Запись.ГосударственныйНомер = Строка.Колонка1;
                   Запись.Модель = Строка.Колонка2;
                   Запись.НомерДвигателя = Строка.Колонка3;
                   Запись.ГодВыпуска = Строка.Колонка5;
                   Запись.МощностьДвигателяЛС = Строка.Колонка7;
                   Запись.НомерШасси = Строка.Колонка9;
                   Запись.НомерКузова = Строка.Колонка10;
                  
                   //Если не нашли цветкузова то тогда создаем его
                   Элемент = Справочники.уатЦвета.НайтиПоНаименованию(Строка.Колонка11);
             Если Элемент.Пустая() = ложь тогда
                   Элемент = Справочники.уатЦвета.СоздатьЭлемент();
                   Элемент.Наименование =  Строка.Колонка11;
                   Запись.ЦветКузова =   Справочники.уатЦвета.НайтиПоНаименованию(Строка.Колонка11);
                   НаборЗаписей.Записать();
             Иначе
             КонецЕсли;
                    Запись.НомерСерииЛицензионнойКарточки = Строка.Колонка12;
                  
                   //Ищем дату в строке  НоваяСтрока.ОсобыеОтметки = Строка.Колонка15

                                   
                   //
КонецЦикла;
НаборЗаписей.Записать();
Иначе
КонецЕсли;
1 KonstantinK90
 
26.02.15
07:24
это я эксель подгружаю и  в нем есть строки вот пример одной"ВРЕМ. РЕГИСТРАЦИЯ ПО 31.01.2016Г. ПО ДОГОВОРУ ФИНАНСОВОЙ АРЕНДЫ №23163-ФЛ/БР-12"
2 KonstantinK90
 
26.02.15
07:25
колонка в экселе называеться особые отметки
3 Адский плющ
 
26.02.15
07:31
Бьешь строку на части и запускаешь автомат.
4 Andrewww123
 
26.02.15
07:32
(0) Насколько я знаю, нормальных методов нет. Можно заменить пробелы на символы переноса строк и анализировать каждую строку, там уже несложно.
5 KonstantinK90
 
26.02.15
07:33
пример можете показать
6 ShoGUN
 
26.02.15
07:35
Наброшу: регулярными выражениями :)
7 ShoGUN
 
26.02.15
07:36
8 ShoGUN
 
26.02.15
07:44
Для твоей даты будет выглядеть так(учитывая, что вместо 01 могут написать "1", а вместо "2016" - "16"):
\d{1,2}\.\d{1,2}\.\d{2,4}
9 KonstantinK90
 
26.02.15
07:50
я чет не пойму как это сделать
10 ShoGUN
 
26.02.15
07:52
(9) В (7) Пример кода, что именно непонятно?
11 KonstantinK90
 
26.02.15
07:54
да если можно пример кода я не знаю с чего даже начать
12 ShoGUN
 
26.02.15
07:55
(11) Ссылки нажимать умеешь?
13 Cube
 
26.02.15
07:55
(12) Да не умеет, походу =))
14 KonstantinK90
 
26.02.15
07:56
умею нажимал там не понятно ни чего
15 ShoGUN
 
26.02.15
07:57
(14) Сочувствую, что ещё сказать.
16 Andrewww123
 
26.02.15
07:58
Вот именно поэтому нужно разбить строку и анализировать :) Явно проще будет
17 KonstantinK90
 
26.02.15
08:00
а как разбить строку
18 ShoGUN
 
26.02.15
08:01
(16) Кода с регулярками меньше минимум в 2 раза и универсальней - некуда. Ну да дело ваше.
19 Адский плющ
 
26.02.15
08:02
(16) Не взлетит. Если на (7) мозгов не хватило, то на самостоятельный анализатор и подавно.
20 ShoGUN
 
26.02.15
08:02
(17) Давай я дам тебе функцию для этого, но делать дальше ты будешь сам?
21 Andrewww123
 
26.02.15
08:03
(18) Видно было что у человека уровень самый начальный.
(17) Строка_ = СтрЗаменить(Строка, " ", Символы.ПС);
22 Andrewww123
 
26.02.15
08:04
(19) Ну может и так, поглядим..
23 ShoGUN
 
26.02.15
08:04
(21) Из типовой
// Функция "расщепляет" строку на подстроки, используя заданный

//        разделитель. Разделитель может иметь любую длину.

//        Если в качестве разделителя задан пробел, рядом стоящие пробелы

//        считаются одним разделителем, а ведущие и хвостовые пробелы параметра Стр

//        игнорируются.

//        Например,

//        РазложитьСтрокуВМассивПодстрок(",ку,,,му", ",") возвратит массив значений из пяти элементов,

//        три из которых - пустые строки, а

//        РазложитьСтрокуВМассивПодстрок(" ку   му", " ") возвратит массив значений из двух элементов

//

//    Параметры:

//        Стр -             строка, которую необходимо разложить на подстроки.

//                        Параметр передается по значению.

//        Разделитель -     строка-разделитель, по умолчанию - запятая.

//

//

//    Возвращаемое значение:

//        массив значений, элементы которого - подстроки

//

Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",") Экспорт
    
    МассивСтрок = Новый Массив();
    Если Разделитель = " " Тогда
        Стр = СокрЛП(Стр);
        Пока 1=1 Цикл
            Поз = Найти(Стр,Разделитель);
            Если Поз=0 Тогда
                МассивСтрок.Добавить(Стр);
                Возврат МассивСтрок;
            КонецЕсли;
            МассивСтрок.Добавить(Лев(Стр,Поз-1));
            Стр = СокрЛ(Сред(Стр,Поз));
        КонецЦикла;
    Иначе
        ДлинаРазделителя = СтрДлина(Разделитель);
        Пока 1=1 Цикл
            Поз = Найти(Стр,Разделитель);
            Если Поз=0 Тогда
                МассивСтрок.Добавить(Стр);
                Возврат МассивСтрок;
            КонецЕсли;
            МассивСтрок.Добавить(Лев(Стр,Поз-1));
            Стр = Сред(Стр,Поз+ДлинаРазделителя);
        КонецЦикла;
    КонецЕсли;
    
КонецФункции // глРазложить
24 ShoGUN
 
26.02.15
08:05
Оу. Изивините.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.