Автозапуск внешней обработки в 1С 8.3: ключ /Execute, ярлык и модуль приложения

· 9 мин

Содержание

Чтобы 1С открыла обработку сразу при запуске, добавьте к строке запуска параметр /Execute"путь\к\файлу.epf". Его можно прописать в ярлыке на рабочем столе или в дополнительных параметрах базы в окне запуска. Платформа стартует в режиме 1С:Предприятие и сама откроет основную форму внешней обработки. Конфигурацию менять не нужно.

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

Как платформа открывает внешнюю обработку при старте

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

Что стоит знать до настройки:

  • 🖥️ Клиент. Ключ /Execute работает в тонком и толстом клиенте. В веб-клиенте его нет: браузер не имеет доступа к файлам компьютера.
  • 📄 Форма. Открывается та форма, которая назначена основной в свойствах обработки. Для тонкого клиента она должна быть управляемой. Обычная форма в тонком клиенте не откроется.
  • 🔐 Права. Пользователю нужно право «Интерактивное открытие внешних обработок» в одной из его ролей. Без него платформа откажет в доступе.
  • 🛡️ Защита от опасных действий. Если у пользователя включён этот флажок, при открытии файла появится предупреждение. Пользователь должен подтвердить открытие.
  • 📂 Путь. Файл должен быть доступен с того компьютера, где запускается клиент. Для сетевой папки используйте полный UNC-путь вида \\server\share\Start.epf.

Кроме /Execute есть второй полезный ключ — /C. Он передаёт в базу произвольную строку. Внутри конфигурации её читают через свойство глобального контекста ПараметрЗапуска. Этот ключ пригодится, если обработка встроена в конфигурацию и её нужно открывать только при определённом запуске.

Способ 1. Ярлык Windows с параметром /Execute

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

Шаг 1. Найдите исполняемый файл

Есть два варианта, что запускать:

  1. 1cestart.exe — стартер. Сам выбирает версию платформы, указанную для базы в списке. Лежит в папке C:\Program Files\1cv8\common\.
  2. 1cv8c.exe (тонкий клиент) или 1cv8.exe (толстый) из папки конкретной версии, например C:\Program Files\1cv8\8.3.24.1548\bin\. Номер версии подставьте свой.

Стартер удобнее: после обновления платформы ярлык не придётся править.

Шаг 2. Соберите командную строку

Для файловой базы:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\Buh" /N"Иванов" /P"" /Execute"D:\Tools\Start.epf"

Для клиент-серверной базы вместо /F укажите сервер и имя базы:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"srv1c\buh_prod" /N"Иванов" /Execute"\\fs01\1c\Start.epf"

Если база уже есть в списке баз, удобнее сослаться на неё по имени ключом /IBName:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /IBName"Бухгалтерия предприятия" /Execute"D:\Tools\Start.epf"

Что означают ключи:

КлючНазначение
ENTERPRISEЗапуск в режиме 1С:Предприятие
/F"путь"Каталог файловой базы
/S"сервер\база"Клиент-серверная база
/IBName"имя"База из списка по её названию
/N"пользователь"Имя пользователя 1С
/P"пароль"Пароль пользователя
/Execute"файл"Открыть внешнюю обработку после старта
/C"строка"Передать строку в ПараметрЗапуска
/DisableStartupMessagesНе показывать стартовые сообщения платформы

Не храните пароль в ярлыке открытым текстом. Любой, кто откроет свойства ярлыка, увидит его. Для ярлыков лучше настроить аутентификацию Windows у пользователя 1С, тогда ключи /N и /P не нужны.

Шаг 3. Создайте ярлык

  1. Правой кнопкой на рабочем столе → Создать → Ярлык.
  2. В поле расположения вставьте собранную строку целиком.
  3. Задайте понятное имя, например «Бухгалтерия + сверка».
  4. Запустите ярлык и проверьте, что обработка открылась.

Пробелы в путях — главная причина того, что ключ не срабатывает. Каждый путь берите в кавычки целиком, а между ключом и кавычкой пробел не ставьте: /Execute"D:\Мои обработки\Start.epf".

Способ 2. Параметр запуска в списке информационных баз

Если пользователь заходит через обычное окно запуска 1С, ярлык не нужен. Параметр можно прописать прямо в настройках базы.

  1. Откройте окно запуска 1С:Предприятия.
  2. Выделите базу и нажмите Изменить.
  3. Нажимайте Далее, пока не дойдёте до последней страницы мастера.
  4. В поле дополнительных параметров запуска впишите /Execute"D:\Tools\Start.epf".
  5. Нажмите Готово и запустите базу кнопкой 1С:Предприятие.

Параметр сохраняется в файле списка баз ibases.v8i в строке AdditionalParameters. Файл лежит в профиле пользователя: %APPDATA%\1C\1CEStart\ibases.v8i.

Это открывает путь к массовой настройке. Администратор может раздать готовый список баз через общий файл .v8i. Его подключают в настройках окна запуска как общий список. Тогда параметр получат все, кто использует этот список.

При запуске кнопкой Конфигуратор параметр /Execute не действует: он относится только к режиму 1С:Предприятие.

Способ 3. Код в модуле управляемого приложения

Ярлык и список баз настраиваются на каждом компьютере отдельно. Если обработку должны видеть все пользователи базы, задачу решают кодом. Точка входа — событие ПриНачалеРаботыСистемы модуля управляемого приложения. Оно срабатывает на клиенте после того, как пользователь вошёл в программу.

Почему через расширение

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

Порядок действий в конфигураторе:

  1. Конфигурация → Расширения конфигурации, добавьте новое расширение.
  2. Откройте его дерево, в свойствах корня расширения откройте модуль управляемого приложения.
  3. Создайте в расширении общий модуль с флажками «Сервер» и «Вызов сервера».
  4. Вставьте код из следующего раздела.
  5. В свойствах расширения отключите безопасный режим. В безопасном режиме код не сможет прочитать файл с диска.
  6. Обновите конфигурацию базы данных и перезапустите 1С:Предприятие.

Код: подключить файл на сервере и открыть форму

Общий модуль расширения, например ОткрытиеОбработкиПриСтарте:

Функция ПодключитьСтартовуюОбработку(ПутьКФайлу) Экспорт

    Файл = Новый Файл(ПутьКФайлу);
    Если Не Файл.Существует() Тогда
        Возврат "";
    КонецЕсли;

    Адрес = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ПутьКФайлу));
    Возврат ВнешниеОбработки.Подключить(Адрес, , Ложь);

КонецФункции

Модуль управляемого приложения расширения:

Процедура ПриНачалеРаботыСистемы()

    ПодключитьОбработчикОжидания("ОткрытьОбработкуПриСтарте", 2, Истина);

КонецПроцедуры

Процедура ОткрытьОбработкуПриСтарте() Экспорт

    ИмяОбработки = ОткрытиеОбработкиПриСтарте.ПодключитьСтартовуюОбработку("\\fs01\1c\Start.epf");
    Если ПустаяСтрока(ИмяОбработки) Тогда
        Возврат;
    КонецЕсли;

    ОткрытьФорму("ВнешняяОбработка." + ИмяОбработки + ".Форма");

КонецПроцедуры

Как это работает:

  • 📥 Файл читается на сервере, поэтому путь должен быть виден серверу 1С. В файловом режиме это компьютер пользователя. В клиент-серверном — сервер, и у учётной записи службы 1С должны быть права на чтение сетевой папки.
  • ⏱️ Обработчик ожидания с задержкой в 2 секунды нужен, чтобы форма открылась после стартовых окон типовой конфигурации. Иначе её перекроют сообщения о легальности обновления или о новых версиях.
  • 🔓 Третий параметр Ложь у ВнешниеОбработки.Подключить подключает обработку без безопасного режима. Так она сможет работать с файлами и внешними ресурсами. Подключайте так только файлы, которым доверяете.

Обработка из общей папки выполняется с правами каждого пользователя базы. Закройте папку на запись для всех, кроме администратора. Иначе подмена одного файла запустит чужой код у всех сотрудников.

Открыть только для нужных пользователей

Код выше открывает обработку всем. Обычно это не нужно. Варианты ограничения:

  • 👤 Проверка роли: перед вызовом сервера добавьте условие Если РольДоступна("ИмяРоли") Тогда. Роль для этого удобно завести в самом расширении.
  • 🏷️ Проверка ключа /C: запускайте базу с /C"СВЕРКА" и в коде проверяйте Если СтрНайти(ПараметрЗапуска, "СВЕРКА") > 0 Тогда. Обработка откроется только из особого ярлыка.

Второй вариант удобен, когда автозапуск нужен в определённых сценариях: например, при запуске по расписанию из планировщика Windows.

Встроенная обработка вместо внешнего файла

Если обработкой пользуются постоянно, её удобнее перенести внутрь расширения как обычный объект «Обработка». Тогда не нужны файл в сетевой папке, право на открытие внешних обработок и предупреждения защиты.

Открыть её при старте можно двумя путями:

  1. Кодом. В ПриНачалеРаботыСистемы расширения вызовите ОткрытьФорму("Обработка.СверкаОстатков.Форма"). Подставьте имя своей обработки.
  2. Через начальную страницу. Форма, размещённая на начальной странице, открывается сама при каждом входе. Пользователь добавляет её в Главное меню → Вид → Настройка начальной страницы, если она есть в списке доступных форм. Администратор может задать состав начальной страницы для всех в конфигураторе, в свойствах корня конфигурации «Рабочая область начальной страницы».

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

Сравнение способов автозапуска обработки

СпособКогда подходитПравка конфигурацииРиски и ограничения
Ярлык с /ExecuteОдно рабочее место, служебная задачаНе нужнаПароль в ярлыке, нет в веб-клиенте
/Execute в списке базПользователь входит через окно запускаНе нужнаНастройка на каждом компьютере, проще раздать общим .v8i
ПриНачалеРаботыСистемы в расширенииНужно всем пользователям или по ролямРасширениеНужно отключить безопасный режим расширения, файл должен быть виден серверу
Встроенная обработка + кодОбработка нужна постоянноРасширениеОбновление обработки — через обновление расширения
Начальная страницаРабочее место, которое всегда открытоРасширение или конфигурацияТолько формы конфигурации и расширений
Какой способ автозапуска выбрать?

Почему обработка не открылась при старте

Если после запуска база открылась, а обработки нет, ищите причину по симптому.

Диагностика: выберите симптом

Ещё две ситуации встречаются реже:

  • 🔄 Обработка открывается, но тут же перекрывается окнами. Типовые конфигурации при старте показывают свои формы. Увеличьте задержку обработчика ожидания до 3–5 секунд.
  • 🧩 После обновления платформы ярлык перестал работать. Ярлык указывает на 1cv8c.exe удалённой версии. Перенаправьте его на 1cestart.exe из папки common.

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

Можно ли открыть при запуске сразу две обработки?
Ключ /Execute принимает один файл. Для двух и более обработок используйте код в расширении: подключите каждую и откройте их формы по очереди.
Работает ли /Execute в веб-клиенте?
Нет. Браузер не даёт платформе читать файлы с диска пользователя. В веб-клиенте используйте встроенную в расширение обработку и обработчик ПриНачалеРаботыСистемы.
Можно ли открыть внешний отчёт так же, как обработку?
Да, ключ /Execute принимает и файлы .erf. В коде для отчётов используйте ВнешниеОтчеты.Подключить и форму вида ВнешнийОтчет.Имя.Форма.
Как передать обработке параметр при запуске?
Запустите базу с ключом /C и нужной строкой. Внутри формы обработки прочитайте свойство ПараметрЗапуска и разберите строку, например через СтрРазделить.
Нужно ли перезапускать 1С после замены файла обработки?
Для /Execute — нет, при следующем запуске откроется новая версия файла. При подключении из кода новая версия тоже подхватится при следующем входе пользователя.