Отчет с присоединением областей.

1. Артем Т (Twirus) 27.12.16 16:58 Сейчас в теме
Добрый день. Подскажите пож-та, как можно реализовать присоединенную область со стрелками.Есть отчет, с иерархией. Хочется сделать красиво, добавить стрелки что откуда и куда см 1 скрин. Незнаю как сделать помогите советом. Скрин 2 как сейчас все выглядит в сформированном состоянии. Скрин 3 макет рабочего отчета. Пример рабочего кода.
 Процедура ВыводБлокаВТабличныйДокумент(Значение,ВариантУсловия="",Присоединение=Ложь)   
   Если не Присоединение Тогда
       НомерКолонки=0;
       Для А=1 По Вложенность Цикл       
           НомерКолонки=НомерКолонки+1;
           Если НомерКолонки=1 Тогда
               Результат.Вывести(омПустойБлок);
           Иначе
               Результат.Присоединить(омПустойБлок);
           КонецЕсли;       
       КонецЦикла;   
   КонецЕсли;
   омБлокУсловия.Параметры.Значение=Значение;   
   омБлокУсловия.Параметры.ВариантУсловия=ВариантУсловия;
   Если Присоединение ИЛИ НомерКолонки<>1  Тогда
       //
       Результат.Присоединить(омБлокСтрела);
       //
       Результат.Присоединить(омБлокУсловия);       
   Иначе
       Результат.Вывести(омБлокУсловия);   
   КонецЕсли;   
   ВариантУсловия="";
   Присоединение=Ложь;   
КонецПроцедуры

Процедура  ВыводРезультатаУсловияВТабличныйДокумент(Значение,ВариантУсловия="",Присоединение=Ложь)
   Вложенность    =Вложенность+1;
   ТипЗначения= ТипЗнч(Значение);
   Если ЗначениеЗаполнено(Значение)Тогда
       Если  ТипЗначения = Тип("СправочникСсылка.РабочиеМеста") Тогда
           ВыводБлокаВТабличныйДокумент(Значение,ВариантУсловия,Присоединение);           
       ИначеЕсли ТипЗначения = Тип("СправочникСсылка.ИСполнители")Тогда                                   
           ВыводБлокаВТабличныйДокумент(Значение,ВариантУсловия,Присоединение);
           Результат.НачатьГруппуСтрок();           
           ОбработатьИсполнителя(Значение);
           Результат.ЗакончитьГруппуСтрок();
       ИначеЕсли ТипЗначения=Тип("СписокЗначений")  Тогда
           Для Каждого СтрокаСпискаЗначений из Результат Цикл
               ВыводРезультатаУсловияВТабличныйДокумент(СтрокаСпискаЗначений.Значение,ВариантУсловия,Присоединение);
           КонецЦикла;
       КонецЕсли;
   КонецЕсли;
   Вложенность    =Вложенность-1;
КонецПроцедуры

Процедура  ОбработатьИсполнителя(Исполнитель)
   Вложенность = Вложенность+1;
   Для Каждого СтрокаУсловие из Исполнитель.ТаблицаУсловий Цикл       
       Если СтрокаУсловие.ВидУсловия=Перечисления.sВидыУсловий.БезУсловий Тогда
           ВыводРезультатаУсловияВТабличныйДокумент(СтрокаУсловие.РезультатИстина.Получить());
       ИначеЕсли СтрокаУсловие.ВидУсловия=Перечисления.ВидыУсловий.КодУсловия Тогда           
           УсловиеКод=Строка(СтрокаУсловие.УсловиеХранилище.Получить());   
           ВыводБлокаВТабличныйДокумент(УсловиеКод);
           ВыводРезультатаУсловияВТабличныйДокумент(СтрокаУсловие.РезультатИстина.Получить(),"Да",Истина);
           ВыводРезультатаУсловияВТабличныйДокумент(СтрокаУсловие.РезультатЛожь.Получить(),"НЕТ");   
       ИначеЕсли СтрокаУсловие.ВидУсловия=Перечисления.ВидыУсловий.Условие Тогда           
           УсловияЗапроса                            = СтрокаУсловие.УсловиеПредставление;
           ВыводБлокаВТабличныйДокумент(УсловияЗапроса);            
           ВыводРезультатаУсловияВТабличныйДокумент(СтрокаУсловие.РезультатИстина.Получить(),"ДА",Истина);           
           ВыводРезультатаУсловияВТабличныйДокумент(СтрокаУсловие.РезультатЛожь.Получить(),"НЕТ");                   
       КонецЕсли;
   КонецЦикла;
   Вложенность = Вложенность-1;
КонецПроцедуры
...Показать Скрыть
Прикрепленные файлы:
Ответы
2. Николай Захаров (Захаров_Николай) 27.12.16 17:23 Сейчас в теме
На самом деле не сложно.
Есть два варианта.
Первый с использованием Табличного документа.
Второй с использованием Графической схемы.
В случае с первым рекомендую разобрать отчет по связанным документам в типовой конфигурации. Работать не с ячейками а с текстом (блоки) и картинкой (стрелки).
Во втором случае формировать блок схему. Статически или динамически под нужды. (Этот вариант будет презентабельней того что на скринах).
3. Артем Т (Twirus) 27.12.16 17:38 Сейчас в теме
(2) Спасибо, первый скрин делал в спешке. А нет ли у вас какого нибудь похожего отчета, с таким исполнением, Взял бы за образец.
4. Николай Захаров (Захаров_Николай) 27.12.16 17:54 Сейчас в теме
Первый вариант легко расковырять в типовой конфе.
Второй очень легко сделать если разобраться как программно формировать блоки и устанавливать между ними связи.
Примера к сожалению нет.
Оставьте свое сообщение