Преобразовать данные в число

1. _7445_ 07.08.20 00:05 Сейчас в теме
Добрый день.
Пример - В базе есть около 2500 товар. Надо из выгрузить в sql. Когда номер строки больше 999 тогда отображает как 1 000 или 2 000 вот тогда sql дают ошибку. В таблице sql колонка ИД как число (INT). Какие варианты можете предложить? Спасибо всем за ранее. Полный код -
         Запрос = Новый Запрос;
	 Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	 Запрос.Текст = 
	 "ВЫБРАТЬ
	 |	АВТОНОМЕРЗАПИСИ() КАК НомерСтроки, // Номер строки возвращает число
	 |	ТоварыПрайсЛист.ТипЦен.Код КАК ТипЦенКод,
	 |	ТоварыПрайсЛист.Цена КАК Цена,
	 |	ТоварыПрайсЛист.Контрагент.Код КАК КонтрагентКод
	 |ПОМЕСТИТЬ ВТ_ПрайсЛист
	 |ИЗ
	 |	Справочник.Товары.ПрайсЛист КАК ТоварыПрайсЛист
	 |ГДЕ
	 |	НЕ ТоварыПрайсЛист.Ссылка.ПометкаУдаления
	 |	И НЕ ТоварыПрайсЛист.Ссылка.ЭтоГруппа
	 |	И ТоварыПрайсЛист.Ссылка.Про
	 |;
	 |
	 |////////////////////////////////////////////////////////////­////////////////////
	 |ВЫБРАТЬ
	 |	ВТ_ПрайсЛист.НомерСтроки КАК НомерСтроки,
	 |	ВТ_ПрайсЛист.ТипЦенКод КАК ТипЦенКод,
	 |	ВТ_ПрайсЛист.Цена КАК Цена,
	 |	ВТ_ПрайсЛист.КонтрагентКод КАК КонтрагентКод
	 |ИЗ
	 |	ВТ_ПрайсЛист КАК ВТ_ПрайсЛист
	 |
	 |УПОРЯДОЧИТЬ ПО
	 |	НомерСтроки";
	 
	 РезультатЗапроса = Запрос.Выполнить();
	 Если РезультатЗапроса.Пустой() Тогда
		 Сообщить("...", СтатусСообщения.Важное);
		 Возврат Истина;
	 Иначе
		 Выборка = РезультатЗапроса.Выбрать();
		 Пока Выборка.Следующий() Цикл
			 Соединение.Execute("Ins ert In to PriceList (PropertyID, PriceTypeID, Price) Values (" + 
			 ?(Выборка.НомерСтроки > 999, Лев(Строка(Выборка.НомерСтроки), 1) + Прав(Строка(Выборка.НомерСтроки), 3), Выборка.НомерСтроки) + ", " +
			 Выборка.ТипЦенКод + ", " + 
			 ?(Выборка.Цена > 999, Лев(Строка(Выборка.Цена), 1) + Прав(Строка(Выборка.Цена), 3), Выборка.Цена) + ")", , 128);
		 КонецЦикла;
		 Запрос.МенеджерВременныхТаблиц.Закрыть();
		 Возврат Ложь;
	 КонецЕсли; 
Показать

Этот код может не оптимальный но возвращает строку без лишних пробел -
?(Выборка.НомерСтроки > 999, Лев(Строка(Выборка.НомерСтроки), 1) + Прав(Строка(Выборка.НомерСтроки), 3), Выборка.НомерСтроки) 
По теме из базы знаний
Найденные решения
2. _7445_ 07.08.20 00:21 Сейчас в теме
Тема закрыта, решение -
СтрЗаменить(Выборка.Цена, Символы.НПП, "")
. Спасибо всем.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. _7445_ 07.08.20 00:21 Сейчас в теме
Тема закрыта, решение -
СтрЗаменить(Выборка.Цена, Символы.НПП, "")
. Спасибо всем.
3. Danil.Potapov 516 07.08.20 04:40 Сейчас в теме
4. loki03 07.08.20 06:24 Сейчас в теме
формат(Выборка.Цена, "ЧГ=0");
5. PerlAmutor 129 07.08.20 07:25 Сейчас в теме
Есть еще такой вариант, это код "разделителя триад":

СтрЗаменить(Строка(Выборка.НомерСтроки), Символ(160),"");


Но Символы.НПП лучше.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот