![]() |
![]() |
|
Как в Запросе обратиться к подчиненному справочнику | ☑ | ||
---|---|---|---|---|
0
misha122062
31.05.07
✎
13:39
|
Есть такая задача. Поступление ТМЦ от массы контрагентов. Выборку и группировку контрагентов делаю запросом.
Но у справочника контрагенты есть ПОДЧИНЕННЫЙ справочник - Дополнительные сведения, где храниться необходимая мне информация. Можно как-нибудь в запросе объеденить мой первый запрос и получить данные по каждому контрагенту из подчиненного справочника? единственный вариант вижу - выгружать в ТЗ список контрагентов и перебор каждого по подчиненному справочнику. Но это как то некрасиво. Кто знает, есть варианты? |
|||
1
Ёпрст2
31.05.07
✎
13:43
|
(0) Есть ... показывай текст запроса. и что получить хочешь от подчиненного ...
|
|||
2
КонецЦикла
31.05.07
✎
13:49
|
(0) Если этой информации нет в регистре, документе - идея обречена на провал
Какой из десяти подчиненных взять? Наугад? Первый? Задумайтесь... (цы) National Geographic |
|||
3
F1
31.05.07
✎
13:52
|
(0)Нужно в запросе перебирать подчиненный справочник, и отбирать его владельца
|
|||
4
Программист 484
31.05.07
✎
13:54
|
(2) А регистр+в нем же запрос из справочника так тоже ведь можно?
|
|||
5
misha122062
31.05.07
✎
13:56
|
//{{ЗАПРОС(Приход)
|Период с Дата1 по Дата2; |ОбрабатыватьДокументы Проведенные; |Обрабатывать НеПомеченныеНаУдаление; |Док = Документ.ПоступлениеТМЦ.ТекущийДокумент; |Склад = Документ.ПоступлениеТМЦ.МестоХранения; |Поставщик = Документ.ПоступлениеТМЦ.Поставщик; |Колич = Документ.ПоступлениеТМЦ.Количество; |Функция ВсегоКолич=Сумма(Колич); |Группировка Поставщик Без Групп Упорядочить По Поставщик.Наименование; |Условие (Склад = Подразделение); |Условие (Поставщик.ВидКонтрагента = ТипКонтрагента); У подчиненного справочника надо выбрать тока одну - первую запись. Т.к. там сведения. Т.е. хочу у подчиненного справочника получить - паспорт, дата выдачи |
|||
6
КонецЦикла
31.05.07
✎
13:59
|
(4,5) В принципе можно с извратами, но быстрее имхо пробежаться при обходе
Ну а прямым запросом можно :) |
|||
7
Программист 484
31.05.07
✎
14:00
|
ПодчСпр=Справочник.Подчиненные.ТекущийЭлемент;
Условие(ПодчСпр.Владелец=Поставщик) Группировка ПодчСпр ??? |
|||
8
misha122062
31.05.07
✎
14:00
|
про обход ясно, хочется вложенный запрос, типа как 80...
|
|||
9
Программист 484
31.05.07
✎
14:00
|
(6) Так не спорю конечно прямым почти всегда быстрей :)))
|
|||
10
misha122062
31.05.07
✎
14:02
|
Программист 484 - не очень понял...Зачем Группировка ПодчСпр. Мне то нодо не подчиненному. Покажи, плиз, полный запрос - объедени с моим...
|
|||
11
Программист 484
31.05.07
✎
14:05
|
Как называется твой подчиненный справочник?
|
|||
12
misha122062
31.05.07
✎
14:06
|
Справочник - ДополнительныеСведнения. реквизиты в нем - Паспорт, ВыданКогдаКем
|
|||
13
КонецЦикла
31.05.07
✎
14:08
|
(8) Можно своей функцией - тормоза будут
А про вложенный и Селект топ 1 забудь :) |
|||
14
Ёпрст2
31.05.07
✎
14:10
|
(12) Не вытянешь, только в условии можно...Получай при обходе ...
|
|||
15
Программист 484
31.05.07
✎
14:11
|
Твой запрос+
|ПодчСпр=Справочник.ДополнительныеСведнения.ТекущийЭлемент; |Условие(ПодчСпр.Владелец=Поставщик) Дальше есть 2 варианта - посмотри что выдает в запрос.подчСпр - если там то что тебе нужно то все ОК. Иначе добавляешь |Группировка ПодчСпр; И идешь в запросе по 2 группировке и выбираешь тот элемент что тебе нужен |
|||
16
misha122062
31.05.07
✎
14:12
|
попробую
|
|||
17
Ёпрст2
31.05.07
✎
14:13
|
(15) Ну ну ...Ни групировки, ни условие при таком коде не отработает ...
|
|||
18
misha122062
31.05.07
✎
14:16
|
Значение не представляет агрегатный объект(Владелец): ....
|
|||
19
Программист 484
31.05.07
✎
14:19
|
(15) Хм с подчиненными напрямую не писал - Смесь регистров и справочников писал там все работает.
|
|||
20
misha122062
31.05.07
✎
14:24
|
Значит все же в обход....Жаль!
Может у кого есть еще светлые мысли? |
|||
21
Программист 484
31.05.07
✎
14:31
|
(20) Беру свои слова обратно - невидит никак
|
|||
22
Ёпрст2
31.05.07
✎
14:37
|
(20) Можно только последний подчиненный элемент взять...вот так запросто ...
|
|||
23
Программист 484
31.05.07
✎
14:38
|
|Контрагент=Справочник.Договоры.Владелец.ТекущийЭлемент;
|Договор=Справочник.Договоры.ТекущийЭлемент; только такие вещи возможны но у тебя не упоминаются эти сведенья в документе... Кстати а почему в подчиненном справочнике один элемент с этими сведеньями? Непроще бы их в реквизиты контрагента загнать7 |
|||
24
Ёпрст2
31.05.07
✎
14:39
|
+22 Вот так, например:
|ПодчСпр=Справочник.ДополнительныеСведнения.ТекущийЭлемент; |Поставщик = Документ.ПоступлениеТМЦ.Поставщик,Справочник.ДополнительныеСведнения.Владелец; |Группировка Поставщик; .... Запрос.Выгрузить(ТЗ,1,0); В ПодчСпр будет последний подчиненный элемент .... |
|||
25
Программист 484
31.05.07
✎
14:40
|
+ Кстати как вариант - как я понимаю ты хочешь пасспорт допустим менеджера этого контрагенты выводить? Так создай реквизит в справочнике - пасспортменеджера и туда ссылку на этот элемент, а дальше уже запросом элементарно
|
|||
26
misha122062
31.05.07
✎
14:41
|
конечно проще... Но база поставляется сверху... А там кто так умно решил!
|
|||
27
misha122062
31.05.07
✎
14:43
|
база не подлежит модификации - что бы на каждом филиале умные программисты свои творения не вносили. так что тока могу выбирать...
|
|||
28
misha122062
31.05.07
✎
15:02
|
Не понравилось - вытягиваются все элементы...
Пока эту кашу разберешь... Пришлось в обходе по выборке. Так проще всего. |
|||
29
Ёпрст2
31.05.07
✎
15:06
|
(28) Всмысле все ? ... как в 24 - получишь последний, если добавишь группировку по
ПодчСпр - получишь все ... |
|||
30
misha122062
31.05.07
✎
15:19
|
Все равно - ВСЕ! Кроме того работает раза в 2 долше - т.к. в выборку тянуться вс элементы подчиненного справочника, группировка то в конце..
|
|||
31
misha122062
31.05.07
✎
15:20
|
короче, спасибо всем, я забил... По обходу работает очень быстро.
|
|||
32
Ёпрст2
31.05.07
✎
15:20
|
(30) Ну, а ты чего хотел ? Без группировки будет в выборке только последний подчиненный элемент ...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |