При развертывании типового мобильного клиента «1С:Предприятие» (устанавливаемого из официальных магазинов приложений без индивидуальной сборки собственного мобильного приложения) системные администраторы и разработчики часто сталкиваются с необходимостью массового подключения смартфонов и планшетов сотрудников к рабочей информационной базе. Ручной ввод длинного веб-адреса публикации, имени базы и сопутствующих параметров запуска на экранной клавиатуре мобильного устройства неизбежно приводит к опечаткам, блокировкам учетных записей и повышенной нагрузке на службу технической поддержки.
В мобильном клиенте 1С предусмотрен штатный механизм считывания параметров подключения через камеру устройства при помощи кнопки добавления базы по QR-коду. Однако простая кодировка прямого интернет-адреса публикации (например, https://example.com/base/) не решает задачу: мобильный клиент распознает такую строку как произвольный текст и открывает стандартную карточку подключения с незаполненными полями. Чтобы приложение автоматически подставило наименование базы, адрес веб-сервера и параметры запуска, в QR-коде должен содержаться специализированный структурированный блок настроек.
Формат описания информационной базы для мобильного клиента основан на стандартном синтаксисе списка баз платформы «1С:Предприятие» (аналогично файлу ibases.v8i). Для корректного парсинга строка, зашиваемая в QR-код, должна представлять собой многострочный текст со строго определенными параметрами:
[ИмяИнформационнойБазы]
Connect=ws="https://example.com/base/";
AdditionalParameters=?O=Normal&N=ИмяПользователя;
Каждая строка несет конкретное функциональное назначение:
[ИмяИнформационнойБазы]): задает отображаемое наименование информационной базы в локальном списке мобильного приложения. Имя должно располагаться на первой строке.Connect: указывает способ подключения. Для публикации на веб-сервере в мобильном клиенте обязательно используется префикс веб-сервиса ws=, а сам веб-адрес берется в двойные кавычки. В конце строки обязательно ставится точка с запятой. Наличие закрывающего слеша в конце URL является критически важным для корректного обращения к публикации.AdditionalParameters: содержит дополнительные флаги запуска платформы, разделенные амперсандами (&) или стандартным командным синтаксисом 1С (через косую черту). Здесь могут передаваться параметры масштабирования, режим запуска, имя учетной записи пользователя или специфические ключи конфигурации.MobilePublicKey: опциональный ключ, применяемый в защищенных сценариях взаимодействия мобильного клиента с сервером при использовании сертификатов открытых ключей мобильных устройств.При стандартном сканировании QR-кода мобильный клиент по умолчанию заполняет реквизиты и отображает пользователю карточку с детальной информацией, требуя нажать кнопку подтверждения для сохранения базы в локальный список. Если требуется исключить шаг подтверждения и сразу зарегистрировать информационную базу в перечне, учитываются следующие параметры и директивы платформы:
SkipDetails: специальный флаг, указывающий мобильному клиенту подавлять вывод формы с подробными реквизитами добавленной базы, сохраняя ее непосредственно в список информационных баз.AddByQRCode: системная команда запуска сценария сканирования QR-кода на мобильном устройстве (в формате вызова AddByQRCode[&SkipDetails]). Применяется как параметр командной строки мобильного клиента или схема глубокой ссылки (Deep Link).AddInfoBase и AddToStartCfg: команды платформы, управляющие непосредственной записью переданных параметров подключения в файл начальной конфигурации запуска мобильного клиента.Если QR-код сканируется непосредственно из уже запущенного интерфейса мобильного клиента (через пункт меню «Добавить по QR-коду»), приложение ожидает именно блок параметров с секцией [ИмяБазы] и строкой Connect=ws="...";. Встраивание команд запуска операционной системы внутрь самого текстового блока структуры базы не требуется и может нарушить парсинг секции.
Для создания QR-кода на стороне центральной информационной базы (например, в рамках типовых конфигураций ERP, УТ или в самописной подсистеме администратора) используется встроенный язык 1С. Текст формируется с учетом корректного экранирования кавычек и разделителей строк.
// Формирование строки подключения для мобильного клиента
ТекстQR = Новый ТекстовыйДокумент;
// Первая строка: отображаемое имя
ТекстQR.ДобавитьСтроку("[" + СокрЛП(НаименованиеБазы) + "]");
// Вторая строка: адрес подключения с префиксом ws
АдресПодключения = "Connect=ws=""" + СокрЛП(ВебАдресБазы) + """;";
ТекстQR.ДобавитьСтроку(АдресПодключения);
// Третья строка: дополнительные параметры запуска
ДопПараметры = "?O=Normal";
Если ЗначениеЗаполнено(ЛогинПользователя) Тогда
ДопПараметры = ДопПараметры + "&N=" + СокрЛП(ЛогинПользователя);
КонецЕсли;
ТекстQR.ДобавитьСтроку("AdditionalParameters=" + ДопПараметры + ";");
СтрокаДляКодирования = ТекстQR.ПолучитьТекст();
// Генерация графического изображения QR-кода
ПараметрыШтрихкода = Новый Структура;
ПараметрыШтрихкода.Вставить("ТипКода", 16); // Тип 16 соответствует QR-коду в БСП
ПараметрыШтрихкода.Вставить("Текст", СтрокаДляКодирования);
ПараметрыШтрихкода.Вставить("УровеньКоррекцииПогрешностей", 1); // Уровень M
// Использование функции БСП для получения двоичных данных картинки
// ДвоичныеДанныеКартинки = ГенерацияШтрихкода.СформироватьШтрихкод(ПараметрыШтрихкода);
При формировании строки важно следить, чтобы между строками использовался стандартный перевод строки (CRLF или LF). Использование объекта ТекстовыйДокумент гарантирует корректную расстановку переводов строк независимо от платформы сервера.
Технически параметр AdditionalParameters позволяет передавать имя пользователя и пароль (через связку параметров &N=Имя&P=Пароль или /N "Имя" /P "Пароль"). Однако передача пароля в открытом QR-коде несет серьезные риски информационной безопасности:
N) либо оставлять параметры авторизации пустыми. Ввод пароля должен выполняться пользователем однократно при первом входе, после чего мобильный клиент может сохранить данные аутентификации в защищенное системное хранилище устройства (Keychain / KeyStore).Если мобильный клиент ведет себя не так, как ожидается, рекомендуется выполнить последовательную проверку по следующим пунктам:
ws= или без секции имени базы в квадратных скобках. Убедитесь, что текст строго начинается с [ИмяБазы] на отдельной строке.Connect=ws="..."; либо отсутствует завершающая точка с запятой. В коде 1С внутренние кавычки должны быть удвоены.