Разработка и Конфигурация · 9 мин
Как добавить кнопку «Структура подчиненности» в 1С
Как добавить кнопку «Структура подчиненности» в 1С: настройка критериев отбора, критерии связанных документов, командный интерфейс и программный вызов отчета.
Кнопка «Структура подчиненности» позволяет пользователю одним нажатием увидеть все связанные документы: чем обоснован текущий документ и что было создано на его основании. В типовых конфигурациях 1С такая кнопка обычно уже есть в форме документа, но при доработке, добавлении собственных документов или переходе между версиями платформы её приходится настраивать вручную. Ниже разобраны все рабочие способы — от типовых механизмов до программного вызова.
Главное, что нужно понимать перед началом: структура подчиненности в 1С строится не сама по себе, а на основе критериев отбора «Связанные документы» и отчета «Структура подчиненности». Если документ не включён в соответствующий критерий отбора, никакая кнопка не покажет связей, даже если логически документы связаны.
Как устроен механизм структуры подчиненности в 1С
Механизм состоит из трёх связанных элементов. Первый — критерий отбора «Связанные документы» (в некоторых конфигурациях он может называться иначе, например «СвязанныеДокументы»). Критерий отбора определяет, какие виды документов считаются связанными и по каким реквизитам платформа ищет связи. Обычно связь строится по реквизиту типа «ДокументОснование» — то есть по ссылке на документ, на основании которого создан текущий.
Второй элемент — отчёт «Структура подчиненности», который получает ссылку на документ, выполняет запрос по критерию отбора и выводит дерево связей. Третий элемент — команда в форме документа или в панели навигации, которая открывает этот отчёт с параметром. Именно эту команду пользователь видит как кнопку.
Если хотя бы одного из трёх элементов нет, кнопка либо отсутствует, либо открывает пустую структуру. Поэтому диагностику всегда стоит начинать с проверки состава критерия отбора.
Проверка и настройка критерия отбора «Связанные документы»
Откройте конфигуратор, найдите в дереве метаданных ветку «Критерии отбора» и раскройте критерий «Связанные документы». Если ваш документ был добавлен в конфигурацию вручную, его, скорее всего, нет в составе критерия — это самая частая причина неработающей кнопки.
Чтобы добавить документ в критерий, выполните два действия. Во-первых, убедитесь, что у документа есть реквизит, ссылающийся на документ-основание (стандартное имя — «ДокументОснование», но допустимо и другое). Во-вторых, в свойствах критерия отбора отметьте этот реквизит в списке «Состав», а сам вид документа — в списке типов данных критерия.
После изменения критерия отбора обновите конфигурацию базы данных. Платформа может потребовать реструктуризацию — для критериев отбора она обычно проходит быстро, но на больших базах выполняйте обновление вне рабочего времени и обязательно после резервной копии.
Добавление кнопки в форму документа через конфигуратор
Если критерий отбора настроен, но кнопки в форме нет, добавьте её вручную. Откройте форму документа в конфигураторе, перейдите на вкладку командного интерфейса формы или добавьте кнопку непосредственно в дерево элементов формы.
Для управляемых форм последовательность такая: создайте команду формы (или используйте общую команду конфигурации, если она есть), задайте ей обработчик, перетащите команду в нужную группу командной панели формы. В обработчике команды вызовите открытие отчёта с параметром — ссылкой на текущий документ.
&НаКлиенте
Процедура СтруктураПодчиненности(Команда)
ПараметрыФормы = Новый Структура("Отбор, СформироватьПриОткрытии",
Новый Структура("Документ", Объект.Ссылка), Истина);
ОткрытьФорму("Отчет.СтруктураПодчиненности.Форма", ПараметрыФормы, ЭтотОбъект);
КонецПроцедурыТочные имена отчёта и параметров зависят от конфигурации: в типовых решениях на БСП (библиотека стандартных подсистем) отчёт может называться «СтруктураПодчиненности» и принимать параметр «ОбъектОтбора» или «Документ». Откройте модуль отчёта и посмотрите, какие параметры он ожидает, — это избавит от пустого результата при открытии.
Использование типовой общей команды
В конфигурациях на базе БСП часто уже существует общая команда или подключаемый механизм, который автоматически добавляет кнопку в формы документов, входящих в критерий отбора. В этом случае ручная доработка формы не нужна: достаточно включить документ в критерий отбора и проверить, что в подсистеме «Связанные документы» он не исключён настройками.
Кнопка в командном интерфейсе и панели навигации
Альтернатива кнопке в форме документа — команда в панели навигации списка документов. Она открывается для выбранной строки списка и удобна, когда пользователи работают в основном с журналами, а не с открытыми документами.
Настройка выполняется в свойствах объекта метаданных: откройте документ, перейдите на закладку «Командный интерфейс» и включите видимость нужной команды в панели навигации списка. Если команда отчёта параметризованная, убедитесь, что в её свойствах указан тип параметра, совместимый со ссылкой на ваш документ, — иначе команда не появится в интерфейсе.
- 1Проверьте, что у документа есть реквизит-основание со ссылкой на связанный документ
- 2Включите документ и реквизит в состав критерия отбора «Связанные документы»
- 3Обновите конфигурацию базы данных после резервной копии
- 4Проверьте наличие типовой кнопки в форме документа — в конфигурациях на БСП она появится автоматически
- 5Если кнопки нет — добавьте команду в форму или панель навигации и пропишите открытие отчёта с параметром
- 6Откройте документ, нажмите кнопку и убедитесь, что дерево связей строится
Как проверить, что всё работает правильно
Создайте тестовую цепочку документов: например, заказ, на его основании — реализацию, на основании реализации — счёт-фактуру. Откройте средний документ цепочки и нажмите кнопку «Структура подчиненности». Корректный результат — дерево, где виден и родительский документ (основание), и дочерние (введённые на основании).
Если дерево пустое или неполное, проверяйте по порядку: заполнен ли реквизит-основание в дочерних документах, входит ли каждый вид документа в критерий отбора, передаётся ли в отчёт правильный параметр. Частая ситуация — документы созданы программно или загружены обменом, и реквизит-основание у них не заполнен: тогда связь существует фактически, но механизм её не видит.
Как проверить результат
Кнопка присутствует в командной панели или меню «Ещё»
Кнопки нет ни в форме, ни в меню — команда не добавлена или нет прав
Показаны основание и введённые на основании документы
Дерево пустое при наличии связанных документов — проверить критерий отбора
Документы из обмена отображаются в структуре
Документы из обмена не видны — не заполнен реквизит-основание
Типичные ошибки и ограничения
Самая распространённая ошибка — добавление кнопки без настройки критерия отбора. Кнопка появляется, отчёт открывается, но структура пустая, и пользователи считают механизм сломанным. Вторая частая проблема — неверное имя параметра при программном открытии отчёта: отчёт молча игнорирует незнакомый параметр и показывает пустой результат.
Третья ошибка — правка типовой формы напрямую в конфигурации на поддержке. Это затрудняет последующие обновления: при обновлении конфигурации доработанная форма может конфликтовать с типовой. По возможности используйте расширения конфигурации или программное создание команды в обработчике «ПриСозданииНаСервере» через подключаемые механизмы.
Учтите и ограничение по правам: если у пользователя нет прав на просмотр какого-либо вида документов, эти документы не отобразятся в структуре подчиненности, и это нормальное поведение, а не ошибка настройки.
Если конфигурация находится на поддержке и обновляется регулярно, оформляйте добавление кнопки и включение документа в критерий отбора через расширение конфигурации. Это сохранит доработку при очередном обновлении типового релиза и не потребует снятия объектов с поддержки.
FAQ
Почему кнопка «Структура подчиненности» есть, но структура пустая?
Чаще всего документ не включён в состав критерия отбора «Связанные документы» либо у связанных документов не заполнен реквизит-основание. Проверьте состав критерия в конфигураторе и значение реквизита «ДокументОснование» у дочерних документов.
Можно ли добавить кнопку без конфигуратора?
В пользовательском режиме «1С:Предприятие» состав критериев отбора изменить нельзя — это объект метаданных. Если документ уже входит в критерий, а кнопки нет, иногда помогает настройка видимости команд через «Ещё → Изменить форму», но полноценная доработка требует конфигуратора или расширения.
Как добавить кнопку в обычные формы (не управляемые)?
В обычных формах кнопка добавляется на панель инструментов формы в конфигураторе, а в обработчике нажатия вызывается открытие отчёта «Структура подчиненности» с установкой отбора по ссылке. Принцип тот же, отличается только синтаксис открытия формы отчёта.
Почему в структуре не видны документы, загруженные обменом?
Механизм ищет связи по реквизиту-основанию. Если обмен заполняет связь иначе (например, хранит её в регистре сведений или не заполняет вовсе), структура подчиненности такие документы не покажет. Нужно доработать обмен, чтобы реквизит-основание заполнялся.
Можно ли вывести структуру подчиненности для нескольких документов сразу?
Типовой отчёт строит дерево для одного документа. Для анализа связей по списку документов потребуется собственный отчёт на СКД с запросом по критерию отбора — это уже задача разработки, а не настройки.
Что важно запомнить
Работающая кнопка «Структура подчиненности» — это связка трёх элементов: документ включён в критерий отбора «Связанные документы», у документов заполнен реквизит-основание, в форме есть команда открытия отчёта с правильным параметром. Доработки выполняйте после резервной копии и по возможности через расширение конфигурации.