Наверное, многие из нас уже сталкивались с задачей, когда необходимо было реализовать связку между документами расширения и типовыми документами 1С, а может быть нетиповые связки между типовыми документами 1С, и, конечно, думали о том, как это сделать непосредственно в расширении. И я нашел минимум 2 статьи на Инфостарте, призванных решать эту задачу, и если первая статья решает задачу через регистр сведений, в целом мы получаем подобный стандартному функционалу результат, но все же логика решения, в некотором смысле, костыльная, так как не используется предназначенный для решения данной задачи функционал платформы, второе решение является не до конца развернутым, хотя направление уже выбрано правильное.
Итак, с подъемом совместимости актуальных универсальных конфигураций до 8.3.16, мы получили возможность в расширениях использовать Критерии отбора, и соответственно можем там выставлять нужные нам связи внутри платформы между объектами конфигурации, и все бы ничего, только стандартная общая форма "Связанных документов" не знает никаких других критериев отбора, кроме типового "СвязанныеДокументы". И основная задача соответственно состоит в том, чтобы обучить эту форму работать параллельно с критериями отбора расширения.
Для того, чтобы написать данную статью, я взял демо УТ11.4 одной из последних редакций на данных момент (11.4.14.181), и добавил новое расширение, в котором добавил новый документ, скинул в расширение Реализацию, и критериями отбора связал их между собой.
Поскольку статья не призвана обучать работе с критериями отбора, да и в принципе, наверное, рассчитана на подготовленного читателя, то я буду описывать решение не с целью обучить, а с целью именно представить решение задачи, как новую возможность в расширениях
Далее обучаем общую форму "СвязанныеДокументы" работать с новым критерием отбора, для этого снимаем форму в расширение, и первое, с чем сталкиваемся, так это с тем, что реквизиты формы расширения ни в какую не хотят понимать объекты расширения, а конкретно наш новый документ. Причем понимаем это не сразу, а после некоторого времени общения с отладчиком, и пары пучков новых седых, а может и выдранных волос.
Конечно, кто-то на этом моменте опускает руки, но мы ребята закаленные и после пары выпитых таблеток магния думаем, а что же теперь с этим всем делать, и вспоминаем о возможности подкинуть свои реквизиты на форму программно, чем собственно и пользуемся, при создании формы на сервере
Тем самым расширяя возможности формы для работы с новыми объектами.
А далее уже дело техники, в том числе отладка стандартных кнопок, при работе с объектами расширения. Основные тезисы, которые были решены далее:
1. при выводе родительских объектов и подчиненных объектов, надо подкинуть форме чтение нашего Критерия отбора, при выводе нашего документа;
2. необходимо подкинуть ссылку на этот элемент в сам табличный документ, чтоб можно было расшифровкой его открыть;
3. надо было обучить форму формироваться с выбором нашего документа, в качестве исходного, и т.д.
Скрин всех задействованных в решении процедур предоставляю:
В итоге мы получаем работу стандартной формы связанных документов с новым документом расширения, с возможностью крутить его, будто наш документ вполне себе типовой
с рабочими кнопочками в заголовке и возможностью расшифровки
Расширение с разработкой предоставляю
Еще раз обратите внимание, что решение предназначено для категории 16+, детям к просмотру не рекомендуется (Совместимость 8.3.16)
Спасибо за внимание.
upd 11.10.2023:
- выполнена адаптация под актуальную БСП (на текущий момент 3.1.9.144)
- добавлена возможность формирования подчиненного типового документа из документа расширения с помощью стандартных механизмов БСП
- исправлено отображение дерева подчиненности из любого узла дерева, теперь полноценно работает как восходящая последовательность, так и нисходящая
- добавлена возможность формирования дерева подчиненности непосредственно из документа расширения
- может быть еще что-то сделал полезное, да забыл что
upd 12.10.2023:
- добавлена версия адаптированная под Бухгалтерию предприятия 3.0.143.32
при проверке на БП выяснилось что есть некоторые расхождения с БСП, хоть версия БСП в БП соответствует. В общем для уменьшения трудозатрат на адаптацию решения прилагаю адаптированную редакцию. По запросу могу сделать адаптацию для других универсальных решений.