Как вывести кнопку Связанные документы на форму нового документа в 1С:ERP

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием IT и автоматизация бизнеса
← На главную

При разработке новых объектов в конфигурациях на базе Библиотеки стандартных подсистем (БСП), таких как 1С:ERP или 1С:Комплексная автоматизация, программисты часто сталкиваются с необходимостью вывода стандартного функционала «Структура подчиненности» (или «Связанные документы»). Рассмотрим подробно, как интегрировать этот механизм в ваш новый документ, чтобы пользователи могли видеть всю цепочку взаимосвязанных объектов.

Разберем механизм работы «Связанных документов»

В современных конфигурациях 1С кнопка «Связанные документы» не является просто кнопкой с закрепленным действием. Это часть большой экосистемы подключаемых команд БСП. Чтобы она появилась и корректно работала, нам необходимо выполнить настройку на трех уровнях: в метаданных, в программном коде менеджера документа и в модуле формы.

Шаг 1. Регистрация в критерии отбора

Первым делом проанализируем, как система узнает, какие документы связаны между собой. Для этого используется объект метаданных КритерийОтбора. Выполним следующие действия:

  1. Откроем дерево метаданных (в анализе структуры объектов поможет информер по метаданным — есть удобный информер по метаданным и структуре объектов 1С) и перейдем в раздел Общие -> Критерии отбора.
  2. Найдем критерий отбора с именем СвязанныеДокументы.
  3. Перейдем на закладку Состав. Здесь нам нужно найти наш новый документ в списке и установить напротив него флажок.
  4. Важный нюанс: если ваш документ имеет реквизиты, которые ссылаются на другие документы (например, ДокументОснование), убедитесь, что эти реквизиты также отмечены в составе критерия отбора. Это позволит системе «строить дерево» связей вверх и вниз.

Шаг 2. Настройка общей команды

Даже если документ включен в критерий отбора, кнопка может не появиться автоматически. Разберем ситуацию с общей командой. В конфигурации существует объект ОбщаяКоманда.СвязанныеДокументы.

Нам необходимо проверить свойство Тип параметра команды этой общей команды. Нажмем на кнопку выбора типа (три точки) и убедимся, что в составной тип включена ссылка на наш новый документ (например, ДокументСсылка.МойНовыйДокумент). Без этого действия команда не будет «знать», что она применима к вашему объекту, и не отобразится в интерфейсе.

Шаг 3. Интеграция через модуль менеджера

Для того чтобы кнопка появилась в подменю «Отчеты» (в ERP структура подчиненности часто выводится именно там), необходимо реализовать экспортную процедуру в модуле менеджера документа. Рассмотрим пример кода, который нужно добавить:


// В модуле менеджера документа
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
    
    // Вызов стандартного механизма добавления команд из БСП
    // Этот вызов автоматически подтянет команду структуры подчиненности
    // если документ правильно зарегистрирован в системе.
    ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов(КомандыОтчетов, Параметры);
    
КонецПроцедуры

Проанализируем этот код: процедура ДобавитьКомандыОтчетов вызывается системой при формировании списка доступных отчетов для объекта. Использование стандартных общих модулей позволяет избежать жесткого кодирования кнопок.

Шаг 4. Подключение механизмов на форме документа

Теперь перейдем к самой форме документа. Чтобы система динамически создала кнопки при открытии, нам нужно внедрить блок «Подключаемые команды». Рассмотрим пошагово изменения в модуле формы.

В процедуре ПриСозданииНаСервере добавим инициализацию команд:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // Инициализация подключаемых команд
    ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
    
КонецПроцедуры

Для того чтобы нажатие на кнопку приводило к результату, на стороне клиента должен быть обработчик. А если возникают сложности с вызовом команд, изучите отладку внешних печатных форм и обработок, использующих этот механизм. Рассмотрим реализацию обработчика:


&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
    
    // Передаем управление общему модулю БСП для выполнения команды
    ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
    
КонецПроцедуры

Важный момент: на самой форме (в редакторе формы) должна присутствовать группа команд. Обычно это группа типа Командная панель с именем ГруппаГлобальныеКоманды или ПодменюОтчеты. Если вы создавали форму конструктором в ERP, такая группа, скорее всего, уже есть.

Шаг 5. Проверка прав доступа

Помимо стандартных прав, в сложных системах часто настраивается доступ и видимость реквизитов документов по пользователям, что также может влиять на отображение элементов формы. Для этого пригодится отчет для детального анализа ролей и профилей доступа 1С.

Выясним причину, если кнопка всё равно не отображается. Часто проблема кроется в правах доступа — решить её поможет обработка для анализа и расшифровки прав доступа в 1С. Проверьте следующие моменты:

  1. У пользователя должны быть права на Чтение критерия отбора СвязанныеДокументы.
  2. Должны быть права на использование общей команды СвязанныеДокументы.
  3. Проверьте права на сам отчет СтруктураПодчиненности (если он выделен в отдельный объект в вашей версии конфигурации).

Шаг 6. Использование стандартных команд в свойствах документа

Посмотрим на свойства самого объекта Документ в конфигураторе. На закладке Команды проверьте, установлена ли галочка Использовать стандартные команды. Если она снята, многие автоматически генерируемые элементы интерфейса могут быть недоступны.

Дополнительные рекомендации

Если вы хотите, чтобы ваш документ отображался в дереве связей других документов, убедитесь, что в тех документах (родительских) есть реквизиты, ссылающиеся на ваш объект, и они включены в КритерийОтбора.СвязанныеДокументы.

Проанализируем ситуацию, когда нужно вывести кнопку не в подменю, а отдельной иконкой. В этом случае в ПриСозданииНаСервере можно явно указать место размещения команды, используя параметры процедур модуля ПодключаемыеКоманды. Однако в типовых решениях ERP рекомендуется придерживаться стандартного интерфейса: кнопка «Связанные документы» традиционно располагается либо в командной панели формы, либо в меню «Отчеты» под иконкой с изображением генеалогического древа.

Таким образом, мы рассмотрели комплексный подход к выводу структуры подчиненности. Если вам требуется готовое решение, вы можете использовать расширение, чтобы вернуть кнопку "Связанные документы" на командную панель. Главное помнить, что в ERP это не просто визуальный элемент, а результат работы подсистемы «Варианты отчетов» и «Подключаемые команды» БСП.

← На главную