Мы используем cookies для улучшения работы сайта
Используем cookies для улучшения сайта

Опыт работы с 1С FRESH

Введение

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

Постановка задачи

Передо мной была поставлена главная задача - развернуть тестовую базу с разделением данных и протестировать работу системы. Конфигурация коробочная версия. Из этой задачи вытекают последовательно несколько — изучить технологию FRESH в целом, изучить демонстрационные примеры для развертывания и решения главной задачи.
Ссылки на использованные статьи:
  1. Облачная подсистема Фреш https://v8.1c.ru/platforma/tekhnologiya-1cfresh/
  2. Возможности подсистемы Фреш для интеграции с другими сервисами https://its.1c.ru/db/fresh
  3. 1С:Облачная подсистема Фреш описание с сайта ИТС (требуется доступ к информационной системе 1С:ИТС) https://its.1c.ru/db/freshpub
  4. Демонстрационный пример № 1 развертывания сервиса Фреш (требуется доступ к информационной системе 1С:ИТС) https://its.1c.ru/db/freshex1
  5. Демонстрационный пример № 2 развертывания сервиса Фреш (требуется доступ к информационной системе 1С:ИТС) https://its.1c.ru/db/freshex2

Цель облачной подсистемы

Целью облачной подсистемы Фреш является максимальное обобществление эксплуатации прикладных решений 1С:Предприятия.
Для лучшего понимания можно рассмотреть небольшой пример. Допустим, сотрудники организации работают каждый со своим собственным экземпляром прикладного решения в файловом варианте:
1С FRESH
подсистемы Фреш является максимальное обобществление эксплуатации прикладных решений 1С:Пред.
В этом случае задачи по эксплуатации прикладного решения равномерно распределены между всеми сотрудниками. Каждый из них самостоятельно должен выполнять резервное копирование собственной СУБД, самостоятельно обновлять прикладное решение, самостоятельно выполнять регламентные операции и т. д. При этом организация является собственником нескольких экземпляров прикладного решения (по количеству сотрудников).
В данной ситуации первым шагом к обобществлению эксплуатации является переход на клиент-серверный вариант работы:
1С FRESH
Теперь все сотрудники организации работают с одним и тем же экземпляром прикладного решения. Они уже не заняты вопросами эксплуатации, а решают исключительно задачи ведения учёта. Эксплуатацией занимается IT-специалист. Он, одновременно для всех сотрудников, выполняет резервное копирование, обновляет прикладное решение, выполняет регламентные операции и т. д. При этом организация является собственником одного экземпляра прикладного решения.
Облачная подсистема Фреш предоставляет следующий уровень обобществления эксплуатации:
1С FRESH
Несколько разных организаций работают с одним и тем же экземпляром прикладного решения. Теперь ни отдельные сотрудники, ни IT-специалисты организаций не заняты задачами эксплуатации прикладного решения. Этим занимается поставщик сервиса. Он, одновременно для всех сотрудников всех организаций, выполняет резервное копирование, обновляет прикладное решение, выполняет регламентные операции и т. д. При этом организации не являются собственниками прикладного решения. Они всего лишь оплачивают услуги пользования прикладным решением.

Ключевые понятия и варианты использования

Важными понятиями в облачной подсистеме Фреш являются поставщик сервиса, абонент, пользователь абонента и пользователь сервиса. Чтобы пояснить эти понятия, рассмотрим две большие области применения подсистемы.
Во-первых, сервис, созданный с помощью облачной подсистемы Фреш, может применяться для предоставления услуг пользования прикладными решениями 1С:Предприятия небольшим и средним компаниям, которым требуется несколько рабочих мест (например, 2-3 или 10-15).
1С FRESH
В этом случае поставщиком сервиса является некая коммерческая компания, абонентами сервиса — организации, а все сотрудники одной организации (абонента) являются пользователями этого абонента. При этом каждый сотрудник (независимо от принадлежности к организации) является пользователем сервиса:
Во-вторых, сервис, созданный с помощью облачной подсистемы Фреш, может применяться для автоматизации крупных холдингов, в которых разные структуры (предприятия, филиалы) используют одни и те же прикладные решения 1С:Предприятия.
В этом случае поставщиком сервиса является IT отдел холдинга, абонентами сервиса — предприятия и филиалы, а все сотрудники одного предприятия/филиала (абонента) являются пользователями этого абонента. При этом каждый сотрудник холдинга (независимо от принадлежности к подразделению) является пользователем сервиса
1С FRESH

Возможности облачной подсистемы

Подсистема Фреш которая позволяет поставщику облачного сервиса:

• Публиковать типовые прикладные решения фирмы «1С» и прикладные решения других разработчиков на платформе 1С:Предприятие;
• Предоставлять опубликованным прикладным решениям единую нормативно-справочную информацию, которая может централизованно обновляться;
• Регистрировать и управлять пользователями сервиса, абонентами и пользователями абонентов;
• Создавать демонстрационные прикладные решения для пользователей абонента;
• Организовывать общение пользователей сервиса друг с другом и с представителями поставщика сервиса;
• Обновлять прикладные решения;
• Конвертировать данные прикладных решений из одной версии в другую;
• Создавать резервные копии прикладных решений;
• Выгружать и загружать данные прикладных решений;
• Публиковать новости, маркетинговую информацию о сервисе, методическую информацию о работе с прикладными решениями;
• Управлять инфраструктурой сервиса: регистрировать кластеры серверов 1С:Предприятия, информационные базы, подключать обработки получения поставляемых данных, координировать обмен между компонентами сервиса, рассылать информацию абонентам по электронной почте и SMS;
• Собирать статистику работы пользователей с приложениями и формировать по ней отчёты;
• Администрировать и сопровождать различные компоненты сервиса.

Компоненты облачной подсистемы

Облачная подсистема Фреш состоит из несколько основных компонентов, которые представлены на следующей схеме:
1С FRESH
Центральный компонент подсистемы — Менеджер сервиса. Это прикладное решение на платформе «1С:Предприятие». Менеджер сервиса хранит в себе всю информацию о том, какие прикладные решения зарегистрированы в сервисе, какие области данных используются и какими абонентами, какие пользователи существуют в системе и с какими ролями. Также менеджер сервиса хранит и предоставляет прикладным решениям (по запросу) единую нормативно-справочную информацию, которая может централизованно обновляться.
Информационные базы прикладных решений — разворачиваются в кластере серверов 1С:Предприятия и публикуются на веб-сервере. Это главный прикладной компонент подсистемы Фреш, с которым непосредственно работают пользователи.
Коммуникационная часть подсистемы состоит из двух Java приложений: сайта и конференции. С помощью сайта пользователи получают простой и удобный доступ для взаимодействия с сервисом. Интерфейс сайта позволяет выполнить регистрацию новых абонентов и пользователей сервиса, подключение абоненту новых приложений, запуск приложений и другие действия.
Конференция предоставляет возможность пользователям сервиса общаться друг с другом и с представителями поставщика сервиса по вопросам функционирования сервиса и прикладных решений. Доступ к конференции предоставляется всем пользователям сервиса. Управление пользователями конференции и тематиками сообщений осуществляет менеджер сервиса.
Ещё один компонент облачной подсистемы Фреш — Агент сервиса. Это прикладное решение на платформе «1С:Предприятие». С помощью агента сервиса выполняются административные действия, для которых необходимо непосредственное соединение с кластером серверов. Агент сервиса обновляет прикладные решения, выполняет конвертацию данных прикладных решений из одной версии в другую, и другие действия.
Совместно с компонентами облачной подсистемы Фреш может использоваться отдельное прикладное решение «Центр контроля качества». Оно помогает выполнять мониторинг системы, и оповещать ответственных в случае обнаружения проблем по почте и SMS. Типичные задачи, решаемые с помощью Центра контроля качества это:
  • Мониторинг производительности системы в виде набора объективных показателей с целью своевременной диагностики проблем производительности;
  • Контроль устойчивости системы, учет случаев аварийного завершения рабочих процессов;
  • Наблюдение за количеством оперативной памяти, захваченной рабочими процессами кластера, и регистрация случаев, когда потребление памяти превышает заранее установленное пороговое значение.
Прикладное решение «Центр контроля качества» входит в состав продукта «1С:Корпоративный инструментальный пакет».

Прикладные решения

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

  • С помощью веб-клиента без предварительной подготовки клиентского компьютера;
  • С помощью тонкого клиента по протоколу HTTPS.
Чтобы прикладные решения могли работать через Интернет в модели сервиса Фреш, они должны быть разработаны по правилам, описанным в документе «Облачная подсистема Фреш. Руководство разработчика». Возможны как адаптация существующих прикладных решений для работы в модели сервиса Фреш, так и разрабатывать новые приложения, предназначенные для публикации в сервисах.
Одной из важных особенностей таких прикладных решений является использование библиотеки «1С:Библиотека технологий сервиса» (БТС). Она содержит готовый типовой инструментарий, необходимый для взаимодействия приложений с компонентами облачной подсистемы Фреш.
Одним из важных механизмов, используемых для реализации программного обеспечения как услуги, является multitenancy (разделение использования). Multitenancy означает, что один экземпляр программного обеспечения, запущенного на сервере, обслуживает множество клиентов.
В конкретном случае системы «1С:Предприятие» это означает, что для некоторого числа клиентов используется одна база данных, при этом доступ клиентов к этой базе организуется через один кластер серверов.
Для поддержки multitenancy в платформе «1С:Предприятие» реализован новый механизм разделения данных, позволяющий разделить на отдельные части все хранимые данные, а также работу прикладного решения.
В качестве иллюстрации можно рассмотреть следующую схему. На ней показаны клиенты, использующие один экземпляр приложения «1С:Бухгалтерия», и один экземпляр приложения «Управление нашей фирмой»:
1С FRESH
Каждый из экземпляров приложений взаимодействует с одной информационной базой, но работает в режиме разделения данных. Это означает, что в информационной базе каждому абоненту выделяется своя собственная независимая область данных. Наряду с этим существуют данные, которые не имеют «персональной» окраски и одинаково используются всеми абонентам и клиентами, работающими с данным приложением. Обычно это нормативно-справочная информация, которая поставляется и обновляется поставщиком сервиса централизованно.
Для абонента все выглядит так, как будто с программой работают только его пользователи, других абонентов не существует. А для поставщика сервиса все пользователи абонентов, работающие с одной программой, обращаются к единственной информационной базе. То есть единственный экземпляр программы, запущенный у поставщика, обслуживает всех пользователей.
В рамках сервиса может существовать произвольное количество информационных баз, в каждой из которых может быть произвольное количество областей данных. Каждое прикладное решение, работающее в сервисе, при необходимости может разворачиваться в нескольких информационных базах. Количество информационных баз и количество областей данных определяется характеристиками имеющегося оборудования и нагрузкой, создаваемой пользователями.
Для того чтобы упростить и облегчить работу с сервисом, используется ещё одна технология, которая реализована в платформе 1С:Предприятие, — OpenID-аутентификация. Эту технологию поддерживают как прикладные решения 1С:Предприятия, так и компоненты сервиса.
Без использования этой технологии пользователь вынужден был бы постоянно вводить логины и пароли: при обращении к сайту, при входе в конференцию, при запуске каждого прикладного решения, с которым он работает. Потому что и компоненты сервиса и прикладные решения требуют аутентификацию пользователя.
OpenID-аутентификация позволяет избежать этого. Пользователь аутентифицируется один раз в одном из компонентов сервиса (сайт, форум или приложение). А при обращении к другому компоненту аутентификация выполняется уже автоматически и незаметно для пользователя

Масштабирование

Облачная подсистема Фреш обеспечивает горизонтальное масштабирование. По сути основная нагрузка ложится на информационные базы в узлах. Каждый из таких узлов включает свою копию 1С:Предприятия и обрабатывает некоторое количество абонентов. Поэтому при росте количества абонентов необходимо устанавливать дополнительное оборудование и создавать новые узлы.
Масштабирование сервиса можно осуществлять за счет:
  • Увеличения количества рабочих процессов в кластере;
  • Увеличения количества информационных баз в кластере;
  • Увеличения количества кластеров 1С:Предприятия, в которых развёртываются прикладные решения.

Описание практической реализации

В данном примере опусканется описания развертывания Менеджера сервиса, агента сервиса, СУБД SQL, 1С сервера и создания базы данных, т.к. данные сервисы и приложения уже были предустановлены. Более подробнее о процессе установки данных сервисов вы можете прочитать в демонстрационных примерах, ссылки на них приведены в начале документа.
Список последовательных операций с пояснениями:

1) Создана база данных с именем «PRST_CORP_FRESH_MS» на сервере «win-1cfran:10141»
2) Выгружена конфигурация прикладного решения.
3) Файл конфигурации "скелет" загружен в базу «PRST_CORP_FRESH_MS»
4) Выполняем первый интерактивный запуск конфигурации (https://its.1c.ru/db/freshex1#content:548:hdoc), создается предопределенный пользователь Администратор, устанавливаются значения по умолчанию.
5) Создаем пользователя RemoteAccess, данный пользователь необходим менеджеру сервиса, через него будет осуществлятся создание пользователей и обмен данными.
Задаем роли для пользователя:
  • Выполнение синхронизации данных;
  • Удаленный доступ (Базовая функциональность);
  • Удаленный доступ (Обмен данными в модели сервиса);
  • Удаленный доступ (Обмен сообщениями).
6) Устанавливаем константы (https://its.1c.ru/db/freshex1#content:549:hdoc)
  • Детализировать обновление ИБ в журнале регистрации — установить;
  • Использовать автономную работу в модели сервиса — установить;
  • Использовать синхронизацию данных — установить;
  • Использовать синхронизацию данных в локальном режиме — снять;
  • Использовать синхронизацию данных в модели сервиса — установить;
  • Использовать синхронизацию данных в модели сервиса с локальной программой — снять;
  • Использовать синхронизацию данных в модели сервиса с приложением в Интернете — установить.
7) База даных опубликована на веб сервисе (https://its.1c.ru/db/freshex1#content:550:hdoc). В нашем случае созданы 2 файла:
C:\www\1cfresh\a\PRST_CORP_FRESH_MS\default.vrd
C:\www\1cfresh\int\PRST_CORP_FRESH_MS\default.vrd
внесены изменения в файл httpd.conf (добавлены созданные публикации)

# 1c publication
Alias "/a/PRST_CORP_FRESH_MS" "C:/www/1cfresh/a/PRST_CORP_FRESH_MS"
<Directory "C:/www/1cfresh/a/PRST_CORP_FRESH_MS">
    AllowOverride All
    #Order allow,deny
    #Allow from all
	Options None
    Require all granted
    SetHandler 1c-application
    ManagedApplicationDescriptor "C:/www/1cfresh/a/PRST_CORP_FRESH_MS/default.vrd"
</Directory>

# 1c publication
Alias "/int/PRST_CORP_FRESH_MS" "C:/www/1cfresh/int/PRST_CORP_FRESH_MS"
<Directory "C:/www/1cfresh/int/PRST_CORP_FRESH_MS">
    AllowOverride All
    #Order allow,deny
    #Allow from all
	Options None
    Require all granted
    SetHandler 1c-application
    ManagedApplicationDescriptor "C:/www/1cfresh/int/PRST_CORP_FRESH_MS/default.vrd"
</Directory>

8) В менеджере сервиса добавление в справочник «Конфигурации» новую конфигурации
1С FRESH
На вкладке «Версии конфигураций» необходимо создать новый элемент и загрузить *.cf файл. Это необходимо для дальнейшего создания приложения (выбор используемой конфигурации) владельцем абонента (главным пользователем).
1С FRESH
9) Создаем базу данных. На вкладке «Общие» указываем все необходимы реквизиты.
1С FRESH
9.1) Создание нового кластера и нового сервера показано на рисунке.
1С FRESH
9.2) В последствии столкнулся с проблемой. При первоначальном создании неверно указал значения реквизитов «Имя в кластере» и «Веб-адрес управления», в последствии чтобы поменять эти два значения пришлось вносить временные правки в конфигурацию, вероятно данную «особенность» должны исправить в следующих релизах. При создании рекомендую не допускать такой ошибки.
1С FRESH
9.3) На вкладке «Дополнительные» отключаем обмен данными, отключаем флаг «заполнять области начальными данными»
1С FRESH
10) Заходим в базу 1С:Менеджер сервиса под пользователем «Аноним», регистрируем нового пользователя - владельца абонента.
1С FRESH
11) На указанный почтовый ящик будет выслано приглашение для регистрации, в виде ссылки и в виде кода, я использовал код т.к. ссылка не была настроена должным образом и не сработала..
1С FRESH
При успешной активации будет выведено предложение о входе от имени пользователя.
13) Окно интерфейса созданного пользователя
1С FRESH
14) Добавляем приложение (конфигурация) которым мы будем пользоваться, именно так конфигурация что была добавлена в пункте 8.
1С FRESH
На следующем шаге создания нового приложения необходимо выбрать право «запуск и администрирование»
1С FRESH
1С сообщит об успешном добавлении нового приложения. Важный момент, приложение разворачивается не сразу, это можно видеть в колонке «Доступность». Код 141 будет присваивается области при создании новых пользователей в базе данных PRST_CORP_FRESH_MS, нумерацию устанавливает «Менеджер сервиса».
1С FRESH
14.1) Важный момент! 1С:Менеджер сервиса через учетную запись RemoteAcess (которую мы создали ранее пункт 5, пункт 9) создает пользователей в базе данных PRST_CORP_FRESH_MS. «Пользователь_8» будет создан в базе данных после добавлеия приложения, ему будет добавлена роль «Полные права» т.к. мы выбрали пункт «Запуск и администрирование», облась данных имеет код 141.
1С FRESH
15) Создаем пользователей абонента, для этого переходим по ссылке «Управление пользователями». Почту необходимо указывать обязательно для «Владельца абонента» и «Администратора абонента». Из предложенных ролей «Владелец абонента», «Администратор абонента», «Пользователь абонента» выбираем роль «Пользователь абонента» и указываем что для приложения коробочной версии разрешен запуск.
1С FRESH
Новый пользователь так же будет создан в базе данных, будет присвоен указанный пароль в 1С:Менеджер сервиса и область данных.
1С FRESH
16) После добавления пользователей, мы можем войти в базу данных нажав на кнопку «Войти в приложение» и начать работу. На этом этапе мною были протестированы механизмы коробочной версии.
1С FRESH
МОЖЕМ ПОМОЧЬ

У вас есть задачи для программистов 1С? Вам сюда