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