Где включить и как вывести на форму команду «Связанные документы» в 1С 8.3
Содержание
Чаще всего добавлять кнопку «Связанные документы» не нужно: в типовых конфигурациях на БСП (БП 3.0, УТ 11, ERP 2) команда уже есть, просто скрыта. Откройте документ, нажмите Ещё → Изменить форму, найдите в дереве команду «Связанные документы» или «Структура подчинённости», поставьте галочку и сохраните. Кнопка появится на командной панели только у вас.
Если команды нет вовсе (самописная конфигурация, новый документ, доработанная форма), её добавляют в Конфигураторе, через расширение конфигурации или кодом. Механизм общий для платформы 8.3 с интерфейсом «Такси», различаются лишь права и место правки.
Зачем выводить связанные документы на форму
Кнопка открывает дерево документов, связанных с текущим: основание, документы, введённые на основании, оплаты, отгрузки, корректировки. Это та же «Структура подчинённости», только под рукой, а не в меню.
Что она даёт на практике:
- 🔎 бухгалтер за два клика видит цепочку «Заказ → Реализация → Счёт-фактура → Оплата»;
- 🧾 при закрытии месяца быстро находится документ, который не дал провести корректировку;
- 🗑️ перед удалением или отменой проведения видно, что «висит» на документе;
- 🤝 менеджер отвечает клиенту по статусу заказа, не открывая журналы.
В открывшемся окне текущий документ выделен жирным. Двойной щелчок по любой строке открывает документ, а значки слева показывают его состояние: проведён, записан или помечен на удаление. Это удобно, когда нужно найти в цепочке именно непроведённое звено.
Дерево строится по ссылкам в реквизитах документов. Если в реквизите «Основание» пусто, связь в дереве не появится, сколько кнопок ни добавляй.
Способ 1. Включить команду в режиме «Предприятие» (без программиста)
Этот вариант не меняет конфигурацию и не снимает её с поддержки. Подходит для типовых баз, где команда уже предусмотрена разработчиком.
- Откройте любой документ нужного вида, например «Реализация (акт, накладная, УПД)».
- Нажмите
Ещё → Изменить форму. - В левой части окна раскройте
Командная панель формы. - Найдите строку «Связанные документы» или «Структура подчинённости». Название зависит от релиза БСП: в новых встречается первое, в старых — второе.
- Отметьте флажок видимости. Кнопками «вверх/вниз» поставьте её рядом с «Провести и закрыть».
- Нажмите
ОК.
Настройка сохраняется для текущего пользователя и этой формы. Для формы списка документов повторите то же самое из списка — там своя командная панель.
Как раздать настройку всем пользователям
Если кнопка нужна всему отделу, не настраивайте каждому вручную. В типовых конфигурациях есть обработка копирования настроек пользователей: Администрирование → Настройки пользователей и прав → Настройки пользователей. Настройте форму у себя, затем скопируйте настройки внешнего вида выбранным сотрудникам.
Если у пользователя форма была настроена раньше, копирование перезапишет его порядок кнопок. Предупредите людей заранее.
Без правок конфигурации: внешняя обработка
Если команды нет, а трогать конфигурацию нельзя, подойдёт дополнительная обработка БСП. Её делают назначаемой, вида «Создание связанных объектов» или «Заполнение объекта», и указывают в ней нужные виды документов.
- Программист пишет внешнюю обработку (.epf), которая строит дерево ссылок для переданного документа.
- Администратор загружает её:
Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. - В карточке обработки на вкладке размещения отмечает документы, в форме которых она появится.
Команда окажется не на отдельной кнопке, а в подменю формы, соответствующем виду обработки. Зато конфигурация остаётся нетронутой, а обновления проходят без конфликтов.
Способ 2. Добавить кнопку в Конфигураторе
Нужен, когда команды нет в списке Изменить форму. Обычно причина в одном из двух: документ не включён в состав команды или кнопку убрали с формы при доработке.
Шаг 1. Подключить документ к команде
В конфигурациях на БСП команда «Связанные документы» — это общая команда. Тип её параметра — определяемый тип. Документ получает кнопку, только если он входит в этот тип.
- Откройте
Конфигурация → Открыть конфигурацию. - В ветке
Общие → Общие командынайдите команду со структурой подчинённости. Быстрее всего — поиском по дереву метаданных по слову «Подчинен». - В её свойствах посмотрите
Тип параметра команды. Там указан определяемый тип. - Откройте этот тип в ветке
Общие → Определяемые типыи отметьте в составе свой документ. - Сохраните и выполните
Конфигурация → Обновить конфигурацию базы данных(F7).
Шаг 2. Вывести кнопку на форму
Если у документа автоматическая командная панель, кнопка появится сама. Если форма доработана и панель собрана вручную:
- Откройте форму документа в редакторе форм.
- Перейдите на вкладку
Командный интерфейсформы, затемГлобальные команды. - Найдите общую команду и перетащите её на
Командная панельв дереве элементов. - Задайте кнопке картинку и, если нужно, сочетание клавиш в свойствах.
Перед правкой типовой конфигурации снимите копию базы (.dt) и проверьте режим поддержки. Изменение объектов на поддержке усложнит каждое следующее обновление.
Способ 3. Расширение конфигурации — без снятия с поддержки
Для типовой базы на поддержке это лучший путь. Расширения появились в платформе 8.3.6 и сегодня работают во всех актуальных релизах.
- В Конфигураторе:
Конфигурация → Расширения конфигурации → Добавить. Задайте имя, напримерКнопкаСвязанныеДокументы. - Откройте конфигурацию расширения, найдите в основной конфигурации документ и его форму.
- Через контекстное меню выберите
Добавить в расширение. Сначала заимствуйте определяемый тип, затем форму документа. - В заимствованном определяемом типе добавьте свой документ.
- В заимствованной форме выведите глобальную команду на командную панель, как в способе 2.
- Обновите конфигурацию расширения в базе (F7) и перезапустите сеанс 1С.
Подключённые расширения видны в режиме «Предприятие»: Администрирование → Печатные формы, отчеты и обработки → Расширения. Там же проверяют флажки «Активно» и «Безопасный режим».
После обновления типовой конфигурации откройте расширение и выполните проверку применимости. Если разработчик переименовал форму, Конфигуратор покажет, что сломалось.
Способ 4. Программно: критерий отбора или кнопка из кода
Критерий отбора — если БСП нет
В самописной конфигурации без БСП проще всего использовать штатный объект платформы «Критерий отбора». Его команда появляется в панели навигации формы, в группе Перейти.
- В ветке
Критерии отборадобавьте объектСвязанныеДокументыс синонимом «Связанные документы». - Тип критерия — составной: ссылки на все документы, между которыми есть связь.
- В
Составвключите реквизиты документов, где хранится ссылка: «Основание», «Сделка», «ДокументОплаты». - У каждого реквизита из состава установите свойство
Индексировать. - Обновите конфигурацию базы данных.
Теперь в карточке любого документа из типа критерия появится переход «Связанные документы» со списком всех документов, которые на него ссылаются.
Кнопка, созданная кодом при открытии формы
Иногда форму нельзя трогать в редакторе: она генерируется или много раз заимствована. Тогда кнопку добавляют в обработчике ПриСозданииНаСервере. Имя общей команды возьмите из ветки Общие команды своей конфигурации — в примере оно вынесено в переменную.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ИмяОбщейКоманды = "СтруктураПодчиненности"; // точное имя из ветки «Общие команды»
Если Метаданные.ОбщиеКоманды.Найти(ИмяОбщейКоманды) = Неопределено Тогда
Возврат;
КонецЕсли;
Кнопка = Элементы.Добавить("КнопкаСвязанныеДокументы", Тип("КнопкаФормы"),
Элементы.ФормаКоманднаяПанель);
Кнопка.ИмяКоманды = "ОбщаяКоманда." + ИмяОбщейКоманды;
Кнопка.Заголовок = "Связанные документы";
КонецПроцедуры
Проверка через Метаданные.ОбщиеКоманды.Найти нужна, чтобы форма не падала с ошибкой, если команду переименуют при обновлении. В расширении тот же код ставят в обработчик &После("ПриСозданииНаСервере") заимствованной формы.
Какой способ выбрать
| Способ | Когда подходит | Риски |
|---|---|---|
| Настройка формы | Команда есть, но скрыта | Нет; настройка у одного пользователя |
| Конфигуратор | Самописная база или снята с поддержки | Конфликты при обновлении типовой |
| Расширение | Типовая на поддержке | Проверка после каждого обновления |
| Критерий отбора | Нет БСП, нужна простая связь | Нагрузка без индексов |
| Код в форме | Форма собирается программно | Нужен программист для правок |
Почему кнопка не появилась: ошибки и их решение
Отдельный случай — «тонкий клиент + веб-публикация». Если кнопка видна в толстом клиенте, но не в браузере, обычно дело в кэше. Перезапустите веб-клиент, очистив кэш браузера; в тонком клиенте помогает запуск с параметром /ClearCache.
Права доступа к команде «Связанные документы»
Видимость кнопки определяют три слоя. Пройдите их по порядку.
- Роль и общая команда. В Конфигураторе у роли есть ветка
Общие командыс правомПросмотр. Без него кнопка не отображается. - Право на документы. Пользователь видит в дереве только те документы, на которые у него есть «Чтение». Остальные скрыты, если в конфигурации настроены ограничения на уровне записей (RLS).
- Видимость элемента формы. У кнопки в редакторе формы есть свойство
Пользовательская видимость, где можно задать «По ролям». Так кнопку показывают, например, только главному бухгалтеру.
В типовых конфигурациях роли не правят напрямую. Права раздают через Администрирование → Настройки пользователей и прав → Группы доступа и профили групп. Если нужной роли в профилях нет, её добавляют расширением.
Не выдавайте пользователю роль «Полные права» ради одной кнопки. Он получит доступ к администрированию и удалению объектов.
Как ускорить открытие связанных документов в большой базе
На базе в десятки гигабайт дерево может строиться секундами. Причина почти всегда в поиске ссылок по неиндексированным реквизитам.
Что помогает:
- 📌 Индексы. Установите
Индексироватьу реквизитов, по которым ищется связь: «Основание», «ДокументРасчетов». Без индекса СУБД читает всю таблицу документа. - 🌳 Глубина дерева. Не раскрывайте всю цепочку сразу. В своих обработках стройте следующий уровень только при раскрытии узла.
- 🎯 Состав типа. Не включайте в определяемый тип или критерий отбора документы, которые никогда не ссылаются друг на друга. Каждый лишний вид — лишний запрос.
- 🧹 Регламентные операции СУБД. На MS SQL и PostgreSQL обновляйте статистику и перестраивайте индексы по графику. Делайте это ночью: операции нагружают сервер.
- 🖥️ Серверный вызов. Если пишете обработку сами, собирайте дерево одним запросом на сервере, а не перебором объектов в цикле на клиенте.
Замерить, что именно тормозит, позволяет Отладка → Замер производительности в Конфигураторе. Запустите замер, нажмите кнопку в отладочном сеансе — увидите строку кода с наибольшим временем.
После установки индекса обязательно выполните обновление конфигурации базы данных в нерабочее время. На крупной таблице перестройка займёт заметное время и потребует монопольного доступа, а сеансы пользователей придётся завершить.
Частые вопросы
Можно ли добавить кнопку «Связанные документы» в форму справочника?
Снимется ли конфигурация с поддержки, если сделать кнопку расширением?
Есть ли горячая клавиша для связанных документов?
Сочетание клавиш в редакторе формы.Почему в дереве видны документы, которые я не создавал на основании?
Можно ли вывести кнопку и в форму списка документов?
Ещё → Изменить форму прямо в списке или выведите команду в редакторе формы списка. Для работы команда берёт выделенную строку.