Имя: Пароль:
1C
1С v8
Пронумеровать записи в хапросе.
0 Престарелый Заяц
 
22.07.20
09:11
Добрый день.
Результат запроса два столбика: количество и артикул, количество может повторятся, артикул - нет.

Задача пронумеровать записи - платформа меньше 13 :(.

Можно как то такое сделать?
1 Престарелый Заяц
 
22.07.20
09:13
Забыл написать - артикул типа строка.
2 Галахад
 
гуру
22.07.20
09:14
Гм. А для чего это нужно?
3 Престарелый Заяц
 
22.07.20
09:22
(2) Выбрать первые N записей в каждой группе.
4 Garykom
 
гуру
22.07.20
09:22
(0) Хумерация хаписей хв хапросе хэто ху...удивительная хтука
5 Престарелый Заяц
 
22.07.20
09:23
(4) Да она вполне себе нормальная если есть уникальность.
6 azt-yur
 
22.07.20
09:28
Делается такая х..нь соединением таблицы с самой собой. Но использовать такие запросы не гуд, если таблица большая, то считать будет долго.
Пример для справочника валют:
ВЫБРАТЬ
    Валюты.Ссылка
ПОМЕСТИТЬ Вал
ИЗ
    Справочник.Валюты КАК Валюты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Вал.Ссылка,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Вал1.Ссылка) КАК К
ИЗ
    Вал КАК Вал
        ЛЕВОЕ СОЕДИНЕНИЕ Вал КАК Вал1
        ПО Вал.Ссылка < Вал1.Ссылка

СГРУППИРОВАТЬ ПО
    Вал.Ссылка

УПОРЯДОЧИТЬ ПО
    К
7 Василий Алибабаевич
 
22.07.20
09:35
(3) "Выбрать первые N записей в каждой группе." Вполне средствами языка запросов. Без всяких нумераций.
8 Престарелый Заяц
 
22.07.20
09:37
(6) Немного не то вроде.
(7) Другого способа не видел - поищу.
9 Престарелый Заяц
 
22.07.20
09:38
(7) Язык запросов же 1С "не умеет" в кореллирующие подзапросы, хотя он вроде как то эмулился, но в итоге получается страшнее чем селфджойн.
10 Мимохожий Однако
 
22.07.20
09:39
(3) Выбрать первые 100 в тексте запроса нельзя?
11 Василий Алибабаевич
 
22.07.20
09:39
(8) ГЫ. "ВЫБРАТЬ ПЕРВЫЕ ... ИЗ ..."

В справке : "ВЫБРАТЬ [РАЗРЕШЕННЫЕ] [РАЗЛИЧНЫЕ] [ПЕРВЫЕ <Количество>] "
12 Престарелый Заяц
 
22.07.20
09:41
(11) Первые не значит "первые любые".
13 Престарелый Заяц
 
22.07.20
09:42
(10) Если в нужном порядке, то нельзя.
14 Василий Алибабаевич
 
22.07.20
09:43
(12) "первые любые" ??? Вот здесь не понятно. Чем "первые 100" отличаются от "первых любых 100"?
15 Garykom
 
гуру
22.07.20
09:43
(0) Не надо нумеровать записи в запросе!
Результат запроса уже пронумерован всегда!
16 Василий Алибабаевич
 
22.07.20
09:45
(13) Почему нельзя то? Вложенный запрос сортируй как хочешь. Из него выбери первых <сколько нужно>. Они будут в нужном порядке. Всяко будет быстрее, чем (6).
17 Престарелый Заяц
 
22.07.20
09:45
(14) Есть критерий сортировки стоимость. Выбрать самые продаваемые товары в каждой товарной группе, это нормально делается с ссылочными полями либо с унмкальными записями.
18 Престарелый Заяц
 
22.07.20
09:46
(15) Другое дело, что эта нумерация недоступна в движках ничего 13.
19 Престарелый Заяц
 
22.07.20
09:48
(16) Что куда вложено? Есть пример?
20 acht
 
22.07.20
09:55
(19) выбрать первые 100 * из (выбрать количество, артикул, стоимость из ...) как пiдзапрос упорядочить по пiдзапрос.стоимость
21 Василий Алибабаевич
 
22.07.20
09:59
(19) Пример по рейтингу дебеторов по группам финансирования

ВЫБРАТЬ
  Контрагенты.Финансирование КАК Финансирование,
  ВложенныйЗапрос.Контрагент КАК Контрагент,
  ВложенныйЗапрос.СуммаОстаток КАК СуммаОстаток
ИЗ
  Справочник.Контрагенты КАК Контрагенты
  //Вот он вложенный запрос. В нем выбираются первые 20 мутдаков, которые не платят
  ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 20
    ВзаиморасчетыОстатки.Контрагент КАК Контрагент,
    ВзаиморасчетыОстатки.СуммаОстаток КАК СуммаОстаток,
    ВзаиморасчетыОстатки.Контрагент.Финансирование КАК КонтрагентФинансирование
    ИЗ
    РегистрНакопления.Взаиморасчеты.Остатки КАК ВзаиморасчетыОстатки
    //Вот она сотрировка по сумме задолженности
    УПОРЯДОЧИТЬ ПО
    СуммаОстаток) КАК ВложенныйЗапрос
    //Вот оно условие связи
    ПО Контрагенты.Финансирование = ВложенныйЗапрос.КонтрагентФинансирование
22 Престарелый Заяц
 
22.07.20
10:20
(21) В подзапросе ты выбираешь просто первые 20, а нужно первые 20 в конкретной группе, это и будет кореллирующий подзапрос, который в 1С не работает.
Ладно фиг с ним, можно сделать то и в коде.
23 Василий Алибабаевич
 
22.07.20
10:25
(22) Птля... Это просто пример вложенного запроса. Можно сделать подзапрос с параметрами отбора. Можно сделать в СКД и тогда "оно само".  ...
24 Престарелый Заяц
 
22.07.20
10:55
(23) "Можно сделать подзапрос с параметрами отбора." - параметрами отбора должен быть элемент из верхнего запроса, а это и не выходит сделать.
На СКД можно сделать, если количество выбираемых записей фиксированно (но это не точно), хотя можно попробовать - спасибо за дельный совет - поробую.
25 Мимохожий Однако
 
22.07.20
10:58
(22) Получи нужные записи нужной группы, отсортируй по нужному полю. И из этого запроса выбери первые в нужном количестве.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.