Централизованное управление НСИ при внутрикорпоративном внедрении Фреш

19.11.20

Бизнес-анализ

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

Введение

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

Итак, начальные условия:

Есть одна большая распределенная информационная база (РИБ) ЗКГУ, в которой некоторые данные (Должности, Начисления и т.п.). редактируются только централизованно из центральной ИБ (Рут). Нужно перевести ее во фреш, сохранив возможность централизованного редактирования и добавить возможность так же из одного места редактировать права пользователей во всех областях данных (ОД).

О разделении

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


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

  •  Общие (неразделенные) данные — данные, которые являются общими для всех областей данных и не разделяются общими реквизитами-разделителями. Из сеансов, в которых установлены значения разделителей, общие данные доступны только для чтения;
  •  Разделенные данные — данные, относящиеся к области данных, разделяются общими реквизитами-разделителями.

При использовании механизма разделения данных:

  •  изменяется поведение объектов конфигурации, входящих в состав общего реквизита (далее — разделителя);
  •  для каждого разделителя в информационной базе определяется текущее значение разделителя и признак использования данного разделителя;
  •  данные информационной базы, доступные для выбранных значений разделителей, и данные неразделенных объектов конфигурации называются областью данных.

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

Например, справочник «Виды доходов НДФЛ» неразделенный, потому что они для всех общие, а справочник «Должности» разделенный, т.к. в каждом учреждении они могут быть свои.

Переход во Фреш заключается в выгрузке дампа из базы «на земле» и загрузке его в качестве области данных в базу «в облаке». Здесь тоже есть несколько подводных камней (в основном, связанных с дублями в неразделенных данных), но в этой статье не о них. Дальше будем исходить из того, что все базы «с земли» уже загружены во Фреш как ОД и находятся в разных базах «в облаке» (в одной базе 15-20 ОД) и даже физически на разных серверах.

Какие были варианты

COM-соединение – отметается сразу, т.к. не работает на серверах под управлением Linux-систем

Веб-сервисы – уже лучше, но при добавлении каждой новой ИБ необходимы дополнительные работы по настройке и публикации, и я уже не говорю, что при «переезде» баз нужно будет практически заново заниматься всем этим.

Поставляемые данные (ПД) – наверное, лучший вариант, т.к. для работы нужно только чтобы ОД были подключены к Менеджеру сервиса (МС) и сам файл ПД как-то в МС загружался.

Несколько слов о Менеджере сервиса

Снова процитирую 1С, но на этот раз не Руководство разработчика, а «1С: Облачная подсистема Фреш»:

Центральным компонентом облачной подсистемы Фреш является менеджер сервиса. Менеджер сервиса — это специальное прикладное решение на платформе «1С:Предприятие». Менеджер сервиса:

  •  хранит в себе всю информацию о том, какие прикладные решения зарегистрированы в сервисе, какие области данных используются и какими абонентами, какие пользователи существуют в системе и с какими правами, и т. д.;
  •  позволяет просматривать и редактировать эту информацию (если пользователь имеет соответствующие права);
  •  хранит и предоставляет приложениям единую нормативно-справочную информацию, которая может централизованно обновляться (классификаторы, курсы валют и т. д.);
  •  координирует взаимодействие всех компонентов сервиса.

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

Если кратко, то Менеджер сервиса это информационная база, которая управляет всеми развернутыми в сервисе ОД, частично их пользователями (тонкая настройка прав по-прежнему в самой ОД), и частично некоторыми данными в базах, а так же предоставляет инструмент без изменения самого МСа расширить состав этих данных с помощью обработок поставляемых данных.

Поставляемые данные

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

Поставляемые данные нужны как раз для того, чтобы централизованно загружать в базы некоторые данные из МС. В МС же они загружаются Обработками поставляемых данных и после загрузки автоматически отправляются в базы с помощью подсистемы «Обмен сообщениями». Данные могут быть как неразделенными, так и разделенными, что нам как раз и было нужно.

Частичное повторение функционала РИБ

Полная картина выглядит следующим образом:

  1. В базе Рут (ее тоже перенесли во фреш, но в своей ИБ она единственная) создан отдельный план обмена, который регистрирует изменения только в тех объектах, которые нужно отправлять в остальные ОД.
  2. Когда необходимые объекты зарегистрированы к отправке, они по нажатию кнопки по определенным правилам (в общем случае сериализация объекта в xml целиком, но для некоторых объектов потребовалось немного дописать выгрузку и загрузку) сериализуются в xml и выгружаются в каталог на сервере.
  3. В МСе стоит обработка поставляемых данных, которая запускается по расписанию и при запуске проверяет этот каталог и если в нем что-то есть, загружает это что-то в качестве поставляемых данных вида ПД_НСИ (существующими видами ПД мы пользоваться не можем, поэтому потребовалось создать свой).
  4. В рабочих ИБ при приеме поставляемых данных этого вида из МС обработка по определенным правилам записывает полученные объекты во всех ОД.
  5. В рабочих ОД пользователи не имеют возможности изменять данные, редактируемые централизованно.

Что в планах

  1. Обработка по подготовке ОД ко включению в систему

Поскольку в данном случае у заказчика изначально была РИБ, в которой у объектов, раздаваемых из Рута, в разных базах одинаковые ГУИДы, наша задача упрощалась. Не нужно было придумывать, как именно при приеме ПД сопоставлять объекты, пришедшие из Рута, и объекты, уже существующие в ОД. Но в общем случае для централизации уже существующих данных такая схема не подойдет, поэтому при внедрении системы на других проектах придется прорабатывать этот момент.

Наиболее логичным для этого выглядит своеобразная «замена» ГУИДа. Например, из Рута нужно централизованно изменять должность «Инженер-программист». В базе до подключения к централизованному управлению такая должность уже была, но, само собой, с другим ГУИДом. Перед подключением к централизации необходимо будет создавать в базе-приемнике новую должность с заданным ГУИДом (таким же, как в Руте), переносить все ссылки со старой на новую, а старую затем удалять.

  1. Очередь поставляемых данных

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

  1. Отслеживание получения поставляемых данных в Руте

Типовой механизм позволяет лишь отслеживать в МСе завершение обработки поставляемых данных в целом по информационной базе. Видится логичным и более удобным для пользователя добавить возможность отслеживания с детализацией по ОД и прямо в Руте. Поскольку решение хочется оставить максимально не требующим каких-то дополнительных действий, кроме развертки инфраструктуры Фреш, напрашивается реализация с помощью подсистемы «Обмен сообщениями»

Фреш Централизация НСИ Поставляемые данные

См. также

Фаза пресейла: насколько глубоко нужно погружаться в бизнес-домен?

Анализ предметной области Анализ потребностей и поиск решений Бесплатно (free)

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

25.03.2024    350    0    alenkaiva    0    

3

Как реорганизовать работу проектного департамента, чтобы быть №1

Внедрение изменений Бесплатно (free)

Методики быстрореагирующего производства и QRM-ячейки применимы не только к станкам, но и к проектным командам. О том, как за счет разделения проектного офиса на многофункциональные QRM-ячейки обеспечить равномерную загрузку работу сотрудников, вырасти в два раза и существенно повысить лояльность заказчиков и коллектива, пойдет речь в статье.

14.02.2024    621    0    user1270271    2    

7

Управление ожиданиями на проекте

Работа с заинтересованными сторонами Бесплатно (free)

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

08.02.2024    546    0    izybaevda    0    

5

Как внедрить 1С:ERP за 2 года и не сойти с ума

Анализ предметной области Анализ потребностей и поиск решений Внедрение изменений Бесплатно (free)

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

30.01.2024    7125    0    user1578851    16    

16

Свободное программное обеспечение в крупной компании – миф или реальность? Как мы переводили 2500 пользователей на Linux

Внедрение изменений Бесплатно (free)

Переход на свободное программное обеспечение – серьезное испытание и для бизнес-пользователей, и для ИТ-подразделения. Нужно учесть много факторов, найти компромиссы и поменять привычки. О «пяти стадиях принятия неизбежного» и успешном преодолении трудностей при переводе ИТ-инфраструктуры автодилерских центров на Linux расскажем в статье.

29.01.2024    2495    0    user1063453    2    

5

Зачем нужны аналитики на проектах автоматизации

Анализ потребностей и поиск решений Бесплатно (free)

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

18.01.2024    1674    0    user1754524    19    

12

Радио "Аналитик", 7 выпуск 2 сезона. Про работу аналитика с бизнесом и повышение бизнес-компетенций с Константином Семёновым

Анализ предметной области Работа с заинтересованными сторонами Анализ потребностей и поиск решений

В седьмом выпуске второго сезона подкаста Радио “Аналитик“ поговорили о том, что такое бизнес-компетенции, для чего они нужны аналитику, к чему может привести их отсутствие и как их развивать.

28.11.2023    478    0    Radio_Analyst    0    

2
Оставьте свое сообщение