Для того чтобы пронумеровать строки в запросе, необходимо соединить таблицу запроса с самой собой по какому либо полю с условием «<» или «>», посчитать количество присоединившихся строк, затем упорядочить по полученным номерам. Замечу, что получить номер строки в запросе 1с данным способом можно только в случае, если в вашей выборке есть поле с уникальным значением для каждой строки. Если это условие не выполняется, то при накладывании условия на «больше» или «меньше» у вас получатся строки с одинаковыми номерами.
Номер строки в запросе 1с. Пример
Рассмотрим простейший запрос к справочнику номенклатура, для быстроты выполнения ограничим выборку номенклатуры одной группой, которую необходимо передать в параметр Группа.
"ВЫБРАТЬ
| Номенклатура.Ссылка
|ПОМЕСТИТЬ ИсходнаяТаблица
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Родитель В ИЕРАРХИИ(&Группа)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ИсходнаяТаблица.Ссылка,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ИсходнаяТаблица1.Ссылка) КАК Номер
|ИЗ
| ИсходнаяТаблица КАК ИсходнаяТаблица
| ЛЕВОЕ СОЕДИНЕНИЕ ИсходнаяТаблица КАК ИсходнаяТаблица1
| ПО ИсходнаяТаблица.Ссылка > ИсходнаяТаблица1.Ссылка
|
|СГРУППИРОВАТЬ ПО
| ИсходнаяТаблица.Ссылка
|
|УПОРЯДОЧИТЬ ПО
| Номер"
Прочтите еще пару статей на тему языка запросов 1С:
Добавить комментарий