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

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

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

Оффлайн demon3

  • **
  • Сообщений: 96
  • РЕПУТАЦИЯ: 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

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

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

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


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


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

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

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

Оффлайн GRADUS

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

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

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


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


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

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

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

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

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


Теги:
 

Обнаружено дублирование ключевых значений в колонке ссылка ["обнаружено дублирование ключевых з

Автор lianinfoРаздел Пользователям "1С - Предприятие 8"

Ответов: 10
Просмотров: 685
Последний ответ 20 Мар 2018, 16:54
от alex0402
Вывод комментария в документ "Расходная накладная" из документа "Заказ покупателя"

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

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

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

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

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

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

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

Ответов: 6
Просмотров: 14204
Последний ответ 09 Июн 2010, 15:25
от Karamelkina

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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
152 Сообщений
oleg-x
68 Сообщений
alex0402
64 Сообщений
AIFrame AIFrame
57 Сообщений
wise wise
39 Сообщений
buketov.av buketov.av
36 Сообщений
KOI8-R
34 Сообщений
ilyay ilyay
29 Сообщений
Alter
28 Сообщений
trialex3
25 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal