Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
18 Дек 2017, 00:39
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Рекурсивный перебор дерева значений и вывод в макет  (Прочитано 7252 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн demon3

  • **
  • Сообщений: 93
  • РЕПУТАЦИЯ: 1
  • КПД: 1%
  • Регистрация: 2013-04-11
    • Skype: interavto88
  • Сайт: 
  • Профессия: Программист 1С
написал вот такой код. но почему то при нажатии кнопки печать,выводится столько табл документов,сколько элементов в дереве значений. и в последних двух табличн документах только строки номенклатуры. поправьте пожалуйста.

Процедура ОсновныеДействияФормыПечать(Кнопка)

Дерево(деревоспецификаций);


КонецПроцедуры


Процедура Дерево(МП,Уровень=0)
 ТабДокумент = Новый ТабличныйДокумент;
    Макет = ЭтотОбъект.ПолучитьМакет("Макет");
    ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
//Обходим строки текущего уровня дерева
Для Каждого СтрДерева Из мп.Строки Цикл
   ОбластьСтрока.Параметры.Номенклатура = СтрДерева.СтрЭл;
   ТабДокумент.Вывести(ОбластьСтрока);
   Сообщить(СтрДерева.СтрЭл);
Дерево(СтрДерева,Уровень+1);
КонецЦикла;
ТабДокумент.Показать();
КонецПроцедуры
Помог ответом, скажи спасибо

Последний раз редактировалось: MuI_I_Ika; 07 Фев 2014, 22:58


Оффлайн GRADUS

  • *****
  • Сообщений: 699
  • РЕПУТАЦИЯ: 51
  • КПД: 7%
  • Регистрация: 2013-06-08
  • Сайт: 
  • Профессия: Программист 1С
написал вот такой код. но почему то при нажатии кнопки печать,выводится столько табл документов,сколько элементов в дереве значений. и в последних двух табличн документах только строки номенклатуры. поправьте пожалуйста.

Процедура ОсновныеДействияФормыПечать(Кнопка)

Дерево(деревоспецификаций);


КонецПроцедуры


Процедура Дерево(МП,Уровень=0)
 ТабДокумент = Новый ТабличныйДокумент;
    Макет = ЭтотОбъект.ПолучитьМакет("Макет");
    ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
//Обходим строки текущего уровня дерева
Для Каждого СтрДерева Из мп.Строки Цикл
   ОбластьСтрока.Параметры.Номенклатура = СтрДерева.СтрЭл;
   ТабДокумент.Вывести(ОбластьСтрока);
   Сообщить(СтрДерева.СтрЭл);
Дерево(СтрДерева,Уровень+1);
КонецЦикла;
ТабДокумент.Показать();
КонецПроцедуры

Вроде рекурсии нет, по-моему только первый уровень дерева у тебя выводится.
Не уверен, что вот это: "Дерево(СтрДерева,Уровень+1);" Вообще что то должно сделать с твоим деревом.

Оффлайн demon3

  • **
  • Сообщений: 93
  • РЕПУТАЦИЯ: 1
  • КПД: 1%
  • Регистрация: 2013-04-11
    • Skype: interavto88
  • Сайт: 
  • Профессия: Программист 1С
написал вот такой код. но почему то при нажатии кнопки печать,выводится столько табл документов,сколько элементов в дереве значений. и в последних двух табличн документах только строки номенклатуры. поправьте пожалуйста.

Процедура ОсновныеДействияФормыПечать(Кнопка)

Дерево(деревоспецификаций);


КонецПроцедуры


Процедура Дерево(МП,Уровень=0)
 ТабДокумент = Новый ТабличныйДокумент;
    Макет = ЭтотОбъект.ПолучитьМакет("Макет");
    ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
//Обходим строки текущего уровня дерева
Для Каждого СтрДерева Из мп.Строки Цикл
   ОбластьСтрока.Параметры.Номенклатура = СтрДерева.СтрЭл;
   ТабДокумент.Вывести(ОбластьСтрока);
   Сообщить(СтрДерева.СтрЭл);
Дерево(СтрДерева,Уровень+1);
КонецЦикла;
ТабДокумент.Показать();
КонецПроцедуры

Вроде рекурсии нет, по-моему только первый уровень дерева у тебя выводится.
Не уверен, что вот это: "Дерево(СтрДерева,Уровень+1);" Вообще что то должно сделать с твоим деревом.

у меня выводится все как надо. но только открываются много табличных документов для печати, я так понимаю строка :ТабДокумент.Показать() не там стоит где надо
Помог ответом, скажи спасибо

Оффлайн GRADUS

  • *****
  • Сообщений: 699
  • РЕПУТАЦИЯ: 51
  • КПД: 7%
  • Регистрация: 2013-06-08
  • Сайт: 
  • Профессия: Программист 1С
написал вот такой код. но почему то при нажатии кнопки печать,выводится столько табл документов,сколько элементов в дереве значений. и в последних двух табличн документах только строки номенклатуры. поправьте пожалуйста.

Процедура ОсновныеДействияФормыПечать(Кнопка)

Дерево(деревоспецификаций);


КонецПроцедуры


Процедура Дерево(МП,Уровень=0)
 ТабДокумент = Новый ТабличныйДокумент;
    Макет = ЭтотОбъект.ПолучитьМакет("Макет");
    ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
//Обходим строки текущего уровня дерева
Для Каждого СтрДерева Из мп.Строки Цикл
   ОбластьСтрока.Параметры.Номенклатура = СтрДерева.СтрЭл;
   ТабДокумент.Вывести(ОбластьСтрока);
   Сообщить(СтрДерева.СтрЭл);
Дерево(СтрДерева,Уровень+1);
КонецЦикла;
ТабДокумент.Показать();
КонецПроцедуры

Вроде рекурсии нет, по-моему только первый уровень дерева у тебя выводится.
Не уверен, что вот это: "Дерево(СтрДерева,Уровень+1);" Вообще что то должно сделать с твоим деревом.

у меня выводится все как надо. но только открываются много табличных документов для печати, я так понимаю строка :ТабДокумент.Показать() не там стоит где надо

Аааа, вот что за Дерево() xDDDD
У тебя не может все как надо выводиться, так как ты создаешь таб доки столько раз, сколько уровней у дерева.
+ Вывод каждого уровня у тебя отдельно идет.

Отделяй рекурсия от создания и от вывода.


Теги:
 

Вывод комментария в документ "Расходная накладная" из документа "Заказ покупателя"

Автор ОльгаПлРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 214
Последний ответ 07 Окт 2017, 19:03
от Norfolk
Вывод результата запроса через условие другого запроса

Автор jonik_jokerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 2913
Последний ответ 16 Окт 2013, 15:08
от jonik_joker
Вывод линейной таблицы посредством СКД в виде "шахматки"

Автор VdegРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 9
Просмотров: 10754
Последний ответ 19 Апр 2011, 11:12
от Klyacksa
Как добавить вывод ДоговораКонтрагента в печатную форму "Счет на оплату"

Автор ValentusРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 12978
Последний ответ 09 Июн 2010, 15:25
от Karamelkina
"Таблица значений" в результате запроса - 1С

Автор mvk843Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 8
Просмотров: 751
Последний ответ 15 Июн 2017, 07:53
от mvk843

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
133 Сообщений
ilyay ilyay
63 Сообщений
AIFrame
61 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
41 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
27 Сообщений
alexandr_ll
23 Сообщений

* Кто онлайн

  • Точка Гостей: 192
  • Точка Скрытых: 0
  • Точка Пользователей: 6
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal