Структура подчиненности, вариант отображения циклических ссылок.


Вывод структуры подчиненности с циклическими связями в привычный пользователям 1с табличный документ.
Вывод по любому критерию отбора на выбор и даже без критерия отбора, указав лишь типы родительских и подчиненных документов.
Для управляемых и обычных форм.

Много байтов исписано про структуру подчиненности, далее СП. Ваш покорный слуга тоже пытался что-то сказать по этому поводу:  Братья и сестры, кузены и кузины в Структуре подчиненности. Но там речь шла о СП без отображения циклических ссылок.

Более всех на infostartе на тему СП пишет, наверное, vladnet.  И как правильно отобразить циклические ссылки показал он же в Структура подчинености. Правильное отображение.

На основе этой публикации и создан данный отчет. С разрешения автора часть вышеупомянутой работы присутствует здесь.  Там СП выводится в поле графической схемы. Но пользователи 1с привыкли видеть СП в табличном документе. К тому же СП в табличном документе – компактнее. Вывести СП с циклическими ссылками в табличный документ и попытался автор в данном отчете. Если считать линии привычной пользователям 1с СП направленными вниз, для отображения циклических ссылок автор использовал более светлые  линии направленные вверх.  Из упомянутой публикации перенесена также возможность вывода  в графическую схему.

Кроме того добавлена возможность формирования СП по любому критерию отбора, и даже по произвольным типам родительских и подчиненных объектов без указания критерия отбора.

Дополнительно в контекстное меню добавлена возможность

  •    - установки/снятия пометки удаления,
  •    - вывод встроенной в конфигурацию структуры подчиненности.

 Формирование СП по типам, отличным от документов, понадобилось, например, в 1с-Документооборот, где для представления документов используются справочники. Можно придумать и другие применения. Для указания произвольных типов объектов поле критерия отбора должно быть очищено.

Типы финишных документов указываем, если не надо показывать структуру далее этого типа. Например, если не указать в качестве финишного тип «Формирование записей книги покупок», то при выводе СП документа «Поступление товаров и услуг» отобразятся практически все документы этого типа за месяц со своими связями (рис 2).

Немного о грустном:

До детализации по реквизитам как в Универсальная структура подчиненности документов не доведено.

Оптимизация по быстродействию не произведена. Так что к Пользователи плачут от скорости работы структуры подчинённности. добавится еще несколько «н» Smile.

Хотя и проверен на нескольких конфигурациях, отчет предоставляется как есть, без всяких гарантий.

UPD: Добавил флажки "Выводить подчиненных у родителей" и "Выводить родителей у подчиненных", что позволяет в большинстве случаев обходиться без явного указания финишных типов.

 

UPD2: Добавил процедуру сбора коллекции коннекторов. Намеревался заменить 78 макетов коннекторов двумя макетами коллекций коннекторов, чтобы облегчить переделку в общую форму, однако не обнаружил методов работы с коллекцией картинок. Видимо, фирма 1с считает, что библиотека картинок может быть только одна (встроенная в конфигурацию). Обнаружилось также, что фирма 1с считает, что в формате BMP biHeight  типа DWORD(беззнаковое), а не LONG(знаковое)J. Мой флажок «Порядок сверху» также работает некорректно – картинки переворачиваются (не стал копаться). Тем не менее процедура заполнения коллекции коннекторов, помогла обнаружить несколько ошибок в таблице коннекторов. Использованы v8: Как получить картинку из коллекции по индексу? (с)Шеметов Дмитрий (пришлось пожертвовать безопасным режимом). Сделано только для управляемых форм, по быстродействию конкурирует с черепахой J.

UPD3: Добавлена возможность формирования по регистру сведений, например, СвязиДокументов.

UPD4: В UPD2 зря гнал пургу на фирму 1с :). Оказывается, можно обойтись одним макетом. В версии 01 картинки вложены в макет.

UPD5: Добавил пример БД с общими формами СП (обычной и управляемой).

UPD6: Исправлена ошибка: планы видов расчета не включались в дерево метаданных.

Файлы обработки:

-