1. Twirus 27.12.16 16:58 Сейчас в теме

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

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

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

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

Вакансии

Программист 1С
Санкт-Петербург
зарплата от 110 000 руб. до 120 000 руб.
Полный день

Аналитик 1С
Санкт-Петербург
зарплата от 80 000 руб.
Полный день

Программист 1С
Самара
зарплата от 50 000 руб.
Полный день

Программист 1С
Нижний Новгород
зарплата до 120 000 руб.
Полный день

Программист 1С
Волгоград
зарплата от 45 000 руб. до 90 000 руб.
Полный день