IE 2016

Печать объекта Дерево+Таблица внешней компоненты FormEx

Опубликовал venger в раздел Программирование - Внешние компоненты

Внешний отчет/обработка - печатает объект "Дерево+Таблица" в древовидной форме, используя внешнюю компоненту Yoksel. Выводит столбцы с учетом параметров колонок "ТаблицыЗначений" (заголовка, форматной строки, положения). Благодаря использованию внешней компоненты Yoksel, выводит на печать с учетом вложенности узлов, создавая соответствующие группировки в печатной форме, которые сохраняются и при сохранении в Excel.

Если Вы не знаете, что такое "Дерево+Таблица" и с чем его едят, познакомиться можно тут: http://infostart.ru/public/74192/

Если уже знаете, то продолжим. Скачайте внешнюю компоненту Yoksel с сайта http://yoksel.net.ru.  Последнюю стабильную сборку можно взять тут: http://yoksel.net.ru/Hotfixes. Из скачанного архива нужно распаковать файл «SpreadSheet.dll» в папку конфигурации или в папку «Bin» платформы 1С 7.7. После чего, эту внешнюю обработку «ПечатьДерева.ert» положите в подпапку «ExtForms» папки конфигурации.

Теперь в коде любой обработки, отчета, справочника и т.д. Вашей кофигурации, где есть объект Дерево+Таблица, создайте кнопку «Печать», в формуле этой кнопки укажите процедуру «Печать()» и в процедуре «Печать()» в модуле формы обработки, отчета, справочника и т.д. напишите такой код (исключая комментарии, конечно):

Процедура Печать()
// Список параметров печати
СпПарам = СоздатьОбъект("СписокЗначений");
// ТЗ - "ТаблицаЗначений", которая является объектом "Дерево+Таблица"
СпПарам.ДобавитьЗначение(ТЗ, "Дерево");
// "Йоксель: Дерево+Таблица" - необязательный параметр, можно задать
// строку заголовка печатной формы
СпПарам.ДобавитьЗначение("Йоксель: Дерево+Таблица", "Заголовок");
// "ИдКолонки,ИдКолонки,ИдКолонки" - необязательный параметр, список
// идентификаторов колонок "ТаблицыЗначений" через запятую, которые
// нужно вывести, кроме служебных. Служебные - "Ветка","Значек","ИмяВетки".
// Если не задан или пустая строка - то выводит все колонки, кроме
// служебных, но "ИмяВетки" выводится всегда.
СпПарам.ДобавитьЗначение("ИдКолонки,ИдКолонки,ИдКолонки", "Колонки");
// Флаг выводить узлы свернутыми или нет. Если =1, то все развернуты.
// Если =0, то все свернуты. Необязательный параметр, по умолчанию =0.
СпПарам.ДобавитьЗначение(1, "Развернуть");
// Собственно вывод на печать
ОткрытьФорму("Отчет", СпПарам, КаталогИБ()+"ExtForms\ПечатьДерева.ert");
КонецПроцедуры
// Печать

И теперь при нажатии на нашу кнопку «Печать» - откроется печатная форма с нашим деревом. Щелкая мышкой по плюсикам/минусикам (слева), можно разворачивать и сворачивать узлы, наслаждаясь полученным эффектом.

 

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
ПечатьДерева.zip
.zip 7,64Kb
17.08.10
168
.zip 7,64Kb 168 Скачать

См. также

Лучшие комментарии

1. Noy (файл скачал) 25.08.2010 14:27
А зачем
Служебные - "Ветка","Значек","ИмяВетки".


из-за этого никакой универсальности нет. в готовую конфу это не прикрутишь
:(
Ответили: (2) (4)
+ 1 [ venger; ]
# Ответить

Комментарии

1. Noy (файл скачал) 25.08.2010 14:27
А зачем
Служебные - "Ветка","Значек","ИмяВетки".


из-за этого никакой универсальности нет. в готовую конфу это не прикрутишь
:(
Ответили: (2) (4)
+ 1 [ venger; ]
# Ответить
2. venger 27.08.2010 14:04
(1) Да, надо будет по номерам сделать
# Ответить
3. mikolamail (файл скачал) 05.09.2010 15:22
В процедуре "ПечатьДеревоПлюсТаблица(Дерево,Колонки,Таблица,ГруппыСтрок,СтрокаДерева="",Счетчик=0,НижниеУровни=0) "

надо объявить переменную:

Перем Сч;

Иначе происходит зацикливание процедуры, когда количество элементов на разных уровнях разное!
# Ответить
4. Иваныч 22.11.2013 15:17
(1) Noy, Чего Вы так пессимистично, ведь руки-то у Вас есть. А что неясно, автора спросите и все получится
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл