|
Как текстовый номер документа в запросе преобразовать в число? | ☑ | ||
---|---|---|---|---|
0
altaykniga
09.07.14
✎
18:06
|
Привет всем! Прошу совета. Тип номера документа - строка. применяются только цифры в этих номерах. Необходимо упорядочить эти документы по номеру в запросе. Как это сделать?
Как я понимаю, нужно строковый номер сначала преобразовать в числовой, чтобы сортировка прошла нормально. Т.к. если сортировать строковые номера, то получается так: 11,110,1101,200,3724,64,667 |
|||
1
dj_serega
09.07.14
✎
18:10
|
через запрос нужно извращаться.
|
|||
2
Wobland
09.07.14
✎
18:21
|
на зачем?
|
|||
3
altaykniga
09.07.14
✎
18:28
|
(2) пишу в запросе
| ВЫРАЗИТЬ(ц_ППН.НомерНаклПоставщика КАК ЧИСЛО) КАК Номер, выходит ошибка: Несовместимые типы "ВЫРАЗИТЬ" |
|||
4
Wobland
09.07.14
✎
18:29
|
(3) не удивил. вопрос повторить?
|
|||
5
altaykniga
09.07.14
✎
18:42
|
(4) "на зачем?"
повтори. Вопрос непонятен |
|||
6
altaykniga
09.07.14
✎
18:42
|
(4) Необходимо упорядочить эти документы по номеру в запросе - вот зачем
|
|||
7
Михаил Козлов
09.07.14
✎
18:46
|
(7) Добавьте "скрытый" реквизит, заполняйте его в ПередЗаписью и сортируйте в запросе.
Если не хотите менять конфу, можно через свойства прописать в регистр сведений ЗначенияСвойствОбъектов и брать поле сортировки из него. |
|||
8
Господин ПЖ
09.07.14
✎
18:56
|
если длина фиксирована можно через мега case вывернуться... но это изврат
|
|||
9
Enders
09.07.14
✎
18:59
|
Можно в одном запросе преобразовать в число, выгрузить его в тз, а во второй запрос скормить полученную ТЗ :) Хотя тоже изврат
|
|||
10
Enders
09.07.14
✎
19:06
|
не, херню сморозил...
|
|||
11
Ёпрст
09.07.14
✎
19:08
|
(6) они и так отлично упорядочиваются, как строки.. чем не устраивает ?
|
|||
12
PR
09.07.14
✎
19:21
|
(0) Никак. А потому что нехрен лидирующие нули удалять.
|
|||
13
PR
09.07.14
✎
19:21
|
(3) Все правильно, так и должно быть
|
|||
14
PR
09.07.14
✎
19:22
|
(11) Чем не устраивает, написано в (0). Внезапно, да?
|
|||
15
sirsp
09.07.14
✎
19:50
|
(0) Изврат, из расчета, что длина номера=10:
ВЫБРАТЬ "11" Номер ПОМЕСТИТЬ Номера //ВТ для проверки ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "110" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "101" ; ВЫБРАТЬ 1 Позиция ПОМЕСТИТЬ Позиции ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9 ; ВЫБРАТЬ 10 - МАКСИМУМ(Позиции.Позиция) ОбратнаяДлина ,Номера.Номер ПОМЕСТИТЬ ДлиныНомеров ИЗ Номера ,Позиции ГДЕ НЕ ПОДСТРОКА(Номера.Номер, Позиции.Позиция, 10) = "" СГРУППИРОВАТЬ ПО Номера.Номер ; ВЫБРАТЬ ДлиныНомеров.Номер ,ПОДСТРОКА("0000000000" + ДлиныНомеров.Номер, 10 - ДлиныНомеров.ОбратнаяДлина, 100) ПолеДляСортировки ИЗ ДлиныНомеров УПОРЯДОЧИТЬ ПО ПолеДляСортировки Не преобразует, но сортирует :) |
|||
16
PR
09.07.14
✎
19:55
|
(15) Эээ..., а просто
ВЫБОР КОГДА ПОДСТРОКА(НомерБезНолей, 10, 1) <> "" ТОГДА НомерБезНолей КОГДА ПОДСТРОКА(НомерБезНолей, 9, 1) <> "" ТОГДА "0" + НомерБезНолей КОГДА ПОДСТРОКА(НомерБезНолей, 8, 1) <> "" ТОГДА "00" + НомерБезНолей ... КОНЕЦ + НомерБезНолей не катит что ли уже? |
|||
17
sirsp
09.07.14
✎
19:59
|
(16) Ключевое слово _изврат_ :)
|
|||
18
Мимохожий Однако
09.07.14
✎
20:05
|
Обработай номера документов до лидирующих нулей и сортировка будет обеспечена.
|
|||
19
ДенисЧ
09.07.14
✎
20:25
|
||||
20
dj_serega
09.07.14
✎
21:03
|
(19) что бы было отсортировано =)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |