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

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 1С:Документооборот Бесплатно (free)

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

02.08.2024    3086    0    Novattor    1    

16

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

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

27.12.2023    2005    0    slavik27    5    

15

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

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

11.12.2023    2687    0    Serg_Tangatarov    2    

16

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

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

30.10.2023    5112    0    ivanov660    10    

33

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

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

26.10.2023    2630    0    user1754524    15    

17

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

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

29.08.2023    3363    0    ke_almaty    0    

15

Архитектура Рефакторинг и качество кода Обновление 1С Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Нашей компании часто приходится сталкиваться с обновлением конфигураций разной степени переписанности. Какие-то из них обновляются легко, какие-то — не очень. Расскажем о некоторых принципах модификации программы, которые помогут сделать последующий процесс обновления легче. Или тяжелее, если стараться их не соблюдать.

10.08.2023    10803    0    1c-izh    37    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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) Да, так написано в ИТС, хотя на практике бывает по-разному)
Оставьте свое сообщение