|   |   | 
| 
 | Пустая строка в дату | ☑ | ||
|---|---|---|---|---|
| 0
    
        Dimonkur 24.01.14✎ 06:13 | 
        Пустая строка не преобразуется в число 0 в 1с 8.2? Пример     | |||
| 1
    
        Wobland 24.01.14✎ 06:14 | 
        откуда ты эти вопросы берёшь? сам пример генерируй     | |||
| 2
    
        BICO 24.01.14✎ 07:13 | 
        ЗначениеЗаполнено(что-то)     | |||
| 3
    
        1Сергей 24.01.14✎ 07:41 | 
        >>Пустая строка не преобразуется в число 0 в 1с 8.2? Пример
 казалось бы - причем тут дата? | |||
| 4
    
        Dimonkur 24.01.14✎ 07:44 | 
        Я обрабатываю REP файл. В нем строки. Пишу оператор 
 _товар = число(лев(стр,поз-1)). Поз это позиция ; Если стоит число на этом месте то все нормально, а вот если Перед ; один пробел то ошибка - невозможно преобразовать к типу число. | |||
| 5
    
        kosts 24.01.14✎ 07:47 | 
        (4) Открой для себя СОКРЛП()     | |||
| 6
    
        Wobland 24.01.14✎ 07:47 | 
        и СтрДлину()     | |||
| 7
    
        Dimonkur 24.01.14✎ 07:51 | 
        KOSTS c СОКРП() не получилось, попробую с СОКРЛП хотя особой разницы не вижу     | |||
| 8
    
        kosts 24.01.14✎ 07:54 | 
        (7) Может внутри числа пробелы есть? Выложи кусочек файла глянуть     | |||
| 9
    
        Irbis 24.01.14✎ 07:56 | 
        Просто ещё одна жертва неразрывного пробела     | |||
| 10
    
        dsdred 24.01.14✎ 07:57 | 
        (7) сокрлп превратит в текст, не забудь перевести в нужный формат(На сколько я понял у тебя число).
 Есть еще варианты удалять пробелы если они присутствуют. Вообщем то вариантов масса, тебе просто нужно алгаритм сделать обработки текста и перевода его в число. | |||
| 11
    
        Рэйв 24.01.14✎ 08:00 | 
        Нужное=Число(СтрЗаменить(СокрЛП(Значение),Символы.ПС,""));     | |||
| 12
    
        dsdred 24.01.14✎ 08:01 | 
        (9) а ну если так то это не трудно)) разберется. минут 5 потратит на гугл и все.     | |||
| 13
    
        Dimonkur 24.01.14✎ 08:07 | 
        280608;28.12.2013;11:15:15;150;1;7690;0;;0;0.00;0.000;0.00;
 Это одна из строк. Ну думаю разберусь тут достаточно дали подсказок | |||
| 14
    
        kosts 24.01.14✎ 08:08 | 
        (13) А где пробел?     | |||
| 15
    
        1Сергей 24.01.14✎ 08:09 | 
        (13) Функция Split(Строка, Разделитель) Экспорт
 Рез = Новый Массив; Стр = СтрЗаменить(Строка, Разделитель, Символы.ПС); Для Сч = 1 По СтрЧислоСтрок(Стр) Цикл Рез.Добавить(СтрПолучитьСтроку(Стр,Сч)); КонецЦикла; Возврат Рез; КонецФункции | |||
| 16
    
        Dimonkur 24.01.14✎ 08:31 | 
        1С Сергей. Спасибо конечно. Ну зачем мне массив из подстрок строки?     | |||
| 17
    
        Мимохожий Однако 24.01.14✎ 08:32 | 
        Дарёному коню в зубы не смотрят. Не нужен, ну и ладно. Кому другому пригодится.     | |||
| 18
    
        Dimonkur 24.01.14✎ 08:33 | 
        Для примера есть строка 280614;28.12.2013;11:22:24;11;1;7691;2;150;1;31.00;1.000;31.00; Мне нужно получить число 150. Если стоит число 150 то все прекрасно Но если строка 280608;28.12.2013;11:15:15;150;1;7690;0;;0;0.00;0.000;0.00; То шобка потому что на месте где я предполагаю число ;;     | |||
| 19
    
        Бледно Золотистый 24.01.14✎ 08:35 | 
        (18) Ну обрабатывай ситуацию, Число(""), Число(" ") и проч. работать не будут. только строковые представления числа и булево.     | |||
| 20
    
        Мимохожий Однако 24.01.14✎ 08:35 | 
        (18)Покажи код, в котором тебе удаётся это получить.     | |||
| 21
    
        kosts 24.01.14✎ 08:35 | 
        (18) Если не получается написать свой парсер, зачем отказываешься от готового в (15)?     | |||
| 22
    
        Dimonkur 24.01.14✎ 08:36 | 
        Спасибо БледноЗолотистый за инфу     | |||
| 23
    
        kosts 24.01.14✎ 08:37 | 
        (18)
 Split("280608;28.12.2013;11:15:15;150;1;7690;0;;0;0.00;0.000;0.00;", ";")[8] | |||
| 24
    
        Dimonkur 24.01.14✎ 08:38 | 
        А вот пример 1с Сергей. В результате его примера у меня будет один из элементов массива вообще пустая строка даже без пробелов, ее можно будет преобразовать в число?     | |||
| 25
    
        Dimonkur 24.01.14✎ 08:40 | 
        Для сч = 4 По Текст.КоличествоСтрок() Цикл
 Стр = Текст.ПолучитьСтроку(сч); Поз = Найти(Стр,";"); стр = сред(стр, поз+1); //Дата Поз = Найти(Стр,";"); _Дата = Дата((лев(стр,поз-1))+ " 00:00:00"); стр = сред(стр,поз+1); //время поз = найти(стр,";"); _время = (лев(стр,поз-1)); стр = сред(стр,поз+1); //тип транзакции поз = найти(стр,";"); _ТипТр = число(лев(стр,поз-1)); стр = сред(стр,поз+1); //код системы поз = найти(стр,";"); стр = сред(стр,поз+1); //номер клиента поз = найти(стр,";"); _номерКл = лев(стр,поз-1); стр = сред(стр,поз+1); //что за поле? поз = найти(стр,";"); стр = сред(стр,поз+1); //стр = СОКРЛП(стр); //код товара поз = найти(стр,";"); //_товар = (лев(стр,поз-1)); _товар = число(лев(стр,поз-1)); стр = сред(стр,поз+1); //секция поз = найти(стр,";"); стр = сред(стр,поз+1); //цена поз = найти(стр,";"); _цена = (лев(стр, поз-1)); //_цена = число(лев(стр, поз-1)); стр = сред(стр, поз+1); //количество поз = найти(стр,";"); _количество = (лев(стр,поз-1)); //_количество = число(лев(стр,поз-1)); стр = сред(стр,поз+1); //сумма поз = найти(стр, поз+1); _сумма = (лев(стр,поз-1)); //_сумма = число(лев(стр,поз-1)); //ТЗ.Дата = _дата; //тз.Товар = _товар; //ТЗ.Цена = _цена; //ТЗ.Количество = _количество; //тз.сумма = _сумма; КонецЦикла; | |||
| 26
    
        Мимохожий Однако 24.01.14✎ 08:40 | 
        (24)Если НЕ ЗначениеЗаполнено(ЭлементМассива) Тогда
 ЭлементМассива = 0 КонецЕсли | |||
| 27
    
        Dimonkur 24.01.14✎ 08:43 | 
        А может действительно лучше сделать как у Сергея Получить массив из подстрок. А с массивом лучше работать?     | |||
| 28
    
        dsdred 24.01.14✎ 08:49 | 
        (27) А может просто убрать массив из предложеной функции?
 Вам все инструменты дали а вы не пользуетесь. Функция Split(Строка, Разделитель) Экспорт //Рез = Новый Массив; Стр = СтрЗаменить(Строка, Разделитель, Символы.ПС); // Для Сч = 1 По СтрЧислоСтрок(Стр) Цикл // Рез.Добавить(СтрПолучитьСтроку(Стр,Сч)); // КонецЦикла; Возврат Стр ; КонецФункции | |||
| 29
    
        dsdred 24.01.14✎ 08:51 | 
        (27) У вас впринципе задача легкая и лучше Вам с ней разобраться самому иначе какой смысл дальше быть программистом?
 У вас задача котороая научит вас работать с данными и переводить их в нужный вам формат. Вам это еще не раз понадобится, но нужно самому это прочуствовать. | |||
| 30
    
        kosts 24.01.14✎ 08:52 | 
        (25) 
 
 | |||
| 31
    
        dsdred 24.01.14✎ 08:55 | 
        (28) фигню написал((     | |||
| 32
    
        kosts 24.01.14✎ 09:08 | 
 | |||
| 33
    
        1Сергей 24.01.14✎ 09:14 | 
        (32) браво! мыслишь как программист     | |||
| 34
    
        Alex1979rak 24.01.14✎ 09:27 | 
        (32) это что такое?     | |||
| 35
    
        kosts 24.01.14✎ 09:32 | 
        (34) Пример более-менее универсальной загрузки     | |||
| 36
    
        Dimonkur 24.01.14✎ 09:34 | 
        (32) Тебе не нравится вопрос "с массивом лучше работать?", заменю его на "с массивом гибче работать?". Т     | |||
| 37
    
        Infsams654 24.01.14✎ 09:36 | 
        уже 2-й раз: Что это было ?     | |||
| 38
    
        kosts 24.01.14✎ 09:37 | 
        (36) Мне не нравится в лоб прописывать 100500 реквизитов. При малейшем изменении в структуре файла разбираться потом пол дня...     | |||
| 39
    
        Dimonkur 24.01.14✎ 09:39 | 
        (34) А что за функция split?     | |||
| 40
    
        kosts 24.01.14✎ 09:41 | 
        (39) Перечитай ветку     | |||
| 41
    
        Infsams654 24.01.14✎ 09:46 | 
        (38) ты в уме ? Как в дальнейшем с этим работать ?
 В общем, то для этого есть какие-то настройки, в которых заложены схемы - лучший вариант, это SOAP | |||
| 42
    
        kosts 24.01.14✎ 09:52 | 
        (41) Затраты на решение задачи должны быть соразмерны с уровнем задачи.
 Если нужно загружать пару файлов. То проще так сделать, за три минуты, в том же модуле без использовании сторонних компонент. Я же не предлагаю делать обмен между базами таким способом... | |||
| 43
    
        Infsams654 24.01.14✎ 10:04 | 
        (42) тогда зачем закладывать универсальность?
 Забей все в коде напрямую | |||
| 44
    
        kosts 24.01.14✎ 10:06 | 
        (43) Мне с такой универсальностью сделать и отладить быстрее. Чем прямо забивать.     | |||
| 45
    
        Infsams654 24.01.14✎ 10:20 | 
        (44) см. как сделано http://www.vdgb-soft.ru/jsk/jkh/
 Там настройка загрузки реестра платежей для разных форматов (txt, csv, xls, xml). Все настраивается, что, от куда и куда - очень просто. | |||
| 46
    
        Dimonkur 24.01.14✎ 10:32 | 
        (46) А где на этом сайте найти обработки?     | |||
| 47
    
        kosts 24.01.14✎ 11:20 | 
        (45) Я не против. 
 Но вот мне например понадобилось, ну подкинули такую задачку, что нужно загрузить файл в документ по нажатию одной кнопки. Без всяких визуальных форм. Можно скопипастить несколько процедур из своего ранешнего решения и через 20 минут все будет работать. Можно начать искать универсальные обработки. Хорошо, если знаешь, что тебе нужно и где это лежит. Опять же настраивать и сохранять схему каким то образом в конфигурации или данных. Не забываешь про лицензионную чистоту... Не думаю что будет меньше времени... Если в задаче пользователю нужно иметь возможность самому настраивать поля для загрузи, тогда и подход соответствующий. Не стоит заморачиваться своим великом, а лучше поискать готовое или посмотреть как люди делают. Каждой задаче свой подход... | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |