Расширяем формы, не добавляя их в расширение!
Предлагается метод программного расширения форм без добавления их в собственно расширение. В демонстрационном примере наглядно показан весь метод с комментариями. Прилагается расширение конфигурационно-независимое, можно использовать для программной работы с формами, в частности легко и просто программно создавать реквизиты и элементы форм, изменять их свойства.
- Описание
- Подробнее
Описание
У многих, наверное, возникнет вопрос – «А как?». Далее будет дан ответ на этот вопрос, но сначала решим вопрос «А зачем?». Ни для кого не секрет, что фирма 1С не так уж редко меняет формы объектов, и если форма добавлена в расширение, с реквизитами, которые могут быть удалены, то при обновлении базы могут возникнуть значительные проблемы, т.к. форма в расширении потребует приведения ее в соответствие с новой формой в основной конфигурации, а это, в свою очередь, потребует времени и может привести к восстановлению всех ваших доработок. Чтобы уйти от обновления форм в расширении и сэкономить значительное время на обновлении конфигурации, предлагается данный метод.
Он заключается в том, что в модуль формы основной конфигурации в конец процедуры ПриСозданииНаСервере добавляется вызов некой процедуры или функции общего модуля, созданного в расширении, и данная процедура или функция создает новые реквизиты, команды, и размещает их на форме, а также в ней добавляется новый функционал. В случае добавления команд – их процедуры также необходимо добавлять в модуль формы На практике при обновлении конфигурации Вам нужно будет только раскомментировать вызов процедуры (функции) общего модуля и процедуры созданных команд. . В тестовом примере наглядно описано, как расширяется форма элементарной обработке данным методом.
В конфигураторе создана форма с тремя реквизитами и одной командой, которая выполняет умножение двух чисел. Данным методом форма расширена и добавлены еще три реквизита и еще одна команда, выполняющая деление одного числа на другое.
PS Автор в курсе, что можно добавить в расширение пустую форму, и в ее модуль — процедуру ПриСозданииНаСервереПосле(), а также добавленные команды, где и описать расширение функционала и больше ничего туда не добавлять.

