Пример автоматизированного управления публикацией списка баз

29.11.22

Архитектура

Данная публикация в художественном стиле описывает путь нашей команды по решению задачи автоматизации публикаций списка 1С-систем.

 

Сначала была боль…

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

  •    При изменении состава списка баз, пользователю требовалось перезагружаться, закрывая все свои любимые программы и мега-эксельки.
  •    Для получения списка баз пользователь должен быть в домене, в противном случае начинались танцы с отправкой ярлыков в письмах.
  •    Непонятная организация групп пользователей для размещения ярлыков. Например, по отделам в домене. Таким образом некоторые пользователи получали базы куда им ходить нельзя, но очень хочется.
  •    При появлении новой базы нужно было отвлекать "очень занятых" системных администраторов.
  •    При смене схемы публикации или сервера сотрудникам технической поддержки нужно было бежать к богам доменов и серверов.
  •    Если вдруг требовалось дать доступ пользователю к системе вне «группового списка», допустим к системе из тестового окружения или к демосистеме, то техподдержка снаряжала самого молодого и удалого в путь дорогу дальнюю.
  •    Бывало звучал звонок, что дескать при запуске появляется сообщение: «не обнаружена система» (переехала в связи с улучшением жилищных условий), тогда техподдержка рекомендовала перезагрузиться, а потом, если не помогало, подключался специалист и менял параметры доступа, судорожно вспоминая: «у кого же еще может быть эта система?!».
  •    Или еще одна забава, игра «прогулка по минному полу» - это когда нужно перевезти базу и попытаться угадать места, где требуется изменить параметры подключения к ней внутри других систем, чтобы ничего не развалилось (одни забывают про ведение документации, другие о том, что её нужно читать).
  •    А при смене версии платформы или переезде на другой сервер приключения техподдержки начинали играть еще более яркими красками.

Этот список можно пополнять еще кучей ситуаций из жизни техподдержки, которые они вспоминают с содроганием. Запутанность, отсутствие контроля за пользователями, непонятный перечень систем и их параметров, сложность понимания и тяготы взаимодействий между подразделениями приводили к состоянию нервного тика у техподдержки, да и у пользователей.
 
Было решено, что так дальше жить нельзя, и морально-психологическое состояние коллектива надо поправлять.

 

Поиск пути к дзену…

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

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

Требовалось разделить 1с-системы на контуры и избавить свои головы от необходимости помнить заковыристые имена баз и их место жительства.

Каждая система была переписана и зарегистрирована в нашей системе управления информационными базами, где ей назначался уникальный код. Также создали и закрепили правила именования при наследовании баз. А сами системы были распределены по зонам: production, testing, development, archive.

Второй шаг заключался в разделении зон ответственности между админами и остальными.

Позвали на чай админов, и после пары чашек у нас родилась мысль о применении возможностей сервера DNS: использовать CNAME-записи, объединяющие зоны сервера и системы.

В итоге мы получили красивые пути к системам. Путь "srv21-prod-1c/UT" превратился в "ut.production/UT". Таким образом, когда админам требуется изменить место жительства системы на серверах после работ по миграции, то они изменяют только CNAME-запись и никто больше от этих переездов не страдает.

После этих двух шагов мы вместо страшных и сложно-запоминающихся названий типа "srv04-1c/UT10_copy_3" уже получали красивое и логичное 'UT_dev2_1.development/UT_dev2_1" («UT» - это родительская система, «dev2» это код разработчика, а «1» это порядковый номер системы у разработчика)

Теперь техподдержке не нужно будет устраивать гадания и демонстрировать скрытые таланты своей памяти при попытках вспомнить актуальное имя сервера или кому принадлежит база. Всё что нужно знать так это код системы и ее зону. А информация о том куда/когда/какая база мигрирует стала абсолютно неинтересной.

Вслед за админами пришли разработчики, в чашках образовалось кофе и мы начали размышлять, что пользователей нужно тоже учитывать, а главное знать с какими системами они работают. После множественного употребления кофе в перерывах на разработку появилась система управления пользователями (СУП). О том, как и что там работает, тема отдельного большого рассказа. А пока представим, что произошел телепорт и система уже существует. Коротко могу сказать: при приеме на работу пользователь автоматически добавляется в этот СУП (да, забавно звучит), где ему на основании должности назначается профиль со списком баз и ролей для каждой системы.

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

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

В итоге получилась система с неброским именем «Коннект 1С».

 

Что же мы хотели получить от системы…

Требования и ограничения выглядели так:

  •    Работа клиентов с продакт-системой должна осуществляться через https (технологические стандарты компании).
  •    Каждый пользователь должен иметь индивидуальный список баз (пользователей около 2000)
  •    Система добавляется только при наличии прав на работу с ней. (назначение ролей в системах в зависимости от должности)
  •    Возможность формировать списки как автоматически, так и дополнять их в ручном режиме при необходимости.
  •    Формирование индивидуального списка на любом рабочем месте вне зависимости от наличия доменной учетной записи.
  •    Принудительный сброс списка с перезапросом нового.
  •    Изменения списка без потери рабочего пространства (нет перезагрузкам и завершению работы)
  •    Возможность формирования индивидуальных или групповых параметризованных ярлыков системы.
  •    Автоматизация обновления тонкого клиента, если сменилась версия платформы сервера.
  •    Получение списка баз по своим учетным данным.

 

Как система выглядит глобально…

Концепт по автоматизации сервиса управления ярлыками получился таким:
 

Картинка есть… и что дальше?!

А дальше же всё просто. Спроектировать систему «Коннект 1С», разработать, протестировать да запустить :)
После в докере поднять контейнер apache с 1с-модулем на борту и с двумя конфигами default.vrd. Этот контейнер присасывается к системе «Коннект 1С» и начинает транслировать её данные для всех стартеров 1С, которым они потребны.

Ремарка: допускаем, что системы справа от «Коннект 1С» уже существуют и не влияют на вращение шестерёнок остального.

 

Немного технических базовых моментов…

Движок работы стартера с системой «Коннект 1с» базируется на 2-х типовых механизмах платформы 1с:
1.    WebCommonInfoBases
2.    WebDistributiveLocation

 

 

Дабы не плодить еще один вариант описания работы этих механизмов, предлагаю для подробностей почитать здесь:

//infostart.ru/public/1069081/ (пример реализации)

https://its.1c.ru/db/v837doc#bookmark:adm:TI000000422 (самая техническая документация от создателя)

 

Что же в итоге получил обычный пользователь…


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

 

 

Далее ввести свои учетные данные при запуске стартового окна 1С:

 

  


и получить список доступных ему баз на своем рабочем месте:


 
 
 
Доступ к системам предоставлен. Теперь можно приступать к работе и радоваться (или страдать, кому как). Если измениться состав систем или метод доступа, то сервис снова запросит данные у пользователя и сформирует новый список.

 
А что же получила техподдержка…

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

 

 

В окне ниже техподдержка может управлять публикацией ярлыка базы и параметрами ярлыка через выбранный шаблон:

 

 


 
Так выглядит запись о самой системе:

 

 

А так информация о версии платформы для автоматического обновления тонкого клиента:

 

 

Дальше работа с шаблонами уже настройки для продвинутых специалистов технической поддержки:

 

 
 

 

И самое важное, это конечно же информация о пользователе и его списке баз:

 

 

Здесь отображается список баз с указанием способа добавления:

•    Автоматически (добавлена из системы управления пользователями),
•    Публикация (внутренняя публикация через механизмы самой системы),
•    Вручную (возможность добавить запись вручную для неординарных ситуаций)

У пользователя в списке для каждой системы индивидуально можно переопределить шаблон ярлыка.

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

 

Послесловие

Архитектура системы управления публикацией получилась простой и в тоже время достаточно эффективной, чтобы забыть обо всех бедах «средневековья».

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

 

Спасибо за внимание!

P.S. Не претендую на оригинальность решений. Если будут интересны технические подробности, пишите, поделюсь деталями.

См. также

Архитектура решений Программист Платформа 1С v8.3 Бесплатно (free)

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

14.10.2024    3959    0    comol    28    

28

Кейсы автоматизации Платформа 1С v8.3 1С:Документооборот Бесплатно (free)

Компания «Уралхим» использует 1С:Документооборот не только для хранения и согласования документов, но и для централизованного управления НСИ между 47 системами (не только на 1С); для бэкенда к мобильным приложениям охранников; и в качестве сервиса заказа справок для сотрудников. О деталях реализации нестандартных решений, разработанных в компании «Уралхим» на базе 1С:Документооборот, пойдет речь в статье.

02.08.2024    3449    0    Novattor    1    

16

Кейсы автоматизации Платформа 1С v8.3 Энергетика и ЖКХ Россия Бесплатно (free)

Делимся опытом автоматизации учета башни раздачи воды.

27.12.2023    2187    0    slavik27    7    

15

Отчеты и дашборды Бизнес-аналитик Бухгалтер Пользователь Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Бесплатно (free)

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

11.12.2023    2906    0    Serg_Tangatarov    2    

16

Архитектура решений Программист Бесплатно (free)

Рассмотрим применение архитектурной проверки задач в процессе разработки.

30.10.2023    5595    0    ivanov660    10    

35

Кейсы автоматизации Работа с требованиями Анализ бизнес-процессов Бесплатно (free)

Автоматизировать производственные процессы в 1С:ERP без доработки типовых механизмов очень сложно. А дорабатывать типовые механизмы 1С:ERP не всегда оправданно. Решением может стать технология разработки Рабочих мест, которая позволяет автоматизировать самые сложные участки последовательно – шаг за шагом, процесс за процессом. Расскажем о том, как помочь пользователям вводить большое количество данных, не нарушая порядок ввода и полноту заполнения всех необходимых реквизитов, и как вовлечь сотрудников Заказчика в разработку и тестирование функционала Рабочих мест.

26.10.2023    2934    0    user1754524    15    

17

Кейсы автоматизации Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

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

29.08.2023    3517    0    ke_almaty    0    

15
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Созинов 29.11.22 15:36 Сейчас в теме
Отличная статья, уже приготовился скачивать решение и …
2. rusmil 262 07.12.22 17:02 Сейчас в теме
3. user1293111 04.05.23 15:42 Сейчас в теме
Я правильно понимаю что это работает только с лицензией сервера 1С уровня КОРП?
4. Elaks 41 30.05.23 16:36 Сейчас в теме
(3) Да, так написано в ИТС, хотя на практике бывает по-разному)
Оставьте свое сообщение