Имя: Пароль:
1C
1С v8
Преобразование к значению типа дата не может быть выполнено
,
0 lek0_0
 
13.10.14
11:27
Добрый день. При загрузке файла в 1С выходит ошибка "преобразование к значению типа дата не может быть выполнено".

Подскажите что можно сделать?
1 Chameleon1980
 
13.10.14
11:28
при какой такой загрузке? какого файла?
2 shuhard
 
13.10.14
11:29
(0)[что можно сделать]
нанять специалиста
почистить файлик
изменить код загрузки файла
3 Легат
 
13.10.14
11:29
Понеслась..
4 Cube
 
13.10.14
11:29
(0) Можно позвать программиста, можно уволиться и устроиться туда, где этой ошибки нет.
5 Ненавижу 1С
 
гуру
13.10.14
11:29
(0) смириться
6 Fish
 
13.10.14
11:29
(0) Подставлять значения в виде, который позволит сделать преобразование к типу "дата". Для этого рекомендую СП почитать.
7 Ненавижу 1С
 
гуру
13.10.14
11:29
(0) Лёня, жги!
8 Kalambur
 
13.10.14
11:30
не успел )
9 Kurbash
 
13.10.14
11:30
(0) опиши подробно ситуацию. Какой файлик, куда и как грузишь
10 lek0_0
 
13.10.14
11:35
Сразу скажу я в этом деле новый человек. У нас в компании для инвентаризации ТМЦ используется 1С. В ней ведется учет ТМЦ и печатаются штрих кода для них. Для инвентаризации используется сканер штрих кодов. После сканирования, данные выгружаются в 1С. И при выгрузке выскакивает такая ошибка.
11 Chameleon1980
 
13.10.14
11:36
а народу-то собралось :)
12 Ненавижу 1С
 
гуру
13.10.14
11:36
(10) а ты кем работаешь?
13 lek0_0
 
13.10.14
11:37
А я сис админ)))1С это не мое
14 Metman
 
13.10.14
11:37
Будь мужиком, посмотри в отладчике!
15 Ненавижу 1С
 
гуру
13.10.14
11:38
(13) не твоё, так и не берись
зовите специалиста
16 Chameleon1980
 
13.10.14
11:38
(14) счас сначала объясним где отладчик взять
17 silent person
 
13.10.14
11:38
(13) обратитесь к тому кто написал вашу конфигурацию 1С для инвентаризации. Мы же не знаем что он там понаписал.
18 Фокусник
 
13.10.14
11:39
(15) ага, как же:
"ты же компьютерщик, разберись" ;)

Мне как-то аналогично подсовывали в работу "программируемый замок для двери". Ты же "программист"? Ну так запрограммируй :)
19 lek0_0
 
13.10.14
11:40
В журнале регистрации идет ссылка на какую то форму  "{Форма.Форма.Форма(35)}"
20 Ненавижу 1С
 
гуру
13.10.14
11:41
открывай эту форму давай уже
21 Фокусник
 
13.10.14
11:41
(19) В отладчике можно включить остановку по ошибке. Тогда ошибочный код сразу покажет.
22 lek0_0
 
13.10.14
11:42
А где найти эту форму?
23 Легат
 
13.10.14
11:43
Отладка - остановка по ошибке - останавливаться оп ощибке
24 Ненавижу 1С
 
гуру
13.10.14
11:43
когда ошибка вылезет нажми Подробно и Конфигуратор, должно открыть
25 Fish
 
13.10.14
11:43
(22) В конфигураторе. Но если ты с ним незнаком, то проще  сделать (17).
26 EugeniaK
 
13.10.14
11:48
(0) Позвать специалиста.

Насколько я понимаю, обработка раньше работала, теперь перестала.
Можно попробовать выкидывать из файла для загрузки строчки. После выкидывания какой перестанет вылетать ошибка, там и неверно заданная дата обнаружится.
27 lek0_0
 
13.10.14
12:06
нашел этот обработчик. вот строчка из него:

СтрТаб.ДатаЗаписи = Дата(Сред(ДатаСтр, 7, 4) + Сред(ДатаСтр, 4, 2)+Лев(ДатаСтр,2)+ВремяСтр);//"ДФ=""дд.ММ.гггг Ч.мм.сс"""
28 lodger
 
13.10.14
12:12
(27) теперь остановись там и посмотри чему равно ДатаСтр и ВремяСтр, да и просто вычисли выражение "Сред(ДатаСтр, 7, 4) + Сред(ДатаСтр, 4, 2)+Лев(ДатаСтр,2)+ВремяСтр".
натолкнет на мысль.
29 zdas
 
13.10.14
12:14
перед этим куском кода:
Сообщить ("ДатаСтр = "+ДатаСтр+", ВремяСтр = "+ВремяСтр);
то что выведет - сюда :)
30 lek0_0
 
13.10.14
12:19
это раздел по времени

// Разделение на дату и время
        ДатаСтр = Лев(Стр,ПозицияРазделителя - 1);
        ВремяСтр = Прав(ДатаСтр, СтрДлина(ДатаСтр) - Найти(ДатаСтр, " "));
        Если СтрДлина(ВремяСтр) = 7 Тогда
            ВремяСтр = "0" + ВремяСтр;
        КонецЕсли;
        ВремяСтр = СтрЗаменить(ВремяСтр, ".", "");
        // Преобразование даты в строку
        СтрТаб.ДатаЗаписи = Дата(Сред(ДатаСтр, 7, 4) + Сред(ДатаСтр, 4, 2)+Лев(ДатаСтр,2)+ВремяСтр);//"ДФ=""дд.ММ.гггг Ч.мм.сс"""
31 hhhh
 
13.10.14
12:22
(30) ну файлик сам откройте, посмотрите там даты в каком виде?
32 lek0_0
 
13.10.14
12:49
13.10.2014 16:59:26
33 Cube
 
13.10.14
12:53
(32) И нафига (30) нужно?

СтрТаб.ДатаЗаписи = Дата(ДатаСтр);

отработает только в путь...
34 Chameleon1980
 
13.10.14
12:53
а нигде время не попадается однозначное (один знак) ???
35 hhhh
 
13.10.14
12:54
(32) пустые строчки поищите
36 Ненавижу 1С
 
гуру
13.10.14
12:54
у вас обработка не расчитана на разделитель "двоеточие" у времени
37 Ненавижу 1С
 
гуру
13.10.14
12:56
+(36) если заменить на "точку", то все будет работать

ну или в коде после

ВремяСтр = СтрЗаменить(ВремяСтр, ".", "");

добавьте еще одну строку:

ВремяСтр = СтрЗаменить(ВремяСтр, ":", "");
38 lek0_0
 
13.10.14
14:22
заменил на ВремяСтр = СтрЗаменить(ВремяСтр, ":", "");

помогло

всем спасибо :)
39 Ненавижу 1С
 
гуру
13.10.14
14:25
(38) надо было не заменить, а добавить, а то мало ли, вернуться к старому формату
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой