Прием программирования, минимизирующий изменения в модулях управляемых форм при доработке типовых конфигураций и сокращающий время обновления при переходе на новую версию

14.12.20

База данных - Обновление 1С

Прием программирования, который позволяет при доработке типовых конфигураций минимизировать изменения в модулях дорабатываемых управляемых форм и сократить время обновления конфигурации при переходе на новую версию, при этом механизм расширений не используется.

При доработке типовых конфигураций, если требуется откорректировать функционал типовых процедур и функций, можно: либо внести изменения в типовой код процедуры или функции, оставив комментарий, либо воспользоваться механизмом расширения. 

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	// ТИПОВОЙ КОД
	// ....
	
	// начала фрагмента 13.12.2020
	// мой программный код
	// конец фрагмента 13.12.2020
	
КонецПроцедуры

Когда выйдет новая версия типовой конфигурации, то возникнет необходимость обновления продуктивной информационной базы на эту новую версию. Если изменения вносились напрямую в типовую процедуру и функции, то потребуется перенести изменения в новую версию типовой процедуры или функции.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	// ТИПОВОЙ КОД НОВОЙ ВЕРСИИ КОНФИГУРАЦИИ
	// ....
	
	// начала фрагмента 13.12.2020
	// мой программный код
	// конец фрагмента 13.12.2020
	
КонецПроцедуры

Если изменения были внесены через расширение, то есть вероятность, что оно может не заработать по причине отсутствия или изменения элементов типовой конфигурации, используемых в расширении. Здесь может потребоваться время для адаптации расширения под новую версию конфигурации.

В своей практике для подмены типовых процедур и функций в модулях управляемых форм я использую подмену типовых обработчиков через функцию УстановитьДействие()

Это позволяет разделить модуль управляемой формы на 2 блока:

  • типовой программный код,
  • новый программный код.

Такое разделение программного кода позволяет существенно снизить время обновления при выходе новой версии конфигурации, поскольку в типовых процедурах и функциях сохраняется типовой код, и при обновлении релиза просто принимается новый типовой код "как есть", а новый программный код типовой релиз не затрагивает.

При этом если требуется внести новый функционал в типовой обработчик события перед или после этого обработчика, то типовой код вообще не потребует корректировки. Если нужно заменить типовой обработчик, то аналогично - типовой обработчик не потребует корректировки. Изменение программного кода типового обработчика потребуется в случае, если изменение было выполнено в середине.

// ТИПОВОЙ ПРОГРАММНЫЙ КОД
// ...


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	// ...
КонецПроцедуры

&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
	// ...
КонецПроцедуры

&НаСервере
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
	// ...
КонецПроцедуры

// НОВЫЙ ПРОГРАММНЫЙ КОД

// процедура переопределение типового обработчика события "ПриСозданииНаСервере" формы
&НаСервере
Процедура нов_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	// программный код ПОСЛЕ типовой функции
	// ...
КонецПроцедуры

// процедура переопределение типового обработчика события "ПослеЗаписиНаСервере" формы
&НаСервере
Процедура нов_ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
	// программный код ПЕРЕД типовой функцией
	// ...
	
	ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры

&НаСервере
Процедура нов_ПередЗаписью(Отказ, ПараметрыЗаписи)
	// типовой обработчик не вызываем
	//ПередЗаписью(Отказ, ПараметрыЗаписи)
КонецПроцедуры

// процедура переопределяет типовые обработчики формы
&НаСервере
Процедура нов_УстановитьНовыеОбработчикиФормы()

	Если Не ЭтаФорма.Параметры.Свойство("ДополнительныеПараметры") Тогда
		Возврат;
	КонецЕсли;
	
	ОбработчикиФормы = Новый Массив;
	ОбработчикиФормы.Добавить("ПриСозданииНаСервере");
	ОбработчикиФормы.Добавить("ПослеЗаписиНаСервере");
	ОбработчикиФормы.Добавить("ПередЗаписью");
	
	Для каждого ОбработчикФормы Из ОбработчикиФормы Цикл
		УстановитьДействие(ОбработчикФормы, "нов_" + ОбработчикФормы);
	КонецЦикла;
	
КонецПроцедуры

// переопределение типовых обработчиков формы
нов_УстановитьНовыеОбработчикиФормы();

 

Вступайте в нашу телеграмм-группу Инфостарт

доработка

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Рефакторинг и качество кода Обновление 1С Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Бесплатно (free)

На проекте сложного обновления 1С:ERP 2.4.14.181 до версии 2.5.22.106 нам было нужно уложить обновление в технологическое окно 48 часов (выходные). Исходный замер, с учетом промежуточных релизов 2.5.8.443, 2.5.12.270, 2.5.17.234, 2.5.22.106, показал требуемое время в 659 часов…

07.07.2026    2740    1c-izh    19    

19

Рефакторинг и качество кода Обновление 1С Программист 1С 8.3 Бесплатно (free)

Обновление ролей в расширении 1С отличается от аналогичного процесса в основной конфигурации. Ситуация осложняется, когда доработки вносятся не в «обычное», а в поставляемое расширение.

26.06.2026    940    1c-izh    3    

5

Обновление 1С Программист 1С 8.3 Россия Бесплатно (free)

Внешняя обработка для проверки методов расширений с директивами &Вместо, &Перед, &После и &ИзменениеИКонтроль после обновления типовой конфигурации. Обработка анализирует файловые выгрузки старой и новой конфигурации, автоматически определяет изменившиеся типовые методы и формирует список методов расширения, требующих проверки.

25.06.2026    1155    130    akeeela    8    

17

Обновление 1С Программист Россия Бесплатно (free)

Релиз в 1С может быть технически правильным, но все равно закончиться потоком обращений: пользователи не поняли, что изменилось, не нашли кнопку, не смогли провести документ или начали искать инструкцию уже после обновления. В статье — практический маршрут подготовки пользователей, поддержки и ключевых участников процесса к релизу: что объяснить, кого предупредить, как оформить инструкцию, как снизить хаос в первые часы и почему плохая коммуникация быстро превращается в деньги компании

24.06.2026    670    NikolayMaerov    2    

2

Нейросети Обновление 1С Программист 1С:Предприятие 8 1С:Комплексная автоматизация 2.х Россия Бесплатно (free)

Делюсь практикой переноса доработок при обновлении 1С:КА с 2.5.22 на 2.5.27 с помощью Claude, подключённого к конфигурации в EDT через MCP. Что у ИИ получилось хорошо, где он бессилен, что он осознанно отказался переносить — и какой главный вывод я сделал для следующего раза.

18.06.2026    1813    Angoleiro    2    

5

Обновление 1С Программист Россия Бесплатно (free)

Релиз 1С часто превращается в ночной аврал: задачи собираются из переписок, внешние обработки забывают проверить, пользователи тестируют “как получится”, а после обновления команда тушит пожары. Разбираем минимальный релизный процесс для 1С-команды: состав релиза, роли, чек-листы, smoke-проверки, коммуникацию с пользователями и разбор ошибок после выпуска.

10.06.2026    905    NikolayMaerov    0    

2

Нейросети Обновление 1С Бесплатно (free)

Когда доработанную 1С не обновляли годами, начинать приходится не с переноса кода, а с разбора того, что вообще накопилось в базе. Там могут быть десятки обработок, расширения, правки типовых объектов, а документации либо нет, либо она давно не актуальна. На примере реального обновления разбираем, как кодовые агенты, MCP-серверы и языковые модели помогают навести порядок в доработках, собрать план миграции, понять, где при переносе будут проблемы, и автоматизировать часть исправлений.

05.06.2026    5608    wonderboy    6    

26

Обновление 1С Обмен с ГосИС Программист 1С 8.3 1С:Управление торговлей 10 Абонемент ($m)

ВАЖНО! Обновление предназначено для технических специалистов! Поддержка формата обмена V2 в локальном модуле ЧЗ. Поддержка формата обмена V2 в модуле ПиоТ. Поддержка многих видов маркируемой продукции.

10 стартмани

04.06.2026    2097    46    andrew.ab    62    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. zqzq 25 14.12.20 10:43 Сейчас в теме
Тоже подобный метод пытался применять, но в итоге пришёл просто к комментированию по месту и добавлению своего. Фишка -- в использовании kdiff3 при обновлении (через штатные настройки 1С 8.3) -- решает автоматизировано 99% проблем.

Проблема с подходом в статье -- полностью заменили типовой обработчик ПередЗаписью, а в следующей стандартной версии туда добавили новый важный функционал.
ubnkfl; capitan; +2 Ответить
2. baturo 39 14.12.20 12:25 Сейчас в теме
(1)

Проблема с подходом в статье -- полностью заменили типовой обработчик ПередЗаписью, а в следующей стандартной версии туда добавили новый важный функционал.

Отключение обработчика ПередЗаписью сделано для примера, чтобы показать возможность полностью переопределить стандартный обработчик без изменения программного кода типовой процедуры.
3. capitan 2591 14.12.20 12:29 Сейчас в теме
(1)Так наверняка по фен-шую, но делаю как пишет автор и в 99% все взлетает.
Новый важный функционал добавляют не так уж и часто, скорее просто перестает работать обработчик в расширении из-за переименования функций
7. sergpn 18.12.20 08:32 Сейчас в теме
(1) Это удобно иногда, я делаю так, на форме делаешь новую процедуру обработки события, в не вызываешь типовую как у автора. Сам можешь либо до этой процедуры либо после добавить свой обработчик. А вот само переопределение типового обработчика делаю в модуле МодификацияКонфигурацииПереопределяемый. Так на Упр форма все что хочешь можно налепить
4. bulpi 218 14.12.20 13:45 Сейчас в теме
Ээээ... Никто не заметил, что это просто примитивный механизм расширения, сделанный самостоятельно? И он обладает тем же недостатком, что и настоящий механизм расширений.
nekit_rdx; WellMaster; DrAku1a; DwellerNet; MishaD; zhuravlev_as; retr0; +7 Ответить
5. retr0 14.12.20 14:54 Сейчас в теме
6. TrinitronOTV 16 15.12.20 06:38 Сейчас в теме
8. uaz.dba 04.02.21 13:46 Сейчас в теме
Для конфигураций, у которых установлен режим совместимости - использование расширений может быть или не возможно в принципе, или урезано.
Плюс при использовании расширений - после обновления они могут отвалиться из-за какой-то мелочи в форме.
Для отправки сообщения требуется регистрация/авторизация