Как в параметрах запуска 1С указать автоматическое открытие определенного документа

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

В процессе автоматизации бизнес-процессов часто возникает задача максимально упростить переход пользователя к конкретному объекту в информационной базе. Типичный сценарий: сотруднику приходит электронное письмо с уведомлением, и для оперативной работы ему нужно не просто запустить 1С, а сразу увидеть перед собой форму нужного документа. В этой статье мы подробно разберем все доступные способы реализации этой задачи — от стандартных параметров командной строки до более сложных механизмов с использованием программного кода и навигационных ссылок.

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

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

Проанализируем структуру такой ссылки. Она имеет вид e1cib/data/Документ.НазваниеДокумента?ref=Идентификатор. Чтобы запустить 1С с открытием по этой ссылке, используется ключ /URL.

Разберем по шагам, как это работает на практике:

  1. Пользователь может самостоятельно получить ссылку на документ, нажав в открытой форме комбинацию клавиш Ctrl+F11.
  2. Эту ссылку можно передать в параметрах запуска в батнике или через ярлык:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "D:\Bases\Trade" /URL "e1cib/data/Документ.РеализацияТоваровУслуг?ref=ab33089798c755f711ec2ccd3273e833"

Важно отметить особенность работы ключа /URL: если у пользователя уже запущен сеанс 1С с этой же информационной базой, платформа не будет открывать второе окно. Она просто активирует существующее приложение и откроет в нем нужный документ. Это значительно экономит ресурсы компьютера и время пользователя.

Гибкая настройка через параметр запуска /C

Иногда стандартного механизма /URL недостаточно — например, если перед открытием документа нужно выполнить дополнительные проверки или заполнить какие-то данные. В этом случае мы воспользуемся универсальным параметром /C.

Параметр /C передает произвольную строку в сеанс 1С. Эту строку мы можем прочитать программно. Рассмотрим, как реализовать этот алгоритм:

Во-первых, сформируем командную строку запуска, где после ключа /C укажем, например, уникальный идентификатор документа (UUID):


"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S "Server\Base" /N "Manager" /C "OpenDoc:86f6874c-473d-11ef-810a-00155d010c03"

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


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

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

Использование внешней обработки через параметр /Execute

Если по каким-то причинам вы не можете вносить изменения в конфигурацию (база находится на поддержке без возможности редактирования), можно использовать "костыль" в виде внешней обработки. Суть метода заключается в том, что при старте системы 1С запустит файл .epf, который и выполнит открытие документа.

Рассмотрим алгоритм действий:

  1. Создаем внешнюю обработку (например, OpenMyDoc.epf).
  2. В модуле этой обработки в процедуре ПриОткрытии (или в обработчике команды) пишем код поиска и открытия формы документа.
  3. Для передачи конкретного документа в обработку можно использовать тот же текстовый файл, о котором упоминалось в обсуждении на форуме, либо считывать данные из системного реестра.

Команда запуска будет выглядеть так:


"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "C:\1C_Bases\Base1" /Execute "C:\Scripts\OpenMyDoc.epf"

Важный нюанс: для использования параметра /Execute у пользователя должны быть права на запуск внешних обработок. В современных типовых решениях (УТ 11, ERP, БП 3.0) эти права по умолчанию могут быть ограничены в целях безопасности.

Автоматизация через файлы описания запуска (.v8i)

Выясним еще один интересный способ — динамическую генерацию файлов .v8i. Вместо создания сложных батников, мы можем программно сформировать текстовый файл, который 1С воспринимает как список баз.

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

Нюансы при работе с веб-клиентом

Проанализируем ситуацию, когда пользователь работает не через тонкий клиент, а через браузер. В этом случае всё становится еще проще. Параметры запуска передаются прямо в URL-адресе после символа решетки #.

Пример ссылки для веб-клиента:

http://my-server.com/my-base/#e1cib/data/Документ.СчетНаОплату?ref=...

При клике на такую ссылку браузер сам откроет сессию 1С и перейдет к нужному объекту. Это идеальный вариант для интеграции 1С с корпоративными порталами или CRM-системами.

Рекомендации по стабильной работе

Разберем типичные ошибки, которые могут помешать открытию документа:

Подводя итог, для простой отправки ссылок в письмах лучше всего использовать e1c:// ссылки или параметр /URL. Если же требуется сложная логика обработки запуска — ваш выбор это параметр /C с доработкой в модуле управляемого приложения.

← На главную