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