Разработка и Конфигурация · 11 мин
1С веб-клиент: как передать параметры при запуске
Разбираем способы передачи параметров при запуске веб-клиента 1С: параметры URL, командная строка, обработка в коде. Примеры, ошибки и проверка результата.
Передача параметров при запуске веб-клиента 1С — типичная задача при интеграции с внешними системами, настройке автозапуска отчётов или создании ссылок, которые открывают конкретный документ. В отличие от тонкого клиента, где большинство параметров задаётся в командной строке, веб-клиент управляется через URL публикации и дополнительные ключи в адресе. Понимание, какие параметры поддерживает платформа и как их обработать в коде конфигурации, позволяет строить удобные точки входа для пользователей.
Веб-клиент 1С запускается по адресу вида http://server/base/ru_RU/, и именно в эту строку добавляются параметры запуска. Часть из них платформа обрабатывает сама — например, отключение проверки сертификата или задание скорости соединения. Другую часть разработчик передаёт через специальный параметр О (он же Оptions в некоторых описаниях) или через строку запуска, которую затем разбирает прикладной код в модуле управляемого приложения.
Важно понимать ограничение: веб-клиент работает в песочнице браузера, поэтому не поддерживает часть ключей тонкого клиента, связанных с файловой системой и COM-взаимодействием. Перед проектированием схемы запуска стоит чётко определить, какие параметры платформенные, а какие — прикладные, и как прикладной код их получит.
Как устроена строка запуска веб-клиента
Базовый адрес веб-клиента формируется при публикации информационной базы на веб-сервере (IIS или Apache). Типичный вид: http://server/base. После адреса базы через вопросительный знак добавляются параметры в формате ключ=значение, разделённые амперсандом &. Пробелы и кириллица в значениях должны быть URL-кодированы, иначе браузер или веб-сервер исказит строку.
Платформа различает параметры, которые обрабатывает сама (например, LowClientConnectionSpeed, DisableCertificateValidation, wslang для языка интерфейса), и произвольную строку, которую можно передать для прикладной обработки. Прикладные данные принято передавать через параметр О (кириллическая буква «О») — его значение затем доступно в коде через функцию глобального контекста ПараметрЗапуска.
Пример полного адреса: http://server/base/ru_RU/?О=ОткрытьОтчет;Период=Месяц. Здесь после О= идёт произвольная строка, которую разработчик разбирает сам — разделители и структуру он определяет самостоятельно, платформа её не интерпретирует.
Платформенные параметры URL веб-клиента
Платформа 1С поддерживает ряд ключей, которые влияют на поведение веб-клиента без участия прикладного кода. Их удобно использовать для диагностики, отладки и адаптации работы под конкретные условия. Точный перечень ключей зависит от версии платформы, поэтому перед использованием сверяйтесь с документацией на установленный релиз.
К часто применяемым относятся параметры управления соединением и диагностики. Например, ключ низкой скорости соединения заставляет клиент сократить объём передаваемых данных, а параметры отладки позволяют подключить отладчик к сеансу веб-клиента. Есть и ключи, управляющие проверкой сертификатов при работе по HTTPS с самоподписанными сертификатами — их применяют в тестовых контурах.
| Параметр | Назначение | Когда применять |
|---|---|---|
| LowClientConnectionSpeed | Режим низкой скорости соединения | Медленные каналы, филиалы |
| DisableCertificateValidation | Отключение проверки сертификата | Тестовый контур с самоподписанным сертификатом |
| О | Прикладная строка параметров запуска | Передача команд в конфигурацию |
| wslang | Язык интерфейса веб-клиента | Принудительный выбор языка сессии |
Передача прикладных параметров через параметр О
Прикладной сценарий строится в три шага: сформировать строку параметров, добавить её в URL после О=, разобрать строку в коде конфигурации. Формат строки полностью на совести разработчика — чаще всего используют пары «ключ=значение» через точку с запятой, по аналогии с query-строкой, либо простые команды с одним аргументом.
Получение строки в коде выполняется через функцию ПараметрЗапуска глобального контекста. Она возвращает строку, переданную в параметре запуска. Логичное место для разбора — обработчик ПриНачалеРаботыСистемы в модуле управляемого приложения: к этому моменту сеанс уже создан, а интерфейс ещё можно скорректировать до показа основного окна.
Процедура ПриНачалеРаботыСистемы()
СтрокаПараметров = ПараметрЗапуска;
Если СтрНайти(СтрокаПараметров, "ОткрытьОтчет") > 0 Тогда
ОткрытьФорму("Отчет.Продажи.Форма");
КонецЕсли;
КонецПроцедурыЕсли параметров несколько, строку разбивают функциями работы со строками: СтрРазделить по разделителю, затем поиск «=» в каждом фрагменте. Результат удобно сложить в структуру и передать дальше — например, в параметры открываемой формы. Такой подход изолирует разбор строки в одном месте и упрощает поддержку.
Открытие конкретных объектов по ссылке
Частая задача — дать пользователю ссылку, которая сразу открывает нужный документ или элемент справочника, минуя навигацию по интерфейсу. В 1С для этого существуют навигационные ссылки: каждый объект базы имеет уникальную навигационную ссылку вида e1cib/data/Документ.РеализацияТоваровУслуг?ref=..., которую можно получить через функцию ПолучитьНавигационнуюСсылку.
Полный адрес для веб-клиента складывается из адреса публикации и навигационной ссылки: http://server/base/ru_RU/#e1cib/data/... (в зависимости от версии платформы разделитель может отличаться). Такую ссылку можно отправить пользователю по почте или встроить во внешнюю систему. При переходе веб-клиент запросит аутентификацию, если сеанс ещё не открыт, и затем покажет объект.
Альтернатива — передать уникальный идентификатор объекта через параметр О и в обработчике запуска получить ссылку по идентификатору и открыть форму объекта программно. Этот способ гибче: можно добавить проверки прав, показать предупреждение или открыть не сам объект, а связанную форму — например, печатную форму документа.
Способы открыть объект при запуске
Просто и без кода, но нельзя добавить прикладную логику при открытии
Полный контроль в коде: проверки, выбор формы, но требует разработки обработчика
Подходит только для разработчика, не для пользователей
Пошаговая настройка и проверка результата
Чтобы схема заработала, нужно последовательно пройти путь от публикации до обработчика в коде. Пропуск любого шага приводит к тому, что параметр «теряется»: либо браузер обрезает строку, либо код не находит ожидаемое значение.
- 1Убедитесь, что база опубликована на веб-сервере и веб-клиент открывается по адресу публикации
- 2Сформируйте строку прикладных параметров и URL-кодируйте спецсимволы
- 3Добавьте строку в URL после параметра О= и откройте адрес в браузере
- 4В модуле управляемого приложения в ПриНачалеРаботыСистемы получите строку через ПараметрЗапуска
- 5Разберите строку и выполните нужное действие: открытие формы, запуск отчёта
- 6Проверьте поведение под пользователем с ограниченными правами, а не только под администратором
Проверка результата — не формальность. Под полными правами открытие формы документа пройдёт всегда, а у рядового пользователя может не быть прав на объект, и обработчик завершится ошибкой. Также стоит проверить сценарий, когда параметр не передан вовсе: код должен корректно отработать пустую строку и запустить систему в обычном режиме.
Как проверить результат
ПараметрЗапуска возвращает переданное значение
Пустая строка при заполненном URL — проверьте имя параметра и кодирование
Форма открывается после стартовой страницы
Ошибка прав доступа или форма открывается до инициализации сеанса
Система стартует в штатном режиме
Ошибка разбора пустой строки прерывает запуск
Типичные ошибки и ограничения
Самая распространённая ошибка — забыть URL-кодирование. Символы &, =, пробел и кириллица внутри значения параметра О разрушают структуру URL: браузер воспринимает амперсанд как начало следующего параметра, и строка обрезается. Кодируйте значение целиком, а в коде платформы при необходимости декодируйте.
Вторая группа ошибок связана с моментом обработки. Код в ПриНачалеРаботыСистемы выполняется до полной инициализации интерфейса, поэтому некоторые действия (например, открытие формы с модальными вызовами) могут вести себя неожиданно. Надёжнее откладывать сложные действия через ПодключитьОбработчикОжидания с коротким интервалом однократного вызова.
Отдельно отметим ограничение безопасности: URL виден в истории браузера, в логах прокси и веб-сервера. Никогда не передавайте через параметры запуска пароли, токены доступа или персональные данные. Для аутентификации используйте штатные механизмы: доменную авторизацию, сертификаты или настройку аутентификации на веб-сервере.
FAQ
Можно ли передать несколько параметров веб-клиенту одновременно?
Да. Платформенные ключи перечисляются в URL через амперсанд, как обычные query-параметры. Прикладные значения упаковываются в одну строку параметра О с собственным разделителем — например, точкой с запятой — и разбираются в коде функциями работы со строками.
Чем веб-клиент отличается от тонкого по части параметров запуска?
Тонкий клиент получает параметры через командную строку исполняемого файла и поддерживает ключи, связанные с файловой системой и локальным окружением. Веб-клиент работает внутри браузера, поэтому принимает только параметры URL публикации, а часть ключей тонкого клиента для него недоступна.
Почему ПараметрЗапуска возвращает пустую строку, хотя параметр есть в адресе?
Чаще всего причина в имени параметра или кодировании. Проверьте, что используется именно кириллическая буква «О» в ключе, что значение URL-кодировано и что веб-сервер не обрезает query-строку при перенаправлениях. Также убедитесь, что адрес не был изменён браузером после редиректа аутентификации.
Безопасно ли передавать логин и пароль через URL?
Нет. Строка адреса сохраняется в истории браузера, логах веб-сервера и прокси, может попасть в скриншоты и журналы мониторинга. Для автоматического входа настраивайте аутентификацию средствами веб-сервера или операционной системы, а не передачу учётных данных в адресе.
Как открыть конкретный документ ссылкой без доработки конфигурации?
Используйте навигационную ссылку объекта: получите её в режиме предприятия через команду «Получить ссылку» или программно через ПолучитьНавигационнуюСсылку, затем добавьте её к адресу публикации веб-клиента. При переходе по такому адресу веб-клиент откроет форму объекта после аутентификации.
Работают ли параметры запуска при автоматическом обновлении и перезапуске сеанса?
При перезапуске сеанса браузер обычно сохраняет текущий URL, поэтому параметры в адресе сохраняются. Но если сеанс переоткрывается со стартовой страницы без query-строки, прикладные параметры теряются — не стройте логику, критичную к их повторной передаче, без сохранения состояния на сервере.
Что важно запомнить
Веб-клиенту 1С параметры передаются через URL публикации: платформенные ключи — отдельными параметрами, прикладные данные — строкой в параметре О с разбором через ПараметрЗапуска в ПриНачалеРаботыСистемы. Кодируйте спецсимволы, проверяйте пустую строку и права пользователя, никогда не передавайте пароли в адресе.