Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 11
1

Проблема с выражением В ИЕРАРХИИ

18.12.2018, 01:55. Показов 3299. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.
В языке запроса можно проверять нахождение элемента в иерархии, например

1C
1
2
3
4
5
Выбрать
   Справочник.ПодразделенияКомпании.Ссылка
 
Где
   Справочник.ПодразделенияКомпании.Ссылка В ИЕРАРХИИ (&Департамент)

То есть, слева от оператора ссылка на элемент, а справа группа, переданная в виде параметра.
А что делать, если группа является не параметром, а полем в запросе, например:

1C
1
2
3
4
5
6
7
8
9
ВЫБРАТЬ
                       пгс_СоответствиеВидНоменклатуры_Склад.Подразделение КАК Подразделение,
                        пгс_СоответствиеВидНоменклатуры_Склад.ГруппаВидовНоменклатуры КАК ГруппаВидовНоменклатуры ,
                        пгс_СоответствиеВидНоменклатуры_Склад.Склад КАК Склад
                     ИЗ
                      РегистрСведений.пгс_СоответствиеВидНоменклатуры_Склад КАК пгс_СоответствиеВидНоменклатуры_Склад
                     ГДЕ
                      пгс_СоответствиеВидНоменклатуры_Склад.Подразделение = &ПодразделениеПолучатель
                       И &ВидНоменклатуры В ИЕРАРХИИ(ГруппаВидовНоменклатуры );

У меня в регистре сведений хранятся группы видов номенклатуры, в запросе нужно проверить нахождение элемента, переданного параметром на нахождение в иерархии группы. Вышеприведенный запрос не выполнятся, т.к. справа от оператора находится не переменная.
Что можно с этим сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.12.2018, 01:55
Ответы с готовыми решениями:

Проблема с выражением
"Левая часть выражения присваивания должна быть переменной свойством или индексатором" в этой части...

Проблема с переделкой иерархии и пользователями
Руководство утвердило новую иерархическую структуру...и получилось так...что в верхней уровень...

Проблема с регулярным выражением проверки номера телефона
Доброго времени суток. Возникла проблема в регуляркой-...

с регулярным выражением.
Имеем текст youtube.com/watch?v=LOZuxwVk7TU&ob=av2em нужно получить то что находится между...

8
Эксперт 1С
434 / 305 / 92
Регистрация: 28.05.2014
Сообщений: 1,247
18.12.2018, 09:31 2
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
"ВЫБРАТЬ
|   пгс_СоответствиеВидНоменклатуры_Склад.Подразделение КАК Подразделение,
|   пгс_СоответствиеВидНоменклатуры_Склад.ГруппаВидовНоменклатуры КАК ГруппаВидовНоменклатуры,
|      пгс_СоответствиеВидНоменклатуры_Склад.Склад КАК Склад
|ПОМЕСТИТЬ ВТ_1
|ИЗ
|   РегистрСведений.пгс_СоответствиеВидНоменклатуры_Склад КАК пгс_СоответствиеВидНоменклатуры_Склад
| ГДЕ
|                     пгс_СоответствиеВидНоменклатуры_Склад.Подразделение = &ПодразделениеПолучатель
|ИНДЕКСИРОВАТЬ ПО
|   ГруппаВидовНоменклатуры
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|   ВидыНоменклатуры.Ссылка
|ИЗ
|   Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры
|ГДЕ
|   ВидыНоменклатуры.Ссылка = &ВидНоменклатуры
|   И ВидыНоменклатуры.Ссылка В ИЕРАРХИИ
|           (ВЫБРАТЬ
|               пгс_СоответствиеВидНоменклатуры_Склад.ГруппаВидовНоменклатуры
|           ИЗ
|               ВТ_1 КАК ВТ_1)"
Результатом будет элемент в Иерархии вашего регистра, или ничего

Вам что надо вывести? Записи регистра сведений, чьи Виды номенклатур являются родителями переданного параметра?
Или проверить есть ли элемент в иерархии?
0
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 11
18.12.2018, 09:58  [ТС] 3

Не по теме:

Вам что надо вывести? Записи регистра сведений, чьи Виды номенклатур являются родителями переданного параметра?


Да, именно так. Но ситуация осложняется тем, что в регистре сведений может лежать как группа видов номенклатуры, так и просто вид номенклатуры. И нужно сравнивать соответственно или В ИЕРАРХИИ или просто на равенство.
0
Эксперт 1С
434 / 305 / 92
Регистрация: 28.05.2014
Сообщений: 1,247
18.12.2018, 11:14 4
apocalyptis,
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
"ВЫБРАТЬ
|   пгс_СоответствиеВидНоменклатуры_Склад.Подразделение КАК Подразделение,
|   пгс_СоответствиеВидНоменклатуры_Склад.ГруппаВидовНоменклатуры КАК ГруппаВидовНоменклатуры,
|   пгс_СоответствиеВидНоменклатуры_Склад.Склад КАК Склад,
|  &ВидНоменклатуры КАК ПарамВид
|ПОМЕСТИТЬ ВТ_1
|ИЗ
|   РегистрСведений.пгс_СоответствиеВидНоменклатуры_Склад КАК пгс_СоответствиеВидНоменклатуры_Склад
| ГДЕ
|                     пгс_СоответствиеВидНоменклатуры_Склад.Подразделение = &ПодразделениеПолучатель
|ИНДЕКСИРОВАТЬ ПО
|   ГруппаВидовНоменклатуры
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|   ВТ_1.Подразделение,
|   ВТ_1.ГруппаВидовНоменклатуры,
|   ВТ_1.Склад,
|   ВТ_1.ПарамВид
|ИЗ
|   ВТ_1 КАК ВТ_1
|ГДЕ
|   ВТ_1.ПарамВид В ИЕРАРХИИ
|           (ВЫБРАТЬ             
|   ВТ_1.ГруппаВидовНоменклатуры
|           ИЗ
|               ВТ_1 КАК ВТ_1)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
|   ВТ_1.Подразделение,
|   ВТ_1.ГруппаВидовНоменклатуры,
|   ВТ_1.Склад,
|   ВТ_1.ПарамВид
|ИЗ
|   ВТ_1 КАК ВТ_1
|ГДЕ
|   ВТ_1.ПарамВид= ВТ_1.ГруппаВидовНоменклатуры
|
0
857 / 656 / 111
Регистрация: 01.11.2012
Сообщений: 2,411
19.12.2018, 13:00 5
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
|ВЫБРАТЬ
|   ВТ_1.Подразделение,
|   ВТ_1.ГруппаВидовНоменклатуры,
|   ВТ_1.Склад,
|   ВТ_1.ПарамВид
|ИЗ
|   ВТ_1 КАК ВТ_1
|ГДЕ
|   ВТ_1.ПарамВид В ИЕРАРХИИ
|           (ВЫБРАТЬ                
|   ВТ_1.ГруппаВидовНоменклатуры
|           ИЗ
|               ВТ_1 КАК ВТ_1)
Этого достаточно будет, В ИЕРАРХИИ проверяет как на вхождение в группу так и на равенство самому элементу
1
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 11
26.12.2018, 03:17  [ТС] 6
Phil,
К сожалению ваш запрос выводит все столбцы временной таблицы.
0
Эксперт 1С
434 / 305 / 92
Регистрация: 28.05.2014
Сообщений: 1,247
26.12.2018, 09:30 7
apocalyptis, а какие нужны? уберите из последнего пакета лишнии поля
0
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 11
26.12.2018, 09:41  [ТС] 8
Phil,
Прощу прощения, все строки я имел в виду.
Если ВТ_1 содержит хотя бы одну строку удовлетворяющую выражению В ИЕРАРХИИ, то запрос выводит их все.
0
857 / 656 / 111
Регистрация: 01.11.2012
Сообщений: 2,411
26.12.2018, 09:47 9
Я ничего не понял, но предположу, что в запросе временной таблицы надо сгруппировать все строки
0
26.12.2018, 09:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.12.2018, 09:47
Помогаю со студенческими работами здесь

Проблемы с выражением
Пришло время писать курсовую,а я все позабыл. Не могу ниче вспомнить.Помогите решить выражение как...

Задача с выражением
Даны числа x, y. Найти значение выражения u=((max^2(x,y))-(2^xmin(x,y)))/(sin2x+max(x,y)/min(x,y))...

Выборка из иерархии
Начал изучение 1с. Вопрос такой: У меня имеется Справочник "Предприниматель" с включенной...

Сортировка в иерархии
Привет всем! После создания иерархии возникла проблема с сортировкой. public class Plane :...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru