Имя: Пароль:
1C
 
Получение в итогах кода родителя
0 alexshape
 
naïve
16.07.25
13:17
Привет всем. Возникла сложность. Как в итогах получить код родителя Иерархического поля

Вот изначальный запрос, но в таком случае для каждого поля в иерархии выводится значение нижнего уровня:

ВЫБРАТЬ
  ВТ_СписокГБР.ЭтапРабота КАК ЭтапРабота, 
  ВТ_СписокГБР.КодСДР КАК КодСДР,
ИЗ
  ВТ_СписокГБР КАК ВТ_СписокГБР
ИТОГИ
  МАКСИМУМ(КодСДР),
ПО
  ЭтапРабота  ИЕРАРХИЯ
1 maxab72
 
16.07.25
13:17
(0) будьте любезны, и объясните сперва, что вы написали, по каждой строке. Потому как лично мой опыт четверти века в 1С не позволяет этого уразуметь.
2 Волшебник
 
16.07.25
13:21
(0) Ваш запрос к временной таблице. Предоставьте код, который её формирует
3 alexshape
 
naïve
16.07.25
13:27
(2)

ВЫБРАТЬ
  ВидыРабот.Ссылка КАК ЭтапРабота, 
  ВидыРабот.Код КАК КодСДР
ПОМЕСТИТЬ ВТ_СписокГБР
ИЗ
  Справочник.ВидыРабот КАК ВидыРабот
4 alexshape
 
naïve
16.07.25
13:28
(2) справочник ВидыРабот иерархический
5 Fish
 
гуру
16.07.25
13:35
(4) У иерархических справочников есть реквизит "Родитель".
6 ILM
 
гуру
16.07.25
13:48
Если вам код родителя не для текущего этапа, а нужен код самого верхнего родителя в иерархии, то придётся ваять регистр сведений где будет код этапа и код самого верхнего родителя.
7 Fish
 
гуру
16.07.25
13:51
(6) Можно и запросом. Вот только самых верхних родителей в иерархии может быть много.
8 Fish
 
гуру
16.07.25
13:59
+(7) Или имеется в виду самый верхний родитель для конкретного элемента?
9 Волшебник
 
16.07.25
13:57
(8) извините, что отвлекаю от сабжа, но я уже устал за вами поправлять. Пишется "иметь в виду"
10 Fish
 
гуру
16.07.25
13:59
(9) Да, спасибо.
11 Kigo_Kigo
 
16.07.25
14:01
Типа того?
Запрос.Текст =
        "ВЫБРАТЬ
        |    ДоговорыКонтрагентов.Ссылка,
        |    ДоговорыКонтрагентов.Родитель.Код КАК РодительКод
        |ИЗ
        |    Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
        |
        |СГРУППИРОВАТЬ ПО
        |    ДоговорыКонтрагентов.Родитель.Код,
        |    ДоговорыКонтрагентов.Ссылка
        |ИТОГИ ПО
        |    РодительКод";
    
    РезультатЗапроса = Запрос.Выполнить();
12 maxab72
 
16.07.25
14:06
(11) зачем СГРУППИРОВАТЬ и ИТОГИ ?
13 DiMel_77
 
16.07.25
14:13
(0) Это бот судя по тексту запроса, но задача довольно частая (определения родителя верхнего уровня запросом). Можно конечно тупым методом типа https://its.1c.ru/db/pubqlang/content/76/hdoc или использовать транзитивное замыкание как в  https://infostart.ru/1c/articles/160707/. Некоторые даже служебный реквизит добавляют с родителем верхнего уровня, который заполняется при записи...
14 alexshape
 
naïve
16.07.25
14:21
Решение найдено.

Вот изначальный запрос, который выводил не то что нужно, когда вместо  МАКСИМУМ(КодСДР) выводил  просто КодСДР, Запрос валился с ошибкой

ВЫБРАТЬ
  ТаблицаЗначенийСписок.ЭтапРабота КАК ЭтапРабота,
  ТаблицаЗначенийСписок.КодСДР КАК КодСДР,
  ТаблицаЗначенийСписок.НачалоРабот КАК НачалоРабот,
  ТаблицаЗначенийСписок.ОкончаниеРабот КАК ОкончаниеРабот
ПОМЕСТИТЬ ВТ_Список
ИЗ
  &ТаблицаЗначенийСписок КАК ТаблицаЗначенийСписок 
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
  ВТ_Список.ЭтапРабота КАК ЭтапРабота, 
  ВТ_Список.КодСДР КАК КодСДР,
  ВТ_Список.НачалоРабот КАК НачалоРабот,
  ВТ_Список.ОкончаниеРабот КАК ОкончаниеРабот
ИЗ
  ВТ_СписокКАК ВТ_Список
ИТОГИ
  МАКСИМУМ(КодСДР),
  МИНИМУМ(НачалоРабот),
  МАКСИМУМ(ОкончаниеРабот)
ПО
  ЭтапРабота  ИЕРАРХИЯ

15 Волшебник
 
16.07.25
14:21
(14) с какой ошибкой?
16 alexshape
 
naïve
16.07.25
14:22
Вот корректный запрос:

ВЫБРАТЬ
  ТаблицаЗначенийСписок.ЭтапРабота КАК ЭтапРабота,
  ТаблицаЗначенийСписок.КодСДР КАК КодСДР,
  ТаблицаЗначенийСписок.НачалоРабот КАК НачалоРабот,
  ТаблицаЗначенийСписок.ОкончаниеРабот КАК ОкончаниеРабот
ПОМЕСТИТЬ ВТ_Список
ИЗ
  &ТаблицаЗначенийСписок КАК ТаблицаЗначенийСписок
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
  ВидыРабот.Ссылка КАК ЭтапРабота,
  ВидыРабот.Код КАК КодСДР,
  ВТ_Список.НачалоРабот КАК НачалоРабот,
  ВТ_Список.ОкончаниеРабот КАК ОкончаниеРабот
ИЗ
  ВТ_Список КАК ВТ_Список
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВидыРабот КАК ВидыРабот
    ПО (ВТ_Список.ЭтапРабота = ВидыРабот.Ссылка)
ИТОГИ
  КодСДР КАК КодСДР,
  МИНИМУМ(НачалоРабот),
  МАКСИМУМ(ОкончаниеРабот)
ПО
  ЭтапРабота ИЕРАРХИЯ
17 alexshape
 
naïve
16.07.25
14:22
(15) Поле итогов должно либо присутствовать в списке группировок итогов, либо находиться в агрегатной функции итога
<<?>>КодСДР,
18 Kigo_Kigo
 
16.07.25
14:36
(12) а как конструктору захотелось, так он и сделал, мне пох, я тут не на экзамене
19 СвинТуз
 
16.07.25
14:49
Странно что ошибка одна и та которой не должно быть
а та что есть не вываливается

ИЗ
  ВТ_СписокКАК ВТ_Список
20 СвинТуз
 
16.07.25
14:49
Выглядит странно все.
Бывает.
21 alexshape
 
naïve
16.07.25
14:53
(19) это просто опечатка, руками запрос правил
22 Волшебник
 
16.07.25
14:58
(21) Хватит нам врать
23 Волшебник
 
модератор
16.07.25
15:14
Очередной тупой бот пытается нам влить говно в уши. Хватит нам врать, тупые боты!
24 Волшебник
 
16.07.25
15:00
(23)+ Ой, простите. Это опечатка. Т9 подкачал. Пишу с микроволновки
25 Fish
 
гуру
16.07.25
15:03
Кстати, тем, кто всерьёз ссылается на Т9, даже невдомёк, что Т9 существовал только на кнопочных телефонах.
wiki:T9
26 Волшебник
 
16.07.25
15:04
(25) Вряд ли они всерьёз. Ну нельзя же быть такими тупыми. Наверняка это какой-то сарказм, который потерял берега.
27 Kigo_Kigo
 
16.07.25
15:07
(25) Т9 стало именем нарицательным как ксерокс, памперс и т.д., "автозамена" пишется дольше
28 СвинТуз
 
16.07.25
15:13
(21)
Выглядит все очень умно.
Прям как живой.
29 СвинТуз
 
16.07.25
15:15
(14) + (16)

Вообще шедевр.
30 Волшебник
 
16.07.25
16:22
(28) Вы учитывайте, что Вы сами ударились головой и не совсем нормальный.