Технология обновления нетиповых конфигураций хорошо описана в статье //infostart.ru/public/18562/. Целью данной статьи является описать набор некоторых правил, как ее ускорить.
1. Лучшая доработка, это доработка без изменения конфигурации. Если возможно, используем справочник "Внешние отчеты и обработки"
2. Если без доработок никак, стараемся создавать новые объекты, в частности:
2.1. При добавлении новых объектов, реквизитов обязательно добавляем префикс
2.2. Создаем общие модуля (для сервера, клиента и пр.), куда стараемся переносить все изменения. Остальные модули вызывают данный код.
2.3. Используем подписки на события для проверки значений, корректировки проведения документов.
2.3. Для новых объектов лучше создать новую роль, а не редактировать старую
2.4. Все новые и измененные объекты включаем в специально созданную для этого подсистему
3. Если необходимо изменить код модуля:
3.1. Выделяем комментарием все сделанные изменения, причем комментарий должен позволять однозначно найти все изменения конфигурации (используя глобальный поиск) и при этом не дать лишних строк. Желательно добавлять метку задачи (код), в рамках которой были изменения, дату и автора решения.
3.2. Старый код не удаляем, а оставляем закомментированным
3.3. Комментарий добавляем перед и после изменений, с открывающим и закрывающим символом соответственно (например: + и -)
3.4. Самое главное, чего, собственно, нигде не встречал и что сильно упрощает жизнь, создаем процедуру "НеТиповыеИзменения". Данная процедура должна содержать в себе копию всех комментариев по сделанным изменениям с указанием процедур в которых были внесены данные изменения. Т.е. при сравнении/объединении модуля мы вначале определяем процедуры, содержащие изменения, и не проходим по всем процедурам модуля.
Как пример на примере пункта 3.5 в конце модуля добавляется процедура:
Процедура НеТиповыеИзменения()
//ПриОткрытии() //[*]ОткрываемПоДругому
КонецПроцедуры
3.5. Спасибо unichkin. Все изменения по возможности выносить в отдельные процедуры, как один из минусов сложность в анализе изменений в одном месте, отлично подходит при отсутствии пункта 3.4, пример:
Процедура ПриОткрытии()
//{[*]ОткрываемПоДругому
// уфк_ПриОткрытии()
//----------------------ЗАМЕНЕНО НА---------------------
мод_ПриОткрытии();
//}
КонецПроцедуры;
// Типовой код....
//////////////////////////////////////////////////////////////////////////////////////////
// МОДИФИЦИРОВАННЫЕ ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ
Процедура мод_ПриОткрытии()
// свой код...
КонецПроцедуры;
//////////////////////////////////////////////////////////////////////////////////////////
// УДАЛЕННЫЕ ФРАГМЕНТЫ КОДА
Процедура уфк_ПриОткрытии()
// Исходный типовой код
КонецПроцедуры;
3.6 Спасибо Armando. В форме можно переопределять обработчики на свои, а из своих в нужный момент вызывать типовые. Тогда в большинстве случаев процедуры-обработчики событий можно смело заменять и даже дописывать в них ничего не придется:
Процедура МойОбработчикПриОткрытии(Отказ)
// вызов типового обработкчика
ПриОткрытии(Отказ);
// тут наш кот
КонецПроцедуры
УстановитьДействие("ПриОткрытии", "МойОбработчикПриОткрытии");
4. Если необходимо изменить форму:
4.1. Описываем все изменения в процедуре "НеТиповыеИзменения" см. 3.4.
4.2. Кнопки и поля формы возможно добавлять программно, как и настраивать их первоначальную видимость/доступность.
5. Спасибо unichkin. Внедрения стандартов разработки (например: Система стандартов и методик разработки конфигураций для платформы 1С:Предприятие 8.), позволит быстрее воспринимать код другого программиста.
Ссылки по теме (для меня это lvl-up, можно рассматривать как продолжение статьи):
v8: Концепция минимального изменения конфигурации для легкого обновления
Методика переопределения и вызова обработчиков событий формы в 1С 8 (переопределение собятие формы для обычных форма)
Методика упрощения поддержки конфигураций. Переопределение и вызов обработчиков событий для УФ 1С 8.2-8.3 (переопределение собятие формы для управляемых форм)
Готов выслушать критику, советы по улучшению статьи как с точки зрения содержания, так и с точки зрения оформления.
Версия 1.1:
Внес дополнения по комментариям от авторов unichkin, Armando , ИНТЕГРА
Уточнил пункт 3.4
Версия 1.2: добавил ссылку по теме для обычных форм. и пункт 5.