В процессе автоматизации бизнес-процессов часто возникает задача максимально упростить переход пользователя к конкретному объекту в информационной базе. Типичный сценарий: сотруднику приходит электронное письмо с уведомлением, и для оперативной работы ему нужно не просто запустить 1С, а сразу увидеть перед собой форму нужного документа. В этой статье мы подробно разберем все доступные способы реализации этой задачи — от стандартных параметров командной строки до более сложных механизмов с использованием программного кода и навигационных ссылок.
Начнем с самого современного и рекомендуемого способа. Платформа 1С:Предприятие поддерживает механизм навигационных ссылок, которые работают аналогично гиперссылкам в браузере. Если мы передадим такую ссылку в параметрах запуска, система сама поймет, какой объект нужно открыть.
Проанализируем структуру такой ссылки. Она имеет вид e1cib/data/Документ.НазваниеДокумента?ref=Идентификатор. Чтобы запустить 1С с открытием по этой ссылке, используется ключ /URL.
Разберем по шагам, как это работает на практике:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "D:\Bases\Trade" /URL "e1cib/data/Документ.РеализацияТоваровУслуг?ref=ab33089798c755f711ec2ccd3273e833"
Важно отметить особенность работы ключа /URL: если у пользователя уже запущен сеанс 1С с этой же информационной базой, платформа не будет открывать второе окно. Она просто активирует существующее приложение и откроет в нем нужный документ. Это значительно экономит ресурсы компьютера и время пользователя.
Иногда стандартного механизма /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
КонецПопытки;
КонецЕсли;
КонецПроцедуры
Этот метод считается наиболее профессиональным, так как программист полностью контролирует процесс: можно открывать разные типы документов, передавать дополнительные команды или даже логировать, кто и когда открывал документы по внешним ссылкам.
Если по каким-то причинам вы не можете вносить изменения в конфигурацию (база находится на поддержке без возможности редактирования), можно использовать "костыль" в виде внешней обработки. Суть метода заключается в том, что при старте системы 1С запустит файл .epf, который и выполнит открытие документа.
Рассмотрим алгоритм действий:
OpenMyDoc.epf).ПриОткрытии (или в обработчике команды) пишем код поиска и открытия формы документа.Команда запуска будет выглядеть так:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "C:\1C_Bases\Base1" /Execute "C:\Scripts\OpenMyDoc.epf"
Важный нюанс: для использования параметра /Execute у пользователя должны быть права на запуск внешних обработок. В современных типовых решениях (УТ 11, ERP, БП 3.0) эти права по умолчанию могут быть ограничены в целях безопасности.
Выясним еще один интересный способ — динамическую генерацию файлов .v8i. Вместо создания сложных батников, мы можем программно сформировать текстовый файл, который 1С воспринимает как список баз.
В таком файле можно указать параметр ClientSpecificCommandLine, куда прописываются навигационные ссылки или параметры /C. Это удобно, если вы формируете ссылку для пользователя на лету из другой учетной системы.
Проанализируем ситуацию, когда пользователь работает не через тонкий клиент, а через браузер. В этом случае всё становится еще проще. Параметры запуска передаются прямо в URL-адресе после символа решетки #.
Пример ссылки для веб-клиента:
http://my-server.com/my-base/#e1cib/data/Документ.СчетНаОплату?ref=...
При клике на такую ссылку браузер сам откроет сессию 1С и перейдет к нужному объекту. Это идеальный вариант для интеграции 1С с корпоративными порталами или CRM-системами.
Разберем типичные ошибки, которые могут помешать открытию документа:
Подводя итог, для простой отправки ссылок в письмах лучше всего использовать e1c:// ссылки или параметр /URL. Если же требуется сложная логика обработки запуска — ваш выбор это параметр /C с доработкой в модуле управляемого приложения.