Как при запуске 1С автоматически открыть дополнительную обработку БСП?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

В данной статье мы разберем несколько способов решения этой задачи, начиная от простых параметров командной строки и заканчивая программным вызовом через механизмы БСП.

Способ 1: Использование параметра запуска /URL и навигационных ссылок

Наиболее простым и штатным способом является использование параметра /URL. Этот параметр указывает платформе, что после запуска необходимо сразу перейти по указанной ссылке. Для вызова сервиса дополнительных обработок в БСП используется специальная навигационная ссылка.

Рассмотрим по шагам, как сформировать строку запуска:

  1. Определим путь к исполняемому файлу 1С.
  2. Укажем параметры подключения к базе (сервер или файловый путь, имя пользователя и пароль).
  3. Добавим параметр /URL с навигационной ссылкой на общую команду.

Проанализируем пример корректной строки запуска, который был успешно проверен на практике:


"C:\Program Files (x86)\1cv8\common\1cestart.exe" /F"D:\Bases\MyConfig" /N"Администратор" /P"123" /URL "e1cib/command/ОбщаяКоманда.ДополнительныеОбработкиСервис"

Обратите внимание на синтаксис: после ключевого слова /URL должна идти навигационная ссылка в кавычках. В данном примере ссылка e1cib/command/ОбщаяКоманда.ДополнительныеОбработкиСервис открывает окно со списком всех доступных пользователю дополнительных обработок раздела.

Способ 2: Запуск конкретной обработки по уникальному идентификатору

Если нам нужно открыть не просто список, а форму конкретного элемента из справочника ДополнительныеОтчетыИОбработки, мы можем сформировать прямую ссылку на данные. Каждая запись в базе имеет свой UUID (уникальный идентификатор).

Для реализации этого метода выполним следующие действия:

  1. Выясним UUID нужной обработки (это можно сделать программно или через консоль запросов).
  2. Сформируем ссылку формата: e1cib/data/Справочник.ДополнительныеОтчетыИОбработки?ref=Идентификатор.
  3. Используем её в параметре /URL.

Разберем пример такой ссылки:


/URL "e1cib/data/Справочник.ДополнительныеОтчетыИОбработки?ref=856d11f87964b97111e6120899386d98"

Такой подход позволяет пользователю сразу увидеть карточку обработки или запустить её выполнение, если в конфигурации прописана логика обработки параметров навигационной ссылки при открытии.

Способ 3: Использование параметра /C и программная обработка

Иногда требуется более гибкая логика, например, не просто открыть форму, а выполнить конкретную команду обработки с определенными параметрами. В этом случае удобно использовать параметр командной строки /C, который передает произвольную строку в глобальную переменную ПараметрЗапуска.

Рассмотрим алгоритм реализации этого метода:

  1. В строке запуска добавим /C "ИмяНужнойНамКоманды".
  2. В модуле управляемого приложения найдем процедуру ПриНачалеРаботыСистемы.
  3. Пропишем код, который анализирует ПараметрЗапуска и вызывает методы БСП.

Посмотрим на пример кода в модуле управляемого приложения:


Процедура ПриНачалеРаботыСистемы()
    Если СтрНайти(ПараметрЗапуска, "ЗапуститьОбработкуЗагрузки") > 0 Тогда
        // Код для поиска обработки в справочнике
        СсылкаНаОбработку = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Загрузка данных");
        Если Не СсылкаНаОбработку.Пустая() Тогда
            // Используем программный интерфейс БСП для запуска
            ПараметрыВыполнения = ДополнительныеОтчетыИОбработкиКлиент.ПараметрыВыполненияКоманды();
            ДополнительныеОтчетыИОбработкиКлиент.ВыполнитьКоманду(СсылкаНаОбработку, ПараметрыВыполнения);
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Этот метод считается наиболее профессиональным для системных интеграций, так как позволяет полностью контролировать процесс запуска и обходить любые интерактивные вопросы системы.

Важные нюансы безопасности и настройки

При использовании дополнительных обработок, даже если они хранятся внутри базы данных, следует помнить о механизмах защиты платформы 1С:Предприятие:

  1. Безопасный режим: По умолчанию БСП запускает дополнительные обработки в безопасном режиме. Если ваша обработка должна работать с файловой системой или внешними COM-объектами, необходимо в карточке дополнительной обработки настроить профиль безопасности или указать необходимые разрешения.
  2. Подтверждение действий: В современных версиях платформы (начиная с 8.3.15+) переход по навигационным ссылкам из командной строки может вызвать окно подтверждения. Чтобы этого избежать, администратор может настроить список разрешенных URL в настройках программы.
  3. Права доступа: Убедитесь, что у пользователя, под которым происходит автоматический запуск, достаточно прав на чтение справочника ДополнительныеОтчетыИОбработки и на использование общей команды ДополнительныеОбработкиСервис.

Таким образом, мы выяснили, что для запуска встроенных обработок не нужно использовать небезопасный параметр /Execute. Использование навигационных ссылок через /URL или передача команд через /C являются стандартными и рекомендуемыми способами работы в конфигурациях на базе БСП.

← На главную