Как показать информацию рядом с полем формы в 1С:Предприятии и вопросы лицензирования для веб-клиента?

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

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

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

Способы отображения информации рядом с полем формы

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

  1. Использование расширенных подсказок (Tooltips)

    Расширенные подсказки — это один из наиболее простых и распространенных способов предоставления краткой, контекстной информации. Они появляются, когда пользователь наводит курсор мыши на элемент формы и автоматически исчезают, когда курсор убирается. Это позволяет предоставить помощь, не загромождая интерфейс постоянно видимыми элементами.

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

    В конфигураторе 1С:Предприятия для любого элемента формы (например, поля ввода, кнопки, надписи) вы можете установить свойство «Подсказка» или «Расширенная подсказка». Рассмотрим шаги:

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

    Преимущества:

    • Ненавязчивость: Подсказки появляются только по запросу пользователя (наведение курсора).
    • Контекстность: Информация отображается прямо рядом с элементом, к которому она относится.
    • Простота реализации: Не требует написания кода, достаточно настроек в конфигураторе.

    Мы рекомендуем использовать расширенные подсказки для предоставления кратких определений, форматов ввода или небольших пояснений к функционалу поля.

  2. Динамическое изменение видимости элементов (Inline Instructions/Hints)

    Этот подход подразумевает создание на форме дополнительных текстовых полей, надписей или групп элементов, которые изначально скрыты и становятся видимыми при определенных условиях. Например, при получении фокуса полем ввода или при некорректном вводе данных.

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

    Мы создадим надпись рядом с полем ввода и будем управлять её видимостью. Рассмотрим алгоритм:

    1. Создайте на форме элемент типа Надпись и расположите его рядом с целевым полем ввода.
    2. Установите для этой надписи свойство Видимость в значение Ложь в конфигураторе или в коде при инициализации формы.
    3. Для целевого поля ввода создайте обработчики событий ПриПолученииФокуса (или ПриИзменении) и ПриПотереФокуса.
    4. В обработчике ПриПолученииФокуса установите свойство Видимость нашей надписи в Истина.
    5. В обработчике ПриПотереФокуса установите свойство Видимость надписи обратно в Ложь.

    Посмотрим на пример кода для управления видимостью:

    
    &НаКлиенте
    Процедура ПолеВводаДанныхПриПолученииФокуса(Элемент)
        // При получении фокуса полем ввода, делаем подсказку видимой
        Элементы.НадписьСПодсказкой.Видимость = Истина;
    КонецПроцедуры
    
    &НаКлиенте
    Процедура ПолеВводаДанныхПриПотереФокуса(Элемент)
        // При потере фокуса полем ввода, скрываем подсказку
        Элементы.НадписьСПодсказкой.Видимость = Ложь;
    КонецПроцедуры
    
    // Или, например, при изменении значения поля
    &НаКлиенте
    Процедура ПолеВводаДанныхПриИзменении(Элемент)
        Если Не ЭтоБухгалтерскийНомер(Элемент.Значение) Тогда
            Элементы.НадписьОшибкаВвода.Текст = "Введите номер в формате АА-БББ";
            Элементы.НадписьОшибкаВвода.Видимость = Истина;
        Иначе
            Элементы.НадписьОшибкаВвода.Видимость = Ложь;
        КонецЕсли;
    КонецПроцедуры
    

    Преимущества:

    • Высокая контекстность: Информация появляется именно тогда, когда пользователь работает с полем.
    • Гибкость: Можно отображать различные типы сообщений (подсказки, предупреждения, ошибки) в зависимости от условий.
    • Полный контроль: Мы полностью контролируем текст, внешний вид и условия отображения информации.

    Этот метод подходит для более интерактивных подсказок, особенно при валидации ввода или предоставлении помощи по требованию.

  3. Декораторы полей (Field Decorators) или кастомные элементы

    Этот подход является более продвинутым и может потребовать дополнительных усилий, но предоставляет максимальную гибкость. Он включает в себя добавление иконок или небольших интерактивных элементов рядом с полем ввода.

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

    Мы можем использовать элементы типа Картинка или Кнопка с изображением (например, знаком вопроса или восклицательным знаком), расположенные рядом с полем. При клике на такую иконку может появляться всплывающее окно (реализованное как динамически создаваемая или скрытая группа с надписями) или изменяться видимость соседнего текстового поля.

    1. Создайте на форме элемент Кнопка или Картинка и разместите его рядом с полем ввода.
    2. Назначьте этой кнопке или картинке подходящую иконку (свойство Картинка).
    3. Для кнопки создайте обработчик события Нажатие. В этом обработчике можно:
      • Изменить видимость соседней надписи (как в предыдущем методе).
      • Открыть отдельную форму с более подробной справкой.
      • Показать сообщение через Предупреждение(), хотя это и менее гибко, чем элементы формы.

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

Важный аспект: Лицензирование для "Личного кабинета" на платформе 1С

При создании "личного кабинета" на базе 1С:Предприятия, особенно если он предназначен для внешних пользователей или имеет механизм монетизации, вопрос лицензирования становится критически важным. Разберем особенности лицензирования для веб-клиентов и мобильных приложений.

  1. Лицензирование веб-клиента

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

    Суть лицензирования:

    Для каждого одновременного сеанса пользователя, обращающегося к информационной базе 1С:Предприятия через веб-клиент, требуется клиентская лицензия 1С:Предприятия. Это означает, что если 10 пользователей одновременно работают в вашем "личном кабинете" через браузер, то будет использовано 10 клиентских лицензий.

    Особенности:

    • Само по себе использование веб-сервисов для обмена данными с 1С:Предприятием не требует отдельных лицензий. Однако, если веб-сервис используется для организации интерактивной работы внешних пользователей с данными 1С (т.е. по сути является частью пользовательской сессии), то эти пользователи также потребляют клиентские лицензии.
    • Несмотря на то, что пользователям не нужно устанавливать программу 1С на свой компьютер, сервер 1С:Предприятия и веб-сервер, на котором опубликовано приложение, всё равно необходимы и должны быть настроены в соответствии с требованиями лицензирования серверных продуктов 1С.
    • Если "личный кабинет" просто получает данные из 1С через HTTP-сервисы и отображает их на сторонней платформе (например, на сайте, разработанном на PHP или Python), а пользователи не взаимодействуют напрямую с интерфейсом 1С, то клиентские лицензии для этих конечных пользователей могут не требоваться, но это требует внимательного изучения лицензионного соглашения и, возможно, консультации с 1С или её партнёрами. В большинстве случаев, если речь идет о полноценном "личном кабинете" на веб-клиенте 1С, лицензии будут необходимы.

    Мы должны понимать, что запуск веб-клиента 1С фактически эквивалентен запуску тонкого клиента с точки зрения лицензирования.

  2. Лицензирование мобильных приложений на базе платформы 1С

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

    Существует два основных сценария лицензирования:

    1. Для внутренних пользователей (сотрудников организации):

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

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

      Мы видим, что это прямое расширение возможностей платформы для корпоративного использования.

    2. Для публичного распространения через магазины приложений (AppStore, Google Play и Windows Store):

      Этот сценарий является особенным и имеет свои нюансы:

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

      Мы должны тщательно продумать бизнес-модель приложения перед его публикацией.

    Разработческая лицензия:

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

Таким образом, мы видим, что для полноценного функционирования "личного кабинета", реализованного на платформе 1С:Предприятие, будь то через веб-клиент или мобильное приложение, почти всегда потребуются соответствующие клиентские лицензии. Исключение составляют лишь специфические сценарии бесплатного распространения мобильных приложений без монетизации.

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

← На главную