В конфигурациях "под заказчика" последний просит что попроще, поэтому достаточно просто документа-основания.
Типовая структура подчиненности имеет "устаревший" вид и использует массу картинок, что побудило ее переработать.
Структура процедур сохранена, и предлагаемая обработка может быть адаптирована под типовые решения методом copy - paste.
Номер картинки задается в функции "НомерПиктограммы".
Обработка в составе конфигурации не обращается к процедурам и функциям конфигурации.
Для внедрения необходимо вставить представленную внешнюю обработку с именем (например, "СтруктураПодчиненности") и создать команду обработки, например, "СтруктураПодчиненности". В свойствах команды установить подсказку, а так же:
- Группа "Командная панель формы.Важное";
- ТипПараметра команды - выбрать нужные документы (обычно все).
- Отображение (картинка, текст) - по желанию, обычно картинка.
- Модуль команды:
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
Если ТипЗнч(ПараметрКоманды) = Тип("Массив") Тогда
Документ = ПараметрКоманды.Получить(0);
Иначе
Документ = ПараметрКоманды;
КонецЕсли;
Если Документ.Пустая() Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Документ не записан.");
Возврат;
ИначеЕсли ТипЗнч(ПараметрыВыполненияКоманды.Источник) <> Тип("УправляемаяФорма") Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Команда вызывается из форм журналов и документов.");
Возврат;
КонецЕсли;
ОткрытьФорму("Обработка.СтруктураПодчиненности.Форма.Форма",
Новый Структура("Документ", Документ),
ПараметрыВыполненияКоманды.Источник,
ПараметрКоманды,
,
,
,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры // ОбработкаКоманды
В обработке есть кнопки "Обновить", "Печать" (код пустой) и "Вывести список".
Следующий шаг - учет множественности документов-оснований.
В некоторых случаях оплачиваются несколько документов, поэтому для кассовых и банковских документов вместо реквизита "ДокументОснование" пришлось сделать табличную часть "Основания" с реквизитами "Документ" (ДокументСсылка) и "Сумма" (Число). Единый подход позволяет при добавлении родительских документов обойтись без запроса по критерию отбора (Функция ДобавитьРодительскиеДокументы) и обойтись "малой кровью".
Первый файл при использовании реквизита "ДокументОснование", второй - при сипользовании реквизита "ДокументОснование" и табличной части "Основания"