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

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

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

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

Главный специалист (Программист 1с)
Подольск
зарплата от 100 000 руб. до 110 000 руб.
Полный день

Программист
Москва
зарплата от 200 000 руб. до 230 000 руб.
Полный день

Программист 1С
Ростов-на-Дону
зарплата от 140 000 руб. до 180 000 руб.
Полный день

Аналитик 1С
Ростов-на-Дону
зарплата от 150 000 руб. до 200 000 руб.
Полный день