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

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

Как встроить обработку в конфигурацию 1С

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

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

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

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

Какой способ встраивания выбрать

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

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

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

Сравнение вариантов

Объект в дереве конфигурации

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

Дополнительные отчеты и обработки (БСП)

Без изменения конфигурации, гибкое назначение прав и разделов. Минус: требует включённой подсистемы БСП и совместимости обработки с API механизма.

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

Компромисс: объект добавляется без снятия с поддержки. Минус: ограничения расширений на изменение некоторых объектов и ролей.

Подготовка перед встраиванием

Любое изменение конфигурации начинайте с резервной копии. Для файловой базы достаточно скопировать каталог базы или выгрузить dt через конфигуратор («Администрирование → Выгрузить информационную базу»). Для клиент-серверной сделайте выгрузку средствами СУБД или тот же dt-файл.

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

Убедитесь, что ваша роль имеет право «Администрирование» и «Изменение конфигурации». Также заранее откройте исходную внешнюю обработку в конфигураторе и выпишите, что в ней есть: основная форма, дополнительные формы, макеты, модули. Это понадобится при переносе.

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

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

Теперь нужно перенести содержимое внешней обработки. Откройте внешний файл через «Файл → Открыть» — он откроется в отдельном окне структуры. Формы переносятся через сравнение и объединение либо вручную: создайте в новой обработке форму и скопируйте элементы и код модуля. Макеты добавляются через «Добавить» в ветке «Макеты» с последующей загрузкой содержимого.

Основной модуль объекта (процедуры и функции, не привязанные к форме) переносится копированием текста из модуля объекта внешней обработки в модуль объекта новой. После переноса проверьте, что в коде нет обращений к ЭтотОбъект.ПолучитьМакет() с путями, специфичными для внешнего файла, — внутри конфигурации обращение к макетам обычно не меняется, но обращения к ИспользуемоеИмяФайла и подобным свойствам внешней обработки потеряют смысл.

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

Перенос форм через объединение

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

Вывод в интерфейс подсистем

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

Способ 2: регистрация через «Дополнительные отчеты и обработки»

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

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

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

Способ 3: встраивание через расширение конфигурации

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

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

Настройка прав доступа

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

Для подсистемы «Дополнительные отчеты и обработки» право на конкретный элемент настраивается в карточке обработки, а общее право чтения справочника должно быть у роли пользователя. Проверяйте доступ именно под учётной записью конечного пользователя: под полными правами ограничения не видны.

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

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

Видимость в интерфейсе
Норма

Команда запуска есть в нужном разделе под обычным пользователем

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

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

Запуск и работа формы
Норма

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

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

Ошибки «Метод не обнаружен» или пустые макеты — перенесены не все модули и макеты

Обновление базы
Норма

Конфигурация БД обновлена без ошибок, версия в «О программе» соответствует

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

Изменения есть в конфигураторе, но не применены — забыли F7

Типичные ошибки и их последствия

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

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

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

Частые вопросы

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

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

Почему обработка видна мне, но не видна пользователям?

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

Что делать, если внешняя обработка не содержит функции СведенияОВнешнейОбработке?

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

Как обновить встроенную обработку на новую версию?

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

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

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

Итог

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

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