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

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

Как добавить обработку в подсистему 1С

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

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

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

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

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

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

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

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

Маршрут решения

Как выбрать способ

Конфигурация типовая, на полной поддержке, обновления важныИспользуйте «Дополнительные отчеты и обработки» или расширение конфигурации
Конфигурация самописная или уже снята с поддержкиДобавляйте обработку как объект метаданных и включайте в состав подсистемы
Обработка нужна только администратору для разовых операцийДостаточно открытия через «Файл → Открыть», добавление в подсистему не требуется

Добавление обработки в подсистему через конфигуратор

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

Если обработка внешняя (файл .epf), импортируйте её: «Файл → Открыть» файл обработки, затем при запросе сохраните её как объект конфигурации — либо в дереве конфигурации в ветке «Обработки» создайте новый объект и перенесите в него модуль и формы. Если обработка создаётся с нуля, добавьте новый объект «Обработка» и напишите код формы и модуля.

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

Порядок действий в конфигураторе
  1. 1
    Сделайте резервную копию базы и включите возможность изменения конфигурации
  2. 2
    Создайте или импортируйте объект «Обработка» в ветке «Обработки»
  3. 3
    Откройте «Общие → Подсистемы», выберите нужную подсистему и отметьте обработку в её составе
  4. 4
    Настройте команду интерфейса и роли для доступа
  5. 5
    Обновите конфигурацию базы данных (F7) и проверьте в режиме предприятия

Настройка команд интерфейса и прав доступа

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

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

Подключение внешней обработки через «Дополнительные отчеты и обработки»

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

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

bsl
Функция СведенияОВнешнейОбработке() Экспорт
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
	ПараметрыРегистрации.Версия = "1.0";
	НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
	НоваяКоманда.Представление = НСтр("ru = 'Моя обработка'");
	НоваяКоманда.Идентификатор = "МояОбработка";
	НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
	НоваяКоманда.ПоказыватьОповещение = Ложь;
	Возврат ПараметрыРегистрации;
КонецФункции

После записи карточки команда появится в разделе «Дополнительные обработки» выбранных подсистем — обычно это пункт меню раздела. Если команда не видна, проверьте быстрый доступ в карточке обработки и перезапустите сеанс пользователя.

Добавление обработки через расширение конфигурации

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

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

Проверка результата

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

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

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

Команда в разделе подсистемы
Норма

Команда видна целевому пользователю и открывает форму

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

Команды нет — проверьте состав подсистемы, командный интерфейс и права

Права доступа
Норма

Пользователь без нужной роли не видит команду

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

Команда доступна всем — роли не настроены

Работа обработки
Норма

Форма открывается, операции выполняются без ошибок

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

Ошибка при открытии — смотрите журнал регистрации

Типичные ошибки и риски

Типичные ошибки
01
Включили обработку в подсистему, но забыли роли — пользователи не видят команду
02
Загрузили .epf без функции СведенияОВнешнейОбработке — БСП отказывает в регистрации
03
Сняли типовую конфигурацию с поддержки ради одной обработки — усложнили все будущие обновления
04
Изменили конфигурацию без резервной копии — при ошибке обновления базы данных есть риск потери данных
05
Не проверили права в профилях групп доступа — в типовых права настраиваются там, а не только в конфигураторе

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

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

Добавил обработку в подсистему, но команда не появилась. Что проверить?

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

Можно ли добавить обработку в подсистему без конфигуратора?

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

Чем расширение лучше изменения основной конфигурации?

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

Как ограничить доступ к обработке для части пользователей?

Для объекта конфигурации — через роли и профили групп доступа. Для дополнительной обработки БСП — через список «Быстрый доступ» в её карточке: команду увидят только указанные пользователи.

Почему БСП не принимает мой файл обработки?

Наиболее частая причина — отсутствие экспортной функции СведенияОВнешнейОбработке() в модуле объекта или ошибки в ней. Также проверьте, что файл сохранён как внешняя обработка (.epf), а не как отчёт (.erf), и что версия платформы поддерживает используемые в коде возможности.

Опасно ли подключать внешние обработки из интернета?

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

Итог

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

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