|
как мне сделать выбор параметра в иерархии | ☑ | ||
---|---|---|---|---|
0
desaint08
15.04.16
✎
09:57
|
доброе утро!!! я как бы учусь,поэтому прошу Вас мне помочь, у меня 1с 8.2 есть текст запроса,
ВЫБРАТЬ НормыВыдачиСпецодеждыСрезПоследних.ПодразделениеОрганизации, НормыВыдачиСпецодеждыСрезПоследних.КодРабочегоМеста, НормыВыдачиСпецодеждыСрезПоследних.Спецодежда, НормыВыдачиСпецодеждыСрезПоследних.Актуальность, НормыВыдачиСпецодеждыСрезПоследних.ВидНормыВыдачи, НормыВыдачиСпецодеждыСрезПоследних.СсылкаНаНорму, НормыВыдачиСпецодеждыСрезПоследних.Количество, НормыВыдачиСпецодеждыСрезПоследних.СрокИспользования, НормыВыдачиСпецодеждыСрезПоследних.КодЗащита, НормыВыдачиСпецодеждыСрезПоследних.ШифрЗатрат ИЗ РегистрСведений.НормыВыдачиСпецодежды.СрезПоследних (&НаДату, ) КАК НормыВыдачиСпецодеждыСрезПоследних ГДЕ НормыВыдачиСпецодеждыСрезПоследних.ПодразделениеОрганизации = &подразделение И НормыВыдачиСпецодеждыСрезПоследних.КодРабочегоМеста = &КодРабочегоМестаНов и вот подразделение это справочник,иерархия элементов,и если значится в каком то подразделении нет записей,значит они есть у родителя,как мне в параметре указать это?что если мол по этому "коду" нет ищи в "коде" родителя итд. итд? |
|||
1
FIXXXL
15.04.16
✎
09:58
|
ВИерархии
|
|||
2
Pro-tone
15.04.16
✎
09:58
|
(0) НЕ В ИЕРАРХИИ (&Родитель)
|
|||
3
desaint08
15.04.16
✎
09:59
|
а поконкретней где писать это в условии вот в этом? НормыВыдачиСпецодеждыСрезПоследних.ПодразделениеОрганизации = &подразделение
|
|||
4
FIXXXL
15.04.16
✎
10:00
|
(3) конструктором открой запрос, посмотри варианты сравнения
|
|||
5
desaint08
15.04.16
✎
10:01
|
в параметре параметра это указать можно или нужно отдельное условие?
|
|||
6
desaint08
15.04.16
✎
10:02
|
не работает(
|
|||
7
FIXXXL
15.04.16
✎
10:07
|
(6) вместо "=" нужно ВИерархии
|
|||
8
desaint08
15.04.16
✎
10:08
|
я сделал (4) но не работает
|
|||
9
FIXXXL
15.04.16
✎
10:10
|
(8) текст запроса покажи и чего не работает
|
|||
10
desaint08
15.04.16
✎
10:14
|
ЗапросНорм = Новый Запрос;
ЗапросНорм.Текст = "ВЫБРАТЬ | НормыВыдачиСпецодеждыСрезПоследних.ПодразделениеОрганизации, | НормыВыдачиСпецодеждыСрезПоследних.КодРабочегоМеста, | НормыВыдачиСпецодеждыСрезПоследних.Спецодежда, | НормыВыдачиСпецодеждыСрезПоследних.Актуальность, | НормыВыдачиСпецодеждыСрезПоследних.ВидНормыВыдачи, | НормыВыдачиСпецодеждыСрезПоследних.СсылкаНаНорму, | НормыВыдачиСпецодеждыСрезПоследних.Количество, | НормыВыдачиСпецодеждыСрезПоследних.СрокИспользования, | НормыВыдачиСпецодеждыСрезПоследних.КодЗащита, | НормыВыдачиСпецодеждыСрезПоследних.ШифрЗатрат |ИЗ | РегистрСведений.НормыВыдачиСпецодежды.СрезПоследних(&НаДату, ) КАК НормыВыдачиСпецодеждыСрезПоследних |ГДЕ | НормыВыдачиСпецодеждыСрезПоследних.ПодразделениеОрганизации В ИЕРАРХИИ(&подразделение) | И НормыВыдачиСпецодеждыСрезПоследних.КодРабочегоМеста = &КодРабочегоМестаНов " ; ЗапросНорм.УстановитьПараметр("НаДату", НачалоДня(Дата)); ЗапросНорм.УстановитьПараметр("подразделение", Подразделение); ЗапросНорм.УстановитьПараметр("КодРабочегоМестаНов",строка(РабочееМестоКод)); ВыборкаНорм = ЗапросНорм.Выполнить().Выгрузить(); и в параметр передается 2207031 в этом подразделении ничего нет,тогда нужно передать код родителя 220703 и если в нем ничего нет тогда 2207 в нем есть точно,но у меня выбирается только 22070301,это решаемо?или как повторить запрос с новым параметром? |
|||
11
FIXXXL
15.04.16
✎
10:20
|
(10) а все эти 220.... подчинены иерархически друг другу? или программа сама должна угадывать твои хотелки?
|
|||
12
desaint08
15.04.16
✎
10:24
|
да подчинены ,это один справочник иерархия элементов.
|
|||
13
FIXXXL
15.04.16
✎
10:30
|
(12) это ниачом
точно ли связаны все вышеуказанные подразделения между собой? |
|||
14
desaint08
15.04.16
✎
10:34
|
погоди сейчас все перепроверю,я понял о чем ты спросил.
|
|||
15
desaint08
15.04.16
✎
10:38
|
да один справочник, Элемент.Значение.ТекущееПодразделениеКомпании.Родитель.Родитель значение"2207"
СправочникСсылка.Подразделения |
|||
16
FIXXXL
15.04.16
✎
10:40
|
передавай в параметр "2207"
|
|||
17
desaint08
15.04.16
✎
10:47
|
бред в консоли запросов значения возвращает,а в запросе в работе нет!!!это как-так то?
|
|||
18
FIXXXL
15.04.16
✎
10:56
|
(17) проверь текст запроса в коде
проверь параметр, который в запрос попадает, в коде в общем - отладчик в руки :) |
|||
19
salvator
15.04.16
✎
10:59
|
(17) Даты и время у параметра &НаДату совпадают?
|
|||
20
desaint08
15.04.16
✎
11:05
|
так ,подозреваю что,в консоли запросов параметр передаваемый это справочник.ПодразделениеОрганизации,и все находится,а в моем запросе передается СправочникСсылка.Подразделения и вот как то их нужно сопоставить,в запросе и тогда будет норм.как это сделать по умному?
|
|||
21
FIXXXL
15.04.16
✎
11:13
|
(20) надо понимать как они связаны
|
|||
22
desaint08
15.04.16
✎
11:15
|
код один и тот же
|
|||
23
FIXXXL
15.04.16
✎
11:16
|
(22) а если завтра поменяется код? :)
или у каких то подразделений он разный? как ты подразделение получаешь в коде и отправляешь параметром в запрос? |
|||
24
desaint08
15.04.16
✎
11:20
|
я получаю подразделение ссылкой и так отправляю в запрос,то есть
"свойство" "начение" Элемент.Значение.ТекущееПодразделениеКомпании 22070301 "тип" СправочникСсылка.Подразделения |
|||
25
FIXXXL
15.04.16
✎
11:24
|
(24) там, где получаешь ПодразделениеОрганизации есть?
или мож связь какая есть? в идеале нужно сопоставление иметь Подразделение - ПодразделениеОрганизации , регистр сведений к примеру и из него брать данные |
|||
26
desaint08
15.04.16
✎
11:26
|
так я кажется порешал только сделал это коряво,нужно как то сделать это красиво что-ле , итак я
ЗапросНорм = Новый Запрос; ЗапросНорм.Текст = "ВЫБРАТЬ | НормыВыдачиСпецодеждыСрезПоследних.ПодразделениеОрганизации, | НормыВыдачиСпецодеждыСрезПоследних.КодРабочегоМеста, | НормыВыдачиСпецодеждыСрезПоследних.Спецодежда, | НормыВыдачиСпецодеждыСрезПоследних.Актуальность, | НормыВыдачиСпецодеждыСрезПоследних.ВидНормыВыдачи, | НормыВыдачиСпецодеждыСрезПоследних.СсылкаНаНорму, | НормыВыдачиСпецодеждыСрезПоследних.Количество, | НормыВыдачиСпецодеждыСрезПоследних.СрокИспользования, | НормыВыдачиСпецодеждыСрезПоследних.КодЗащита, | НормыВыдачиСпецодеждыСрезПоследних.ШифрЗатрат |ИЗ | РегистрСведений.НормыВыдачиСпецодежды.СрезПоследних(&НаДату, ) КАК НормыВыдачиСпецодеждыСрезПоследних |ГДЕ | НормыВыдачиСпецодеждыСрезПоследних.ПодразделениеОрганизации.код = &подразделение | И НормыВыдачиСпецодеждыСрезПоследних.КодРабочегоМеста = &КодРабочегоМестаНов" ; ЗапросНорм.УстановитьПараметр("НаДату", НачалоДня(Дата)); ЗапросНорм.УстановитьПараметр("подразделение", Подразделение.код); ЗапросНорм.УстановитьПараметр("КодРабочегоМестаНов",строка(РабочееМестоКод)); ВыборкаНорм = ЗапросНорм.Выполнить().Выгрузить(); и потом если ВыборкаНорм=0 тогда --тот же запрос но ЗапросНорм.УстановитьПараметр("подразделение", Подразделение.Родитель.Код); и если там "0" тогда ЗапросНорм.УстановитьПараметр("подразделение", Подразделение.Родитель.родитель.Код); это можно как то лучше написать?потому как попой чувствую это не провильно так использовать? |
|||
27
FIXXXL
15.04.16
✎
11:48
|
(26) ну если так уверен в кодах, сделай параметром
ПодразделениеОрганизации.НайтиПоКоду(Подразделение.код) и верни ВИерархии в запрос твой вариант - запрос в цикле, жуткая бяка |
|||
28
desaint08
15.04.16
✎
11:51
|
это как? я еще не сильно разбираюсь что куда.
|
|||
29
FIXXXL
15.04.16
✎
11:59
|
(28) запрос переделай обратно на ВИерархии, который в консоли работал нормально
и в параметрах запроса напиши поиск в справочнике, который в запросе, по коду (НайтиПоКоду), код - из другого справочника |
|||
30
FIXXXL
15.04.16
✎
12:00
|
НормыВыдачиСпецодеждыСрезПоследних.ПодразделениеОрганизацииВИерархии &подразделение
ЗапросНорм.УстановитьПараметр("подразделение", Справочники.ПодразделениеОрганизации.НайтиПоКоду(Подразделение.код)); типа того |
|||
31
desaint08
15.04.16
✎
12:30
|
ЗапросНорм.Текст =
"ВЫБРАТЬ | НормыВыдачиСпецодеждыСрезПоследних.ПодразделениеОрганизации, | НормыВыдачиСпецодеждыСрезПоследних.КодРабочегоМеста, | НормыВыдачиСпецодеждыСрезПоследних.Спецодежда, | НормыВыдачиСпецодеждыСрезПоследних.Актуальность, | НормыВыдачиСпецодеждыСрезПоследних.ВидНормыВыдачи, | НормыВыдачиСпецодеждыСрезПоследних.СсылкаНаНорму, | НормыВыдачиСпецодеждыСрезПоследних.Количество, | НормыВыдачиСпецодеждыСрезПоследних.СрокИспользования, | НормыВыдачиСпецодеждыСрезПоследних.КодЗащита, | НормыВыдачиСпецодеждыСрезПоследних.ШифрЗатрат |ИЗ | РегистрСведений.НормыВыдачиСпецодежды.СрезПоследних(&НаДату, ) КАК НормыВыдачиСпецодеждыСрезПоследних |ГДЕ | НормыВыдачиСпецодеждыСрезПоследних.ПодразделениеОрганизации В Иерархии(&подразделение) | И НормыВыдачиСпецодеждыСрезПоследних.КодРабочегоМеста = &КодРабочегоМестаНов" ; ЗапросНорм.УстановитьПараметр("НаДату", НачалоДня(Дата)); ЗапросНорм.УстановитьПараметр("подразделение", Справочники.ПодразделенияОрганизаций.НайтиПоКоду(Подразделение.код)); ЗапросНорм.УстановитьПараметр("КодРабочегоМестаНов",строка(РабочееМестоКод)); ВыборкаНорм = ЗапросНорм.Выполнить().Выгрузить(); вернуло "0",он находит организацию в справочнике,но по иерархии ничего |
|||
32
desaint08
15.04.16
✎
12:34
|
мож я запрос неправильно сформировал?
|
|||
33
desaint08
15.04.16
✎
12:36
|
в смысле находит подразделение,значение 22070301 тип значения ссылка подразделенияОрганизаций
|
|||
34
FIXXXL
15.04.16
✎
12:48
|
(33) а в консоли что запрос даст с таким параметром?
|
|||
35
desaint08
15.04.16
✎
13:43
|
и в рабочем запросе не работает(
|
|||
36
FIXXXL
15.04.16
✎
13:45
|
(35) значит по этому коду ничего нет и ему подчиненных нет с остатками
тебе логику надо сначала в порядок привести, "кто на ком стоит" |
|||
37
desaint08
15.04.16
✎
13:49
|
ясно попробую и отпишусь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |