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

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

Как изменить функциональность программы 1С 8.3

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

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

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

Перед любыми изменениями обязательно создайте резервную копию информационной базы. Для файловой базы достаточно скопировать каталог с файлом 1Cv8.1CD при отсутствии активных сеансов, для клиент-серверной — выполнить выгрузку через конфигуратор (Администрирование → Выгрузить информационную базу) или штатные средства СУБД. Без копии откатить неудачную доработку будет невозможно.

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

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

Второй подход — внешние обработки и отчёты (файлы .epf и .erf). Они подключаются через «Дополнительные отчеты и обработки» и подходят для задач, не меняющих типовые формы и модули: печатные формы, групповая обработка данных, загрузка из Excel. Третий — расширения конфигурации (.cfe), позволяющие переопределять формы, модули, добавлять объекты. Четвёртый — прямая доработка конфигурации со снятием объектов с поддержки.

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

Настройки и функциональные опции

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

Внешние обработки и отчёты

Подходит для печатных форм, загрузок, групповых операций. Не меняет конфигурацию. Ограничение — нельзя менять типовые формы и модули.

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

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

Доработка конфигурации

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

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

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

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

bsl
&ИзменениеИКонтроль("ПриСозданииНаСервере")
Процедура Расш1_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // Ваш код до или после типовой логики
КонецПроцедуры

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

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

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

Вносите правки точечно и документируйте каждую: комментируйте вставки кода метками вида // + Доработка: причина и // - Доработка. При обновлении типового релиза эти метки позволят быстро найти и перенести свои изменения. Избегайте переименования типовых объектов и удаления реквизитов — это почти гарантированно вызовет ошибки при обновлении.

Внешние обработки, отчёты и печатные формы

Значительная часть запросов на «изменение функциональности» на практике сводится к новым печатным формам, дополнительным кнопкам обработки и нестандартным отчётам. Всё это делается без изменения конфигурации. Включите механизм: «Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки». После этого файлы .epf и .erf добавляются через кнопку «Добавить из файла» и привязываются к нужным объектам (справочникам, документам).

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

Порядок безопасного внедрения изменений

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

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

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

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

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

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

Открытие изменённой формы под обычным пользователем
Норма

Форма открывается, новые элементы доступны

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

Ошибка прав доступа или форма не открывается

Проведение документов, затронутых доработкой
Норма

Документы проводятся, движения корректны

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

Ошибки проведения или неверные итоги в отчётах

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

Обновление проходит, расширение остаётся работоспособным

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

Конфликты объектов, ошибки контроля заимствованных методов

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

Часто задаваемые вопросы

Можно ли изменить функциональность 1С 8.3 без программиста?

Частично. Функциональные опции, настройки учёта, дополнительные реквизиты и сведения (в типовых конфигурациях — раздел «Администрирование → Общие настройки → Дополнительные реквизиты») позволяют добавить поля к объектам и включить скрытые возможности без кода. Для изменения форм и логики потребуется конфигуратор и знание встроенного языка.

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

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

Слетит ли доработка при обновлении конфигурации?

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

Как отменить внесённые изменения?

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

Можно ли дорабатывать базовую версию 1С?

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

Итог

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

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