Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Запрос. Уровень элемента в справочнике  (Прочитано 9345 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Dest
Опытный

ru
Offline Offline

« : 01-04-2010 07:53 » 

Приветствую!
1с 8.0 УТ   

Задача такая из справочника склады (иерархического) выбрать элементы (не группы) с нулевого уровня. Пишу запрос

Код:
ТекстЗапроса = "
|ВЫБРАТЬ
|       Ссылка,
| Наименование
|ИЗ
| Справочник.Склады КАК Склады
|ГДЕ
| Склады.ЭтоГруппа = ЛОЖЬ
|УПОРЯДОЧИТЬ ПО
| ссылка ИЕРАРХИЯ
|";

        Запр = новый запрос(ТекстЗапроса);
_ = запр.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);

Пока _.Следующий() цикл

сообщить(_.наименование+"    "+_.Уровень());

КонецЦикла;

И в результате я получаю все элементы со всех уровней, причем _.Уровень()) показывает, что уровень у них нулевой.
НО, что интересно если в запросе убрать условие, то выводятся элементы только первого уровня но правда с группами, а мне нужны без групп.

Я уже пробовал и так

   
Код:
                       ТекстЗапроса ="ВЫБРАТЬ
| Склады.Наименование КАК Наименование,
| Склады.Ссылка КАК Ссылка
|ИЗ
| (Выбрать
| Склады2.Наименование,
| Склады2.Ссылка КАК Ссылка
|ИЗ      Справочник.Склады КАК Склады2
|ГДЕ
| Склады2.ЭтоГруппа = ЛОЖЬ ) КАК Склады
|УПОРЯДОЧИТЬ ПО
| Склады.Ссылка ИЕРАРХИЯ
|
| ";

И через всякие хитроумные соединения, результат один и тот же   - все элементы, кроме групп, со всех уровней.

Я знаю, что можно использовать такой вариант и все будет работать правильно

Код:
ТекстЗапроса = "
|ВЫБРАТЬ
|       Ссылка,
| Наименование
|ИЗ
| Справочник.Склады КАК Склады
|УПОРЯДОЧИТЬ ПО
| ссылка ИЕРАРХИЯ
|";

        Запр = новый запрос(ТекстЗапроса);
_ = запр.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);

Пока _.Следующий() цикл
Если _.Ссылка.ЭтоГруппа = ложь тогда
        сообщить(_.наименование+"    "+_.Уровень());
КонецЕсли;
КонецЦикла;

Но мне интересно, чисто для себя не ужели если в запросе использовать ограничения ("ГДЕ"), то упорядочивание по иерархии не пашет
Не понял
Записан
Dest
Опытный

ru
Offline Offline

« Ответ #1 : 01-04-2010 07:54 » 

Слова с красными буквами составляют мой вопрос
Записан
Kivals
Модератор

us
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 01-04-2010 12:50 » 

Платформа таки 8.0? Может стоит попробовать хотя бы на 8.1.15.14, не говоря уже про 8.2.10.82 ?
Не исключаю что это возможный глюк, исправленный в более поздних версиях...
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines