Имя: Пароль:
1C
1С v8
Знак "+" в запросе
0 zhig75
 
07.01.12
03:10
Привет есть кусок кода, сломал башку себе, мож давно не кодил, скорей туплю.
Процедура ТоварыМестоХраненияНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
Элемент.СписокВыбора.Очистить();
   
   СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;
   
   Если НЕ ЗначениеЗаполнено(СтрокаТабличнойЧасти.Номенклатура) Тогда
       СтандартнаяОбработка = Ложь;
       Предупреждение("Не выбрана позиция номенклатуры!");
       Возврат;
   КонецЕсли;
   СписокМест = Новый СписокЗначений();
   Запрос = Новый Запрос;
   Запрос.Текст =
       "ВЫБРАТЬ
       |    ТоварыНаМестахХраненияОстаткиИОбороты.КоличествоКонечныйОстаток,
       |    ТоварыНаМестахХраненияОстаткиИОбороты.МестоХранения,
       |    ТоварыНаМестахХраненияОстаткиИОбороты.Номенклатура
       |ИЗ
       |    РегистрНакопления.ТоварыНаМестахХранения.ОстаткиИОбороты КАК ТоварыНаМестахХраненияОстаткиИОбороты
       |ГДЕ
       |    ТоварыНаМестахХраненияОстаткиИОбороты.Склад = &Склад
       |    И ТоварыНаМестахХраненияОстаткиИОбороты.Номенклатура = &Номенклатура";

   Запрос.УстановитьПараметр("Склад", СкладОрдер);
   Запрос.УстановитьПараметр("Номенклатура", СтрокаТабличнойЧасти.Номенклатура);
   Результат = Запрос.Выполнить();

   Выборка = Результат.Выбрать();

   Пока Выборка.Следующий() Цикл;
   Остаток = Выборка.КоличествоКонечныйОстаток;
   Строка = Строка(Остаток);
   Строка = Формат(Остаток, "ЧГ=0");
   Место = Выборка.МестоХранения;
   Строка = Место + Строка;
   Элемент.СписокВыбора.Добавить(Строка);    
   КонецЦикла;
   
КонецПроцедуры

1С пишет что нельзя преобразовать к числу строку.
Извините за ламерский вопрос, Почему?
1 sergey yevsenya
 
07.01.12
03:14
Где ругается? здесь чтоли: Строка = Место + Строка;
2 FiftyStars
 
07.01.12
03:16
Сделай так
Строка = Строка(Место) + Строка;
3 FiftyStars
 
07.01.12
03:17
"Строка" это ж число у тебя
4 FiftyStars
 
07.01.12
03:18
или просто поменяй местами(но так результат несколько другой будет)
то есть

строка=строка+место;
5 zhig75
 
07.01.12
03:20
FiftyStars Спасибо тебе друг, выручил, я башку 3 часа ломал.
6 sergey yevsenya
 
07.01.12
03:20
с чего вдруг "Строка" - строка? формат возвращает строку
7 sergey yevsenya
 
07.01.12
03:22
(6) т.е с чего Строка - число
8 FiftyStars
 
07.01.12
03:22
(5)хотя зависит от того что надо....тебе нужна конкатенация или сложение?
9 Злобный Фей
 
07.01.12
03:23
Строка это строка. На первый взгляд код рабочий. Автор что-то недоговаривает.
10 zhig75
 
07.01.12
03:25
Как тут добавить цифру в ответ типа (6) т.е с чего Строка - число, 6 как добавляеш?
11 FiftyStars
 
07.01.12
03:25
(5)вобще для начала я бы посоветовал заменить твою переменную СТРОКА на нечто иное...я че то путаюсь
12 sergey yevsenya
 
07.01.12
03:25
Просто не может преобразовать строку к типу переменной Место, вот и ругается, наоборот естесственно срабатывает
13 FiftyStars
 
07.01.12
03:28
(10) тебе конкатенация нужна или сложение чисел?
(9)ЧГ=0 - форматирование чисел вроде как
14 zhig75
 
07.01.12
03:29
Ух дурной вопрос задал, это по форуму, вы добавляете в начале поста цифру на определенный ответ (цифра) как вы это делаете?
я на форуме давно, так и не понял как это?
15 sergey yevsenya
 
07.01.12
03:29
(14) просто пиши в скобках номер поста
16 FiftyStars
 
07.01.12
03:30
(14) ааа вкурил блин...путался со всем....МЕСТО у тебя ж формат - ССЫЛКА=))
17 zhig75
 
07.01.12
03:31
(13) мне надо чтоб вывод был одной строкой, число + число, а пишет что нельзя.
18 FiftyStars
 
07.01.12
03:38
(16)то есть на выходе должна быть строка содержащая к примеру
"Склад1 - 123"
"Склад2 - 234"
так?
19 FiftyStars
 
07.01.12
03:39
Судя по этому

Место = Выборка.МестоХранения;
Строка = Место + Строка;

Ты пытаешься сложить МестоХранения и Остаток
20 FiftyStars
 
07.01.12
03:40
(19)
Причем записав результат в ту же переменную в которой находился остаток
21 zhig75
 
07.01.12
03:41
(20) дай аську свою )
22 Упанишады
 
07.01.12
03:45
(20)ИМХО. То, что он хотел получить, можно более читаемым образом записать так:
Строка = ""+Выборка.МестоХранения+" "+Выборка.КоличествоКонечныйОстаток;
Элемент.СписокВыбора.Добавить(Строка);
23 zhig75
 
07.01.12
03:46
(20) неа, не работает!
24 zhig75
 
07.01.12
03:48
(22) извините
25 FiftyStars
 
07.01.12
03:48
(21) [email protected]
найди меня по почте, номер я не помню
26 echo77
 
07.01.12
05:54
бахни вот так:
Строка = "" + Место + Строка;

А вообще ключевое слово строка советую заменить на что-либо другое
27 Один С
 
07.01.12
08:53
(26) а "Запрос = Новый Запрос;" тебя не смущает?
28 ДенисЧ
 
07.01.12
08:56
(27) А тебя смущает? Может, тебе побольше с девушками общаться, чтобы не быть таким смутительным? ;-)
29 Один С
 
07.01.12
08:59
(28) меня то не смущает. но я против двойных стандартов..
30 Бубр
 
07.01.12
09:42
мда ГДЕ конечно жестко.
(0) посмотри что  такое параметры виртуальных  таблиц.
31 Бубр
 
07.01.12
09:50
(0) и нафиг тебе таблица эта огромная для получения остатка ?  бери таблицу Остатки
32 GROOVY
 
07.01.12
11:19
В (0) Образец неправильного запроса.

"ВЫБРАТЬ
КоличествоОстаток,
МестоХранения.Представление КАК МестоХранения
ИЗ
РегистрНакопления.ТоварыНаМестахХранения.Остатки(, Номенклатура, Склад В (ВЫБРАТЬ &Номенклатура, &Склад))"
34 Один С
 
07.01.12
11:30
(32) фигасе. а чо так можно?