АИТП. Управляем информационными базами

21.07.19

База данных - Инструменты администратора БД

В статье, на демонстрационном примере, рассматривается использование конфигурации АИТП для автоматизации управления информационными базами 1С:Предприятие.

Скачать исходный код

Наименование Файл Версия Размер
АИТП. Управляем информационными базами:
.cf 8,78Mb
12
.cf 8,78Mb 12 Скачать

Введение

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

На infostart’е существует множество публикаций,  о различных инструментах и методиках (gitlab-ci, xUnitFor1C, deployka и другие),  которые позволяют построить полный цикл от разработки до развертывания программных решений на платформе 1С:Предприятие. Однако в реальной жизни, достаточно часто встречаются и менее масштабные задачи, такие как создание, обновление и учет различных тестовых информационных баз (Перезаливатор), автоматизации которых c использованием конфигурации АИТП (проект на GitHub) и посвящен настоящий демонстрационный пример.

Системные требования

Версия конфигурации АИТП не ниже 0.4.13.67

Версия платформы 1С:Предприятие не ниже 8.3.10.2252

Операционная система – Linux.

Начальные и граничные условия

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

Также предполагается, что в качестве сервера 1С:Предприятие используется x32 версия сервера, исполняемые файлы которого расположены в папке /opt/1C/v8.3/i386/.

Предполагается, что на каждом главном сервере кластеров 1С:Предприятие развернута служба ras, которая настроена для запуска в качестве демона.

Предполагается, что в качестве пользователя, для доступа к СУБД используется стандартный пользователь postgres, для которого настроена проверка по паролю для внешних подключений и разрешены подключения без пароля для локальных подключений.

Цели автоматизации

Учет информационных баз

При интенсивной работе, разработчики могут генерировать достаточно большое количество различных тестовых баз, которые могут использоваться для проверки различных гипотез, оценки каких-то сторонних конфигураций etc. Иногда разработчики забывают их удалять, что приводит (особенно после увольнения сотрудника) к возникновению большого количества “зависших” информационных баз, о назначении которых никому ничего не известно.

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

Контракторы и консультанты

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

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

Программисты

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

Процессы и роли

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

Соответственно матрица ролей/процессов будет иметь нижеследующий вид:

Роль

Тестовые базы

Продуктивные базы

Обновление

Создание

Удаление

Обновление

Создание

Удаление

Контрактор

X

 

 

 

 

 

Консультант

X

 

 

 

 

 

Программист

X

X

X

 

 

 

Администратор

X

X

X

X

X

X

 

Вспомогательные объекты конфигурации

Роли

В соответствии с описанными бизнес-ролями, создадим соответствующие роли в нашей демонстрационной конфигурации (см. рис. 1.).

Рисунок 1. Список ролей.

 

Бизнес-роль Контрактор/Консультант реализуется ролью – ОбновлениеТестовойБазы, бизнес-роль Программист – реализуется комбинацией предыдущей роли и роли СозданиеТестовойБазы.

Бизнес-роль Администратор – ролью УправлениеИнформационнымиБазами.

Необходимые данные

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

Рисунок 2. Объекты конфигурации, для хранения данных.

 

Константы Сервер1СПоУмолчанию и СерверСУБДПоУмолчанию используются для хранения информации о том, на каких серверах будет размещаться вновь создаваемая информационная база, если при создании они не были указаны. Поскольку правом установки серверов для создания информационных баз обладают только администраторы, эти константы должны указывать на вашу тестовую среду.

Справочники Серверы1С, СерверыСУБД, ИнформационныеБазы, БазыСУБД – хранят информацию о соответствующих объектах инфраструктуры, а также об информационных базах и связанных с ними базами СУБД.

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

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

Регистр сведений ИсточникиОбновленийИнформационныхБаз – содержит информацию об источнике для обновления по умолчанию. Если такой источник существует – он автоматически выбирается при попытке обновления информационной базы.

Источники событий для старта процессов

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

Рисунок 3. Документы фиксации намерений пользователя.

 

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

Описание процессов

Создание информационной базы

Схема процесса создания информационной базы представлена на рис. 4.

Рисунок 4. Схема процесса создания информационной базы.

 

Первым действием, пытаемся создать информационную базу, на определенном кластере 1С:Предприятие и сервере СУБД (1). Затем анализируем результат выполнения задачи (2). В случае возникновения ошибки – формируем задачу на обработку ошибки (3), с которой в дальнейшем будут работать администраторы. После выполнения диагностических и иных действий, администратор может повторить, продолжить, завершить или отменить процесс. Результат обработки ошибки анализируется в блоке (4).  При отмене процесса, создаваемая база помечается как неактивная (11), затем, автору отправляется сообщение об отмене процесса (13) и происходит завершение процесса (14). При завершении процесса, производится отправка сообщения об отмене (13), с последующим завершением процесса (14).

При успешном создании информационной базы или выборе варианта Продолжить при обработке ошибки, производится добавление разрешений для автора, в регистр сведений ДоступКИнформационнымБазам, а также при необходимости добавляется запись источника обновлений по умолчанию в регистр ИсточникиОбновленийИнформационныхБаз (5). После анализа результатов выполнения действия (6), в случае возникновения ошибки создается задача на обработку ошибки (7). Действия по результатам обработки ошибки (8), аналогичны действиям по предыдущей задачи за исключением того, что при отмене процесса, происходит удаление созданной информационной базы (12).

При успешном выполнении задачи (5), автору отправляется сообщение об успешном создании информационной базы (9), с последующим завершением процесса (10).

Удаление информационной базы

Схема процесса удаления информационной базы представлена на рис. 5.

Рисунок 5. Схема процесса удаления информационной базы.

 

Первым шагом, удаляем базу СУБД, соответствующую удаляемой информационной базе (1). Для этого создаем и выполняем служебный дочерний процесс.

Далее, анализируем результат удаления базы СУБД (2). Если база не была удалена, отправляем сообщение об отмене (3) и завершаем процесс (10).

Если удаление базы СУБД выполнено успешно, удаляем информационную базу из списка баз (4).

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

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

После удаления информационной базы, производится пометка удаляемой базы как неактивной (8), отправка сообщения об удалении (9) и завершение процесса (10).

Обновление информационной базы

Схема процесса обновления информационной базы представлена на рис. 6, 7.

Рисунок 6. Схема процесса обновления информационной базы, часть 1.

 

Рисунок 7. Схема процесса обновления информационной базы, часть 2.

 

Вобщем и целом логика обработки ошибок, а также других вспомогательных шагов, аналогична логике работы в предыдущих процессах, поэтому ниже, кратко описан алгоритм основной ветки процесса.

Создаем временную базу СУБД (1). Запускаем процесс восстановления из базы источника во временную базу (2). Поскольку время восстановления нам неизвестно и может варьироваться в широких пределах, выполняем восстановление асинхронно.

Периодически, проверяем окончание режима восстановления (3) и при необходимости ожидаем определенное время перед повторной проверкой (4).

Получаем результат выполнения восстановления (5). Если восстановление прошло неудачно, формируем задачу для администраторов (6). Администраторы могут принять решение о повторном запуске операции восстановления, либо-же об отмене процесса.

В случае успешной операции восстановления, производится удаление рабочей СУБД информационной базы (7) и переименование временной базы СУБД таким образом, чтобы ее имя совпадало с именем рабочей базы (8). Затем, автору отправляется сообщение об успешном завершении (9) и происходит завершение процесса (10).

Итог

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

Реализация действий

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

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

Сначала, реализуем обработчики ПриСоздании и ПриВыполнении для нашей задачи.

 
 

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

 
 

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

В нашем демонстрационном случае, вместо операции восстановления из файла резервной копии, мы используем одновременное резервное копирование и восстановление без создания твердых резервных копий. Ограничением данного подхода, является тот факт, что база источник и база назначения должны находиться на одном физическом сервере СУБД. Для нашего демонстрационного случая – это вполне допустимо.

Текст скрипта представлен ниже:

 

Как можно увидеть, скрипт достаточно прост и логика его работы заключается в подключении к серверу СУБД по протоколу SSH, с последующим выполнением команд pg_dump для создания резервной копии и psql для ее восстановления.

Аналогичным образом реализуются и другие действия.

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

Тестирование функционала

В режиме конфигуратора, создадим пользователей Админ, Контрактор, Разработчик и АдминистраторБаз.  Пользователю Админ, дадим полные права. Этот пользователь необходим для настройки других пользователей.

Запустим конфигурацию в режиме предприятие с пользователем Админ, создадим соответствующих пользователей АИТП, разрешим им запуск тонкого клиента, а также добавим им базовые права на подсистему АИТП (см. рис 8.).

Рисунок 8. Пользователи системы.

 

Также, добавим пользователю Контрактор права на обновление информационных баз, пользователю Разработчик – права на создание и обновление информационных баз, пользователю АдминистраторБаз права, на администрирование информационных баз.  При необходимости добавим сетевые хосты (см. рис. 9.), соответствующие серверам СУБД и серверам 1С:Предприятие, а также учетные записи для доступа к ним и работы с СУБД (см рис.10).

Рисунок 9. Сетевые хосты.

 

Рисунок 10. Учетные записи.

 

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

Запустим конфигурацию под пользователем АдминистраторБаз, создадим серверы 1С:Предприятие (см. рис. 11), а также серверы СУБД (см. рис. 12), а также настроим серверы по умолчанию, для создания информационных баз, а также интервал ожидания, перед повторной проверкой завершения восстановления информационной базы (см. рис. 12а.).

Рисунок 11. Серверы 1С:Предприятие.

 

Рисунок 12. Серверы СУБД.

 

Рисунок 12а. Параметры подсистемы управления информационными базами.

 

Создадим документ Добавление информационной базы (см. рис. 13) и проведем его.

Рисунок 13. Документ Добавление информационной базы.

 

Поскольку мы не настраивали оповещения, подождем некоторое время и увидим в консоли администрирования созданную информационную базу (см. рис 14.).

Рисунок 14. Созданная информационная база.

 

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

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

Также создадим еще одну, тестовую базу, доступ к которой предоставим пользователю Контрактор (см. рис. 15.). В качестве источника для обновления, выберем продуктивную базу, созданную ранее.

Рисунок 15. Тестовая база для контрактора.

 

После создания базы, добавим разрешения для пользователя Контрактор, на обновление тестовой базы, а также на использование продуктивной базы в качестве источника для обновления (см. рис. 16, 17.).

Рисунок 16. Права контрактора на тестовую базу.

 

Рисунок 17. Права контрактора на продуктивную базу.

 

Запустим конфигурацию из под аккаунта Контрактор.

Как можно увидеть на рис 18, контрактор может только обновлять информационные базы.

Рисунок 18. Пользовательский интерфейс контрактора.

 

Создадим документ Обновление информационной базы (см. рис. 19.).

Рисунок 19. Обновление информационной базы.

 

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

Проведем документ и подождем, пока соответствующий процесс будет завершен. Проверить состояние процесса и соответствующих действий можно из-под аккаунта, имеющего доступ к оркестратору (см. рис. 20.). В нашем случае – это аккаунт Админ. Для оперативного информирования инженеров, обслуживающих инфраструктуру, можно настроить адресацию задач и оповещений, как описано здесь.

Рисунок 20. Задачи по процессу обновления информационной базы.

 

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

 Запустим конфигурацию в пользовательском режиме из-под аккаунта Разработчик. Как можно увидеть, разработчику доступны функции добавления, обновления, а также удаления информационных баз (см. рис. 21.).

Рисунок 21. Пользовательский интерфейс разработчика.

 

Протестируем создание, обновление и удаление информационных баз аналогично тому, как мы это делали ранее.

Как можно увидеть, разработчик, лишен возможности выбора сервера 1С:Предприятие и сервера СУБД, при создании информационных баз. Соответственно, они создаются на серверах по умолчанию.

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

Заключение

Вот таким вот нехитрым способом, можно автоматизировать ваши ИТ-процессы с использованием конфигурации АИТП.

Автоматизируйте свои процессы и процессы клиентов, делитесь результатами с сообществом (возможно и не безвозмездно). В общем надеюсь, что конфигурация АИТП будет вам удобным помощником в автоматизации ИТ-процессов.

См. также

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

14400 руб.

06.12.2023    3565    19    1    

39

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 руб.

10.11.2023    4267    12    2    

36

SALE! %

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2280 руб.

14.01.2013    178623    1083    0    

861

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    27913    82    146    

61

Система хранения присоединенных файлов в томах на диске

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

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    61525    90    59    

74

"Менеджер потоков 2.1": УПП: "Восстановление партий"

Инструменты администратора БД Платформа 1С v8.3 1С:Управление производственным предприятием Россия Бухгалтерский учет Управленческий учет Платные (руб)

Как оптимизировать то, что, считалось, не поддается оптимизации? Как повысить доступность базы данных? Как проводить самую «времяемкую» операцию не по паре раз в неделю, а по несколько раз в день*? Ответ есть!

20000 руб.

12.09.2019    11854    5    9    

7

Хранилище файлов на SQL

Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Управленческий учет Платные (руб)

Привязка файлов / сканов к объектам 1С с сохранением их на SQL-сервере

12000 руб.

09.10.2019    11167    5    8    

9

Конфигурация Session Monitor

Мониторинг Инструменты администратора БД Платформа 1С v8.3 Россия Платные (руб)

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

1500 руб.

01.12.2020    14389    33    0    

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