При работе с механизмом дополнительных отчетов и обработок в конфигурациях на базе БСП (Библиотеки стандартных подсистем) часто возникает ситуация, когда обработка успешно зарегистрирована в системе, указана в назначении для нужного документа, но кнопка вызова команды на форме документа так и не появляется. Давайте разберем, почему это происходит и какими способами можно решить эту задачу.
Основная причина заключается не в ошибке регистрации, а в архитектуре самой формы документа. Механизм дополнительных отчетов и обработок работает автоматически только в том случае, если разработчик типовой конфигурации предусмотрел специальную поддержку в коде формы.
Система не «видит» обработку сама по себе. Для того чтобы кнопка появилась, в Модуле формы документа должен присутствовать вызов процедур БСП, которые опрашивают справочник ДополнительныеОтчетыИОбработки и размещают найденные команды в интерфейсе. Если в конкретном документе (как в случае с ОтражениеЗарплатыВБухучете) такой программный код не был внедрен разработчиками 1С, кнопка не появится, даже если вы правильно заполнили функцию СведенияОВнешнейОбработке.
Если вам критически необходимо видеть кнопку «Заполнить» (или другую командную кнопку) именно в форме документа, самый правильный способ — это использование Расширения конфигурации. Это позволит избежать изменения типового кода и сохранит конфигурацию на поддержке.
ПриСозданииНаСервере.&После("ПриСозданииНаСервере"), чтобы выполнить ваш код после типового.Рассмотрим примерный код, который необходимо разместить в расширении:
&После("ПриСозданииНаСервере")
Процедура ИмяВашегоРасширения_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Вызов методов БСП для инициализации дополнительных команд
ДополнительныеОтчетыИОбработкиКлиентСервер.ПриСозданииНаСервере(ЭтотОбъект);
КонецПроцедуры
Этот метод позволяет «подсказать» форме, что для данного документа существуют команды, которые необходимо отрисовать в интерфейсе.
Если вмешательство в форму документа кажется избыточным, можно пересмотреть подход к реализации задачи. В 1С часто практикуется создание внешних обработок, которые не привязаны к кнопкам внутри документов, а работают как автономные инструменты.
Вместо того чтобы встраиваться в форму документа, вы можете:
ДинамическийСписок или ТаблицуЗначений).ДокументОбъект.Этот подход имеет существенное преимущество: он не требует модификации типовых форм и позволяет обрабатывать сразу группу документов, что значительно экономит время бухгалтера.
Несмотря на то, что сама кнопка может не появиться из-за отсутствия кода в форме, важно убедиться, что регистрация выполнена верно. Убедитесь, что в коде вашей обработки верно указаны назначения:
ПараметрыРегистрации.Назначение.Добавить("Документы.ОтражениеЗарплатыВБухучете");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиЗаполнениеОбъекта();
Если после этого кнопка не появилась, значит, форма документа действительно не подготовлена для работы с БСП, и вам следует воспользоваться одним из предложенных выше решений. Мы рекомендуем начинать с анализа того, насколько часто вам потребуется выполнять эту операцию. Если это разовая задача — используйте автономную обработку. Если ежедневная — внедряйте кнопку через расширение конфигурации.