Разработка и Конфигурация · 12 мин
Как добавить дополнительные возможности в 1С
Как расширить функциональность 1С: расширения конфигурации, внешние обработки и отчёты, доработка конфигурации. Пошаговые инструкции, риски и выбор способа.
Стандартная конфигурация 1С редко закрывает все задачи конкретной компании: не хватает печатной формы, отчёта, автоматической проверки или интеграции с внешним сервисом. Добавить возможности можно несколькими способами — от простого подключения внешней обработки до полноценной разработки на встроенном языке, и выбор зависит от масштаба задачи, наличия специалиста и планов по обновлению конфигурации.
Главный принцип: чем меньше вы вмешиваетесь в типовую конфигурацию, тем дешевле её сопровождать. Прямая доработка конфигурации затрудняет обновления, поэтому современная практика — использовать расширения и внешние механизмы, а изменение основной конфигурации оставлять как крайний вариант.
Ниже разобраны основные способы расширения функциональности, порядок действий для каждого, ограничения и признаки того, что задачу лучше передать разработчику.
Какие способы расширения функциональности существуют
Платформа 1С:Предприятие предлагает несколько механизмов, различающихся глубиной вмешательства и стоимостью сопровождения. Понимание различий помогает не переплатить за разработку и не сломать обновления.
Сравнение вариантов
Подключаются через «Дополнительные отчеты и обработки», не меняют конфигурацию. Подходят для печатных форм, загрузки данных, разовых операций. Ограничение: нельзя менять структуру данных и интерфейс типовых объектов.
Отдельный слой поверх конфигурации: можно добавлять объекты, формы, подписки на события, менять код через аннотации. Обновления типовой конфигурации проходят почти безболезненно. Основной рекомендуемый способ доработок.
Снятие с поддержки и правка типовых объектов. Даёт полную свободу, но каждое обновление требует ручного сравнения и объединения. Оправдано только при глубокой переработке логики.
Коммерческие и бесплатные модули (интеграции, ЭДО, обмены). Быстрый старт, но зависимость от поставщика и возможные конфликты с другими доработками.
Если задача — добавить кнопку печати, обработку заполнения или нестандартный отчёт, почти всегда хватает внешней обработки. Если нужно изменить поведение документа (например, добавить проверку при проведении) или новый реквизит — используйте расширение.
Внешние обработки и отчёты: самый безопасный способ
Внешние обработки (файлы .epf) и внешние отчёты (.erf) подключаются к типовой конфигурации без каких-либо изменений. Они работают в рамках существующих данных и не мешают обновлениям.
- 1Откройте раздел «Администрирование» → «Печатные формы, отчеты и обработки».
- 2Включите флажок «Дополнительные отчеты и обработки».
- 3Перейдите по ссылке «Дополнительные отчеты и обработки» и нажмите «Добавить из файла».
- 4Выберите файл .epf или .erf. Если появится предупреждение безопасности — подтверждайте только для файлов из доверенного источника.
- 5Настройте размещение: укажите, в каких разделах или документах обработка будет доступна.
- 6Проверьте права: пользователи без права «Использование дополнительных отчетов и обработок» её не увидят.
- 7Откройте обработку на тестовых данных и убедитесь, что результат корректен.
Для печатных форм и обработок табличных частей файл должен содержать сведения о внешней обработке — функцию СведенияОВнешнейОбработке(), описывающую тип (печатная форма, заполнение объекта, создание связанных объектов). Обработки без этой функции можно открыть только через «Файл → Открыть» и только пользователю с правами администратора.
Расширения конфигурации: рекомендуемый способ доработок
Расширение создаётся в конфигураторе: «Конфигурация → Расширения конфигурации → Создать». Внутри можно заимствовать типовые объекты и доработать их: добавить реквизит в документ, изменить форму, дописать проверку в обработчик проведения.
Изменение типового кода выполняется через аннотации в модуле расширения:
&После("ПриПроведении")
Процедура Расш1_ПриПроведении(Отказ, РежимПроведения)
Если СуммаДокумента > 100000 Тогда
Сообщить("Крупный документ: требуется согласование");
КонецЕсли;
КонецПроцедурыАннотации &Перед, &После и &Вместо определяют, как ваш код сочетается с типовым. Вариант &Вместо полностью подменяет типовую процедуру — используйте его осторожно: при обновлении конфигурации изменения типовой процедуры перестанут применяться, и логика может устареть.
Важные ограничения расширений: нельзя изменять состав типовых регистров и их измерения, нельзя менять типовые роли, есть ограничения на изменение планов обмена. Если задача упирается в эти ограничения, придётся дорабатывать основную конфигурацию или пересматривать решение.
Изменение основной конфигурации: когда без этого не обойтись
Прямая доработка конфигурации оправдана, когда нужно изменить структуру типовых регистров, глубоко перестроить логику учёта или когда расширение упирается в ограничения платформы. Порядок действий: «Конфигурация → Поддержка → Настройка поддержки → Включить возможность изменения».
Главная цена этого решения — обновления. Каждый выход нового релиза потребует сравнения и объединения конфигураций, а объём ручной работы растёт пропорционально количеству изменённых объектов. Поэтому действуйте по правилам: изменяйте минимум объектов, свои процедуры называйте с уникальным префиксом (например, Преф_), добавленный код отделяйте комментариями с маркерами начала и конца.
Дополнительные реквизиты и сведения без программирования
Частая потребность — добавить поле к справочнику или документу (например, «Способ доставки» к заказу). В типовых конфигурациях на управляемых формах это делается без программирования: «Администрирование → Общие настройки → Дополнительные реквизиты и сведения».
Дополнительный реквизит хранится вместе с объектом и выводится на его форму автоматически; дополнительное сведение хранится отдельно и доступно по кнопке «Ещё». Оба вида участвуют в отборах списков и могут выводиться в отчёты. Этот механизм закрывает большинство потребностей «добавить поле» и не требует ни расширения, ни разработчика.
Ограничение: дополнительные реквизиты нельзя использовать в произвольных запросах и проведении документов без программирования — они предназначены для хранения и отбора, а не для учётной логики.
Интеграции и внешние компоненты
Ещё один класс дополнительных возможностей — обмен с внешними системами: сайтами, банками, службами доставки, оборудованием. Здесь применяются HTTP-запросы и веб-сервисы (код на встроенном языке в расширении или обработке), планы обмена, а также внешние компоненты по технологии Native API — например, для сканеров штрихкодов или нестандартного оборудования.
Для типовых сценариев (обмен с банком, ЭДО, маркировка) сначала проверьте штатные механизмы конфигурации — часто нужная интеграция уже встроена и требует только настройки. Самостоятельная разработка обмена оправдана, когда готового канала нет.
Как выбрать способ
Проверка результата и безопасное внедрение
Любую доработку — даже простую внешнюю обработку — сначала проверяйте на копии базы. Для файловых баз достаточно скопировать каталог или сделать выгрузку .dt; для серверных — создать тестовую базу из резервной копии. Только после успешной проверки подключайте доработку в рабочей базе, желательно вне пиковой нагрузки.
Как проверить результат
Обработка видна в указанных разделах у пользователей с нужными правами и открывается без ошибок
Обработки нет в списке, ошибка прав или «объект не найден» при открытии
Конфигурация обновилась, расширение подключено, доработанные функции работают
Расширение отключено как несовместимое, ошибки «метод не обнаружен»
Документы проводятся, движения по регистрам корректны, новая проверка срабатывает
Документы не проводятся, движения задваиваются или исчезают
Формируется на реальных документах, все поля заполнены, макет не «разъезжается»
Пустые поля, ошибка на документах с незаполненными реквизитами
Если доработка затрагивает проведение документов, регистры или обмен данными, а у вас нет опыта разработки на платформе — это граница самостоятельной работы. Ошибка в таком коде способна испортить учётные данные, и восстановление обойдётся дороже услуг разработчика.
Что важно запомнить
Начинайте с самого лёгкого механизма: дополнительные реквизиты и внешние обработки не трогают конфигурацию, расширения сохраняют простые обновления, а прямую доработку конфигурации оставляйте для задач, где иначе нельзя. Любое изменение сначала проверяйте на копии базы и подключайте файлы только из доверенных источников.
Частые вопросы
Нужно ли снимать конфигурацию с поддержки, чтобы подключить внешнюю обработку?
Нет. Внешние обработки и отчёты подключаются через механизм «Дополнительные отчеты и обработки» и не требуют ни снятия с поддержки, ни изменения конфигурации. Обновления типовых релизов проходят в штатном режиме.
Что произойдёт с расширением при обновлении конфигурации?
Расширение сохраняется и обычно продолжает работать. Если в новом релизе изменились объекты, которые расширение заимствует (например, переименована процедура, к которой привязана аннотация), расширение может быть отключено как несовместимое — тогда его нужно открыть в конфигураторе, исправить привязки и подключить заново. Поэтому после каждого обновления проверяйте доработанные функции.
Можно ли добавить свою печатную форму без программиста?
Если подходит типовая форма с изменённым макетом — иногда достаточно отредактировать макет в расширении или подключить готовую внешнюю печатную форму. Но файл внешней печатной формы всё равно должен содержать код со сведениями об обработке, поэтому полностью без программирования создать её с нуля не получится — проще взять готовый шаблон и попросить разработчика адаптировать макет.
Почему подключённая обработка не видна пользователям?
Наиболее частые причины: у пользователей нет права «Использование дополнительных отчетов и обработок»; в настройках обработки не указаны разделы размещения; обработка отключена флажком в списке. Проверьте эти три пункта — в большинстве случаев проблема в правах.
Чем опасен вариант &Вместо в расширении?
Аннотация &Вместо полностью подменяет типовую процедуру вашей. При обновлении конфигурации изменения, которые вендор внёс в типовую процедуру, перестанут применяться — логика учёта может устареть или разойтись с новыми механизмами. Предпочитайте &Перед и &После, а &Вместо используйте только когда без подмены не обойтись, и перепроверяйте такие места после каждого обновления.
Можно ли вернуть конфигурацию на поддержку после доработок?
Да, если доработки перенести в расширение или внешние обработки, а затем выполнить загрузку типовой конфигурации поставщика с полной заменой. Это трудоёмкая операция: нужно аккуратно перенести все изменения и убедиться, что данные, зависящие от доработок (например, значения добавленных реквизитов), не потеряются. Работу выполняют на копии с привлечением специалиста.