Имя: Пароль:
1C
 
Ошибка преобразования значения varchar в тип данных int
0 1ctube
 
24.06.18
15:18
День добрый. Из 1с записываю данные в скл. Есть запрос, с условием:
AND Year = '" + НаборЗаписей.Fields("Year").Value + "'";

Так вот, после выполнения, 1с выдаёт ошибку:
Ошибка преобразования значения varchar "2 018" в тип данных int.
Тип поля "Year "в скл как раз int, и значения в поле скльной базы:"2018".
Это значит вот здесь: НаборЗаписей.Fields("Year").Value данные представлены в типе данных varchar ? Как преобразовать в int на стороне 1с?
1 shuhard
 
24.06.18
15:19
(0) в 100500 раз
2 018 не число, число 2018
2 1ctube
 
24.06.18
15:22
(1) значит, когда из скл в 1с я получаю данные НаборЗаписей.Fields("Year").Value то 1с форматирует число в строку? Если в скл 2018, в 1с получается "2 018"?
3 МихаилМ
 
24.06.18
15:23
4 Смотрящий
 
24.06.18
15:32
Это конечно жесть когда число отдается нечислом ...
5 youalex
 
24.06.18
15:36
(0) не понял.
Если "Тип поля "Year "в скл как раз int", то зачем ты литерал в условии включаешь в одинарные кавычки?
вот это: = '" +  + "'"  ?

Ну и, конечно, если записать литерал без пробела, даже в кавычках,  то умный скуль его неявно преобразует в int
6 spectre1978
 
24.06.18
15:37
(0) а зачем одинарные кавычки? И почему не воспользоваться ADO параметрами вместо того чтобы формировать запрос из кусков?
7 hhhh
 
24.06.18
16:10
(0) AND Year = '" + Формат(НаборЗаписей.Fields("Year").Value, "ЧГ=0") + "'";

с тебя 500р в кассу мисты.
8 Asmody
 
24.06.18
17:44
(4) Жесть когда число при неявном преобразовании в строку получает расделители разрядов.
9 Asmody
 
24.06.18
17:47
Еще большая жесть когда из внешнего источника данные прямо в запрос без проверки пихают.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn