Где включить и как вывести на форму команду «Связанные документы» в 1С 8.3

· 9 мин

Содержание

Чаще всего добавлять кнопку «Связанные документы» не нужно: в типовых конфигурациях на БСП (БП 3.0, УТ 11, ERP 2) команда уже есть, просто скрыта. Откройте документ, нажмите Ещё → Изменить форму, найдите в дереве команду «Связанные документы» или «Структура подчинённости», поставьте галочку и сохраните. Кнопка появится на командной панели только у вас.

Если команды нет вовсе (самописная конфигурация, новый документ, доработанная форма), её добавляют в Конфигураторе, через расширение конфигурации или кодом. Механизм общий для платформы 8.3 с интерфейсом «Такси», различаются лишь права и место правки.

Зачем выводить связанные документы на форму

Кнопка открывает дерево документов, связанных с текущим: основание, документы, введённые на основании, оплаты, отгрузки, корректировки. Это та же «Структура подчинённости», только под рукой, а не в меню.

Что она даёт на практике:

  • 🔎 бухгалтер за два клика видит цепочку «Заказ → Реализация → Счёт-фактура → Оплата»;
  • 🧾 при закрытии месяца быстро находится документ, который не дал провести корректировку;
  • 🗑️ перед удалением или отменой проведения видно, что «висит» на документе;
  • 🤝 менеджер отвечает клиенту по статусу заказа, не открывая журналы.

В открывшемся окне текущий документ выделен жирным. Двойной щелчок по любой строке открывает документ, а значки слева показывают его состояние: проведён, записан или помечен на удаление. Это удобно, когда нужно найти в цепочке именно непроведённое звено.

Дерево строится по ссылкам в реквизитах документов. Если в реквизите «Основание» пусто, связь в дереве не появится, сколько кнопок ни добавляй.

Способ 1. Включить команду в режиме «Предприятие» (без программиста)

Этот вариант не меняет конфигурацию и не снимает её с поддержки. Подходит для типовых баз, где команда уже предусмотрена разработчиком.

  1. Откройте любой документ нужного вида, например «Реализация (акт, накладная, УПД)».
  2. Нажмите Ещё → Изменить форму.
  3. В левой части окна раскройте Командная панель формы.
  4. Найдите строку «Связанные документы» или «Структура подчинённости». Название зависит от релиза БСП: в новых встречается первое, в старых — второе.
  5. Отметьте флажок видимости. Кнопками «вверх/вниз» поставьте её рядом с «Провести и закрыть».
  6. Нажмите ОК.

Настройка сохраняется для текущего пользователя и этой формы. Для формы списка документов повторите то же самое из списка — там своя командная панель.

Как раздать настройку всем пользователям

Если кнопка нужна всему отделу, не настраивайте каждому вручную. В типовых конфигурациях есть обработка копирования настроек пользователей: Администрирование → Настройки пользователей и прав → Настройки пользователей. Настройте форму у себя, затем скопируйте настройки внешнего вида выбранным сотрудникам.

Если у пользователя форма была настроена раньше, копирование перезапишет его порядок кнопок. Предупредите людей заранее.

Без правок конфигурации: внешняя обработка

Если команды нет, а трогать конфигурацию нельзя, подойдёт дополнительная обработка БСП. Её делают назначаемой, вида «Создание связанных объектов» или «Заполнение объекта», и указывают в ней нужные виды документов.

  1. Программист пишет внешнюю обработку (.epf), которая строит дерево ссылок для переданного документа.
  2. Администратор загружает её: Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки.
  3. В карточке обработки на вкладке размещения отмечает документы, в форме которых она появится.

Команда окажется не на отдельной кнопке, а в подменю формы, соответствующем виду обработки. Зато конфигурация остаётся нетронутой, а обновления проходят без конфликтов.

Способ 2. Добавить кнопку в Конфигураторе

Нужен, когда команды нет в списке Изменить форму. Обычно причина в одном из двух: документ не включён в состав команды или кнопку убрали с формы при доработке.

Шаг 1. Подключить документ к команде

В конфигурациях на БСП команда «Связанные документы» — это общая команда. Тип её параметра — определяемый тип. Документ получает кнопку, только если он входит в этот тип.

  1. Откройте Конфигурация → Открыть конфигурацию.
  2. В ветке Общие → Общие команды найдите команду со структурой подчинённости. Быстрее всего — поиском по дереву метаданных по слову «Подчинен».
  3. В её свойствах посмотрите Тип параметра команды. Там указан определяемый тип.
  4. Откройте этот тип в ветке Общие → Определяемые типы и отметьте в составе свой документ.
  5. Сохраните и выполните Конфигурация → Обновить конфигурацию базы данных (F7).

Шаг 2. Вывести кнопку на форму

Если у документа автоматическая командная панель, кнопка появится сама. Если форма доработана и панель собрана вручную:

  1. Откройте форму документа в редакторе форм.
  2. Перейдите на вкладку Командный интерфейс формы, затем Глобальные команды.
  3. Найдите общую команду и перетащите её на Командная панель в дереве элементов.
  4. Задайте кнопке картинку и, если нужно, сочетание клавиш в свойствах.

Перед правкой типовой конфигурации снимите копию базы (.dt) и проверьте режим поддержки. Изменение объектов на поддержке усложнит каждое следующее обновление.

Способ 3. Расширение конфигурации — без снятия с поддержки

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

  1. В Конфигураторе: Конфигурация → Расширения конфигурации → Добавить. Задайте имя, например КнопкаСвязанныеДокументы.
  2. Откройте конфигурацию расширения, найдите в основной конфигурации документ и его форму.
  3. Через контекстное меню выберите Добавить в расширение. Сначала заимствуйте определяемый тип, затем форму документа.
  4. В заимствованном определяемом типе добавьте свой документ.
  5. В заимствованной форме выведите глобальную команду на командную панель, как в способе 2.
  6. Обновите конфигурацию расширения в базе (F7) и перезапустите сеанс 1С.

Подключённые расширения видны в режиме «Предприятие»: Администрирование → Печатные формы, отчеты и обработки → Расширения. Там же проверяют флажки «Активно» и «Безопасный режим».

После обновления типовой конфигурации откройте расширение и выполните проверку применимости. Если разработчик переименовал форму, Конфигуратор покажет, что сломалось.

Способ 4. Программно: критерий отбора или кнопка из кода

Критерий отбора — если БСП нет

В самописной конфигурации без БСП проще всего использовать штатный объект платформы «Критерий отбора». Его команда появляется в панели навигации формы, в группе Перейти.

  1. В ветке Критерии отбора добавьте объект СвязанныеДокументы с синонимом «Связанные документы».
  2. Тип критерия — составной: ссылки на все документы, между которыми есть связь.
  3. В Состав включите реквизиты документов, где хранится ссылка: «Основание», «Сделка», «ДокументОплаты».
  4. У каждого реквизита из состава установите свойство Индексировать.
  5. Обновите конфигурацию базы данных.

Теперь в карточке любого документа из типа критерия появится переход «Связанные документы» со списком всех документов, которые на него ссылаются.

Кнопка, созданная кодом при открытии формы

Иногда форму нельзя трогать в редакторе: она генерируется или много раз заимствована. Тогда кнопку добавляют в обработчике ПриСозданииНаСервере. Имя общей команды возьмите из ветки Общие команды своей конфигурации — в примере оно вынесено в переменную.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	ИмяОбщейКоманды = "СтруктураПодчиненности"; // точное имя из ветки «Общие команды»

	Если Метаданные.ОбщиеКоманды.Найти(ИмяОбщейКоманды) = Неопределено Тогда
		Возврат;
	КонецЕсли;

	Кнопка = Элементы.Добавить("КнопкаСвязанныеДокументы", Тип("КнопкаФормы"),
		Элементы.ФормаКоманднаяПанель);
	Кнопка.ИмяКоманды = "ОбщаяКоманда." + ИмяОбщейКоманды;
	Кнопка.Заголовок = "Связанные документы";

КонецПроцедуры

Проверка через Метаданные.ОбщиеКоманды.Найти нужна, чтобы форма не падала с ошибкой, если команду переименуют при обновлении. В расширении тот же код ставят в обработчик &После("ПриСозданииНаСервере") заимствованной формы.

Какой способ выбрать

СпособКогда подходитРиски
Настройка формыКоманда есть, но скрытаНет; настройка у одного пользователя
КонфигураторСамописная база или снята с поддержкиКонфликты при обновлении типовой
РасширениеТиповая на поддержкеПроверка после каждого обновления
Критерий отбораНет БСП, нужна простая связьНагрузка без индексов
Код в формеФорма собирается программноНужен программист для правок

Почему кнопка не появилась: ошибки и их решение

Диагностика: выберите симптом

Отдельный случай — «тонкий клиент + веб-публикация». Если кнопка видна в толстом клиенте, но не в браузере, обычно дело в кэше. Перезапустите веб-клиент, очистив кэш браузера; в тонком клиенте помогает запуск с параметром /ClearCache.

Права доступа к команде «Связанные документы»

Видимость кнопки определяют три слоя. Пройдите их по порядку.

  1. Роль и общая команда. В Конфигураторе у роли есть ветка Общие команды с правом Просмотр. Без него кнопка не отображается.
  2. Право на документы. Пользователь видит в дереве только те документы, на которые у него есть «Чтение». Остальные скрыты, если в конфигурации настроены ограничения на уровне записей (RLS).
  3. Видимость элемента формы. У кнопки в редакторе формы есть свойство Пользовательская видимость, где можно задать «По ролям». Так кнопку показывают, например, только главному бухгалтеру.

В типовых конфигурациях роли не правят напрямую. Права раздают через Администрирование → Настройки пользователей и прав → Группы доступа и профили групп. Если нужной роли в профилях нет, её добавляют расширением.

Не выдавайте пользователю роль «Полные права» ради одной кнопки. Он получит доступ к администрированию и удалению объектов.

Как ускорить открытие связанных документов в большой базе

На базе в десятки гигабайт дерево может строиться секундами. Причина почти всегда в поиске ссылок по неиндексированным реквизитам.

Что помогает:

  • 📌 Индексы. Установите Индексировать у реквизитов, по которым ищется связь: «Основание», «ДокументРасчетов». Без индекса СУБД читает всю таблицу документа.
  • 🌳 Глубина дерева. Не раскрывайте всю цепочку сразу. В своих обработках стройте следующий уровень только при раскрытии узла.
  • 🎯 Состав типа. Не включайте в определяемый тип или критерий отбора документы, которые никогда не ссылаются друг на друга. Каждый лишний вид — лишний запрос.
  • 🧹 Регламентные операции СУБД. На MS SQL и PostgreSQL обновляйте статистику и перестраивайте индексы по графику. Делайте это ночью: операции нагружают сервер.
  • 🖥️ Серверный вызов. Если пишете обработку сами, собирайте дерево одним запросом на сервере, а не перебором объектов в цикле на клиенте.

Замерить, что именно тормозит, позволяет Отладка → Замер производительности в Конфигураторе. Запустите замер, нажмите кнопку в отладочном сеансе — увидите строку кода с наибольшим временем.

После установки индекса обязательно выполните обновление конфигурации базы данных в нерабочее время. На крупной таблице перестройка займёт заметное время и потребует монопольного доступа, а сеансы пользователей придётся завершить.

Перед вводом кнопки в работу
Выполнено: 0 / 6

Частые вопросы

Можно ли добавить кнопку «Связанные документы» в форму справочника?
Да, если справочник участвует в связях, например договор контрагента. Включите его в определяемый тип команды или в тип критерия отбора, как и документ.
Снимется ли конфигурация с поддержки, если сделать кнопку расширением?
Нет. Расширение хранится отдельно от основной конфигурации и не меняет режим поддержки.
Есть ли горячая клавиша для связанных документов?
Единой клавиши по всем конфигурациям нет. Её можно назначить самому в свойстве кнопки Сочетание клавиш в редакторе формы.
Почему в дереве видны документы, которые я не создавал на основании?
Дерево строится по любым ссылкам в реквизитах, а не только по вводу на основании. Документ, где текущий выбран в поле оплаты или сделки, тоже попадёт в список.
Можно ли вывести кнопку и в форму списка документов?
Да. У формы списка своя командная панель: настройте её через Ещё → Изменить форму прямо в списке или выведите команду в редакторе формы списка. Для работы команда берёт выделенную строку.