Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: А Вы помните про передачу параметров по ссылке и рекурсию?

v7: А Вы помните про передачу параметров по ссылке и рекурсию?
Я
   slowpoke1C
 
28.08.18 - 15:40
Забавно, я занимался всякой ерундой, и тут получил тестовое задание по семёрке. В процессе решения задания вспомнил, что объекты "Запрос" и "Таблица" вполне можно передать в процедуру, это будут ссылки на существующий объект. И можно написать подобное:
[Code]
ТекстЗапр = "...";
Запр = СоздатьОбъект("Запрос");
Если Запрос.Выполнить() = 0 Тогда Возврат; КонецЕсли;

Табл = СоздатьОбъект("Таблица");
Табл.ВывестиСекцию("Шапка");
ТекущийУровень = 1;
ПроцедураВыводаУровня(Запр, Табл, ТекущийУровень);
//... а где-то рядом:


Процедура ПроцедураВыводаУровня(Зап, Таб, Ур)
    //Выводим текущий уровень

    // а потом - следующий

    ПроцедураВыводаУровня(Зап, Таб, Ур + 1);
КонецПроцедуры
[/Code]
Собственно вопрос: А вы помните особенности клюшек?
 
 
   2S
 
1 - 28.08.18 - 15:43
Никаких особенностей, вызывай саму себя до условия
   vde69
 
2 - 28.08.18 - 15:44
а при чем тут клюшки....

это работает и в восьмерке и в дельфи и еще куча где
   slowpoke1C
 
3 - 28.08.18 - 15:49
(2) Не, не. Я знаю про рекурсию, но забыл, что в клюшках параметры передаются по ссылке, а не копируются.
   vde69
 
4 - 28.08.18 - 15:56
(3) в клюшакх передаются и по  ссылкам и по значению

фун(знач а)


при передачи в нее простых данных будет передача по значению, при передачи ТЗ будет передача по ссылке вне зависимости от указания "знач", 

гдето есть статья на эту тему...
   Sserj
 
5 - 28.08.18 - 15:58
(3) Всмысле в "клюшках"?
Практически во всех языках объекты передаются по ссылке. Примитивные часто по значению но в слаботипизированных средах как таковых примитивов нет, это тоже неявные объекты.
   slowpoke1C
 
6 - 28.08.18 - 15:59
(4) Ага.
Два "Тархуна" этому господину!
   Злопчинский
 
7 - 28.08.18 - 16:40
(0) Кури почаще типовой код торговли. ьтам вовсю рекурсивная ВывестиИтоги при построении отчетов

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует