Добрый день.
Пример - В базе есть около 2500 товар. Надо из выгрузить в sql. Когда номер строки больше 999 тогда отображает как 1 000 или 2 000 вот тогда sql дают ошибку. В таблице sql колонка ИД как число (INT). Какие варианты можете предложить? Спасибо всем за ранее. Полный код -
Этот код может не оптимальный но возвращает строку без лишних пробел -
Пример - В базе есть около 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), Выборка.НомерСтроки)
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот