К статье
Практический материал

Разработка и Конфигурация · 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-строкой, либо простые команды с одним аргументом.

Получение строки в коде выполняется через функцию ПараметрЗапуска глобального контекста. Она возвращает строку, переданную в параметре запуска. Логичное место для разбора — обработчик ПриНачалеРаботыСистемы в модуле управляемого приложения: к этому моменту сеанс уже создан, а интерфейс ещё можно скорректировать до показа основного окна.

bsl
Процедура ПриНачалеРаботыСистемы()
	СтрокаПараметров = ПараметрЗапуска;
	Если СтрНайти(СтрокаПараметров, "ОткрытьОтчет") > 0 Тогда
		ОткрытьФорму("Отчет.Продажи.Форма");
	КонецЕсли;
КонецПроцедуры

Если параметров несколько, строку разбивают функциями работы со строками: СтрРазделить по разделителю, затем поиск «=» в каждом фрагменте. Результат удобно сложить в структуру и передать дальше — например, в параметры открываемой формы. Такой подход изолирует разбор строки в одном месте и упрощает поддержку.

Открытие конкретных объектов по ссылке

Частая задача — дать пользователю ссылку, которая сразу открывает нужный документ или элемент справочника, минуя навигацию по интерфейсу. В 1С для этого существуют навигационные ссылки: каждый объект базы имеет уникальную навигационную ссылку вида e1cib/data/Документ.РеализацияТоваровУслуг?ref=..., которую можно получить через функцию ПолучитьНавигационнуюСсылку.

Полный адрес для веб-клиента складывается из адреса публикации и навигационной ссылки: http://server/base/ru_RU/#e1cib/data/... (в зависимости от версии платформы разделитель может отличаться). Такую ссылку можно отправить пользователю по почте или встроить во внешнюю систему. При переходе веб-клиент запросит аутентификацию, если сеанс ещё не открыт, и затем покажет объект.

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

Способы открыть объект при запуске

Навигационная ссылка в URL

Просто и без кода, но нельзя добавить прикладную логику при открытии

Идентификатор через параметр О

Полный контроль в коде: проверки, выбор формы, но требует разработки обработчика

Внешняя обработка через отладку

Подходит только для разработчика, не для пользователей

Пошаговая настройка и проверка результата

Чтобы схема заработала, нужно последовательно пройти путь от публикации до обработчика в коде. Пропуск любого шага приводит к тому, что параметр «теряется»: либо браузер обрезает строку, либо код не находит ожидаемое значение.

Порядок действий
  1. 1
    Убедитесь, что база опубликована на веб-сервере и веб-клиент открывается по адресу публикации
  2. 2
    Сформируйте строку прикладных параметров и URL-кодируйте спецсимволы
  3. 3
    Добавьте строку в URL после параметра О= и откройте адрес в браузере
  4. 4
    В модуле управляемого приложения в ПриНачалеРаботыСистемы получите строку через ПараметрЗапуска
  5. 5
    Разберите строку и выполните нужное действие: открытие формы, запуск отчёта
  6. 6
    Проверьте поведение под пользователем с ограниченными правами, а не только под администратором

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

Контрольные точки

Как проверить результат

Строка параметров в коде
Норма

ПараметрЗапуска возвращает переданное значение

Тревожный признак

Пустая строка при заполненном URL — проверьте имя параметра и кодирование

Открытие формы
Норма

Форма открывается после стартовой страницы

Тревожный признак

Ошибка прав доступа или форма открывается до инициализации сеанса

Запуск без параметров
Норма

Система стартует в штатном режиме

Тревожный признак

Ошибка разбора пустой строки прерывает запуск

Типичные ошибки и ограничения

Самая распространённая ошибка — забыть URL-кодирование. Символы &, =, пробел и кириллица внутри значения параметра О разрушают структуру URL: браузер воспринимает амперсанд как начало следующего параметра, и строка обрезается. Кодируйте значение целиком, а в коде платформы при необходимости декодируйте.

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

Типичные ошибки
01
Передача строки без URL-кодирования — параметр обрезается на первом спецсимволе
02
Разбор параметра только под полными правами — у пользователей обработчик падает с ошибкой доступа
03
Открытие формы синхронно в ПриНачалеРаботыСистемы — конфликт с инициализацией интерфейса
04
Хранение паролей и токенов в URL — строка попадает в историю браузера и логи веб-сервера
05
Ожидание ключей тонкого клиента — часть параметров командной строки веб-клиент не поддерживает

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

FAQ

Можно ли передать несколько параметров веб-клиенту одновременно?

Да. Платформенные ключи перечисляются в URL через амперсанд, как обычные query-параметры. Прикладные значения упаковываются в одну строку параметра О с собственным разделителем — например, точкой с запятой — и разбираются в коде функциями работы со строками.

Чем веб-клиент отличается от тонкого по части параметров запуска?

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

Почему ПараметрЗапуска возвращает пустую строку, хотя параметр есть в адресе?

Чаще всего причина в имени параметра или кодировании. Проверьте, что используется именно кириллическая буква «О» в ключе, что значение URL-кодировано и что веб-сервер не обрезает query-строку при перенаправлениях. Также убедитесь, что адрес не был изменён браузером после редиректа аутентификации.

Безопасно ли передавать логин и пароль через URL?

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

Как открыть конкретный документ ссылкой без доработки конфигурации?

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

Работают ли параметры запуска при автоматическом обновлении и перезапуске сеанса?

При перезапуске сеанса браузер обычно сохраняет текущий URL, поэтому параметры в адресе сохраняются. Но если сеанс переоткрывается со стартовой страницы без query-строки, прикладные параметры теряются — не стройте логику, критичную к их повторной передаче, без сохранения состояния на сервере.

Итог

Что важно запомнить

Веб-клиенту 1С параметры передаются через URL публикации: платформенные ключи — отдельными параметрами, прикладные данные — строкой в параметре О с разбором через ПараметрЗапуска в ПриНачалеРаботыСистемы. Кодируйте спецсимволы, проверяйте пустую строку и права пользователя, никогда не передавайте пароли в адресе.