Разработка и Конфигурация · 10 мин
Как добавить обработку в подсистему 1С
Как добавить внешнюю или встроенную обработку в подсистему 1С: подключение через конфигуратор, настройка прав, команд интерфейса и проверка результата.
Добавление обработки в подсистему — типовая задача при доработке конфигурации 1С: новый сервисный инструмент нужно сделать видимым в нужном разделе интерфейса и доступным нужным пользователям. Под подсистемой понимается объект метаданных, который формирует разделы командного интерфейса («Продажи», «Склад», «Администрирование» и т. п.). От того, в какую подсистему включена обработка, зависит, где пользователь увидит её команду.
Существует два принципиально разных подхода. Первый — добавить обработку как объект конфигурации и включить её в состав подсистемы через конфигуратор. Второй — подключить внешнюю обработку (.epf) через стандартный механизм «Дополнительные отчеты и обработки» из библиотеки стандартных подсистем (БСП), не меняя конфигурацию. Выбор зависит от того, стоит ли конфигурация на поддержке, есть ли доступ к конфигуратору и как часто обработка будет обновляться.
Ниже разобраны оба способа: условия применения, пошаговые действия, настройка прав и команд, проверка результата и типичные ошибки.
Определяемся со способом: конфигуратор или внешняя обработка
Прежде чем что-то менять, ответьте на три вопросы: есть ли у вас право вносить изменения в конфигурацию, снята ли конфигурация с полной поддержки поставщика и требуется ли обновлять обработку без участия разработчика. От ответов зависит маршрут.
Добавление объекта «Обработка» в конфигурацию даёт полный контроль: обработка становится частью метаданных, хранится в базе, для неё можно настроить роли, команды и подсистемы штатными средствами. Минус — конфигурацию придётся снять с поддержки (или доработать через расширение), что усложняет последующие обновления.
Механизм «Дополнительные отчеты и обработки» (БСП) позволяет подключить файл .epf прямо в пользовательском режиме, не трогая конфигурацию. Обработка появится в выбранных разделах-подсистемах, а обновление сводится к замене файла. Ограничение: конфигурация должна быть построена на БСП, а у пользователя — права на добавление дополнительных обработок.
Как выбрать способ
Добавление обработки в подсистему через конфигуратор
Откройте конфигуратор, выберите «Конфигурация → Открыть конфигурацию». Если конфигурация на поддержке, потребуется «Конфигурация → Поддержка → Настройка поддержки» и включение возможности изменений. Создайте резервную копию информационной базы перед любыми изменениями.
Если обработка внешняя (файл .epf), импортируйте её: «Файл → Открыть» файл обработки, затем при запросе сохраните её как объект конфигурации — либо в дереве конфигурации в ветке «Обработки» создайте новый объект и перенесите в него модуль и формы. Если обработка создаётся с нуля, добавьте новый объект «Обработка» и напишите код формы и модуля.
Теперь включите обработку в подсистему. Откройте в дереве конфигурации ветку «Общие → Подсистемы», найдите нужную подсистему, откройте её свойства и на закладке «Состав» отметьте галочкой вашу обработку. Альтернатива — открыть свойства самой обработки и на закладке «Подсистемы» отметить нужные разделы. Результат одинаков: объект входит в состав выбранных подсистем.
- 1Сделайте резервную копию базы и включите возможность изменения конфигурации
- 2Создайте или импортируйте объект «Обработка» в ветке «Обработки»
- 3Откройте «Общие → Подсистемы», выберите нужную подсистему и отметьте обработку в её составе
- 4Настройте команду интерфейса и роли для доступа
- 5Обновите конфигурацию базы данных (F7) и проверьте в режиме предприятия
Настройка команд интерфейса и прав доступа
Включение в состав подсистемы само по себе не всегда делает обработку видимой. Проверьте команду открытия: в свойствах обработки на закладке «Команды» или в панели навигации подсистемы. В управляемом приложении команда объекта обычно добавляется в панель функций подсистемы автоматически, но видимостью можно управлять через редактор командного интерфейса: откройте подсистему, нажмите кнопку «Командный интерфейс» и проверьте, что команда обработки присутствует и у неё установлена видимость.
Второй обязательный шаг — права. Если в конфигурации используются роли, откройте нужные роли и установите для объекта «Обработка» права «Использование» и «Просмотр». Без этих прав пользователь не увидит команду, даже если объект включён в подсистему. В типовых конфигурациях права часто назначаются через профили групп доступа в режиме предприятия — тогда изменения в конфигураторе не требуются, достаточно добавить право в профиль.
Подключение внешней обработки через «Дополнительные отчеты и обработки»
В конфигурациях на базе БСП откройте в режиме 1С:Предприятие раздел «Администрирование → Печатные формы, отчеты и обработки» и включите флажок «Дополнительные отчеты и обработки». Затем перейдите по ссылке «Дополнительные отчеты и обработки» в список и нажмите «Создать» или «Добавить из файла», выбрав ваш .epf.
Обработка должна содержать экспортную функцию СведенияОВнешнейОбработке() в модуле объекта — без неё механизм БСП откажется регистрировать файл. В функции указываются вид обработки, версия, безопасный режим и команды. После загрузки в карточке обработки на закладке «Размещение» отметьте разделы (подсистемы), в которых должна появиться команда, и задайте быстрый доступ — каким пользователям она видна.
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
ПараметрыРегистрации.Версия = "1.0";
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = НСтр("ru = 'Моя обработка'");
НоваяКоманда.Идентификатор = "МояОбработка";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
НоваяКоманда.ПоказыватьОповещение = Ложь;
Возврат ПараметрыРегистрации;
КонецФункцииПосле записи карточки команда появится в разделе «Дополнительные обработки» выбранных подсистем — обычно это пункт меню раздела. Если команда не видна, проверьте быстрый доступ в карточке обработки и перезапустите сеанс пользователя.
Добавление обработки через расширение конфигурации
Расширение — компромисс между двумя подходами: конфигурация остаётся на поддержке, а вы можете добавить собственный объект «Обработка» и включить его в состав подсистемы расширения. В конфигураторе откройте «Конфигурация → Расширения конфигурации», создайте новое расширение, добавьте в него обработку и заимствуйте нужную подсистему, включив объект в её состав.
Учтите ограничения: роли в расширениях настраиваются отдельно, а при несовместимости расширения с обновлённой конфигурацией платформа может отключить его. После обновления конфигурации проверяйте работоспособность расширений.
Проверка результата
После любого из способов выполните контроль: войдите в базу под пользователем с целевыми правами (не под администратором), откройте нужный раздел и убедитесь, что команда обработки присутствует и форма открывается без ошибок. Проверьте, что у пользователя без прав команда не отображается.
Как проверить результат
Команда видна целевому пользователю и открывает форму
Команды нет — проверьте состав подсистемы, командный интерфейс и права
Пользователь без нужной роли не видит команду
Команда доступна всем — роли не настроены
Форма открывается, операции выполняются без ошибок
Ошибка при открытии — смотрите журнал регистрации
Типичные ошибки и риски
Отдельный риск — внешние обработки из непроверенных источников. Файл .epf исполняет произвольный код с правами пользователя, который его запустил. Перед подключением откройте модуль обработки в конфигураторе и убедитесь, что в нём нет скрытых операций с данными, отправки информации наружу или вызовов внешних компонент.
Часто задаваемые вопросы
Добавил обработку в подсистему, но команда не появилась. Что проверить?
По порядку: обновлена ли конфигурация базы данных (F7), есть ли у пользователя права на объект, включена ли команда в командном интерфейсе подсистемы, не скрыта ли она функциональной опцией. Для внешних обработок БСП — заполнены ли «Размещение» и «Быстрый доступ» в карточке.
Можно ли добавить обработку в подсистему без конфигуратора?
Да, если конфигурация построена на БСП: механизм «Дополнительные отчеты и обработки» позволяет загрузить .epf и указать разделы прямо в режиме предприятия. Без БСП и без конфигуратора добавить объект в подсистему нельзя.
Чем расширение лучше изменения основной конфигурации?
Расширение не нарушает поддержку типовой конфигурации: обновления поставщика устанавливаются штатно, а расширение применяется поверх. Минус — ограничения на изменяемые объекты и необходимость проверять совместимость после каждого обновления.
Как ограничить доступ к обработке для части пользователей?
Для объекта конфигурации — через роли и профили групп доступа. Для дополнительной обработки БСП — через список «Быстрый доступ» в её карточке: команду увидят только указанные пользователи.
Почему БСП не принимает мой файл обработки?
Наиболее частая причина — отсутствие экспортной функции СведенияОВнешнейОбработке() в модуле объекта или ошибки в ней. Также проверьте, что файл сохранён как внешняя обработка (.epf), а не как отчёт (.erf), и что версия платформы поддерживает используемые в коде возможности.
Опасно ли подключать внешние обработки из интернета?
Да. Обработка выполняется с правами запустившего её пользователя и может изменять или удалять данные. Подключайте только файлы из доверенных источников и предварительно просматривайте код модуля в конфигураторе.
Что важно запомнить
Для типовой конфигурации на поддержке используйте «Дополнительные отчеты и обработки» или расширение; для собственной — включайте объект в состав подсистемы в конфигураторе. Всегда настраивайте права, проверяйте команду под целевым пользователем и делайте резервную копию перед изменениями.