1с библиотека технологии сервиса что это
"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» и какие технологии используются при ее разработке.Нативные приложения
- 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С:Предприятие».
Интерфейс 1С на ОС Linux
Интерфейс 1С на мобильном устройстве
Интерфейс 1С на ОС Windows
Интерфейс 1С — веб-клиентOpen source
Заключение
В статье мы коснулись нескольких основных аспектов разработки платформы «1С: Предприятие». В ограниченном объеме статьи мы затронули лишь некоторые интересные, на наш взгляд, аспекты.
Общее описание различных механизмов платформы можно посмотреть тут.
Какие темы были бы интересны Вам в следующих статьях?Как реализована мобильная платформа 1С?
Описание внутреннего устройства веб-клиента?
Или, может быть, Вам интересен процесс выбора фич для новых релизов, разработки и тестирования?Позволяет в течении
30 минут развернуть рабочий стенд облачной подсистемы Фреш с использованием технологии docker. Может пригодиться для:
- Разработки конфигурации которая должна работать в облаке
- Разработки самой технологии Фреш
- Тестирования средств адаптации конфигураций
- Так же Фреш можно использовать для централизированной поддержки информационных баз, планирования обновлений, обновления, завершения работы пользователей.
- и т.д.
- Оперативная память от 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-систем
- Конфигурация Менеджер сервиса
- Конфигурация Агент сервиса
- Конфигурация Менеджер доступности
- Информационная база SM всегда должна быть первой в списке
- Для каждой базы необходимо прописать имя CF файла расположенного в каталоге /docker_fresh/distr/
- В данный список можно добавить свои информационные базы
- centos - является базовым образом для образов core и db
- core - платформа 1С, клиентская и серверная часть. Дополнительно содержит ring, onescript
- db - сервер баз дынных Postgres
- site - компонент сайт Фреша
- forum - компонент форум Фреша
- gate - компонент шлюз приложений Фреша
- Сайт - https://mystandname.1cfresh.dev
- Менеджер сервиса веб клиент - https://mystandname.1cfresh.dev/a/adm?Oida-
- Для доступа через конфигуратор - Srvr="srv.mystandname.1cfresh.dev";Ref="ibname"; в качестве имен информационных баз используются указанные в файле /docker_fresh/other_files/params.json данные.
Компоненты используемые для тестирования
Подготовка к развертыванию
Данный стенд для простоты развертывания использует домен 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 которые требуется создать
При возникновении проблем при работе со скриптами start.py или install.py
Выполните повторый запуск данной команды с ключем -debug сделайте скриншот результата и зарегистрируйте ошибку
Данный стенд содержит следующие контейнеры:
Сборка образов запускается командой
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 следующую команду
Адреса для доступа к компонентам стенда
Для выключения стенда достаточно зайти в каталог /docker_fresh/workdir и выполнить команду
Читайте также: