Расширение функционала 1С: от готовых модулей до своего кода
Содержание
Добавить в 1С недостающую колонку, свой отчёт, новую печатную форму или обмен с сайтом можно, не трогая типовую конфигурацию
. Главный инструмент для этого — расширения конфигурации
(файлы .cfe), они появились в платформе начиная с версии 8.3.6 и работают без снятия базы с поддержки. Там, где расширения не хватает, в ход идут внешние отчёты и обработки, интеграция через веб-сервисы и REST, и в крайнем случае — прямая доработка кода.
Ниже — семь способов нарастить функционал: от самого безопасного (подключить готовый модуль за минуту) до радикального (править типовую конфигурацию). Для каждого — когда он уместен, точные пути в Конфигураторе и режиме предприятия, и что будет при обновлении.
С чего начать: какой способ выбрать под задачу
Прежде чем лезть в код, определите масштаб задачи. От этого зависит выбор инструмента.
- 🧩 Нужна небольшая правка типовой (колонка в списке, реквизит в документе, своя кнопка) — расширение конфигурации
.cfe. - 📊 Разовый или периодический отчёт, печатная форма — внешний отчёт или обработка
.erf/.epf. - 🔌 Связь с сайтом, CRM, маркетплейсом, банком — веб-сервисы, HTTP-сервисы или автоматический REST-интерфейс (OData).
- 🛠 Глубокая переделка логики, которую расширением не закрыть — доработка конфигурации кодом со снятием с поддержки.
Ключевое правило: начинайте с самого щадящего способа и переходите к более жёсткому только когда предыдущий не тянет задачу. Расширение переживёт обновление почти всегда, снятая с поддержки конфигурация — почти никогда.
Расширения конфигурации (.cfe) — главный безопасный способ
Расширение — это отдельная мини-конфигурация, которая накладывается поверх типовой во время работы. Вы не меняете основной код, а дополняете его: добавляете реквизиты, формы, модули, свои процедуры. Основная конфигурация остаётся на поддержке и спокойно обновляется.
Что умеет расширение:
- добавлять реквизиты, табличные части, команды к существующим объектам;
- создавать новые справочники, документы, отчёты, обработки, регистры;
- перехватывать и дополнять типовые процедуры через механизм
&Перед,&После,&Вместо; - менять формы: добавлять поля, кнопки, скрывать лишнее.
Как создать расширение в Конфигураторе:
- Откройте базу в
Конфигураторе. - Меню
Конфигурация → Расширения конфигурации. Откроется список расширений. - Нажмите кнопку добавления. Задайте имя (латиницей, без пробелов), префикс и назначение.
- Назначение определяет поведение: Дополнение (штатные доработки), Исправление (патч для срочной правки), Адаптация. Для большинства задач подойдёт «Дополнение».
- Откройте дерево расширения:
Конфигурация → Открыть конфигурацию расширения. - Нужные типовые объекты добавьте через заимствование (команда «Добавить в расширение» из контекстного меню объекта основной конфигурации).
- Внесите изменения, напишите код в модулях.
- Обновите конфигурацию базы данных — клавиша
F7.
Префикс нужен, чтобы ваши объекты не конфликтовали с чужими расширениями и типовыми именами. Задайте его сразу — поменять потом сложнее.
Как подключить готовый файл .cfe в режиме предприятия:
Если расширение вам прислали отдельным файлом, в Конфигуратор лезть не обязательно. В типовых конфигурациях на БСП есть форма управления расширениями. В 1С:Бухгалтерии 3.0 это Администрирование → Печатные формы, отчёты и обработки → Расширения. Нажмите «Добавить из файла», выберите .cfe, перезапустите сеанс.
После загрузки расширения, которое меняет структуру данных, 1С попросит выполнить обновление конфигурации базы. Загрузка файла и обновление структуры БД — два разных шага.
Внешние отчёты и обработки — функции без правки конфигурации
Если задача — только посчитать, выгрузить или напечатать, полноценное расширение избыточно. Хватит внешнего отчёта (.erf) или обработки (.epf). Это отдельный файл, который не входит в конфигурацию и подключается на лету.
Два способа запустить внешнюю обработку :
| Способ | Когда применять | Минус |
|---|---|---|
| Открыть файл напрямую | разовый запуск, тест | нужен включённый режим и права, не хранится в базе |
| Через «Дополнительные отчёты и обработки» | регулярное использование, несколько пользователей | требуется БСП и настройка |
Для регулярной работы подключайте обработку в справочник. В 1С:Бухгалтерии 3.0: Администрирование → Печатные формы, отчёты и обработки → включите флажок «Дополнительные отчёты и обработки» → в одноимённом списке добавьте файл. После этого обработка доступна пользователям прямо из разделов, без открытия файла вручную.
Чтобы открыть внешний файл напрямую, в базе должна быть включена возможность использования внешних отчётов и обработок, а у пользователя — соответствующее право. По умолчанию из соображений безопасности это может быть запрещено.
Внешняя обработка не трогает метаданные вообще, поэтому на обновление конфигурации она не влияет никак. Это самый «лёгкий» способ добавить функцию.
Интеграция с внешними системами через API
Когда возможности нужно не добавить внутрь, а связать 1С с сайтом, CRM, банком или маркетплейсом, работает интеграция. У платформы есть встроенные механизмы — и на приём, и на отдачу данных.
1С как поставщик данных (входящие вызовы):
- Web-сервисы (SOAP) — строгий контракт через WSDL, подходит для корпоративных систем.
- HTTP-сервисы — лёгкие REST-эндпоинты, вы сами описываете маршруты и методы. Удобно для обмена с сайтом и мобильными приложениями.
- Автоматический REST-интерфейс (OData) — платформа сама отдаёт справочники и документы по стандарту OData, писать код почти не нужно.
Чтобы сервис заработал, базу нужно опубликовать на веб-сервере (Apache или IIS) через Администрирование → Публикация на веб-сервере в Конфигураторе. Для OData дополнительно включается состав публикуемых объектов.
1С как потребитель данных (исходящие вызовы):
Для обращения к чужому API из встроенного языка используйте объект HTTPСоединение и HTTPЗапрос. Ответ в JSON разбирается через ЧтениеJSON и ПрочитатьJSON. Так 1С забирает курсы валют, статусы заказов, данные с маркетплейса.
Для типовых обменов между конфигурациями 1С не изобретайте велосипед — есть планы обмена и формат EnterpriseData, а также правила конвертации (КД 2 и КД 3). Они закрывают большинство сценариев «1С ↔ 1С».
Любую интеграцию, которая ходит во внешнюю сеть, тестируйте на копии базы. Ошибка в разборе ответа или зацикленный запрос легко вешают рабочий сеанс.
Собственные отчёты, обработки и печатные формы
Часто «расширить 1С» означает не перестроить логику, а получить свой разрез данных. Для этого есть несколько уровней сложности — выбирайте по силам.
- 📈 Варианты отчётов на СКД — самый простой путь. Многие типовые отчёты строятся на системе компоновки данных, и пользователь может сам настроить группировки, отборы, поля и сохранить свой вариант. Код не нужен.
- 🧾 Своя печатная форма — добавляется расширением конфигурации: заимствуете документ, создаёте макет, пишете процедуру печати. Так форму не затрёт обновлением.
- 🧮 Внешний отчёт на СКД — если нужен принципиально новый отчёт, его собирают во внешнем файле
.erfи подключают как дополнительный (см. раздел выше).
Порядок роста такой: сначала попробуйте настроить существующий отчёт, затем — внешний отчёт, и только для печатных форм и сложной логики беритесь за расширение. Это экономит время и не плодит лишних объектов в базе.
Типичные ошибки при расширении 1С и как их разобрать
Большинство проблем с расширениями — из-за несовпадения версий, прав или режима совместимости. Разберём частые симптомы.
Прежде чем обновлять конфигурацию базы данных из Конфигуратора, убедитесь, что в базе нет активных пользователей, — для изменения структуры платформе нужен монопольный доступ. Делайте это в нерабочее время и с резервной копией.
Производительность и обновление: как не сломать базу
Расширения почти не бьют по скорости, пока их немного и они не перехватывают тяжёлые процедуры на каждом проведении. Несколько практических ориентиров.
- Держите в базе только нужные расширения: каждое неактивное всё равно загружается платформой при старте.
- Перехваты
&Вместоопаснее&После: вы полностью подменяете типовой код и несёте ответственность за его корректность после каждого обновления. - Тяжёлую логику (отборы, большие выборки) пишите на запросах, а не в циклах по коллекциям — это общая беда доработок, не только расширений.
Что происходит с доработками при обновлении типовой:
| Способ доработки | Поведение при обновлении | Риск потерять правки |
|---|---|---|
Расширение .cfe | накладывается заново поверх новой типовой | низкий |
| Внешний отчёт/обработка | не связан с конфигурацией | нулевой |
| Доработка со снятием с поддержки | требует ручного сравнения и объединения | высокий |
Как сохранить расширения при обновлении:
- Перед обновлением типовой сделайте резервную копию базы.
- Обновите основную конфигурацию штатно (через механизм обновления конфигураций).
- После обновления откройте список расширений и проверьте контроль заимствованных объектов: платформа подсветит места, где заимствованный объект изменился.
- Там, где подсветка есть, откройте расширение, сверьте и поправьте привязки.
- Выполните обновление конфигурации базы (
F7) и проверьте работу доработок на копии.
Расширение с назначением «Исправление» (патч) при обновлении имеет смысл пересматривать: часто фикс уже вошёл в типовую, и патч можно удалить.
Если же функционал добавлен прямой правкой кода со снятием с поддержки — обновление превращается в ручное трёхстороннее сравнение (старая типовая, новая типовая, ваша база). Именно поэтому расширения почти всегда предпочтительнее доработки «в лоб».
Доработка кодом: когда без снятия с поддержки не обойтись
Расширение перекрывает многое, но не всё. Бывают задачи, где нужно менять структуру так глубоко, что механизм заимствования не справляется, или переписывать типовой алгоритм целиком. Тогда конфигурацию снимают с поддержки частично или полностью и правят напрямую.
Чем это грозит:
- каждое обновление типовой — ручное сравнение и объединение конфигураций ;
- растёт стоимость сопровождения: нужен программист при каждом релизе;
- выше риск ошибок после обновления.
Как снизить боль, если доработка неизбежна:
- Снимайте с поддержки точечно (конкретные объекты), а не всю конфигурацию целиком.
- Фиксируйте изменения: храните конфигурацию в хранилище или системе контроля версий (например, через выгрузку в файлы и git).
- Всё, что можно вынести в расширение, выносите в расширение, даже если часть правок остаётся в типовой.
Для серьёзных доработок привлекайте специалиста с опытом сопровождения именно вашей конфигурации. Самостоятельная глубокая правка типовой без понимания её внутренних механизмов обычно выходит дороже, чем кажется.
Частые вопросы
С какой версии платформы работают расширения конфигурации?
Нужно ли снимать конфигурацию с поддержки, чтобы использовать расширение?
Чем расширение отличается от внешней обработки?
.epf/.erf) живёт отдельным файлом, ничего в метаданных не меняет и годится для отчётов и разовых операций.