powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Вывести на печать дерево
35 сообщений из 35, показаны все 2 страниц
Вывести на печать дерево
    #38370614
Титов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вопрос есть дерево значений, хочу сотворить печатную форму для него типа:
1. Номенклатура; Серия
1.1 Номенклатур; Серия
1.2 Номенклатура; Серия
1.2.1 Номенклатур; Серия
2. Номенклатура; Серия
2.1 Номенклатура; Серия
2.1.1 Номенклатура; Серия
2.1.1.1 Номенклатура; Серия
2.1.2 Номенклатура; Серия
2.1.3 Номенклатура; Серия
2.2 Номенклатура; Серия


и т.д. подскажите как это можно сделать!



каждый правит свой жизнью сам, и не ной что она у тебя хуже чем у других, она всегда такой будет.!
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38370625
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Титов,
вы же как-то обходили дерево в прошлой своей теме, обходите так же и печатайте
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38370632
Титов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapecker,

дерево то я обошел, у меня щас проблема с нумерацией, заказчик хочет что бы выглядело это именно так, а как это сотворить чет не придумаю!
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38370643
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проблема то в чем? код в пределах подчинения... и выводить полный код, меняя "/" (или что там в качестве разделителя) на ".". В СКД рисуется "за недолго".
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38370650
Титов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Последний выдох ГПЖ,

проблема в том что это не СКД
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38370651
Титов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Последний выдох ГПЖ,

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Процедура ОсновныеДействияФормыОсновныеДействияФормыВыполнить(Кнопка)
	Макет = ЭтотОбъект.ПолучитьМакет("МакетПечати");
	Шапка = Макет.ПолучитьОбласть("Шапка");
	СтрокаДокумента = Макет.ПолучитьОбласть("Строка");
	ДокументРезультат = Новый ТабличныйДокумент;
	ДокументРезультат.Вывести(Шапка);
	ТаблицаЗначеий = ВыгрузитьДеревоЗначенийВТаблицуЗначений(ДеревоСвободныхОстатков);
	Для Каждого СтрокаТЧ из ТаблицаЗначеий Цикл 
		СтрокаДокумента.Параметры.Наименование = СтрокаТЧ.Наименование; 
		СтрокаДокумента.Параметры.Серия = СтрокаТЧ.СерияНоменклатуры;
		СтрокаДокумента.Параметры.Артикул = СтрокаТЧ.Артикул;
		СтрокаДокумента.Параметры.ЕдИзм = СтрокаТЧ.ЕденицаИзм;
		СтрокаДокумента.Параметры.Количество = СтрокаТЧ.Количество;
		//СтрокаДокумента.Параметры. = СтрокаТЧ. ;
		ДокументРезультат.Вывести(СтрокаДокумента);	
	КонецЦикла;
	
	
	УниверсальныеМеханизмы.НапечататьДокумент(ДокументРезультат, , , Заголовок);
КонецПроцедуры



принцип вывода информации
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38370652
Титов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Последний выдох ГПЖ,

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Функция ВыгрузитьДеревоЗначенийВТаблицуЗначений(Дерево, Таблица = Неопределено) Экспорт
	
	Если Таблица = Неопределено Тогда
		Таблица = Новый ТаблицаЗначений;
		Для Каждого Колонка Из Дерево.Колонки Цикл
            Таблица.Колонки.Добавить(Колонка.Имя, Колонка.ТипЗначения);
        КонецЦикла;
    КонецЕсли;
    Для Каждого СтрокаДерева Из Дерево.Строки Цикл
        ЗаполнитьЗначенияСвойств(Таблица.Добавить(), СтрокаДерева);
        ВыгрузитьДеревоЗначенийВТаблицуЗначений(СтрокаДерева, Таблица);
    КонецЦикла;
    Возврат Таблица;

КонецФункции



принцип получения ее из Дерева
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38370656
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что мешает также дерево обойти в рекурсии и нарисовать?
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38370658
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
возьмите за основу универсальный отчет на построителе - там еще и раскраска уровней есть
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38370661
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Последний выдох ГПЖа что мешает также дерево обойти в рекурсии и нарисовать?

йа наверное тупой, мне не понятно покой перегружать дерево в плоскую таблицу рекурсией...

еще мне более не понять если дерево есть результат запроса - накой вообще эта городьба с деревом и таблицей
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38370667
Титов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Последний выдох ГПЖ,

рекурсия мешается тем что я не знаю сколько уровней есть в дереве, если писать по это дело грамотную рекурсию то это слишком здорово получается, по этому я поступил проще, заполнил в начале Тч с ключевыми колонками КлючСтроки и КлючУровня а потом впихнул все это в дерево процедура прошла на ура, и рекурсия нафиг не понадобилась! а вот с выводом в печатную форму у меня чет проблемки выходят, хотелось бы приме живой! спасибо
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38370685
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>рекурсия мешается тем что я не знаю сколько уровней есть в дереве

ппц

>а вот с выводом в печатную форму у меня чет проблемки выходят, хотелось бы приме живой!

возьмите любой отчет на основе универсального с построителем и не ипите мозги себе и людям...
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38370978
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне рекурсия помешала только где-то на 30 вложениии...

Аналог ИзСтрокиСРазделителями() в 8 и в той строчке было десяток мегабайт. Рухнуло.
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38371103
Титов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1с,
вот собственно у меня схожая ситуация! ну да ладно объясню как есть у нас фирма производящая авто. сами понимаете спецификаций в УПП до одури даже номенклатуры меньше, и уровней в самой маленькой спецификации 40 вот по этому рекурсия не катит для меня!
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38371296
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Титовjavapecker,

дерево то я обошел, у меня щас проблема с нумерацией, заказчик хочет что бы выглядело это именно так, а как это сотворить чет не придумаю!Ну так Вы когда добавляете строку в ТЗ, кто мешает Вам сразу и код ее делать?

Что-то типа:

а - нумерация в пределах данной ветки дерева
Строка.Код=Строка.Родитель.Код+"."+а;

Все, или еще есть проблемы?

Свою ТЗ - запихивайте в СКД и выводите дальше как и что хотите с любыми отборами.
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38371461
sWinTyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТитовПрограммист 1с,
вот собственно у меня схожая ситуация! ну да ладно объясню как есть у нас фирма производящая авто. сами понимаете спецификаций в УПП до одури даже номенклатуры меньше, и уровней в самой маленькой спецификации 40 вот по этому рекурсия не катит для меня!

рекурсия это зло , Вы только представьте , что каждый раз когда вызывается функция
в ваше лицо летит кирпич ...
после 12-го удара Ваше лицо превратиться в тыкву

каждый раз при вызове функции создается контекст
и в каждый Ваш контекст впихивается ваше ТЗ (снова и снова)
чем больше ТЗ = тем ближе писец ...

мне еще в универе за рекурсию бал снижали
научили на всю оставшуюся жизнь
но есть отдельные товарищи ...
кстати например Митичкин сторонник рекурсии
не битый кирпичом наверное еще
хотя ... система у него падает вроде как периодически
и наверняка клавиатуры виснут ...

ну да бог с этим всем
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38371464
sWinTyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1с
Свою ТЗ - запихивайте в СКД и выводите дальше как и что хотите с любыми отборами.

да можно в СКД
можно и без СКД и рекурсии
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38371524
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sWinTyz, если рекурсия зло - ее бы не было. И в принципе при разумном количестве вложений - это нормально, и создает более удобочитаемый код.
Но и недостатки - возможное обрушение при нехватки памяти ... и тд и тп - надо просто их учитывать при написании данных функций.
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38371557
Фотография Владимир Лазурко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот немного о деревьях: инфостарт .
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38371579
Фотография Владимир Лазурко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
Процедура ВывестиСекцию(Секция, Выборка)

    Область = Макет.ПолучитьОбласть(пСекция);
    Область.Параметры.Заполнить(пВыборка);

    // Обрати внимание на Выборка.Уровень() - это источник твоего счетчика
    ЭлементыФормы.ТабДок.Вывести(Область, Выборка.Уровень()+1);

КонецПроцедуры
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38371581
Фотография Владимир Лазурко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упс, недокопипастил
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
Процедура ВывестиСекцию(Секция, Выборка)

    Область = Макет.ПолучитьОбласть(пСекция);
    Область.Параметры.Заполнить(пВыборка);

    ЭлементыФормы.ТабДок.Вывести(Область, Выборка.Уровень()+1);

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

Процедура ПечататьДерево(СтрокиДЗ)

    // Уровни группировок:
    //    0 - Склад
    //    1 - Товар
    //    2 - Регистратор

    Для Каждого СтрокаДерева Из СтрокиДЗ Цикл

        Если СтрокаДерева.Строки.Количество() = 0 Тогда
            Если ЗначениеЗаполнено(СтрокаДерева.Номенклатура) Тогда
                ВывестиСекцию("Номенклатура", СтрокаДерева);
            КонецЕсли;
            Продолжить; // Обошли строки, возврат к группировкам, иначе будет каша
        КонецЕсли;

        ВывестиСекцию(?(СтрокаДерева.Уровень()=0, "Склад", "Номенклатура"), СтрокаДерева);
        ПечататьДерево(СтрокаДерева.Строки);

    КонецЦикла;

КонецПроцедуры // СчитатьСуммыДЗ()
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38371651
sWinTyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1сsWinTyz, если рекурсия зло - ее бы не было. И в принципе при разумном количестве вложений - это нормально, и создает более удобочитаемый код.
Но и недостатки - возможное обрушение при нехватки памяти ... и тд и тп - надо просто их учитывать при написании данных функций.

тем не менее ... приходилось переделывать за людьми
как раз в УПП на развертке спецификаций
при более менее приличном объеме контекста отжирает все ресурсы
я вообще не понимаю зачем она?
ну да коротко, только есть ли краткость сестра таланта в этом случае?

кстати знаю способ как через палитру цветов и безобидную раскраску областей
гарантировано выключить клавиатуру
обращайтесь , за символическую плату организую геморрой админам вашим
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38372547
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sWinTyz, все имеет свои области применения. Если вывести дерево - то да это легко. А вот если у тебя нереальная фрактальная функция (И там допустим сотни разных красивых строчек...)... И как раз при выполнения данной функции - пользователь задает количество рекурсий, в зависимости от памяти и мощности своего компьютера. И на выходе получает картинку нужного ему разрешения.
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38373428
sWinTyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну да ...
помню я намутил с запросом ...
еще только начинал с 8-кой
раньше фокс был ... никогда не мутил с большими запросами
а в 8-ке на старте на было временных таблиц ...
ну я типа ... как брейнтрейнинг в СКЛ сервере
напишу все одним мощным ...
написал ...
оказалось : если файловая перескрипит и выдаст
скл версия просто падает
вот тебе и красота ... брейнтрейниг ...
хорошо что версия с временными таблицами появилась
вовремя мы тогда платформу обновили
заодно на практике оценил
что убивает систему в запросах
позже я об этом в умных книгах читал ...

з.ы.
нет областей применения у рекурсии
простой пример :
факториал легко считается в цикле и быстрее
в универе мы на практике проверяли
(машины тогда были слабее)
что рекурсия работает безбожно долго
можно сказать на порядок
а сдыхает на два порядка раньше

это как в задаче о поиске простых чисел
можно и в лоб ... но решето Эратосфена рулит

из пустого в порожнее переливаем ...
очень вредная инфекция для не устоявшихся умов
= есть рекурсия
я при своем останусь


кстати и дерево перебирал в логистике транспортной
а рекурсия бы сдохла там где я быстро относительно считал
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38373432
sWinTyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в наше время , каждый кто получил высшее аграрное
считает что он может работать программистом 1с
вот и влезают во всякую фигню
школы то нет
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38373451
Титов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sWinTyz,

так все завернули ветку! рекурсию я не использую я же сказал! не спорте понапрасну и нумерацию я оформил красиво кому надо обращайтесь помогу
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38373467
sWinTyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у нас тут отвлеченный диспут
мы решаем с какого конца яйцо правильно бить
с острого или же тупого
как решим = будем решать где у палки конец а где начало
не мешайте
мы работаем
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38373473
Титов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sWinTyz,

эх москалята я вас за это и не люблю слов много функционала мало!))
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38373488
sWinTyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
москали бывают разные ...
с другой стороны скоро всего 4-й год в Москве пойдет , а уже такая ... ?
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38373495
sWinTyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТитовsWinTyz,

обращайтесь помогу

вообще фигня вопрос это нумерация
лучше помоги профа по платформе сдать
хотя ... тоже не задача
просто готовиться времени мало
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38373532
Фотография Владимир Лазурко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТитовsWinTyz,

так все завернули ветку! рекурсию я не использую я же сказал! не спорте понапрасну и нумерацию я оформил красиво кому надо обращайтесь помогуТебе помогли, поделись приобретенным опытом.
Мне вот интересно про нумерацию. Покажи, как делал.
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38373546
Титов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Лазурко,

завтра выложу, нужно оформить все красиво!
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38373926
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sWinTyzз.ы.
нет областей применения у рекурсии
простой пример :
факториал легко считается в цикле и быстрее
в универе мы на практике проверяли
(машины тогда были слабее)
что рекурсия работает безбожно долго
можно сказать на порядок
а сдыхает на два порядка раньше

это как в задаче о поиске простых чисел
можно и в лоб ... но решето Эратосфена рулит

из пустого в порожнее переливаем ...
очень вредная инфекция для не устоявшихся умов
= есть рекурсия
я при своем останусь


кстати и дерево перебирал в логистике транспортной
а рекурсия бы сдохла там где я быстро относительно считалА если взять ряды где последующий член находится из предыдущего? Самый просто пример а(n+1)=а(n)+tg(а(n))

Еще вариант - поиск наикратчайшего пути в лабиринте. Как раз там древовидная структура - с непонятным количеством ветвей.
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38373955
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТитовВладимир Лазурко,

завтра выложу, нужно оформить все красиво!

выкладывай, посмотрим что там накручено такого
...
Рейтинг: 0 / 0
Вывести на печать дерево
    #38374082
sWinTyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1сsWinTyzз.ы.
нет областей применения у рекурсии
простой пример :
факториал легко считается в цикле и быстрее
в универе мы на практике проверяли
(машины тогда были слабее)
что рекурсия работает безбожно долго
можно сказать на порядок
а сдыхает на два порядка раньше

это как в задаче о поиске простых чисел
можно и в лоб ... но решето Эратосфена рулит

из пустого в порожнее переливаем ...
очень вредная инфекция для не устоявшихся умов
= есть рекурсия
я при своем останусь


кстати и дерево перебирал в логистике транспортной
а рекурсия бы сдохла там где я быстро относительно считалА если взять ряды где последующий член находится из предыдущего? Самый просто пример а(n+1)=а(n)+tg(а(n))

Еще вариант - поиск наикратчайшего пути в лабиринте. Как раз там древовидная структура - с непонятным количеством ветвей.

а как вам транспортные задачи , как раз дерево с неизвестным количеством ветвей
обошелся без рекурсии
вообще не знаю
нет такой цели спорить
скажем так : если придется применить рекурсию
буду сильно разочарован в своих умственных способностях
насчет кратчайшего пути не знаю не писал игр никогда
но смахивает на поиск оптимального маршрута для машин
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / [игнор отключен] [закрыт для гостей] / Вывести на печать дерево
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]