Имя: Пароль:
1C
 
Не работает рекурсивная функция
Ø (mikecool 18.11.2021 13:04)
, ,
0 dubolom
 
18.11.21
10:34
Почему-то эта функция зависает, не выдавая результата.

Функция ПолучитьПодчиненныеЭлементы(ЭлементСправочникаКонтрагентов = Неопределено)
    Запрос = Новый Запрос;
    Запрос = "ВЫБРАТЬ
             |   Элемент
             |ГДЕ
             |   Элемент.Родитель = Элемент";
    Если Элемент<>Неопределено Тогда
        Запрос.УстановитьПараметр(ЭлементСправочникаКонтрагентов);
    КонецЕсли;
    ВозвращаемоеЗначение = ПолучитьПодчиненныеЭлементы(ЭлементСправочникаКонтрагентов);
    Запрос.УстановитьПараметр(ПолучитьПодчиненныеЭлементы(ВозвращаемоеЗначение));
    Запрос.Выполнить(ВозращаемоеЗначение);
    Запрос = ОбходРезультатаЗапроса.ПоГруппировкамСИерархией;
    Возврат Запрос;
    Запрос = Неопределено;
КонецФункции

Я хочу получить всё дерево иерархии элементов, возможно, там где-то зацикливание уровней??
1 Галахад
 
гуру
18.11.21
10:43
Хм. Вроде четверг не среда, и тем более не пятница...
2 PLUT
 
18.11.21
10:46
(0) попробуй добавить

Пока Истина Цикл

Конец Цикла
3 1Сергей
 
18.11.21
10:48
Это явно стёб
4 УдавВПопугаях
 
18.11.21
10:51
явно
5 Kassern
 
18.11.21
10:52
(0) красота)
  "Запрос.Выполнить(ВозращаемоеЗначение);
    Запрос = ОбходРезультатаЗапроса.ПоГруппировкамСИерархией;
    Возврат Запрос;
    Запрос = Неопределено; "
6 mistеr
 
18.11.21
10:53
(0) Конечно, есть зацикливание. Я не вижу условия выхода из рекурсии.
7 Kassern
 
18.11.21
10:53
8 Filin
 
18.11.21
10:53
Нейросеть сбербанка учится писать на 1С )))
9 1Сергей
 
18.11.21
10:54
(8) +1
10 Мультук
 
гуру
18.11.21
10:56
(8) в качестве источника для обучения используя мисту? :-)
11 fisher
 
18.11.21
10:58
Github Copilot для 1С тренируют.
12 УдавВПопугаях
 
18.11.21
11:05
(6) чего там не видите? там как то даже выполнения запроса нет, просто текст, потом рекурсия сразу, вот и крутит, где то как в (2) написали
13 fisher
 
18.11.21
11:09
В (2) отличная оптимизация. Хотя бы стек забивать не будет. А ниже зацикливания код вообще лучше не читать, во избежание. Сегодня ведь еще работать.
14 rphosts
 
18.11.21
11:15
(0) Отличный код, приходи к нам работать, у нам ОК разнорабочих вроде искали
15 Вася Теркин
 
18.11.21
11:19
(6) У рекурсии нет выхода, хотя автор пробил таки дно.
16 Dmitrii
 
гуру
18.11.21
11:21
(0) Тема о том нафига нужны регистры была вчера интереснее.
17 dubolom
 
18.11.21
11:53
(2) Куда?
18 mTema32
 
18.11.21
11:56
Эта функция синтаксис-проверку не пройдет. Как она может работать? Тут вопрос риторический.
19 dubolom
 
18.11.21
12:03
(18) Очень хороший код и всё проходит
20 pechkin
 
18.11.21
12:04
Дело Светы живет?
21 acht
 
18.11.21
12:08
(20) Света была потоньше, поестественней и тщательней относилась к своему образу.
Тут если только новички какие поведутся.
22 Kassern
 
18.11.21
12:09
(19) "{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(14,10)}: Переменная не определена (Элемент)
    Если <<?>>Элемент<>Неопределено Тогда (Проверка: Сервер)
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(19,22)}: Переменная не определена (ВозращаемоеЗначение)
    Запрос.Выполнить(<<?>>ВозращаемоеЗначение); (Проверка: Сервер)
"
Это так "всё проходит"?)
23 Kassern
 
18.11.21
12:10
(22) и да ВозвращаемоеЗначение<>ВозращаемоеЗначение
24 Kassern
 
18.11.21
12:11
ну так поведайте как у вас синтакс проверку проходит этот кусок кода? У вас вообще проверка кода работает?
25 dubolom
 
18.11.21
12:12
что такое проверка крода
26 Kassern
 
18.11.21
12:14
за "крода" не скажу, а вот проверку модуля можно выполнить путем нажатия Ctrl+F7
27 Галахад
 
гуру
18.11.21
12:15
(25) Это для слабаков.
28 Kassern
 
18.11.21
12:16
(26) либо нажать на кнопку в конфигураторе https://yadi.sk/i/kIn9rYAVCMaKKw
29 dubolom
 
18.11.21
12:16
У иеня всё работает, просто скинул прошлую версию
30 dubolom
 
18.11.21
12:16
обрботки
31 mikecool
 
18.11.21
12:17
забанить автора за троллинг
32 mTema32
 
18.11.21
12:18
(31) поддерживаю
33 dmpl
 
18.11.21
12:18
(22) Элемент - это может быть реквизит формы. Ну а вторая ошибка - сделайте скидку на то, что он руками текст вводил в браузере :)
34 Галахад
 
гуру
18.11.21
12:18
(31) Какой же это троллинг? Вроде это единственная тема на первой странице, где есть какой-то код.
35 mikecool
 
18.11.21
12:21
(34) согласен, может это очередная ипостась NIGHTHUNTER
36 mTema32
 
18.11.21
12:23
(33)         Запрос = "ВЫБРАТЬ
             |   Элемент
             |ГДЕ
             |   Элемент.Родитель = Элемент";

А это вот что?
37 dubolom
 
18.11.21
12:23
(36) Я так получаю все элементы вложенные в элемент
38 mistеr
 
18.11.21
12:24
(29) Значит, вопрос решен?
39 acht
 
18.11.21
12:25
(35) Ты историю тем от автора посмотри.
Он тут наоборот, последними постами ливингстара и вдохновился.
40 dubolom
 
18.11.21
12:30
должно же работать все
41 dubolom
 
18.11.21
12:37
вобщем по-моему рекурсия для этого форума - это слишком сложно
42 unbred
 
18.11.21
12:38
(40) читай (29)
43 Галахад
 
гуру
18.11.21
12:40
(41) Какая еще рекурсия на форуме про ЗОЖ и политику?
44 1Сергей
 
18.11.21
12:43
Не кормите его
45 dubolom
 
18.11.21
12:49
(44) кого
46 mikecool
 
18.11.21
13:01
(45) слоника