Имя: Пароль:
1C
1С v8
Странности показыват отладчик при загрузке excel
0 ILLUMI
 
17.01.15
09:38
Ребят, не пойму, уже отладчик скрипит.
Сделала выгрузку в excel, при выгрузке строку привела к формату даты вот так:
Лист.Columns(50).NumberFormat  = "ДД.ММ.ГГ ч:мм:сс;@";
Начала загружать 1,500 строк.
На 1282 строке выдал сообщение
"Преобразование значения к типу дата...." ну для уточнения эту строку поставила в excel первой, теперь ругается сразу при загрузке, вопроса два!
1 - Почему 1200 строк загружал С таким же форматом даты и времени и все было хорошо? а на этой строчке ругается.
2 - Отладчиком смотрю какие данные в строке. вот скриншот и отладчика и excel,я . В excel одни данные, в отладчике какого-то фига стоит "05", у меня во всем файле нет такого.. Подскажите, что за..?
http://trueimages.ru/img/e0/52/6630ab45.png
1 ILLUMI
 
17.01.15
09:58
Стоит наверное указать на то, что при выгрузка была автоматическая, все 1500 строк этого файла имеют дату похожего типа: "ДД.ММ.ГГ ч:мм:сс"
13.31.2014 23:59:59
2 ILLUMI
 
17.01.15
10:06
Ни кто не подскажет в каком направлении хотя бы рыть? ;)
3 Мимохожий Однако
 
17.01.15
10:09
Читай text вместо value. А потом преобразовывай из строки в дату.
4 ILLUMI
 
17.01.15
10:09
в обработке при загрузке у меня следующее
...
ТЗ.Колонки.Добавить("блаблабла",ОбщегоНазначения.ОписаниеТипаДата(ЧастиДаты.ДатаВремя));
5 ILLUMI
 
17.01.15
10:10
(3) при выгрузке? ОК. попробую, а преобразовывать при загрузке?
6 Мимохожий Однако
 
17.01.15
10:15
(5)Вытаскивай по кусочкам день, месяц, год, время...
7 ILLUMI
 
17.01.15
10:17
(6) слишком кода много будет мне кажется. у меня в выгрузке 35 ячеек с периодами разных регистров ;) хотелось проще сделать = )
8 ILLUMI
 
17.01.15
10:18
(6) Сейчас валю на текст заменила, выгружаю, посмотрим, что потом получится ;))
9 ILLUMI
 
17.01.15
10:20
Ну да, с текстом не пошло.
"Поле объекта недоступно для записи (Text)
    Лист.Cells(НомерСтроки, 50).Text = "ПервоначальныеСведенияОСПериод3";
"
10 ILLUMI
 
17.01.15
10:21
буду наверное пробовать с форматом яйчеки "@" выгружать и пробовать при загрузке на дату и время разобрать.
Хотя все равно не понятно, почему это ошибка выборочная. Где-то есть, а где-то нет.
11 Мимохожий Однако
 
17.01.15
10:22
Часто мешают невидимые служебные символы и переводы строк. Ты свой код скрываешь. Гадать на кофе я не умею.
12 ILLUMI
 
17.01.15
10:25
(11)  да я бы выложила, но он большой. Ну попробую текстом тянуть потом разбивать на датуВРемя. Спасибо.
13 ILLUMI
 
17.01.15
11:46
я даже когда выгружаю в ексель с форматом ячеки "@" все равно в отладчике строка "05" а не 30022014235959, очень непонятно = )
14 alle68
 
17.01.15
11:55
(13) Просто 30 февраля ещё не утвердили...
15 ILLUMI
 
17.01.15
12:48
(14) ну я образно написала ) машинально получилось)
16 ILLUMI
 
18.01.15
11:01
ребят, подскажите, где ошибка.
Если ЗначенияКолонокВСтроке[49]<>""Тогда
     ЗначенияКолонокВСтроке[49] = Дата(Формат(ЗначенияКолонокВСтроке[49], "ДФ='dd.mm.yyyy'"));
НоваяСтрока.Период3 = ЗначенияКолонокВСтроке[49];
КонецЕсли

У меня обработка по загрузке данных из EXCEL. Там период в колонке 49 лежит в форма 01022014.
Всего 1500 строк. 1281 строку с этим периодом загружает хорошо, на 1282 строке ругается. Я уже не знаю, как еще ему объяснить-то?)))
17 ILLUMI
 
18.01.15
11:02
в ошибке пишет "преобразование к типу дата не может быть..."
18 Мимохожий Однако
 
18.01.15
11:11
Добавь фрагмент Сообщить(ЗначенияКолонокВСтроке[49]);
Кидай сюда.
19 ILLUMI
 
18.01.15
11:12
Выгружаю с такой строкой
Лист.Cells(НомерСтроки, 49).Value = ?(ЗначениеЗаполнено(Строка.ГруппыОСОрганизацийПериод), СокрЛП(Формат(Строка.ГруппыОСОрганизацийПериод, "ДФ=yyyyMMdd")), "");
Эт на всякий случай.
Сейчас добавлю сообщить
20 ILLUMI
 
18.01.15
11:16
вот выдал 05
что и раньше.
http://trueimages.ru/img/4e/af/cbb6bb45.png
а почему 05, когда в экселе стоит http://trueimages.ru/img/e0/52/6630ab45.png
21 Мимохожий Однако
 
18.01.15
11:17
Лист.Cells(НомерСтроки, 49).text
22 ILLUMI
 
18.01.15
11:18
(21) на этапе выгрузки? я пробовала, он ошибку выдал
"Поле объекта недоступно для записи (Text)
    Лист.Cells(НомерСтроки, 50).Text = "ПервоначальныеСведенияОСПериод3";
"
23 ILLUMI
 
18.01.15
11:22
соответственно я техт ставила
Лист.Cells(НомерСтроки, 50).Value = "ПервоначальныеСведенияОСПериод3";

и в цикле здесь
Лист.Cells(НомерСтроки, 50).Value = ?(ЗначениеЗаполнено(Строка.ПервоначальныеСведенияОСПериод3), СокрЛП(Формат(Строка.ПервоначальныеСведенияОСПериод3, "ДФ=yyyyMMdd")), "");
24 Мимохожий Однако
 
18.01.15
11:23
Что показывает Сообщить(Строка.ГруппыОСОрганизацийПериод)?
Лист.Cells(НомерСтроки, 50).Value оставь
25 ILLUMI
 
18.01.15
11:27
я думаю может быть он 20140102 как-то складывает? и получается 05?
Сейчас посмотрю, что сообщает.
26 ILLUMI
 
18.01.15
11:30
27 ILLUMI
 
18.01.15
11:31
ГруппыОСОрганизацийПериод по строчке 1282 показывает все красиво, а в первоначальных косяк
28 ILLUMI
 
18.01.15
11:32
скрин ГруппыОСОрганизацийПериод после преобразования уже.
29 Мимохожий Однако
 
18.01.15
11:33
сделай функцию, которая наверняка возвращает тип значения - дата. Красота здесь ни при чём.
30 Мимохожий Однако
 
18.01.15
11:34
Что показывает Сообщить(""+ТипЗнч(Строка.ГруппыОСОрганизацийПериод)+":"+Строка.ГруппыОСОрганизацийПериод)?
31 vde69
 
18.01.15
11:35
при работе с комом ВСЕГДА передавай явную переменную...

мЗначение = ?(ЗначениеЗаполнено(Строка.ГруппыОСОрганизацийПериод), СокрЛП(Формат(Строка.ГруппыОСОрганизацийПериод, "ДФ=yyyyMMdd")), "");

Лист.Cells(НомерСтроки, 49).Value = мЗначение;

и отладить проще...
32 ILLUMI
 
18.01.15
11:37
(29) Ок, сделаю на этапе выгрузки.
(30) Сейчас смотрю
33 ILLUMI
 
18.01.15
11:43
34 Мимохожий Однако
 
18.01.15
12:08
Судя по картинка у тебя правильное значение через раз. как в (31) делала? Сделай загрузку при отладке только одной строки.
35 alle68
 
18.01.15
12:46
(32) Ты так и не показала 1282-ю строку, упорно демонстрируешь 2-ю.
И зачем ты вообще выгружаешь из 1С в excel, а затем загружаешь опять в 1С? Выгрузи-загрузи ТЗ через файл и не мучайся.