![]() |
![]() |
![]() |
|
Как в запросе выбрать строки с № по №2 позицию | ☑ | ||
---|---|---|---|---|
0
Skazy
03.06.11
✎
15:46
|
Нужна помощь! Для передачи остатков товаров на сайт, нужно передавать данные постранично, т.е. по заданному кол-ву строк и с определенной строки. Можно ли, написать запрос, чтобы выбирать результат запроса с нужной позиции и нужное кол-во строк? Чтобы каждый раз не формировать все остатки на складе. Сортировка идет по артикулу товара, артикул 8 символов строка. У меня единственный вариант, выгружать остатки в талицу, в ней отбирать нужные позиции и отдавать. Но получается, каждый раз я получаю все остатки, т.е. теряю скорость... Спасибо. Извините, если сумбурно написал.... Пятница ;)
|
|||
1
Сисой
03.06.11
✎
15:49
|
Выгрузи остатки в ТЗ.
Добавь колонку и пронумеруй строки в цикле. Далее менеджер временных таблиц и в цикле ВЫБРАТЬ * ИЗ МояТаблица ГДЕ НомерСтроки МЕЖДУ &N1 И &N2 |
|||
2
forforumandspam
03.06.11
✎
15:50
|
Создай реквизит номенклатуре "порядок выгрузки" и получай остатки "где ПорядокВыгрузки = &ПорядокВыгрузки"
|
|||
3
luckyluke
03.06.11
✎
15:53
|
(0) ну первая идея которая мне пришла в голову, вложенный запрос Выбрать первые &НомерСтрокиНачало + &КолвоСтрокНаСтраницу ... упорядочить по Артикул, а из вложенного запроса Выбрать Первые &КолвоСтрокНаСтраницу ... Упорядочить По Артикул Убыв
|
|||
4
Skazy
03.06.11
✎
15:56
|
(1) Получается каждый раз заново формировать ВСЕ остатки!
(2) Хм.... У меня же остатки! Какой порядок в них ;) (3) Если честно не понял.... Подробнее можно? |
|||
5
luckyluke
03.06.11
✎
15:57
|
(4) в общем идея в том, что Первым вложенным обрезать кол-во строк номер позиции + кол-во строк на страницу для вывода, а внешним обрезать с конца кол-во на страницу.
|
|||
6
acsent
03.06.11
✎
15:58
|
Запоминаешь последнюю строку в 1 выборке и делаешь
ВЫБРАТЬ ПЕРВЫЕ N /// ГДЕ Строка > ТвояЗапомненнаяСтрока |
|||
7
acsent
03.06.11
✎
15:58
|
Так делает 1С в динамических списках
|
|||
8
Skazy
03.06.11
✎
15:59
|
(6) В плане строка???? Так в запросе можно писать?
|
|||
9
luckyluke
03.06.11
✎
16:00
|
(5) Т.е. если надо с позиции 100 20 строк:
Выбрать Первые 20 * Из (Выбрать Первые 120 ... ИЗ ... Упорядочить по Артикул Возр) Упорядочить по Артикул Убыв что-то типа этого имел ввиду. |
|||
10
luckyluke
03.06.11
✎
16:02
|
(6) кстати да, хороший вариант.
(8) ты упорядочиваешь по чем? По ссылке? |
|||
11
acsent
03.06.11
✎
16:03
|
(10) Упорядочивать можно хоть по чему
|
|||
12
acsent
03.06.11
✎
16:03
|
Желательно чтобы поле упорядочивания было уникальным
|
|||
13
luckyluke
03.06.11
✎
16:03
|
(11) да кто ж спорит что можно, в том то и дело что (12)
|
|||
14
forforumandspam
03.06.11
✎
16:04
|
(4) Один раз заполни реквизит данными. Потом используй сколько надо.
ЗаОдинРазВыгружать = 100; Выборка = Справочники.Номенклатура.Выбрать(); Номер = 0; ПорядокВыгрузки = 1; Пока Выборка.Следующий() Цикл Если Выборка.ЭтоГруппа Тогда Продолжить; КонецЕсли; Номер = Номер + 1; Если Номер = ЗаОдинРазВыгружать Тогда ПорядокВыгрузки = ПорядокВыгрузки + 1; Номер + 1; КонецЕсли; Объект = Выборка.ПолучитьОбъект(); Объект.ПорядокВыгрузки = ПорядокВыгрузки; Объект.Записать(); КонецЦикла; ВЫБРАТЬ ПартииТоваровНаСкладахОстатки.Номенклатура, ПартииТоваровНаСкладахОстатки.КоличествоОстаток ИЗ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&Дата, Номенклатура.ПорядокВыгрузки = &ПорядокВыгрузки) КАК ПартииТоваровНаСкладахОстатки |
|||
15
Skazy
03.06.11
✎
16:42
|
Проблема в том, что мне нужно выбирать с определенной страницы, с определенной строки. Допустим в запросе остатков 100 строк. Значит, при выводе на сайт по 20 строк, получается 5 страниц для переходов. При выводе первой страницы, просто выбираем ПЕРВЫЕ 20. А как получить содержание 3 страницы? Сортировка товаров по артикулу. Уникальному
|
|||
16
Skazy
03.06.11
✎
16:43
|
(9) Я тоже так думаю... Только у нас строк много ;(
|
|||
17
acsent
03.06.11
✎
16:48
|
(13) Поле или список полей
|
|||
18
mikecool
03.06.11
✎
16:48
|
чет мне кажется, что пробежка по ТЗ будет лучше, чем резапрос в цикле
|
|||
19
mikecool
03.06.11
✎
16:48
|
+18 а вообще - надо мерять
|
|||
20
Kashemir
03.06.11
✎
18:55
|
ВЫБРАТЬ ПЕРВЫЕ 1000
ПартииТоваровНаСкладахОстатки.Номенклатура КАК Номенклатура, ПартииТоваровНаСкладахОстатки.Склад КАК Склад, СУММА(ПартииТоваровНаСкладахОстатки.КоличествоОстаток) КАК КоличествоОстаток ПОМЕСТИТЬ ОстаткиСНужнойДетализации ИЗ РегистрНакопления.ПартииТоваровНаСкладах.Остатки КАК ПартииТоваровНаСкладахОстатки СГРУППИРОВАТЬ ПО ПартииТоваровНаСкладахОстатки.Номенклатура, ПартииТоваровНаСкладахОстатки.Склад ИНДЕКСИРОВАТЬ ПО Номенклатура, Склад ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ОстаткиСКлючемУникальности.Номенклатура, ОстаткиСКлючемУникальности.Склад, ОстаткиСКлючемУникальности.КоличествоОстаток, ОстаткиСКлючемУникальности.ИндексСтроки КАК ИндексСтроки, ВЫРАЗИТЬ((ОстаткиСКлючемУникальности.ИндексСтроки / 20 + 0.5) КАК ЧИСЛО(19, 0)) КАК НомерСтраницы_По20ЗаписейНаКаждую ИЗ (ВЫБРАТЬ ОстаткиСНужнойДетализации.Номенклатура КАК Номенклатура, ОстаткиСНужнойДетализации.Склад КАК Склад, ОстаткиСНужнойДетализации.КоличествоОстаток КАК КоличествоОстаток, КОЛИЧЕСТВО(ОстаткиСНужнойДетализации1.Номенклатура) КАК ИндексСтроки ИЗ ОстаткиСНужнойДетализации КАК ОстаткиСНужнойДетализации ЛЕВОЕ СОЕДИНЕНИЕ ОстаткиСНужнойДетализации КАК ОстаткиСНужнойДетализации1 ПО (ОстаткиСНужнойДетализации.Номенклатура > ОстаткиСНужнойДетализации1.Номенклатура ИЛИ ОстаткиСНужнойДетализации.Номенклатура = ОстаткиСНужнойДетализации1.Номенклатура И ОстаткиСНужнойДетализации.Склад > ОстаткиСНужнойДетализации1.Склад) СГРУППИРОВАТЬ ПО ОстаткиСНужнойДетализации.Номенклатура, ОстаткиСНужнойДетализации.Склад, ОстаткиСНужнойДетализации.КоличествоОстаток) КАК ОстаткиСКлючемУникальности УПОРЯДОЧИТЬ ПО ИндексСтроки |
|||
21
Kashemir
03.06.11
✎
18:56
|
+ (20) "ПЕРВЫЕ 1000" из запроса забыл убрать
|
|||
22
Alexandr Puzakov
03.06.11
✎
19:56
|
Сообщить(Выборка[0].Номенклатура);
Сообщить(Выборка[1].Номенклатура); Сообщить(Выборка[2].Номенклатура); Дальше рассказывать? |
|||
23
Alexandr Puzakov
03.06.11
✎
20:00
|
И вообще, есть такой метод НайтиСледующий().
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |