#0
by Конфигуратор1с
В общем есть иерархический справочник подразделение (иерархия элементов) . Выбираю я элемент на определенном уровне и хочу получить все вышестоящие элементы. Нужно в запросе. СКД не предлагать
#6
by Конфигуратор1с
Да вот есть документ договор. Вот, например менеджер есть, у него есть начальник отдела, у начальника отдела есть коммерческий директорк, у того директор генеральный. Вот что бы заключить договор вся эта лесенка должна его согласовать. Вот мне и нужно согласователей получить.
#7
by PR
1. А запросом зачем? 2. А почему бы не выбрать с иерархией, а в запросе не поставить отбор по менеджеру,
#9
by Конфигуратор1с
ну мне все равно получать в запросе по ним доп информацию типа фиофизлиц и так далее. так выбираю иерархию и ставлю отбор - выводит одного менеджера. ?
#15
by mistеr
В конкретном случае ТС это вполне допустимо. Хотя пройтись по ссылкам в цикле всяко лучше.
#18
by andrewks
это писать надо. а писать мне лень. вот если бы меня материально простимулировали... ;-)
#19
by МишКа
Запрос типа: где ссылка=&МояСсылка ИТОГИ ПО Ссылка ИЕРАРХИЯ выдает всех родителей + саму ссылку (2 раза) можешь попробовать в консоли
#28
by catena
Только с ограниченным уровнем иерархии. Ну или максимальную вложенность отдельно вычислять и основной запрос формировать динамически, исходя из полученной цифры.
#29
by dangerouscoder
а что мешает вычислить через ПолноеНаименование длину вложенности и сделать динамический запрос.
#30
by Конфигуратор1с
+ та некрасиво это. Я думал штатно как то можно, без динамических запросов (((
#31
by andrewks
получаем уровень исходного эл-та, и, исходя из этого уровня, собираем динамический текст запроса
#33
by andrewks
безудержно жаль, что коррелированные подзапросы так слабо реализованы в 1с-ке. а то можно было статику написать, причём коротенькую
#36
by catena
Как вариант, без динамического формирования текста: вытащить запросом всё необходимое по всем работникам, а в коде уже к каждому родителю подтянуть его данные из выборки :)
#42
by МишКа
Причем здесь вера? Я в консоли запросов запустил - получил результат: все предки + 2 ссылки
#44
by andrewks
я верю тебе. плохо то, что ты веришь в это. это означает только одно - ты совершенно не понимаешь принципов выполнения запросов и получения их результатов
#56
by МишКа
Да, можно и так: Выбрать ссылка.родитель из справочник.справочник1 где ссылка=&ссылка ОБЪЕДИНИТЬ ВСЕ Выбрать ссылка.родитель.Родитель из справочник.справочник1 где ссылка=&ссылка ОБЪЕДИНИТЬ ВСЕ Выбрать ссылка.родитель.Родитель.Родитель из справочник.справочник1 где ссылка=&ссылка
#59
by mistеr
Тогда уж лучше ПолныйКод, надежнее. И правда работает. От дубля можно избавиться с помощью ТОЛЬКО ИЕРАРХИЯ.
#60
by mistеr
ВЫБРАТЬ Контрагенты.Ссылка КАК Ссылка ГДЕ Контрагенты.Ссылка = &МояСсылка ИТОГИ ПО Ссылка ТОЛЬКО ИЕРАРХИЯ Результат выгружаем в ТЗ. Затем эту ТЗ пихаем во второй запрос, где присоединяем все необходимое:
#61
by andrewks
и нафига этот изврат, если можно _сразу_ передать ТЗ предков, и присоединять? это не решает задачи выборки всех предков в рамках одного запроса. единственное решение, которое предложил я и многие другие - это динамический текст запроса
#64
by mistеr
Сразу это как? Как получить ТЗ предков? Строго говоря, задача "выборки всех предков в рамках одного запроса" решена.
#65
by ВалераОшкин
можно использовать пакет запросов. В первом пакете выгрузить во временную таблицу, а во втором пакете её подхватить. Тогда ничего выгружать в ТЗ не надо.
#66
by andrewks
"Как получить ТЗ предков? " элементарно - циклом Пока .Родитель<>ПустаяСсылка ещё один наивный
#67
by andrewks
"Строго говоря, задача "выборки всех предков в рамках одного запроса" решена" в контексте сабжа - да, в контексте - нет
#68
by mistеr
Так этот цикл уже решает задачу. Все остальное это извращения на тему "хочу только запросом".
#70
by ВалераОшкин
Если заведомо известен уровень иерарархии элемента, то такой запрос написать возможно. По образцу примера из базы знаний о выводе в запросе курса на каждую дату указанного списка периодов.
#71
by andrewks
это всё уже перетёрли в ветке, и не раз. и про статику с ограничением уровня, и про динамику
#72
by Мебиус
Задача решается только с помощью рекурсии. То есть в запросе НЕВОЗМОЖНО это сделать. А генерация текста и прочее не что иное как единственно возможная программная реализация задачи
#74
by andrewks
если бы 1С не сэкономила на поддержке коррелированных подзапросов, то взлетел бы такой запрос без закомменченного кусочка. а так - только с закомменченным
#75
by Мебиус
Суть рекурсии в том, что мы не знаем куда пойдем на следующем этапе (утрировано). То есть мы физически не можем знать весь путь (текст запроса) и решаем задачу перебором.
#76
by mistеr
Суть в том, что в запросе тоже может быть рекурсия. Многие SQL базы давно поддерживают, и желтая частично (в итогах), а могла бы и пошире.
#78
by PR
Если не нужно получить всех родителей непосредственно в самом запросе, а можно получить их при выборке данных, то можно выбрать один элемент с иерархией, он выдаст элемент и всех его родителей. Если нужно получить всех родителей в самом запросе (как несколько записей), то два пути. Либо сначала рекурсивно получить список всех родителей и выбрать все эти элементы запросом. Либо динамически сконструировать текст запроса, отталкиваясь от уровня элемента. О чем еще говорить, не понимаю.
#80
by mikecool
в мсскл с 2005 версии года есть оператор with, который может строить иерархию по типу conect by .. prior в pl/sql так что думаю прямым запросом думаю можно ) вот только преобразование в элементы потом как делать - хз, в семерке я пользовал для этого 1с++
#81
by olegves
В запросе можно, но будет не уникально (не для всех случаев). До 10-уровневого справочника нормуль.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Как заполнить и вывести диаграмму в табличном документе ?
- Можно ли в 7.7 вывести зачеркнутый шрифт?
- Как вывести всех родителей элемента справочника (SQL)
- выбор всех родителей элемента справчоника в sql запросе
- Как получить всех родителей элемента справочника?
- Запрос всех строк номенклатуры из всех табличных частей всех документов
- v7: Подскажите как получить всех родителей элемента справочника
В этой группе 1С
- Как вывести итого по счету группе в разрезе субконто.
- v7: Пиктограмма в пункте меню
- Передача параметров при работе с SoapClient30
- ЗагрузкаВыгрузкаДанныхXML
- Входит ли в ключ записи регистра сведений номер строки?
- v8: УТ 10.3 как увидеть убыток от списания товара
- 1С ЗУП. Округление удержаний
- Выгнать неактивных пользователей 1С
- v7: Журнал расчета страховых взносов, смена ставок ПФР, ФСС
- Перенос остатков по счету 69.21 из бухгалтерии 7.7 в КА
- Невозможно активизировать колонку - 1С 8.1 конф. УТ 10.3.6.8
- Возникшая проблема привела к прекращению работы программы.Windows закроет э
- Как очистить конкретную колонку табличного поля?
- Ограничение по складу получателю и складу отправителю
- Какими документами оформляется отпуск в БП ред.2.0?
- Можно ускорить реструктуризацию регистра накопления?
- СКД настройка структуры
- Где хранятся файлы обмена РИБ
- Как перебрать таблицы в access
- передача параметров и Конвертация данных