Имя: Пароль:
1C
 
помогите с условием в запросе
0 dvrk
 
11.03.22
10:53
привет, мне нужно выбрать всех контрагентов из папки Покупатели, в папке покупатели есть и другие папки
ПродажиОбороты.ДоговорКонтрагента.Владелец.Родитель.Наименование = "Покупатели"
правильно ли я понимаю, что это условие возьмёт только тех, кто лежит в корне папки Покупатели, а по остальным папкам не пройдёт?
1 dvrk
 
11.03.22
10:55
То есть например

Папка Покупатели, в ней есть папка Покупатели1, в которой 3 контрагента и 2 контрагента в корне папки Покупатели, это условие касается только 2 контрагентов в корне, а 3, которые в Покупатели1 - нет?
2 Ёпрст
 
11.03.22
11:06
Где ПродажиОбороты.ДоговорКонтрагента.Владелец в Иерархии(&ТвойЭлементИлиГруппа)
3 Ёпрст
 
11.03.22
11:07
4 Ёпрст
 
11.03.22
11:08
И за код с наименованием, надо бить по пальчикам стальной линейкой, ибо нефеик
5 Kassern
 
11.03.22
11:09
(0) какая красота) "ПродажиОбороты.ДоговорКонтрагента.Владелец.Родитель.Наименование".
Так можно дойти и до Продажи.Регистратор.ДокументОснование.ДоговорКонтрагента.Владелец.Родитель.Родитель....Родитель.Наименование =)
6 Kassern
 
11.03.22
11:13
(0) Посмотрите внимательно измерения регистра. Там скорее всего есть контрагент (это ваш "ДоговорКонтрагента.Владелец", насколько я понимаю) и вместо отбора по наименованию, сделайте по ссылке. Типа ПродажиОбороты.Контрагент.Родитель = &ГруппаПокупатели
Если нужны все контрагенты во вложенных папках - ПродажиОбороты.Контрагент ВИерархии (&ГруппаПокупатели)
7 dvrk
 
11.03.22
11:13
(2) то есть Запрос.УстановитьПараметры("ТвойЭлементИлиГруппа", Справочники.Контрагенты.НайтиПоНаименованию("Покупатели"); ???
8 dvrk
 
11.03.22
11:14
(6) ну там есть контрагент только в 'ДокументПродажи'
9 Kassern
 
11.03.22
11:20
(7) а завтра эту папку переименуют в клиентов, тогда, что делать будете?) Побежите править все ваши обработки и запросы? Если это для разовых операций, то ладно
10 dvrk
 
11.03.22
11:22
(9) ну я по коду могу
11 dvrk
 
11.03.22
11:26
(9) меня больше волнует не правильность поиска по реквизиту, а именно чтобы всё что в папке есть попадало в результат запроса, все папки, все содержимое папок
12 RomaH
 
naïve
11.03.22
11:27
(10) лучше по УникальномуИдентификатору - ПолучитьСсылку
13 Kassern
 
11.03.22
11:30
(11) в вашем случае отберутся только те контрагенты, у которых родитель равен отбору. У вложенных контрагентов родитель будет другой, поэтому они в выборку не попадут
14 dvrk
 
11.03.22
11:32
(13) ну я сейчас сделал как мне писали И ПродажиОбороты.ДоговорКонтрагента.Владелец В ИЕРАРХИИ(&ТвойЭлементИлиГруппа) Запрос.УстановитьПараметр("ТвойЭлементИлиГруппа", Справочники.Контрагенты.НайтиПоКоду("00000009"));
15 Kassern
 
11.03.22
11:34
(14) в этом случае вы получите всех контрагентов которые находятся в этой папке+ вложенные папки
16 dvrk
 
11.03.22
11:35
(15) а чтобы ускорить выполнение запросы нужно попытаться избавиться от обращения через точки?
17 Dmitrii
 
гуру
11.03.22
12:01
(16) В общем случае - да.
И в этой связи встаёт вопрос о структуре вашего регистра. Обычно в типовых конфигурация в подобного рода регистрах есть измерение Контрагент или Покупатель, и в измерении ДоговорКонтрагента не может быть другого договора, кроме как договора, чей владелец из измерения Контрагент(Покупатель). Если в вашей конфигурации это так же, то непонятно зачем городить конструкцию ПродажиОбороты.ДоговорКонтрагента.Владелец, если можно просто ПродажиОбороты.Покупатель?
18 dvrk
 
11.03.22
12:25
(17) не типовая
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.