Имя: Пароль:
1C
1С v8
Странное поведение строковой переменной
,
0 Rounder
 
04.10.13
15:16
Формирую текст запроса:

ТекстЗапроса = "Insert Into " + ПутьН82 + " " +
            "(pz, hn, ndc)" +
            " Values " +
            "(" +
            "'"    + ПризнакЗавода + "'" + "," +
            "'"    + НоменклатурныйНомер + "'" + "," +
                + СтавкаНДС +
            ")";

СтавкаНДС = "0.1"
После формирования ТекстЗапроса в нем значение ставки уже равно 0,1, т.е. разделитель запятая.
Запрос вылетает по ошибке, слишком много аргументов, т.е. 0,1 считает за два аргумента, разделенных запятой.

Почему происходит такое преобразование?
1 Ненавижу 1С
 
гуру
04.10.13
15:18
потому что надо использовать форматирование чисел, когда к строке преобразуешь
2 catena
 
04.10.13
15:19
шо, опять???
3 Rounder
 
04.10.13
15:19
СтавкаНДС = Формат(УчетНДС.ПолучитьСтавкуНДС(СправочникСсылка.СтавкаНДС)/100, "ЧРД=.; ЧН=0");
4 Rounder
 
04.10.13
15:20
как видно в (3) - использую.
5 Rounder
 
04.10.13
15:29
Актуально.
6 Infsams654
 
04.10.13
15:31
(0) V8 "Insert Into " и это кудаж идет не тем путем товаРищь ?
7 ДенисЧ
 
04.10.13
15:32
Опять черепашки на форум ползут...
8 Ненавижу 1С
 
гуру
04.10.13
15:32
где-то ты врешь
9 Rounder
 
04.10.13
15:32
(6) (7) По существу есть что ответить?
10 MSII
 
04.10.13
15:33
(9) Ищи где-то ниже СтрЗаменить(ТекстЗапроса, ".", ",")
11 Rounder
 
04.10.13
15:34
(8) Не вру ни капли.
Именно через формат получаю представление СтавкиНДС.
И до выполнения строки ТекстЗапроса = ...
и после в переменной СтавкаНДС значение с разделителем точка, а в самом ТекстЗапроса уже с запятой.
12 Rounder
 
04.10.13
15:36
(10) Я уже думал над этим выходом, и он вроде работает (во всяком случае в строке отладчика сработал). Но это как бы "костыль". Плюс там будет еще некое количество танцев с бубном.
Вопрос задав с целью разобраться в таком поведении системы.
13 catena
 
04.10.13
15:40
(12)Система "так" не работает, зуб даю. У меня таких сборных запросов десяток и ни разу не наблюдала своевольного преобразования в строке разделителя. Проблему надо искать в другом месте.
14 Rounder
 
04.10.13
15:42
(13) Ну например разные версии платформы могут обладать разными глюками (фичами).
У меня работает именно как описано выше.
СтавкаНДС с точкой и до и после выполнения кода с формированием текста запроса. А в тексте - "не оно".
15 catena
 
04.10.13
15:44
(14)Перезагрузись. Почисти кэш. Если у тебя там строка, то самопроизвольно при сложении строк ничего меняться не будет. Либо там не строка.
16 Rounder
 
04.10.13
15:46
(15) Строка
Формат() возвращает строку. Плюс для чистоты эксперимента пробовал принудительно СтавкаНДС = "0.1"
Итог один и тот же.
17 catena
 
04.10.13
15:56
(16)гхм. Приношу извинения...
18 catena
 
04.10.13
15:57
(16)млииин! Лишний плюс перед ставкой убери!
19 Rounder
 
04.10.13
16:01
(18) Гран мерси!
Пятница - глаз замылен.
Но еще не залит :)
20 catena
 
04.10.13
20:57
(19)Прикольная фича, сама первый раз... Приятных выходных :)