1с библиотека технологии сервиса что это

Обновлено: 04.07.2024

"1С:Библиотека технологии сервиса" (БТС) используется при разработке "с нуля" и адаптации уже существующих решений для размещения в облачных сервисах по технологии 1cFresh.

Публикация БТС на сайте https://releases.1c.ru позволит разработчикам чаще получать обновления библиотеки. На сайте будут представлены версии библиотеки для совместимости с актуальными версиями "1С:Библиотеки стандартных подсистем".

БТС и документация, входящая в ее состав, могут использоваться также для оценки трудозатрат работ по адаптации конфигурации к работе в облачном сервисе.

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

Подробнее о продуктах технологии 1сFresh и планируемых изменениях

В связи с обращениями пользователей технологии 1cFresh "1С:Библиотека технологии сервиса" публикуется как отдельный продукт и исключается из состава продуктов технологии 1сFresh.

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

До 26.09.2018 БТС входила в состав следующих продуктов:

С 27.09.2018 БТС исключается из состава продуктов технологии 1сFresh и публикуется на сайте https://releases.1c.ru в качестве самостоятельного продукта в разделе "Стандартные библиотеки". На сайте будут представлены версии библиотеки для совместимости с актуальными версиями "1С:Библиотеки стандартных подсистем".

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

Для разработки собственных решений рекомендуется приобрести продукт "1С:Технология разработки решений 1cFresh", так как входящие в его состав компоненты позволяют провести полное тестирование и гарантировать работоспособность решения в модели сервиса.

СОСТАВ И ПОРЯДОК РАСПРОСТРАНЕНИЯ "1С:БИБЛИОТЕКИ ТЕХНОЛОГИИ СЕРВИСА"

В состав дистрибутива входят:

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

    ПОРЯДОК ИСПОЛЬЗОВАНИЯ "БИБЛИОТЕКИ ТЕХНОЛОГИИ СЕРВИСА"

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

    Привет, Хабр!
    В этой статье мы начнем рассказ о том, как устроена внутри платформа «1С:Предприятие 8» и какие технологии используются при ее разработке.

    image

    Нативные приложения

    • STL (в частности, строки, контейнеры и алгоритмы)
    • множественное наследование, в т.ч. множественное наследование реализации
    • шаблоны
    • исключения
    • умные указатели (собственная реализация)

    Компоненты

    • Разделение способствует лучшему проектированию, в частности лучшей изоляции кода
    • Из набора компонентов можно гибко собирать разные варианты поставки:
      • Например, инсталляция тонкого клиента будет содержать wbase, но не будет backend
      • а на сервере wbase, наоборот, не будет
      • оба варианта будут, конечно, содержать nuke и bsl
      • Предоставляет фабричные методы, позволяющие создать класс из другой компоненты зная только его название (без раскрытия реализации)
      • Предоставляет инфраструктуру умных указателей с подсчетом ссылок. За временем жизни SCOM-класса не нужно следить вручную
      • Позволяет узнать реализует ли объект конкретный интерфейс и автоматически привести указатель на объект к указателю на интерфейс
      • Создать объект-сервис, всегда доступный через метод get_service и т.д.

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

      Для поддержки сервисов SCOM предлагает дополнительную, достаточно сложную инфраструктуру. Центральным в ней является понятие SCOM-процесса, который служит контейнером для запущенных сервисов (т.е. выполняет роль Service Locator), а также содержит привязку к локализуемым ресурсами. SCOM процесс привязывается к потоку ОС. Благодаря этому внутри приложения можно вот так получать сервисы:

      Более, того переключая логические (SCOM) процессы привязанные к потоку, можно получить практически независимые с точки зрения информационного пространства приложения, выполняющиеся в рамках одного потока. Так устроен наш тонкий клиент, работающий с файловой базой — внутри одного процесса ОС находятся два SCOM-процесса, один связан с клиентом, а второй — с сервером. Такой подход позволяет унифицировать написания кода, который будет работать как на локальной файловой базе, так и в «настоящем» клиент-серверном варианте. Цена за такое единообразие — накладные расходы, но практика показывает, что они того стоят.

      На основе компонентной модели SCOM реализована и бизнес-логика и интерфейсная часть 1С: Предприятия.

      Пользовательский интерфейс

      Кстати, об интерфейсах. Мы не используем стандартные контролы Windows, наши элементы управления реализованы напрямую на Windows API. Для Linux-версии сделана прослойка, работающая через библиотеку wxWidgets.
      Библиотека элементов управления не зависит от других частей «1С:Предприятия» и используется нами еще в нескольких небольших внутренних утилитах.

      За годы развития 1С:Предприятие внешний вид контролов менялся, но серьезное изменение принципов произошло только один раз, в 2009 году, с выходом версии 8.2 и появлением «управляемых форм». Помимо изменения внешнего вида, фундаментально изменился принцип компоновки формы — произошел отказ от попиксельного позиционирования элементов в пользу flow-компоновки элементов. Кроме того, в новой модели элементы управления работают не напрямую с доменными объектами, а со специальными DTO (Data Transfer Objects).
      Эти изменения позволили создать веб-клиент «1С:Предприятия», повторяющий С++ логику контролов на JavaScript. Мы стараемся поддерживать функциональную эквивалентность между тонким и веб клиентами. В том случае, когда это невозможно, например, из-за ограничений доступных из JavaScript API (например, возможности работы с файлами очень ограничены), мы часто реализуем нужную функциональность при помощи расширений браузеров, написанных на C++. На данный момент мы поддерживаем Internet Explorer и Microsoft Edge (Windows), Google Chrome(Windows), Firefox (Windows и Linux) и Safari (MacOS).

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

      image


      Интерфейс 1С на ОС Linux

      image


      Интерфейс 1С на мобильном устройстве

      image


      Интерфейс 1С на ОС Windows

      image


      Интерфейс 1С — веб-клиент

      Open source

      Заключение

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

      Как реализована мобильная платформа 1С?
      Описание внутреннего устройства веб-клиента?
      Или, может быть, Вам интересен процесс выбора фич для новых релизов, разработки и тестирования?

      Позволяет в течении

      30 минут развернуть рабочий стенд облачной подсистемы Фреш с использованием технологии docker. Может пригодиться для:

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

      Click to go to video

      • Оперативная память от 4Гб
        • лучше от 8Гб

        Использование команды docker без sudo на linux

        Для использования на ОС симейства linux команды docker без sudo необходимо добавить пользователя в группу docker.

        Дистрибутивы необходимые для развертывания

        Для развертывания стенда потребуются дистрибутивы платформы 1С Предприятие и подсистемы Фреш

          требуется два файла
          • Клиент 1С:Предприятия (64-bit) для RPM-based Linux-систем
          • Cервер 1С:Предприятия (64-bit) для RPM-based Linux-систем
          • Сайт 1cFresh
          • Форум 1cFresh
          • Шлюз приложений для DEB-based Linux-систем
          • Конфигурация Менеджер сервиса
          • Конфигурация Агент сервиса
          • Конфигурация Менеджер доступности

          Компоненты используемые для тестирования

          Подготовка к развертыванию

          Данный стенд для простоты развертывания использует домен 1cfresh.dev и валидные, выданные let's encrypt сертификаты. Использование данного доменного имени и сертификатов может быть не безопасным, поэтому предлагается использовать их в только в целях тестирования и ознакомления.
          Для более надежного использования данного стенда, поменяйте в файле start.py доменное имя 1cfresh.dev на имя вашего домена и разместите сертификаты в каталоге /docker_fresh/certs/


          Все ранее скачанные дистрибутивы необходимо разместить в каталоге /docker_fresh/distr/ . После добавления всех дистрибутивов в каталог, он должен выглядить примерно следующим образом

          Файл smtl.cf это файл demo/1cv8_service.cf из комплекта поставки 1С:Библиотека технологии сервиса
          Для 1С:Библиотека технологии сервиса версии 2.0 и выше, нужно взять файл расширения из комплекта поставки 1cv8.cfe или fresh.cfe и разместить его рядом с файлом smtl.cf, назвав smtl.cfe

          Настройка списка создаваемых информационных баз

          В файле /docker_fresh/other_files/params.json расположен список информационных баз в формате JSON которые требуется создать

          • Информационная база SM всегда должна быть первой в списке
          • Для каждой базы необходимо прописать имя CF файла расположенного в каталоге /docker_fresh/distr/
          • В данный список можно добавить свои информационные базы

          При возникновении проблем при работе со скриптами start.py или install.py

          Выполните повторый запуск данной команды с ключем -debug сделайте скриншот результата и зарегистрируйте ошибку

          Данный стенд содержит следующие контейнеры:

          • centos - является базовым образом для образов core и db
          • core - платформа 1С, клиентская и серверная часть. Дополнительно содержит ring, onescript
          • db - сервер баз дынных Postgres
          • site - компонент сайт Фреша
          • forum - компонент форум Фреша
          • gate - компонент шлюз приложений Фреша

          Сборка образов запускается командой

          install.py имеет возможность запуска с флагом -debug. При запуске с данным флагом весь процесс сборки будет подробно отображаться на экране.

          Для работы данного стенда необходимо два вида лицензий

          На операционных системах семейства Linux поддерживается проброс HASP ключей в контейнеры. На остальных, работа возможна только с помощью программных лицензий или указания сервера лицензирования в файле nethasp.ini для получения клиентских лицензий.

          Проброс HASP ключей

          Проброс в контейнер выполняется в файле docker-compose.yml путем монтирования файла /tmp/.aksusb в контейнер srv(контейнер содержащий сервер 1С). Что бы данный файл появился необходимо установить драйвера для HASP ключей, скачать можно по ссылке выбрав подходящий для вашей ОС.

          Файл расположен по пути docker_fresh/conf/core/nethasp.ini . Если вы хотите указать сервер с лицензиями нужно раскоментировать каждую строку в этом файле и вместо server указать имя реально существующего сервера

          Активация программных лицензий

          Активация программных лицензий выполняется с помощью утилиты ring которая присутствует в образе core. Пример строки активации лицензии

          Где -v /Users/wizaxxx/Documents/projects/docker_fresh/licenses_1c:/var/1C/licenses является пробросом каталога с лицензиями /var/1C/licenses из контейнера в локальный каталог /Users/wizaxxx/Documents/projects/docker_fresh/licenses_1c для дальнейшего использования.
          Все остальный параметры заполняются согласно документации утилиты ring

          Создание нового стенда

          Запуск стенда выполняется командой

          Скрипт start.py имеет возможность запуска с флагом -debug. При запуске с данным флагом весь процесс запуска будет подробно отображаться на экране.

          При запуске скрипта start.py происходит создание каталога workdir. В данный каталог копируются необходимые для работы стенда файлы и выполняется их конфигурирование.

          Повторный запуск/перезагрузка существующего стенда

          Для повторного запуска стенда необходимо использовать скрипт start.py без указания дополнительных параметров.

          Настройка файла hosts

          Для доступа к сайту, веб клиентам информационных баз или доступу через конфигуратор необходимо сконфигурировать файл hosts. В файл hosts требуется добавить следующю строку

          Где вместо 192.168.1.6 необходимо указать ip адрес сервера на котором вы развернули стенд Фреша, а вместо mystandname необходимо использовать имя указанное при развертывании стенда.

          При запуске стенда в windows с использованием wsl2 корректный ip адрес для записи в файл hosts можно получить выполнить в wsl2 следующую команду

          Адреса для доступа к компонентам стенда

          • Сайт - https://mystandname.1cfresh.dev
          • Менеджер сервиса веб клиент - https://mystandname.1cfresh.dev/a/adm?Oida-
          • Для доступа через конфигуратор - Srvr="srv.mystandname.1cfresh.dev";Ref="ibname"; в качестве имен информационных баз используются указанные в файле /docker_fresh/other_files/params.json данные.

          Для выключения стенда достаточно зайти в каталог /docker_fresh/workdir и выполнить команду

          Читайте также: