|
КА 2 - Не работает упорядочивание по номеру договора | ☑ | ||
|---|---|---|---|---|
|
0
Unbandigen
05.02.26
✎
15:27
|
Запрос:
ВЫБРАТЬ ДоговорыКонтрагентов.Номер КАК Номер, ДоговорыКонтрагентов.Контрагент КАК Контрагент ИЗ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов ГДЕ ДоговорыКонтрагентов.Контрагент = &Контрагент УПОРЯДОЧИТЬ ПО ДоговорыКонтрагентов.Номер ВОЗР Выдает: Номер Контрагент 11 База "Электротовары" 5 База "Электротовары" 9 База "Электротовары" Почему не работает упорядочивание? Я потестил, 10 тоже считает меньше 5 и т.д. Если вместо 11 указать 8, то норм все упорядочит. |
|||
|
1
Unbandigen
05.02.26
✎
15:26
|
Пробовал также зайти через "строки", то же самое.
ВЫБРАТЬ "йоу" + ДоговорыКонтрагентов.Номер + "!!!" КАК Номер, ДоговорыКонтрагентов.Контрагент КАК Контрагент ИЗ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов ГДЕ ДоговорыКонтрагентов.Контрагент = &Контрагент УПОРЯДОЧИТЬ ПО "йоу" + ДоговорыКонтрагентов.Номер + "!!!" ВОЗР Номер Контрагент йоу11!!! База "Электротовары" йоу5!!! База "Электротовары" йоу9!!! База "Электротовары" |
|||
|
2
Мультук
гуру
05.02.26
✎
15:32
|
(0)
ВЫБРАТЬ
ДоговорыКонтрагентов.Номер КАК Номер,
ТипЗначения(ДоговорыКонтрагентов.Номер) КАК НомерТип,
ДоговорыКонтрагентов.Контрагент КАК Контрагент
ИЗ
Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
ГДЕ
ДоговорыКонтрагентов.Контрагент = &Контрагент
УПОРЯДОЧИТЬ ПО
ДоговорыКонтрагентов.Номер ВОЗР
Если в НомерТип написано "строка", то google: Как работает сортировка строк |
|||
|
3
shuhard
05.02.26
✎
15:32
|
(0) 0 пробовал слева присобачить ?
|
|||
|
4
Unbandigen
05.02.26
✎
15:37
|
(2) Да, это строки. Бывают коды в буквами. Какие пути решения?
(3) Нет. Но, я думаю, это будет временным решением, ведь я решу проблему для десятков, а потом пойдут сотни и т.д. |
|||
|
5
shuhard
05.02.26
✎
15:39
|
(4) строки должны иметь равную длину
в них не должно быть не бланкированных нулей |
|||
|
6
Unbandigen
05.02.26
✎
15:41
|
(5) понятно.
Но люди так не работают. Они ведут произвольно нумерацию договоров: 2, 12, ГБ1, 4. И хотят, чтобы на выход в отчете упорядочивалось как: 2, 4, 12, ГБ1. |
|||
|
7
Гипервизор
05.02.26
✎
16:06
|
(6) Странные люди просят странного.
Это требует странных решений: // Исходные данные ВЫБРАТЬ "2" КАК НомерДоговора ПОМЕСТИТЬ ВТ_Договоры ОБЪЕДИНИТЬ ВЫБРАТЬ "12" ОБЪЕДИНИТЬ ВЫБРАТЬ "ГБ1" ОБЪЕДИНИТЬ ВЫБРАТЬ "4"; // Табличку предварительно собираем в коде и передаем в запрос ВЫБРАТЬ 1 КАК ДлинаСтроки, "0000" КАК Префикс ПОМЕСТИТЬ ВТ_Префиксы ОБЪЕДИНИТЬ ВЫБРАТЬ 2, "000" ОБЪЕДИНИТЬ ВЫБРАТЬ 3, "00" ОБЪЕДИНИТЬ ВЫБРАТЬ 4, "0" ОБЪЕДИНИТЬ ВЫБРАТЬ 5, ""; ВЫБРАТЬ ВТ_Договоры.НомерДоговора, ВТ_Префиксы.Префикс + ВТ_Договоры.НомерДоговора КАК ПолеДляСортировки ИЗ ВТ_Договоры КАК ВТ_Договоры ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Префиксы КАК ВТ_Префиксы ПО (ДЛИНАСТРОКИ(ВТ_Договоры.НомерДоговора) = ВТ_Префиксы.ДлинаСтроки) УПОРЯДОЧИТЬ ПО ПолеДляСортировки |
|||
|
8
АгентБезопасной Нацио
05.02.26
✎
16:14
|
ВЫБРАТЬ
ВТ.Поле1 КАК ПолеПредставление, ВЫРАЗИТЬ(ПРАВ(" " + ВТ.Поле1, 5) КАК СТРОКА(5)) КАК ПолеДляСортировки ПОМЕСТИТЬ ВТ_1 ИЗ ВТ КАК ВТ ; ВЫБРАТЬ ВТ_1.ПолеПредставление КАК ПолеПредставление, ВТ_1.ПолеДляСортировки КАК ПолеДляСортировки ИЗ ВТ_1 КАК ВТ_1 УПОРЯДОЧИТЬ ПО ВТ_1.ПолеДляСортировки |
|||
|
9
d4rkmesa
05.02.26
✎
16:23
|
(0) Добавьте в сам справочник договоров реквизит для сортировки. Можно сделать и в запросе, но будет громоздко, т.к. длина реквизита Номер равно 128. В СКД и предобработке несколько проще можно сделать.
|
|||
|
10
Гипервизор
05.02.26
✎
16:26
|
(8) 👍
|
|||
|
11
Unbandigen
05.02.26
✎
16:37
|
(8) потрясающе. Спасибо!
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |