К статье
Практический материал

Разработка и Конфигурация · 11 мин

Как изменить реализацию в 1С и не сломать обновления

Как изменить реализацию в 1С: расширения, доработка конфигурации, типовые механизмы. Пошаговые инструкции, проверка результата, типичные ошибки и FAQ.

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

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

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

Как найти, где реализована нужная логика

Прежде чем что-то менять, нужно понять, где находится код, отвечающий за поведение. Самый быстрый способ — воспроизвести проблемное действие в режиме «Предприятие» с включенным замером производительности или запустить отладку: в конфигураторе откройте «Отладка → Подключение», подключите сеанс пользователя и поставьте точку останова в предполагаемом обработчике.

Если вы знаете, какое сообщение или элемент интерфейса связан с нужной логикой, используйте глобальный поиск по конфигурации (Ctrl+Shift+F) по фрагменту текста сообщения. Для форм документов и справочников полезно посмотреть состав команд и обработчиков событий формы — часто вся логика сосредоточена в модуле формы и модуле объекта.

Отдельно проверьте, не реализовано ли поведение через подписки на события или бизнес-процессы. Подписки на события часто «прячут» дополнительные проверки и заполнения полей: в конфигураторе откройте ветку «Общие → Подписки на события» и посмотрите, какие обработчики привязаны к нужному типу объекта.

Логика срабатывает при записи документаМодуль объекта или подписка на событие

Проверьте обработчики ПередЗаписью, ПриЗаписи и подписки на события

Поведение меняется настройкой в интерфейсеШтатный механизм

Ищите параметр в настройках функциональности, доработка может не понадобиться

Код находится в общем модуле БСП с суффиксом ПереопределяемыйПредусмотрена точка расширения

Меняйте только переопределяемую процедуру, а не типовой модуль

Как выбрать способ изменения реализации

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

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

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

Сравнение вариантов доработки

Настройки и доп. обработки

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

Расширение конфигурации

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

Прямая доработка конфигурации

Подходит для глубоких изменений структуры данных. Усложняет обновления, требует сравнения и объединения при каждом релизе

Изменение реализации через расширение конфигурации

Создайте расширение в конфигураторе: «Конфигурация → Расширения конфигурации → Создать». Задайте имя, префикс (он будет добавлен к именам новых объектов) и назначение — для доработки прикладной логики выбирайте «Дополнение». Сохраните расширение и убедитесь, что оно активно.

Чтобы изменить типовую процедуру, добавьте её в расширение через контекстное меню модуля: «Добавить в расширение». Затем выберите способ переопределения. Аннотация &После выполняет ваш код после типового, &Вместо полностью заменяет типовую процедуру, &ИзменениеИКонтроль позволяет встроить свой фрагмент внутрь типового кода с сохранением контроля при обновлении.

bsl
&ИзменениеИКонтроль("ЗаполнитьДокумент")
Процедура Расш1_ЗаполнитьДокумент()
	// вызов типовой логики
	#Вставка
		// исходный типовой код
	#КонецВставки
	// собственная доработка
	Документ.Комментарий = "Заполнено расширением";
КонецПроцедуры

Для доработки формы добавьте её в расширение и изменяйте реквизиты, элементы и обработчики. Учтите ограничение: в расширении нельзя удалить типовой элемент формы, можно только скрыть его или изменить свойства. Если нужно убрать обязательность реквизита, проверяйте это в обработчике формы, а не в свойствах объекта метаданных.

После изменений обновите конфигурацию базы данных (F7) и проверьте работу в режиме «Предприятие». Если расширение перестало применяться после обновления конфигурации, откройте его и выполните проверку применимости — платформа покажет, какие переопределяемые методы изменились в типовой и требуют пересмотра.

Порядок действий при доработке расширением
  1. 1
    Сделайте выгрузку информационной базы (.dt) или резервную копию
  2. 2
    Создайте расширение с понятным именем и префиксом
  3. 3
    Добавьте в расширение нужные процедуры и формы, выберите аннотацию переопределения
  4. 4
    Напишите код, обновите конфигурацию БД, проверьте на тестовой копии
  5. 5
    Перенесите расширение в рабочую базу и проверьте ключевые сценарии

Прямая доработка конфигурации в конфигураторе

Если расширение не справляется, включите возможность изменения: «Конфигурация → Поддержка → Настройка поддержки → Включить возможность изменения». Старайтесь снимать с поддержки (замок) только те объекты, которые реально меняете — это сократит объем ручной работы при обновлении.

Вносите изменения по минимальному принципу: добавляйте свой код в отдельные процедуры и вызывайте их из типовых модулей одной строкой, вместо того чтобы встраивать большие фрагменты в типовой текст. Помечайте все вставки комментариями с единым префиксом, например // ДОРАБОТКА НАЧАЛО и // ДОРАБОТКА КОНЕЦ — это сильно упрощает поиск при объединении конфигураций.

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

Проверка результата и типичные ошибки

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

Используйте контрольные точки: сравните поведение до и после на одних и тех же тестовых данных, включите запись журнала регистрации для отслеживания ошибок, а для расширений — проверьте, что они применяются ко всем нужным ролям пользователей (расширение можно отключить для конкретного пользователя в его настройках).

Контрольные точки

Как проверить результат

Целевой сценарий
Норма

Поведение соответствует задуманному на тестовых и реальных данных

Тревожный признак

Работает только на конкретном документе или под конкретным пользователем

Смежные операции
Норма

Проведение, отмена, печать и отчеты работают без ошибок

Тревожный признак

Ошибки в журнале регистрации после выполнения связанных действий

Обновление конфигурации
Норма

Расширение проходит проверку применимости, типовые объекты обновляются автоматически

Тревожный признак

После обновления доработка исчезла или конфликтует с новым типовым кодом

Типичные ошибки
01
Правка типового модуля без копии базы — при ошибке откатить изменение нечем
02
Использование &Вместо там, где хватило бы &После — теряются исправления из новых релизов
03
Доработка без комментариев-маркеров — при обновлении невозможно быстро найти свои вставки
04
Проверка только под администратором — у обычных пользователей не хватает прав на новые объекты
05
Изменение реализации в рабочей базе вместо тестовой — ошибка сразу бьет по пользователям

Как сохранить доработки при обновлении

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

Для прямых доработок используйте «Конфигурация → Поддержка → Обновить конфигурацию на поддержке» с режимом сравнения и объединения. В окне сравнения отключите автоматическое объединение измененных вами объектов и переносите свои фрагменты вручную — именно здесь помогают комментарии-маркеры. Храните описание всех доработок в отдельном документе: список объектов, что изменено и зачем.

FAQ

Можно ли изменить реализацию в 1С без программиста?

Частично да: настройки функциональности, дополнительные отчеты и обработки, простые печатные формы доступны пользователю с правами администратора без конфигуратора. Изменение модулей, форм и структуры данных требует навыков встроенного языка 1С и понимания механизмов платформы.

Что лучше: расширение или доработка конфигурации?

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

Пропадет ли доработка после обновления 1С?

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

Как откатить неудачное изменение?

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

Почему расширение не применяется в режиме «Предприятие»?

Частые причины: расширение отключено в списке расширений, не прошла проверка применимости после обновления, в параметрах расширения снят флаг «Использовать в основных ролях», либо оно отключено в настройках конкретного пользователя. Проверьте журнал регистрации — там фиксируются ошибки применения.

Можно ли изменить реализацию в базовой версии 1С?

Нет, базовые версии не поддерживают доработку конфигурации и расширения с изменением типовых объектов. Доступны только внешние отчеты и обработки через соответствующий механизм. Для полноценных доработок требуется версия ПРОФ или КОРП.

Итог

Что важно запомнить

Изменение реализации в 1С начинайте с поиска штатных механизмов, дорабатывайте через расширение, а прямую правку типовых объектов оставляйте на крайний случай. Перед любыми изменениям делайте копию базы, помечайте свои вставки, ведите реестр доработок и проверяйте результат на тестовой копии, включая смежные сценарии.