Имя: Пароль:
1C
1С v8
Пакетный запрос, на выборку главную группировку номенклатуры
,
0 nogik_art
 
14.03.13
17:10
Добрый день помогите разобраться с проблемой, из регистра бухгалтерии получаю остатки товара, но есть сложность надо выводить первую группировку товара, то есть без подгрупп. Написал пакетный запрос, в временной таблице получаю родителя, но не знаю как связать полученный родитель номенклатуры с остатками номенклатуры чтобы выводило нужное поле.

ВЫБРАТЬ
   Номенклатура.Наименование КАК Родитель
ПОМЕСТИТЬ Номенклатура
ИЗ
   Справочник.Номенклатура КАК Номенклатура
ГДЕ
   Номенклатура.Родитель = &Родитель
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ХозрасчетныйОстатки.Субконто1.Наименование КАК Наименование,
   ХозрасчетныйОстатки.Субконто1.Артикул КАК Артикул,
   ХозрасчетныйОстатки.КоличествоОстаток,
   Номенклатура.Родитель
ИЗ
   РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, , &Субконто, ) КАК ХозрасчетныйОстатки,
   Номенклатура КАК Номенклатура
1 Maxus43
 
14.03.13
17:20
ИЗ
   РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, , &Субконто, ) КАК ХозрасчетныйОстатки,
   Номенклатура КАК Номенклатура

что это? СОЕДИНЕНИЕ юзай, а это кросс джойн, завалишь сервер просто
2 Kreont
 
14.03.13
17:22
А может просто получить всех родителей в запросе и самого верхнего вернуть через условие только в результат сразу?ХозрасчетныйОстатки.Субконто1.Родитель КАК Р1
ХозрасчетныйОстатки.Субконто1.Родитель.Родитель КАК Р2
и т.п.
3 Maxus43
 
14.03.13
17:23
надо предварительную таблицу делать вида "СамаяВерхняяГруппа", "КаждыйЭлементВЭтойГруппе".
В соединениии нельзя использовать В ИЕРАРХИИ, задача чистым запросом имхо не решается, если неизвестен уровень вложенности групп
4 nogik_art
 
14.03.13
17:24
(1), так а что в соединении указать? Если указываю ВНУТРЕННЕЕ СОЕДИНЕНИЕ Номенклатура КАК Номенклатура
       ПО ХозрасчетныйОстатки.Субконто1.Родитель = Номенклатура.Родитель то поле родитель не выводит
5 Maxus43
 
14.03.13
17:25
(4) 1 уровень? подгрупп нет?
тогда ХозрасчетныйОстатки.Субконто1.Родитель, без всяких временных таблиц
6 nogik_art
 
14.03.13
17:26
(5) подгруппы есть вот в этом и проблема
7 nogik_art
 
14.03.13
17:27
(5) не знаю как правильно связать временную таблицу с полученным результатом по остаткам.
8 Maxus43
 
14.03.13
17:28
что такое &Родитель? самый главный который?
9 Maxus43
 
14.03.13
17:30
ВЫБРАТЬ
   &Родитель,
   Номенклатура.Ссылка
ПОМЕСТИТЬ Номенклатура
ИЗ
   Справочник.Номенклатура КАК Номенклатура
ГДЕ
   Номенклатура.Родитель = &Родитель
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ХозрасчетныйОстатки.Субконто1.Артикул КАК Артикул,
   ХозрасчетныйОстатки.КоличествоОстаток,
   Номенклатура.Родитель
ИЗ
   РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, , &Субконто, ) КАК ХозрасчетныйОстатки
       ЛЕВОЕ СОЕДИНЕНИЕ Номенклатура КАК Номенклатура
       ПО ХозрасчетныйОстатки.Субконто1 = Номенклатура.Ссылка
10 nogik_art
 
14.03.13
17:30
(8) это я параметр сделал, для того чтобы получить список групп с пустым родителем соответственно главную группировку получить.
11 Maxus43
 
14.03.13
17:31
(10) не, так запросом не получится
12 nogik_art
 
14.03.13
17:35
(11) то есть запросом мне не получить, первую группировку?
13 nogik_art
 
14.03.13
17:41
(11), а из справочника Номенклатура, можно как-то получить номенклатуру и главную группировку? Тогда можно было действительно простым соединением всё сделать.
14 Maxus43
 
14.03.13
17:41
(12) нет, если неограничен уровень вложенности
15 Maxus43
 
14.03.13
17:42
(13) можно. ПринадлежитГруппе, иль как то так. Т.е. бери все первого уровня и сверяй с номенклатурой каждой, получишь таблицу из главного родителя и номенклатуры
16 Kreont
 
14.03.13
17:43
ТС, тебе что надо для всех универсально сделать, или решить конкретную задачу с конкретным отчетом (справочником)?

См. (2) + в запросе чере ВЫБОР все можно сделать
17 Maxus43
 
14.03.13
17:44
(16) если неизвестен уровень максимальный - нельзя сделать, 500 раз обсуждалось тут
18 nogik_art
 
14.03.13
17:46
(16), нужно для отчёта сделать, там всё запущенно, есть 3 базы пока, с них по COM соединению запросом выбирать остатки товара и обязательно чтобы у каждой номенклатуры было поле с главной группой, потому что если я сделаю с подгруппами то будут проблемы с списанием товара в этих базах.
19 samozvanec
 
14.03.13
17:54
(18) "для отчета" "проблемы со списанием" чего чего?
20 nogik_art
 
14.03.13
17:59
(19), сначала делаем отчёт с выборкой по 3 базам, где будет указано сколько в какой базе остатков, 1 база управленческая по ней ориентируемся сколько надо списать товара, по нажатию кнопки выполнить, в каждой из баз по формуле делаем списание товара так понятней?
21 samozvanec
 
14.03.13
18:01
(20) в два запроса сделай.
22 nogik_art
 
14.03.13
18:02
(19) суть не в том, вы мне подскажите я могу запросом добиться нужного мне результата или мне надо как-то по другому делать? Если по другому то натолкните на мысль.
23 samozvanec
 
14.03.13
18:03
(22) я пытался понять, че тебе надо. если то, о чем говорит максус43 - делай 2 запроса и не парься.
24 nogik_art
 
14.03.13
18:03
(21) а можно чуток поподробней по поводу в 2 запроса делать?
25 nogik_art
 
14.03.13
18:14
не понятно как через 2 запроса делать может кто объяснить?
26 ILM
 
гуру
14.03.13
19:28
регистрхозрасчетный.номенклатура.родитель,
регистрхозрасчетный.номенклатура,

где регистрхозрасчетный(.....номенклатура в иерархии(&родитель).....)
27 nogik_art
 
14.03.13
19:45
(26) это к какому запросу?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший