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