Имя: Пароль:
1C
1С v8
Преобразование значения к типу Дата не может быть выполнено
, ,
0 USmista1C
 
29.07.14
11:25
Доброго времени суток,
При выполнении в 1С 8.2 выдает ошибку:

{Форма.Форма.Форма(21)}: Преобразование значения к типу Дата не может быть выполнено
Движение.Период = Дата(Строка(Год)+"0101000000");

что не так?

Во процедура:

Подразделение = остатокстрока;
    
    Движение = НовДок.Движения.НДФЛПредоставленныеСтандартныеВычетыФизЛиц.Добавить();
    Движение.Период = Дата(Строка(Год)+"0101000000");
    Движение.Активность = Истина;
    Движение.ФизЛицо = Справочники.ФизическиеЛица.НайтиПоКоду(СокрЛП(кодсотр)).Ссылка;
    Движение.Организация = орг;
    Движение.МесяцНалоговогоПериода = Дата(Строка(Год)+?(стрДлина(СокрЛП(Месяц))=1,"0"+СокрЛП(Месяц),СокрЛП(Месяц))+"01000000");
    Движение.КодВычета= Справочники.ВычетыНДФЛ.НайтиПоКоду(?(КодВычета="114","114/108",КодВычета)).Ссылка;
    
    Движение.ПримененныйВычет = число(СуммаВычета);
    
    Движение.ОбособленноеПодразделение = орг;
    Движение.ПодразделениеОрганизации  = справочники.ПодразделенияОрганизаций.НайтиПоНаименованию(Подразделение).Ссылка;
1 butterbean
 
29.07.14
11:26
(0) сделай Дата(Год,1,1) и все поймешь
2 ДенисЧ
 
29.07.14
11:26
Сообщить(Строка(Год))?

И вообще, вместо Строка() используй Формат(Год, "ЧГ=")
3 Fish
 
29.07.14
11:28
(0) У тебя в Строка(Год) - сидит неразрывный пробел.
4 USmista1C
 
29.07.14
11:49
Чтот не получается.
Писал не я,
процедура из обработки с infostart для переноса НДФЛ из 7.7 в 8.2
с выгрузкой из 7.7 разобрался, а вот залить в 8.2 не получается.
Товарищи, содействуйте плиз

вот вся процедура:

Процедура ОбработатьСтр(НовДок,стр)
    
    остатокстрока = стр;
    Для н = 1 По СтрЧислоВхождений(стр,"@") Цикл
        Ном = Найти(остатокстрока,"@");    
        Значение = Сред(остатокстрока,1,Ном-1);        
        остатокстрока = Сред(остатокстрока,ном+1,СтрДлина(остатокстрока));
        Если н = 1 Тогда
            кодсотр = Значение;
        ИначеЕсли н = 2 Тогда
            Месяц = Значение;
        ИначеЕсли н = 3 Тогда
            КодВычета = Значение;
        ИначеЕсли н = 4 Тогда
            СуммаВычета = Значение;
        Конецесли;
    Конеццикла;
    Подразделение = остатокстрока;
    
    Движение = НовДок.Движения.НДФЛПредоставленныеСтандартныеВычетыФизЛиц.Добавить();
    Движение.Период = Дата(Строка(Год)+"0101000000");
    Движение.Активность = Истина;
    Движение.ФизЛицо = Справочники.ФизическиеЛица.НайтиПоКоду(СокрЛП(кодсотр)).Ссылка;
    Движение.Организация = орг;
    Движение.МесяцНалоговогоПериода = Дата(Строка(Год)+?(стрДлина(СокрЛП(Месяц))=1,"0"+СокрЛП(Месяц),СокрЛП(Месяц))+"01000000");
    Движение.КодВычета= Справочники.ВычетыНДФЛ.НайтиПоКоду(?(КодВычета="114","114/108",КодВычета)).Ссылка;
    Движение.ПримененныйВычет = число(СуммаВычета);
    Движение.ОбособленноеПодразделение = орг;
    Движение.ПодразделениеОрганизации  = справочники.ПодразделенияОрганизаций.НайтиПоНаименованию(Подразделение).Ссылка;
    
Конецпроцедуры
5 MaXpaT
 
29.07.14
11:51
Год откуда берется? это параметр на форме или что?
6 Franchiser
 
гуру
29.07.14
11:53
Дата(""+СокрЛП(стрзаменить(Год,Символы.НПП,""))+"0101")
7 USmista1C
 
29.07.14
11:54
(5)Год задается в форме вручную, получается параметр
8 ДенисЧ
 
29.07.14
11:55
(6) ЧелоДлань.png
9 Fish
 
29.07.14
11:55
(7) Так задавай его сразу строкой, а не числом. И будет тебе счастье.
10 Fish
 
29.07.14
11:56
+(9) А лучше сразу датой :))
11 Franchiser
 
гуру
29.07.14
11:56
(8) что это?
12 USmista1C
 
29.07.14
11:57
Хотите сказать задать так:
Дата"20140101000000")
13 Franchiser
 
гуру
29.07.14
11:58
(12) задай уж как-то, открой табло и проверь.
14 Fish
 
29.07.14
11:58
(12) Присоединяюсь к мнению (8)
15 hhhh
 
29.07.14
12:01
(12) ну вот же

Дата(2014, 1, 1)

чего вы через задницу всё пытаетесь?
16 Franchiser
 
гуру
29.07.14
12:01
(14) я так не пишу код) просто отредактировал его вариант с тем что показать что ошибка в НПП
17 Franchiser
 
гуру
29.07.14
12:05
(12) у тебя строка ща вышляди так "2 0140101000000" поэтому ошибка
18 USmista1C
 
29.07.14
12:05
После (6)Franchiser  выдает (другая дата выползла):

{Форма.Форма.Форма(25)}: Преобразование значения к типу Дата не может быть выполнено
    Движение.МесяцНалоговогоПериода = Дата(Строка(Год)+?(стрДлина(СокрЛП(Месяц))=1,"0"+СокрЛП(Месяц),СокрЛП(Месяц))+"01000000");
19 Fish
 
29.07.14
12:06
(16) Это я по поводу (12), а не к тебе. Просто мнение такое же :))
20 Fish
 
29.07.14
12:07
(18) Смотрим: Строка(Год). Читаем (3) до полного просветления.
21 Franchiser
 
гуру
29.07.14
12:07
(18) хватит строки к дате преобразовывать, пиши нормально
22 ДенисЧ
 
29.07.14
12:08
(18) А что, (2) вообще впадлупрочитать было?
23 USmista1C
 
29.07.14
12:10
Ребят Вы не обижайтесь
не силен я в программировании!!!
24 Franchiser
 
гуру
29.07.14
12:11
Движение.МесяцНалоговогоПериода = Дата(Год,Месяц,1)
25 ДенисЧ
 
29.07.14
12:12
(23) А в чтении?
26 fmrlex
 
29.07.14
12:12
Всего-то по "Год" надо внимательно прочитать в СП
27 Franchiser
 
гуру
29.07.14
12:13
ctrl+f1 на "Год"е
28 USmista1C
 
29.07.14
12:34
Я понял, Franchiser (17)(24)
спасибо получилось!
29 USmista1C
 
29.07.14
12:41
ДенисЧ (8)?
(23) мега гигант!
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс