|
Упорядочить результат запроса по ТЗ? | ☑ | ||
---|---|---|---|---|
0
user1114234
22.04.19
✎
11:12
|
Добрый день. Имею запрос номенклатуры и параметр в виде таблицы значений с кодами номенклатуры.
Нужно чтобы номенклатуры выдавались в том же порядке, что и соответствующие им коды в ТЗ, но запрос выполняется в разнобой. Куда копать? "ВЫБРАТЬ | Номенклатура.Ссылка КАК Номенклатура |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Код В(&ТЗКодов)" ; Запрос.УстановитьПараметр("ТЗКодов", ТЗ); Выгрузка = Запрос.Выполнить().Выгрузить(); |
|||
1
VladZ
22.04.19
✎
11:14
|
(0) Копать в сторону УПОРЯДОЧИТЬ ПО
|
|||
2
ДенисЧ
22.04.19
✎
11:22
|
Поместить тз в вт, потом соединить и сортровать по полю тз, а не спроавнчика
|
|||
3
user1114234
22.04.19
✎
11:23
|
(1) Не понимаю. Нельзя же упорядочить по параметру. И мне не нужны возрастание/убывание/иерархия.
|
|||
4
user1114234
22.04.19
✎
11:23
|
(2) Спасибо, попробую
|
|||
5
Chameleon1980
22.04.19
✎
11:39
|
возможно придется тебе в тз завести доп. колонку
которую пронумеровать по текущему положению кодов (если при их сортировке образуется другой порядок) потом тз (именно таблицу) в запрос во ВТ. и так далее |
|||
6
user1114234
23.04.19
✎
12:59
|
Оставлю для потомков. Пришлось немного помучиться с тем, что тз должна быть типизирована, а потом в запросе также выражать поле как строку с 11 символами (как у кода). Ну и кто ж знал, что выгрузить колонку нельзя без добавления строк...
ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("Код", Новый ОписаниеТипов("Строка")); Массив = ТЗИзЕксель.ВыгрузитьКолонку("Код"); Счётчик = 0; Пока Счётчик <= Массив.Количество() Цикл ТЗ.Добавить(); Счётчик = Счётчик + 1; КонецЦикла; ТЗ.ЗагрузитьКолонку(Массив, "Код"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТЗКодов.Код |ПОМЕСТИТЬ ТЗ |ИЗ | &ТЗКодов КАК ТЗКодов |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Номенклатура.Ссылка КАК Номенклатура, | ВЫРАЗИТЬ(ТЗ.Код КАК СТРОКА(11)) КАК Код |ИЗ | ТЗ КАК ТЗ | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура | ПО ((ВЫРАЗИТЬ(ТЗ.Код КАК СТРОКА(11))) = Номенклатура.Код)" ; Запрос.УстановитьПараметр("ТЗКодов", ТЗ); Выгрузка = Запрос.Выполнить().Выгрузить(); |
|||
7
VladZ
23.04.19
✎
13:04
|
(6) А где УПОРЯДОЧИТЬ ПО?
|
|||
8
user1114234
23.04.19
✎
13:07
|
(7) И так прокатило, слава Ситису.
|
|||
9
Йохохо
23.04.19
✎
13:10
|
(8) оно однажды вроде сломается, как Счётчик подрастет
|
|||
10
user1114234
23.04.19
✎
14:38
|
(9) Хорошее замечание. Выгрузка всего один раз производится, но учту.
|
|||
11
user1114234
23.04.19
✎
14:40
|
(10) А нет, всё в порядке. Счётчик на ноль сбрасывается каждый раз при входе в функцию.
|
|||
12
Йохохо
23.04.19
✎
14:46
|
(11) ты не понял, что что у тебя порядок после соединения такой, какой тебе нужен - это не гарантировано с таким кодом. Сейчас прокатило, потом само сломается.
|
|||
13
Йохохо
23.04.19
✎
14:47
|
без упорядочить выборка не гарантирует тебе порядок
|
|||
14
НЕА123
23.04.19
✎
15:07
|
а я не понимаю, почему (1) недостаточно.
|
|||
15
Вафель
23.04.19
✎
15:10
|
сейчас можно номер строки получить при загрузке тз во временную автоматом
|
|||
16
Йохохо
23.04.19
✎
15:19
|
(14) порядок у него номер строки из экселя, нуятакпонял
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |