К статье
Практический материал

Разработка и Конфигурация · 9 мин

Как добавить кнопку движения документа в 1С

Как добавить кнопку «Движения документа» в 1С: настройка командной панели, программное создание кнопки, отчёт по движениям регистров, типичные ошибки и FAQ.

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

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

Проверьте, есть ли стандартная команда в типовой конфигурации

Прежде чем что-то программировать, убедитесь, что кнопка не скрыта настройками формы. В управляемом приложении откройте документ, нажмите «Ещё» в правом верхнем углу формы и выберите «Изменить форму». В списке доступных элементов найдите команду с названием вроде «Показать движения», «Движения документа» или «Отчёт по движениям».

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

Если команды нет даже в списке доступных — значит, в конфигурации для этого вида документов она не предусмотрена, и нужен один из программных способов, описанных ниже.

Как включить кнопку без программирования
  1. 1
    Откройте любой документ нужного вида
  2. 2
    Нажмите «Ещё» → «Изменить форму»
  3. 3
    Найдите команду «Показать движения» в списке
  4. 4
    Перетащите её в командную панель формы
  5. 5
    Нажмите «ОК» и проверьте появление кнопки

Добавьте кнопку в самописный документ через конфигуратор

В собственной конфигурации стандартный подход — использовать механизм стандартных команд. Откройте конфигуратор, найдите нужный документ в дереве объектов и перейдите на закладку «Движения». Убедитесь, что документ проводится хотя бы по одному регистру: без регистров-источников команда движений бессмысленна, а в некоторых случаях платформа вообще не покажет её в интерфейсе.

Далее откройте форму документа. Если форма ещё не создана, создайте её через конструктор. В редакторе формы перейдите на закладку «Командный интерфейс» — там отображаются глобальные и локальные команды, доступные объекту. Найдите в панели команд стандартную команду «Показать движения» и установите флажок видимости, а при необходимости перетащите её в нужную группу командной панели.

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

Создайте собственную команду с обработчиком

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

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

&НаКлиенте

Процедура ПоказатьДвижения(Команда)

Если Объект.Ссылка.Пустая() Тогда

ПоказатьПредупреждение(, "Сначала запишите документ");

Возврат;

КонецЕсли;

ОткрытьФорму("Отчет.ДвиженияДокумента.Форма",

Новый Структура("Документ", Объект.Ссылка), ЭтотОбъект);

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

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

bsl
&НаКлиенте
Процедура ПоказатьДвижения(Команда)
	ОткрытьФорму("Отчет.ДвиженияДокумента.Форма", Новый Структура("Документ", Объект.Ссылка), ЭтотОбъект);
КонецПроцедуры

Программное добавление кнопки при создании формы

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

В расширении заимствуйте форму документа и добавьте в её модуль код создания команды и кнопки:

&НаСервере

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

Команда = Команды.Добавить("ПоказатьДвиженияРасш");

Команда.Заголовок = "Движения документа";

Команда.Действие = "ПоказатьДвиженияРасш";

Кнопка = Элементы.Добавить("КнопкаДвижения", Тип("КнопкаФормы"),

Элементы.КоманднаяПанель);

Кнопка.ИмяКоманды = "ПоказатьДвиженияРасш";

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

Обратите внимание: группа-родитель кнопки (Элементы.КоманднаяПанель) должна существовать на форме — в типовых формах имя командной панели может отличаться. Посмотрите точное имя в конфигураторе или через «Изменить форму» в режиме предприятия. Если указать несуществующий элемент, при открытии формы возникнет ошибка.

Проверка результата и частые ошибки

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

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

Типичные ошибки
01
Кнопка добавлена, но обработчик не создан — при нажатии ошибка «процедура не обнаружена»
02
Отбор по документу в отчёте не настроен — открываются движения всех документов или пустой результат
03
Кнопку добавили в несуществующую группу элементов — форма не открывается
04
Доработку внесли напрямую в типовую форму — при обновлении конфигурации изменения потеряны
05
Документ не проводится ни по одному регистру — кнопка бессмысленна и вводит пользователей в заблуждение

Риски и границы самостоятельной работы

Изменение формы через «Ещё → Изменить форму» безопасно: это пользовательская настройка, которую легко сбросить. Работа в конфигураторе требует осторожности — перед любыми изменениями объектов сделайте резервную копию информационной базы через «Администрирование → Выгрузить информационную базу».

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

FAQ

Почему в списке команд формы нет «Показать движения»?

Чаще всего документ не проводится ни по одному регистру — проверьте закладку «Движения» в свойствах документа в конфигураторе. Вторая причина: конфигурация использует собственный механизм просмотра движений, и команда называется иначе, например «Отчёт по проводкам».

Можно ли добавить кнопку без прав администратора?

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

Кнопка появилась, но отчёт пустой. Что проверить?

Убедитесь, что документ проведён — у непроведённого документа движений нет. Затем проверьте, что параметр отбора в отчёте связан с данными и его имя совпадает с тем, что передаётся из обработчика кнопки.

Как показать движения только по одному регистру?

Создайте собственный отчёт с параметром отбора по документу и постройте запрос только по нужной таблице регистра. В команде формы открывайте именно этот отчёт вместо универсального.

Что лучше: доработка типовой формы или расширение?

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

Итог

Что важно запомнить

Сначала проверьте скрытые команды через «Изменить форму» — часто программирование не нужно. Для самописных документов включите стандартную команду или создайте свою с обработчиком. Типовые конфигурации дорабатывайте через расширение и всегда делайте резервную копию перед изменениями.