Предисловие
По мере моего роста в разработке на 1С я сталкивался со многими трудностями, одной из которых стала задача анализа наличия регламентированных ролей компании в большом количестве конфигураций. Разработка конфигураций происходит с помощью хранилищ конфигураций на выделенном сервере. Подключение к каждой конфигурации, а далее поиск по дереву метаданных может занимать большое количество времени, особенно, если конфигурации объемные.
Именно в этот момент у меня в голове появилась идея на основании моего опыта по разработке на OneScript создать скрипт, позволяющий избавить меня от страданий, который сформирует документ с конфигурациями и отметках наличия ролей.
Скрипт позволяет на основании списка конфигураций сформировать word документ, с отметками по ролям:
Параметры скрипта
Разберем параметры скрипта, которые необходимы для его работы:
json_path
Необходимо указать путь к файлу описания конфигураций, в формате:
{
"configurations_options": [
{
"name": "<Имя конфигурации>",
"eng_name": "<Английское наименование>",
"code": "<Код карточки конфигурации>",
"storage_adress": "<Путь к хранилищу конфигурации>"
},
... (Неограниченное количество конфигураций)
]
}
save_path
Каталог в который будут сохраняться .cf файлы конфигураций хранилища, для дальнешейго поиска ролей.
login & password
В каждой из хранилищ должен присутствовать технический пользователь с правами на просмотр, так как с помощью него мы будем подключаться к конфигурациям и искать роли.
К остальным параметрам комментарий не требуется.
Зависимости библиотек
Для корректной работы скрипта необходимы следующие библиотеки OneScript:
Важно!
В классе МенеджерХранилищаКонфиуграции необходимо прописать процедуру:
// Устанавливает используемую версию и разрядность платформы 1С // // Параметры: // МаскаВерсии - Строка - маска версии платформы 1С // Разрядность - РазрядностьПлатформы \ Неопределено - разрядность платформы 1C // Процедура ИспользоватьВерсиюПлатформы(МаскаВерсии, Разрядность = Неопределено) Экспорт УправлениеКонфигураторомХранилища.ИспользоватьВерсиюПлатформы(МаскаВерсии, Разрядность); КонецПроцедуры
Это необходимо для того, если на машине откуда собираетесь запускать скрипт установлено несколько платформ. Например версии хранилищ у вас работают на 8.3.22, а у вас установлена 8.3.24. v8storage автоматически берет последнюю версию. Если же у вас все версии совпадают, то можно не модернизировать v8storage. И при запуске скрипта в параметр -version нечего передавать не надо.
Выбор проверяемых ролей
Настройка переопределения проверяемых ролей выполняется в функции:
// Получает имена проверяемых ролей
// Есть возможность заполнения своми именами ролей
Функция ПолучитьИменаПроверяемыхРолей()
Лог.Отладка("Получение имен проверяемых ролей");
ИменаРолей = Новый Массив;
ИменаРолей.Добавить("МояКомпания_Роль1");
ИменаРолей.Добавить("МояКомпания_Роль2");
ИменаРолей.Добавить("МояКомпания_Роль3");
Возврат ИменаРолей;
КонецФункции
Формирование JSON структуры конфигураций
У нас ведется учет конфигураций и для выгрузки JSON файла я пользовался самописной обработкой ВыгрузитьJSON.epf.
По итогу был получен JSON файл следующего вида:
В случае если на какой-то из конфигураций скрипт упал, формируется файл temp_results.json, в котором можно посмотреть, на каком хранилище мы освободились, и продолжить загрузку.
По окончании рабочего дня оставляем скрипт в работе и с утра радуемся выполненной работе :)
От автора
Со временем, если интерес к статье возрастет, я опубликую еще интересных скриптов. Если статья оказалась Вам полезной - пожалуйста, нажмите на "звездочку" и скачайте прилагаемый .os файл.