|
Итоги по иерархии: как исключить верхний уровень? | ☑ | ||
---|---|---|---|---|
0
Гений 1С
гуру
11.01.23
✎
21:58
|
Есть иерархия:
Товары - Пиво - Водка - Квас И запрос с ИТОГИ по ИЕРАРХИЯ Можно как-то на уровне запроса исключить Товары? Чтобы выгружалось так: - Пиво - Водка - Квас А то на сайт выгружается именно таким запросом и выгружает верхнюю группу. (Розница) |
|||
1
НафНаф
11.01.23
✎
22:15
|
Зачем на уровне запроса?
|
|||
2
Быдло замкадное
11.01.23
✎
23:20
|
Где не товары.родитель пустая ссылка
|
|||
3
Гений 1С
гуру
12.01.23
✎
07:39
|
(2) не думаю.
|
|||
4
Гений 1С
гуру
12.01.23
✎
07:39
|
(1) чтобы потом дерево не перебирать
|
|||
5
НафНаф
12.01.23
✎
08:15
|
тогда мучайся https://infostart.ru/1c/articles/242824/
|
|||
6
Гений 1С
гуру
12.01.23
✎
13:24
|
(5) там запрос, а не СКД
|
|||
7
Гений 1С
гуру
12.01.23
✎
13:32
|
(2)
Возьмем пример с ИТС https://its.1c.ru/db/metod8dev/content/2659/hdoc
Вот так не работает, что и логично:
|
|||
8
Быдло замкадное
12.01.23
✎
13:37
|
(7) почему не работает то? Выведи поле Номенклатура.Родитель. Что у тебя там для элемента Товары?
|
|||
9
mistеr
12.01.23
✎
13:40
|
(4) Не ленись
|
|||
10
Ivan_495
12.01.23
✎
13:43
|
первый запрос во врем таблицу, во втором убираем строки = товары
|
|||
11
Гений 1С
гуру
12.01.23
✎
14:17
|
(10) у меня есть одна идея, счас попробую
|
|||
12
Гений 1С
гуру
12.01.23
✎
14:25
|
Идея не прокатила, а жаль:
|
|||
13
Гений 1С
гуру
12.01.23
✎
14:36
|
(10) так не получится, потому что этот запрос обходится по итогам. а плоская таблица как будет обойдена? отож
|
|||
14
mikecool
12.01.23
✎
14:42
|
(4) так тебе надо дерево без дерева?
|
|||
15
НафНаф
12.01.23
✎
14:43
|
и не получится в запросе, только в СКД
потому что все условия в запросе применяются на уровне SQL к "плоским детальным записям", а ИЕРАРХИЯ уже достраивается движком 1С после получения SQL-запроса. |
|||
16
mistеr
12.01.23
✎
14:44
|
(4) Вместо перебора дерева обходи выборку правильным способом.
|
|||
17
НафНаф
12.01.23
✎
14:45
|
(14) ему надо из дерева взять поддеревья, начиная со второго уровня, и построить из них новое дерево. В 1С библиотека коллекций так себе, поэтому много кодить придется.
|
|||
18
mikecool
12.01.23
✎
14:47
|
нет бы при выгрузке исключить первую выборку, так нет же - будем велокат изобретать...
|
|||
19
Гений 1С
гуру
12.01.23
✎
14:48
|
(16) там не мой код, не хочу глубоко вмешиваться. тогда проще убрать из дерева верхний уровень и протолкнуть дальше, я думал просто это как-то на уровне запроса можно сделать.
|
|||
20
Гений 1С
гуру
12.01.23
✎
14:48
|
(18) это как?
|
|||
21
Гений 1С
гуру
12.01.23
✎
14:49
|
(15) из обработки полученного дерева значений и применения СКД мне кажется проще через обработку ДЗ. Но я надеялся, что это как-то на уровне запроса можно сделать.
|
|||
22
mistеr
12.01.23
✎
14:50
|
(19) Понятно, см. (9)
|
|||
23
mistеr
12.01.23
✎
14:51
|
(21) Это делается на уровне выборки, читай СП.
|
|||
24
Гений 1С
гуру
12.01.23
✎
14:53
|
(23) что можно прописывать между ИТОГИ ПО ... ИЕРАРХИЯ на месте ... ?
Где это в СП? |
|||
25
НафНаф
12.01.23
✎
15:15
|
(23) жги решение
|
|||
26
mistеr
12.01.23
✎
15:17
|
(24) Про Выбрать() и про выборку читай внимательно.
|
|||
27
Ivan_495
12.01.23
✎
15:32
|
когда данные через выбрать перебираешь первыми идут итоги
|
|||
28
Гений 1С
гуру
12.01.23
✎
15:38
|
(26) 0 бит
|
|||
29
Сергиус
12.01.23
✎
15:39
|
(0)Можно попробовать ГДЕ Уровень() > 0 или как-то так.
|
|||
30
Гений 1С
гуру
12.01.23
✎
15:50
|
(29) это детальные записи фильтранет, а не результат.
Вот запрос, который надо ковырять Розница, редакция 2.3 (2.3.14.18) модуль ОбменССайтом:
|
|||
31
Ivan_495
12.01.23
✎
16:02
|
классификатор перебирай и удаляй ненужное
|
|||
32
Гений 1С
гуру
12.01.23
✎
16:04
|
(31) там дерево значений не так-то просто перебирать.
ладно, в итоге не стал париться с запросом, обрабатываю уже дерево в итоге:
Чутака доработал перемещение веток, чтобы порядок сохранялся. |
|||
33
НафНаф
12.01.23
✎
16:11
|
Если ВРЕГ(Строка.Номенклатура.Наименование) = ВРЕГ("Товары") Тогда
ГЕНИАЛЬНО! |
|||
34
Kassern
12.01.23
✎
16:26
|
(33) Ага, потом будет "Товары для сайта" и все, зовите Геню за доп плату)
|
|||
35
Гений 1С
гуру
12.01.23
✎
16:42
|
(34) ой, как смешно. гыгыгы
|
|||
36
Гений 1С
гуру
12.01.23
✎
16:43
|
(33) буквоед клюёт на главное (несомненно) в этом коде.
|
|||
37
Kassern
12.01.23
✎
16:53
|
(35) Думаете такое невозможно, или вы намерено так делаете?
|
|||
38
Kassern
12.01.23
✎
17:04
|
(35) Что мешало сделать на подобии такого?
"ВЫБРАТЬ | Номенклатура.Ссылка КАК Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Ссылка В ИЕРАРХИИ(&Товары) | И Номенклатура.ЭтоГруппа = ИСТИНА | И Номенклатура.Ссылка <> &Товары | |УПОРЯДОЧИТЬ ПО | Ссылка ИЕРАРХИЯ"; |
|||
39
Kassern
12.01.23
✎
17:11
|
А вообще использовать папки номенклатуры для структуры сайта - такое себе решение. Во-первых, менеджерам может быть не удобно работать, так как уже есть привычная для них структура, во-вторых нет возможности привязать один и тот же товар к разным группам (полезно для всяких новогодних групп, или вообще сезонных)
|
|||
40
Гений 1С
гуру
12.01.23
✎
17:38
|
(38) спроси об этом разработчиков 1це:РОзница
|
|||
41
Гений 1С
гуру
12.01.23
✎
17:38
|
(39) напиши об этом на Селезневку. Код не мой
|
|||
42
Гений 1С
гуру
12.01.23
✎
17:39
|
(38) и кстати, так ты Товары не исключишь
|
|||
43
Kassern
12.01.23
✎
17:39
|
(40) Так вы же костыли свои наяриваете, вот и спрашиваю, что вам мешало так сделать, а не привязываться к имени верхнего уровня?
|
|||
44
Kassern
12.01.23
✎
17:40
|
(42) Вы пробовали? Надеюсь заметили, что я сортировку использую, а не итоги?
|
|||
45
Kassern
12.01.23
✎
17:40
|
(41) " Код не мой" - "Если ВРЕГ(Строка.Номенклатура.Наименование) = ВРЕГ("Товары") Тогда" - а это чье?)
|
|||
46
Kassern
12.01.23
✎
17:43
|
Когда вы используете Итоги по элементу ТолькоИерархия, то он вам выведет все группы в иерархии, для всех элементов в таблице.
|
|||
47
Гений 1С
гуру
12.01.23
✎
18:11
|
(43) 1с породила религию людей, которые понтуются тем, что типа использовать наименование товара плохо. Не всегда. Практики ржут над вами, теоретики из франчей
|
|||
48
mistеr
12.01.23
✎
18:16
|
(32) >Если ВРЕГ(Строка.Номенклатура.Наименование) = ВРЕГ("Товары") Тогда
Классика Г-кода! |
|||
49
Гений 1С
гуру
12.01.23
✎
19:03
|
(38) Посмотрел запрос. Он выгрузится в плоскую таблицу, а не дерево. Не годится
|
|||
50
Гений 1С
гуру
12.01.23
✎
19:03
|
(48) о, секта перфекционистов набирает членов.
|
|||
51
Конструктор1С
12.01.23
✎
19:19
|
(48) это чудо-юдо иначе и не умеет. Даже удивляюсь, столько лет проработать, и кодить на уровне тупого джуна...
|
|||
52
Гений 1С
гуру
12.01.23
✎
20:42
|
(51) я ждал этого комментария именно от вас. А что джунового вы увидели в этом коде? Перетасовку иерархий?
|
|||
53
Kassern
13.01.23
✎
09:15
|
(49) Так вам же для сайта надо, зачем ему дерево? Достаточно выгружать тег с родителем и все, сайт сам без проблем соберет дерево.
|
|||
54
Гений 1С
гуру
13.01.23
✎
09:45
|
(53) сходи посмотри, как в рознице устроена выгрузка на сайт. Я тебе даже типовой код выложил в (30)
|
|||
55
Ботаник Гарден Меран
13.01.23
✎
09:52
|
(54)
Точно проверял (38)? |
|||
56
Гений 1С
гуру
13.01.23
✎
10:15
|
(55) я же по русски написал - там таблица а не дерево при выгрузке
|
|||
57
Kassern
13.01.23
✎
10:17
|
(56) А сайт на чем? Битрикс? Как потом это дерево на сайт идет, в каком виде? xml файлик в архиве?
|
|||
58
Kassern
13.01.23
✎
10:17
|
И типа многоуровневый блок с иерархией при выгрузке каталога?
|
|||
59
Ботаник Гарден Меран
13.01.23
✎
10:18
|
(56)
У мну дерево. Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка КАК Ссылка |ПОМЕСТИТЬ ВТ0 |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.ЭтоГруппа | И Номенклатура.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Номенклатура.Ссылка КАК Ссылка |ПОМЕСТИТЬ ВТ |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.ЭтоГруппа | И Номенклатура.Родитель В | (ВЫБРАТЬ | Т.Ссылка | ИЗ | ВТ0 КАК Т) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Номенклатура.Ссылка КАК Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Ссылка В ИЕРАРХИИ | (ВЫБРАТЬ | Т.Ссылка | ИЗ | ВТ КАК Т) | |УПОРЯДОЧИТЬ ПО | Ссылка ИЕРАРХИЯ |АВТОУПОРЯДОЧИВАНИЕ |"; пДерево = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); ЗначениеВРеквизитФормы(пДерево, "Дерево"); |
|||
60
Гений 1С
гуру
13.01.23
✎
10:21
|
(59) а зачем так много промежуточных таблиц? У меня в консоли выгружает в таблицу. Скинь скрин полученного дерева.
|
|||
61
Kassern
13.01.23
✎
10:21
|
(60) тут все дело в Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
|
|||
62
Ryzeman
13.01.23
✎
10:24
|
(35) Но ведь и правда смешно)
|
|||
63
Ботаник Гарден Меран
13.01.23
✎
10:27
|
(60)
Найди правильную консоль. |
|||
64
Гений 1С
гуру
13.01.23
✎
12:03
|
(62) Смешно тут в том, что обсуждается серьезная проблема, а люди цепляются к поиску по наименованию. Это классика буквоедства. Потому программистам и не дают бабы, что у них это в крови - заниматься буквоедством где не надо.
|
|||
65
Kassern
13.01.23
✎
12:05
|
(64) Смешно тут то, что человек с таким стажем, не может написать простой запрос, а привязывается к имени корневого справочника (ладно бы к параметру какому-нибудь, где передается ссылка на корень). Это ведь джунская тема так реализовывать.
|
|||
66
Kassern
13.01.23
✎
12:06
|
Если это для вас "серьезная проблема", то я умываю руки))
|
|||
67
Kassern
13.01.23
✎
12:10
|
(64) Ответьте еще раз на вопрос, чем вас не устроил вариант с "УПОРЯДОЧИТЬ ПО Ссылка ИЕРАРХИЯ" и ДЗ = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); ?
|
|||
68
Гений 1С
гуру
13.01.23
✎
12:16
|
(65) там есть и другие корневые группы, которые удалять нельзя, например "Подарочные сертификаты", продолжаем смеяться, Сеньор Помидор? ггг... Потому человек с таким стажем так и пишет, что понимает, что клиенту нафиг не уперлась лишняя галочка в номенклатуре, лишь бы сделать "по понятиям".
|
|||
69
Гений 1С
гуру
13.01.23
✎
12:17
|
(67) если работает, то ОК, но проверять уже не имеет смысла - работа сдана. Вы опоздали со своим предложением чутка, но все равно за него спасибо.
|
|||
70
Гений 1С
гуру
13.01.23
✎
12:17
|
(66) склоняю голову перед Великим Гуру, но как видите, до вас никто ничего путного пару дней подсказать не смог, пришлось делать по наитию.
|
|||
71
Гений 1С
гуру
13.01.23
✎
12:18
|
Можете давать эту задачу на собеседовании на Сеньора, но есть риск, что многие Тру Сеньоры не пройдут
|
|||
72
Kassern
13.01.23
✎
12:29
|
(68) "там есть и другие корневые группы, которые удалять нельзя, например "Подарочные сертификаты"" - Так наверное задачу надо расписывать правильно с учетом бизнес-процессов компании.
Даже в этом случае, вариант с параметром будет куда лучше, чем ваша реализация по наименованию. К примеру, у вас есть массив исключаемых групп. Вы в цикле проверяете, если такая есть там, то не выгружаете ее, вместо Наименование="Товары". Это даст возможность юзверам самим управлять, что грузить, а что нет, не дергая вас каждый раз (а может на это и расчет). Обычно заводят корневой каталог, к примеру Интернет-магазин. А внутри все его каталоги с нужной структурой. И делают это обычно через сегменты номенклатуры, а не через группы. И да, в рознице тоже есть сегменты, и вроде как для битрикса можно выбрать какую таблицу использовать для каталога сайта. |
|||
73
Гений 1С
гуру
13.01.23
✎
12:47
|
(72) не усложняй. Это не такая большая компания.
|
|||
74
НафНаф
13.01.23
✎
13:30
|
(64) а я смотрю, у тебя тема недополученного секса постоянно наружу выплескивается
|
|||
75
Конструктор1С
13.01.23
✎
15:40
|
(52) чуть меньше чем всё
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |