Автозапуск внешней обработки в 1С 8.3: ключ /Execute, ярлык и модуль приложения
Содержание
Чтобы 1С открыла обработку сразу при запуске, добавьте к строке запуска параметр /Execute"путь\к\файлу.epf". Его можно прописать в ярлыке на рабочем столе или в дополнительных параметрах базы в окне запуска. Платформа стартует в режиме 1С:Предприятие и сама откроет основную форму внешней обработки. Конфигурацию менять не нужно.
Если обработка должна открываться у всех пользователей и без правки ярлыков, нужен программный вариант. Обработчик ПриНачалеРаботыСистемы в модуле управляемого приложения подключает файл и открывает форму. В типовой конфигурации этот код лучше разместить в расширении, чтобы не снимать базу с поддержки.
Как платформа открывает внешнюю обработку при старте
Внешняя обработка — это файл .epf, который живёт вне конфигурации. Платформа читает его, компилирует и открывает основную форму. При ручном открытии это делает команда Файл → Открыть. При автозапуске то же самое делает либо ключ командной строки, либо код конфигурации.
Что стоит знать до настройки:
- 🖥️ Клиент. Ключ
/Executeработает в тонком и толстом клиенте. В веб-клиенте его нет: браузер не имеет доступа к файлам компьютера. - 📄 Форма. Открывается та форма, которая назначена основной в свойствах обработки. Для тонкого клиента она должна быть управляемой. Обычная форма в тонком клиенте не откроется.
- 🔐 Права. Пользователю нужно право «Интерактивное открытие внешних обработок» в одной из его ролей. Без него платформа откажет в доступе.
- 🛡️ Защита от опасных действий. Если у пользователя включён этот флажок, при открытии файла появится предупреждение. Пользователь должен подтвердить открытие.
- 📂 Путь. Файл должен быть доступен с того компьютера, где запускается клиент. Для сетевой папки используйте полный UNC-путь вида
\\server\share\Start.epf.
Кроме /Execute есть второй полезный ключ — /C. Он передаёт в базу произвольную строку. Внутри конфигурации её читают через свойство глобального контекста ПараметрЗапуска. Этот ключ пригодится, если обработка встроена в конфигурацию и её нужно открывать только при определённом запуске.
Способ 1. Ярлык Windows с параметром /Execute
Самый быстрый вариант: отдельный ярлык, который сразу открывает базу и обработку. Подходит для одного рабочего места или для служебной задачи администратора.
Шаг 1. Найдите исполняемый файл
Есть два варианта, что запускать:
1cestart.exe— стартер. Сам выбирает версию платформы, указанную для базы в списке. Лежит в папкеC:\Program Files\1cv8\common\.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. Создайте ярлык
- Правой кнопкой на рабочем столе →
Создать → Ярлык. - В поле расположения вставьте собранную строку целиком.
- Задайте понятное имя, например «Бухгалтерия + сверка».
- Запустите ярлык и проверьте, что обработка открылась.
Пробелы в путях — главная причина того, что ключ не срабатывает. Каждый путь берите в кавычки целиком, а между ключом и кавычкой пробел не ставьте: /Execute"D:\Мои обработки\Start.epf".
Способ 2. Параметр запуска в списке информационных баз
Если пользователь заходит через обычное окно запуска 1С, ярлык не нужен. Параметр можно прописать прямо в настройках базы.
- Откройте окно запуска 1С:Предприятия.
- Выделите базу и нажмите
Изменить. - Нажимайте
Далее, пока не дойдёте до последней страницы мастера. - В поле дополнительных параметров запуска впишите
/Execute"D:\Tools\Start.epf". - Нажмите
Готовои запустите базу кнопкой1С:Предприятие.
Параметр сохраняется в файле списка баз ibases.v8i в строке AdditionalParameters. Файл лежит в профиле пользователя: %APPDATA%\1C\1CEStart\ibases.v8i.
Это открывает путь к массовой настройке. Администратор может раздать готовый список баз через общий файл .v8i. Его подключают в настройках окна запуска как общий список. Тогда параметр получат все, кто использует этот список.
При запуске кнопкой Конфигуратор параметр /Execute не действует: он относится только к режиму 1С:Предприятие.
Способ 3. Код в модуле управляемого приложения
Ярлык и список баз настраиваются на каждом компьютере отдельно. Если обработку должны видеть все пользователи базы, задачу решают кодом. Точка входа — событие ПриНачалеРаботыСистемы модуля управляемого приложения. Оно срабатывает на клиенте после того, как пользователь вошёл в программу.
Почему через расширение
В типовой конфигурации правка модуля приложения означает снятие объекта с поддержки. Каждое обновление после этого придётся сравнивать вручную. Расширение решает это: у него свой модуль управляемого приложения, обработчики которого выполняются вслед за обработчиками основной конфигурации.
Порядок действий в конфигураторе:
Конфигурация → Расширения конфигурации, добавьте новое расширение.- Откройте его дерево, в свойствах корня расширения откройте модуль управляемого приложения.
- Создайте в расширении общий модуль с флажками «Сервер» и «Вызов сервера».
- Вставьте код из следующего раздела.
- В свойствах расширения отключите безопасный режим. В безопасном режиме код не сможет прочитать файл с диска.
- Обновите конфигурацию базы данных и перезапустите 1С:Предприятие.
Код: подключить файл на сервере и открыть форму
Общий модуль расширения, например ОткрытиеОбработкиПриСтарте:
Функция ПодключитьСтартовуюОбработку(ПутьКФайлу) Экспорт
Файл = Новый Файл(ПутьКФайлу);
Если Не Файл.Существует() Тогда
Возврат "";
КонецЕсли;
Адрес = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ПутьКФайлу));
Возврат ВнешниеОбработки.Подключить(Адрес, , Ложь);
КонецФункции
Модуль управляемого приложения расширения:
Процедура ПриНачалеРаботыСистемы()
ПодключитьОбработчикОжидания("ОткрытьОбработкуПриСтарте", 2, Истина);
КонецПроцедуры
Процедура ОткрытьОбработкуПриСтарте() Экспорт
ИмяОбработки = ОткрытиеОбработкиПриСтарте.ПодключитьСтартовуюОбработку("\\fs01\1c\Start.epf");
Если ПустаяСтрока(ИмяОбработки) Тогда
Возврат;
КонецЕсли;
ОткрытьФорму("ВнешняяОбработка." + ИмяОбработки + ".Форма");
КонецПроцедуры
Как это работает:
- 📥 Файл читается на сервере, поэтому путь должен быть виден серверу 1С. В файловом режиме это компьютер пользователя. В клиент-серверном — сервер, и у учётной записи службы 1С должны быть права на чтение сетевой папки.
- ⏱️ Обработчик ожидания с задержкой в 2 секунды нужен, чтобы форма открылась после стартовых окон типовой конфигурации. Иначе её перекроют сообщения о легальности обновления или о новых версиях.
- 🔓 Третий параметр
ЛожьуВнешниеОбработки.Подключитьподключает обработку без безопасного режима. Так она сможет работать с файлами и внешними ресурсами. Подключайте так только файлы, которым доверяете.
Обработка из общей папки выполняется с правами каждого пользователя базы. Закройте папку на запись для всех, кроме администратора. Иначе подмена одного файла запустит чужой код у всех сотрудников.
Открыть только для нужных пользователей
Код выше открывает обработку всем. Обычно это не нужно. Варианты ограничения:
- 👤 Проверка роли: перед вызовом сервера добавьте условие
Если РольДоступна("ИмяРоли") Тогда. Роль для этого удобно завести в самом расширении. - 🏷️ Проверка ключа
/C: запускайте базу с/C"СВЕРКА"и в коде проверяйтеЕсли СтрНайти(ПараметрЗапуска, "СВЕРКА") > 0 Тогда. Обработка откроется только из особого ярлыка.
Второй вариант удобен, когда автозапуск нужен в определённых сценариях: например, при запуске по расписанию из планировщика Windows.
Встроенная обработка вместо внешнего файла
Если обработкой пользуются постоянно, её удобнее перенести внутрь расширения как обычный объект «Обработка». Тогда не нужны файл в сетевой папке, право на открытие внешних обработок и предупреждения защиты.
Открыть её при старте можно двумя путями:
- Кодом. В
ПриНачалеРаботыСистемырасширения вызовитеОткрытьФорму("Обработка.СверкаОстатков.Форма"). Подставьте имя своей обработки. - Через начальную страницу. Форма, размещённая на начальной странице, открывается сама при каждом входе. Пользователь добавляет её в
Главное меню → Вид → Настройка начальной страницы, если она есть в списке доступных форм. Администратор может задать состав начальной страницы для всех в конфигураторе, в свойствах корня конфигурации «Рабочая область начальной страницы».
Начальная страница хороша для дашбордов и рабочих мест, которые должны быть видны постоянно. Внешний файл туда поставить нельзя: только формы из конфигурации и расширений.
Сравнение способов автозапуска обработки
| Способ | Когда подходит | Правка конфигурации | Риски и ограничения |
|---|---|---|---|
Ярлык с /Execute | Одно рабочее место, служебная задача | Не нужна | Пароль в ярлыке, нет в веб-клиенте |
/Execute в списке баз | Пользователь входит через окно запуска | Не нужна | Настройка на каждом компьютере, проще раздать общим .v8i |
ПриНачалеРаботыСистемы в расширении | Нужно всем пользователям или по ролям | Расширение | Нужно отключить безопасный режим расширения, файл должен быть виден серверу |
| Встроенная обработка + код | Обработка нужна постоянно | Расширение | Обновление обработки — через обновление расширения |
| Начальная страница | Рабочее место, которое всегда открыто | Расширение или конфигурация | Только формы конфигурации и расширений |
Почему обработка не открылась при старте
Если после запуска база открылась, а обработки нет, ищите причину по симптому.
Ещё две ситуации встречаются реже:
- 🔄 Обработка открывается, но тут же перекрывается окнами. Типовые конфигурации при старте показывают свои формы. Увеличьте задержку обработчика ожидания до 3–5 секунд.
- 🧩 После обновления платформы ярлык перестал работать. Ярлык указывает на
1cv8c.exeудалённой версии. Перенаправьте его на1cestart.exeиз папкиcommon.