Много байтов исписано про структуру подчиненности, далее СП. Ваш покорный слуга тоже пытался что-то сказать по этому поводу: Братья и сестры, кузены и кузины в Структуре подчиненности. Но там речь шла о СП без отображения циклических ссылок.
Более всех на infostartе на тему СП пишет, наверное, vladnet. И как правильно отобразить циклические ссылки показал он же в Структура подчинености. Правильное отображение.
На основе этой публикации и создан данный отчет. С разрешения автора часть вышеупомянутой работы присутствует здесь. Там СП выводится в поле графической схемы. Но пользователи 1с привыкли видеть СП в табличном документе. К тому же СП в табличном документе – компактнее. Вывести СП с циклическими ссылками в табличный документ и попытался автор в данном отчете. Если считать линии привычной пользователям 1с СП направленными вниз, для отображения циклических ссылок автор использовал более светлые линии направленные вверх. Из упомянутой публикации перенесена также возможность вывода в графическую схему.
Кроме того добавлена возможность формирования СП по любому критерию отбора, и даже по произвольным типам родительских и подчиненных объектов без указания критерия отбора.
Дополнительно в контекстное меню добавлена возможность
- - установки/снятия пометки удаления,
- - вывод встроенной в конфигурацию структуры подчиненности.
Формирование СП по типам, отличным от документов, понадобилось, например, в 1с-Документооборот, где для представления документов используются справочники. Можно придумать и другие применения. Для указания произвольных типов объектов поле критерия отбора должно быть очищено.
Типы финишных документов указываем, если не надо показывать структуру далее этого типа. Например, если не указать в качестве финишного тип «Формирование записей книги покупок», то при выводе СП документа «Поступление товаров и услуг» отобразятся практически все документы этого типа за месяц со своими связями (рис 2).
Немного о грустном:
До детализации по реквизитам как в Универсальная структура подчиненности документов не доведено.
Оптимизация по быстродействию не произведена. Так что к Пользователи плачут от скорости работы структуры подчинённности. добавится еще несколько «н» .
Хотя и проверен на нескольких конфигурациях, отчет предоставляется как есть, без всяких гарантий.
UPD: Добавил флажки "Выводить подчиненных у родителей" и "Выводить родителей у подчиненных", что позволяет в большинстве случаев обходиться без явного указания финишных типов.
UPD2: Добавил процедуру сбора коллекции коннекторов. Намеревался заменить 78 макетов коннекторов двумя макетами коллекций коннекторов, чтобы облегчить переделку в общую форму, однако не обнаружил методов работы с коллекцией картинок. Видимо, фирма 1с считает, что библиотека картинок может быть только одна (встроенная в конфигурацию). Обнаружилось также, что фирма 1с считает, что в формате BMP biHeight типа DWORD(беззнаковое), а не LONG(знаковое)J. Мой флажок «Порядок сверху» также работает некорректно – картинки переворачиваются (не стал копаться). Тем не менее процедура заполнения коллекции коннекторов, помогла обнаружить несколько ошибок в таблице коннекторов. Использованы v8: Как получить картинку из коллекции по индексу? (с)Шеметов Дмитрий (пришлось пожертвовать безопасным режимом). Сделано только для управляемых форм, по быстродействию конкурирует с черепахой J.
UPD3: Добавлена возможность формирования по регистру сведений, например, СвязиДокументов.
UPD4: В UPD2 зря гнал пургу на фирму 1с :). Оказывается, можно обойтись одним макетом. В версии 01 картинки вложены в макет.
UPD5: Добавил пример БД с общими формами СП (обычной и управляемой).
UPD6: Исправлена ошибка: планы видов расчета не включались в дерево метаданных.