В отличие от конфигурации «Бухгалтерия предприятия», где дерево связей между документами является привычным инструментом, в 1С:Зарплата и управление персоналом 3.1 пользователи часто сталкиваются с отсутствием кнопки «Связанные документы» на формах. Это вызывает сложности, когда необходимо быстро отследить цепочку от Приема на работу до Ведомости или от Ведомости до Подтверждения зачисления зарплаты. В этой статье мы подробно разберем, как устроен этот механизм и как его внедрить в вашу систему.
Прежде всего, разберем базовый механизм платформы 1С, на котором строится любая структура подчиненности. Это объект метаданных КритерииОтбора. В конфигурации ЗУП 3 за это отвечает критерий СвязанныеДокументы.
Проанализируем принцип его работы: дерево связей не строится «на лету» по всем полям всех документов. Система обращается к списку, определенному в составе этого критерия. Если вы создали свой документ или хотите видеть связь, которая не предусмотрена разработчиками в типовом релизе, необходимо выполнить следующие шаги:
ВедомостьНаВыплатуЗарплатыВБанк) и его реквизит (например, ДокументОснование) отмечены в списке.Важный нюанс: В ЗУП 3 многие связи реализованы не через прямые ссылки в документах, а через регистры. В таких случаях стандартный критерий отбора может не сработать без дополнительной программной доработки.
Выясним причину, по которой даже при наличии отчета в системе кнопка «Связанные документы» может не появляться на форме. Современные конфигурации используют механизм динамического формирования команд. За это отвечает подсистема БСП «Связи объектов».
Рассмотрим, как происходит вывод команды на форму документа. В типовых решениях при создании формы на сервере вызываются общие модули, которые анализируют настройки подсистемы и добавляют кнопку в командную панель. Если кнопка не появляется, попробуем проверить следующие моменты:
СвязиОбъектов.Пример программного интерфейса для регистрации (используется в некоторых версиях БСП):
Процедура ПриОпределенииНастроекСвязейОбъектов(Настройки) Экспорт
Настройки.ИспользоватьСтандартнуюКоманду = Истина;
КонецПроцедуры
Если автоматическое добавление через БСП по каким-то причинам не подходит или вы работаете с внешними формами, разберем способ ручного вывода команды. В системе существует общая команда ОбщаяКоманда.ПоказатьСтруктуруПодчиненности. Нам необходимо «прокинуть» ее на форму.
Выполним следующие действия по шагам:
Параметризуемые -> Показать структуру подчиненности.Объект.Ссылка).После этого на форме появится стандартная кнопка с иконкой иерархии, которая будет вызывать типовое окно структуры подчиненности для данного объекта.
Разберем ситуацию, упомянутую в обсуждении: связь Ведомость — Платежное поручение — Подтверждение зачисления. В старых релизах ЗУП 3 (до 3.1.10) эта цепочка часто не прослеживалась типовыми средствами.
Проанализируем ситуацию: Платежное поручение в ЗУП часто не имеет прямого реквизита ссылки на Ведомость в шапке, а связь хранится в табличной части или в регистрах сведений. Чтобы отчет «Структура подчиненности» увидел эту связь, необходимо, чтобы реквизит табличной части Платежки, содержащий ссылку на Ведомость, был включен в критерий отбора СвязанныеДокументы.
Если вы используете расширение конфигурации, мы рекомендуем:
Если типовой механизм кажется слишком жестким, рассмотрим вариант использования внешнего отчета. Существуют универсальные обработки «Структура подчиненности», которые строят дерево связей на основе запросов ко всей базе данных. Они ищут все ссылки на выбранный объект во всех таблицах конфигурации.
Для подключения такого отчета воспользуемся разделом Администрирование -> Печатные формы, отчеты и обработки. При регистрации внешней обработки укажите тип «Заполнение объекта» или «Дополнительный отчет» с привязкой к конкретным типам документов. Это позволит вызывать структуру подчиненности из меню «Отчеты» или «Кнопка выполнения обработок» прямо из документа.
Подведем итог: для реализации полноценной структуры подчиненности в ЗУП 3.1 программисту необходимо проверить настройки Критерия отбора, убедиться в регистрации документа в БСП или вывести общую команду на форму вручную. Использование расширений позволяет сделать это, сохраняя конфигурацию на поддержке.