gifts2017

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

Опубликовал в раздел Программирование - Практика программирования

Вывод структуры подчиненности с циклическими связями в привычный пользователям 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: Исправлена ошибка: планы видов расчета не включались в дерево метаданных.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Версия 01
.epf 116,21Kb
09.06.12
91
.epf 116,21Kb 91 Скачать
СтруктураПодчиненности82.epf
.epf 176,67Kb
28.04.12
102
.epf 176,67Kb 102 Скачать
Пример БД с общими формами СП (обычной и управляемой)
.dt 102,70Kb
06.04.12
25
.dt 102,70Kb 25 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

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


Перейти к публикации

1. Oleg Moskvichev (m_aster) 29.03.12 09:49
2. Oleg Moskvichev (m_aster) 29.03.12 09:53
Выдает ошибку в типовой БП 2.0, на "ВЫБРАТЬ"
3. gks 31.03.12 09:35
(2) m_aster,
Не смог смоделировать ошибочную ситуацию.
Можно поподробнее?
4. Гость 07.06.12 10:17
{Форма.ФормаО.Форма(326)}: Ошибка при вызове метода контекста (ЗначениеИзФайла)
лНастройкиТипы = ЗначениеИзФайла(КаталогВременныхФайлов() + "СтруктураПодчиненностиНастройкиТипы");
по причине:
Ошибка преобразования

Может имелось ввиду это? У меня так на БП,УТ и УПП
5. gks 09.06.12 10:45
Восстановил, чтобы в обычной форме ЗначениеИзФайла делалось через Попытку (в управляемой так и было).
7. Константин Куликов (Светлый ум) 06.11.16 08:05
+1. Класс - отработала в тонком клиенте 8.3
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа