|
Конвертация данных + запрос 7.7 | ☑ | ||
---|---|---|---|---|
0
Wefast
15.05.19
✎
08:29
|
Есть справочник Номенклатура, есть справочник НормыТруда(спецификация)
В справочнике нормы труда есть реквизит Ном(НОМЕНКЛАТУРА) Мне известна эта номенклатура и ном Мне нужно узнать найти спецификацию у которой ном = моя ном, и подчинена моей номенклатуре Она точно есть Пишу: Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Родитель = Справочник.НормыРасходов.Родитель; |НормыРасходов = Справочник.НормыРасходов.ТекущийЭлемент; |Элемент = Справочник.НормыРасходов.Элемент; |Группировка НормыРасходов; |Условие(НормыРасходов.Владелец= ВхИзд); |Условие(Элемент = Источник); |"; ; Источник - моя номенклатура, владелец справочника ВхИзд - моя Ном, реквизит справочника нормы расходов Запрос выдает пустой результат. Пишу НР2 = СоздатьОбъект("Справочник.НормыРасходов"); НР2.ИспользоватьВладельца(НР.ТекущийЭлемент().Элемент); Если НР2.НайтиПоРеквизиту("Элемент",ВхИзд,0) = 1 Тогда я=0; КонецЕсли; И тут тоже ничего не находится. Может я пишу что не так? Запрос кстати вечность выполняется. |
|||
1
Wefast
15.05.19
✎
08:39
|
НР2 = СоздатьОбъект("Справочник.НормыРасходов");
НР2.ИспользоватьВладельца(НР.ТекущийЭлемент().Элемент); Если НР2.НайтиПоРеквизиту("Элемент",ВхИзд,0) = 1 Тогда я=0; КонецЕсли; тут я перепутал на самом деле ВхИзд и НР.ТекущийЭлемент().Элемент Но сути это не поменяло |
|||
2
Wefast
15.05.19
✎
09:11
|
https://is.gd/obbB91
вот скрин справочников. слева справочник Номенклатура. По нажатию кнопки "Нормативы" открывается справочник Нормы расходов с отбором по владельцу(Номенклатура) Там есть реквизит Элемент. Тип Номенклатура Вот у меня есть этот Элемент и владелец-номенклатура Мне нужно получить элемент справочника Нормы расходов по этим 2 реквизитам |
|||
3
Ёпрст
15.05.19
✎
09:22
|
(0) выкинуть из кода везде текущийэлемент()
(2) п..ц, даже из картинки видно, что реквизит Элемент имеет тип НЕ справочник.номенклатура |
|||
4
Wefast
15.05.19
✎
09:29
|
(3) по второму пункту https://is.gd/YiqF8F
|
|||
5
Wefast
15.05.19
✎
10:00
|
"//{{ЗАПРОС(Сформировать1)
|Без итогов; |НормыРасходов = Справочник.НормыРасходов.ТекущийЭлемент; |Владелец = Справочник.НормыРасходов.Владелец; |Элемент = Справочник.НормыРасходов.Элемент; |Группировка Элемент; |Условие(Элемент = Элем); |Условие(Владелец = Ном); |"//}}ЗАПРОС Вот собрал такой вариант, работает, но очень долго Куда быстрее сделать выборку по реквизиту, без учета владельца, а потом условие сделать Вот так работает раз в 10 быстрее: НР2 = СоздатьОбъект("Справочник.НормыРасходов"); НР2.ВыбратьЭлементыПоРеквизиту("Элемент",Элем,0,0); Пока НР2.ПолучитьЭлемент()=1 Цикл Если НР2.Владелец = Ном Тогда Сообщить("ок"); КонецЕсли; КонецЦикла; |
|||
6
Ёпрст
15.05.19
✎
10:24
|
(4) биомать а ? Открой ты пофигуратор и посмотри тип реквизита.
|
|||
7
Ёпрст
15.05.19
✎
10:26
|
(5) есть найтиПоРеквизиту, будет еще быстрее, чем выборка
|
|||
8
Wefast
15.05.19
✎
10:31
|
(6) (7) Я в условие после выборки подсовываю НОМЕНКЛАТУРУ и оно срабатывает.
в конфигураторе, просто тип "справочник" НайтиПоРеквезиту без указания владельца выдает не то что надо, а с владельцем не работает - о чем я писал в (0) |
|||
9
Ёпрст
15.05.19
✎
10:45
|
(8) в (0) вообще г..о код
|
|||
10
Ёпрст
15.05.19
✎
10:45
|
где вас учат писать так ?
НР.ТекущийЭлемент().Элемент ? |
|||
11
Ёпрст
15.05.19
✎
10:47
|
И так, чего, не работает у вас, разве ?
|
|||
12
Ёпрст
15.05.19
✎
10:49
|
точнее, так:
|
|||
13
Wefast
16.05.19
✎
13:09
|
(9) (10) на 7 никто не учил. Приходится код писать на нем раз в год.
(12) так не работает. Не знаю почему А вот так работает: НР2 = СоздатьОбъект("Справочник.НормыРасходов"); НР2.ВыбратьЭлементыПоРеквизиту("Элемент",Элем,0,0); Пока НР2.ПолучитьЭлемент()=1 Цикл Если НР2.Владелец = Ном Тогда Сообщить("ок"); КонецЕсли; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |