[oscript] Проверка подключения рабочей базы к хранилищу

11.12.20

Разработка - Групповая разработка (Git, хранилище)

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

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

Наименование Файл Версия Размер
Скрипт проверки подключения базы к хранилищу:
.os 6,67Kb
5
.os 6,67Kb 5 Скачать

Oscript позволяет программисту 1С делать чудеса за короткое время.

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

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

А как вообще мы понимаем, подключена база к хранилищу или нет? При запуске конфигуратора и открытии конфигурации появляется окно авторизации в хранилище. Но это руками, а как машина будет определять? Пакетный режим запуска конфигуратора точно имеет возможность работы с хранилищем, помнится, есть ключи "/ConfigurationRepositoryF". Значит, остается только выяснить, можно ли это сделать с помощью oscript.

Конечно, можно!

 

У oscript есть библиотека InternetMail, реализующая функционал работы с электронными письмами, отлично, воспользуемся ей.

Работать с конфигуратором помогает v8runner или v8storage. v8storage более специализированная библиотека, заточена только на работу с хранилищем. v8runner мне лично более знакома, и в ней есть команда УстановитьМеткуДляВерсииВХранилище. Заведем пользователя в хранилище с правом менять метки версий. В работе хранилища мы используем комментарии, поэтому попытка смены метки не должна повредить нам. Попробуем установить метку, если получилось - значит конфигурация подключена, нет - значит не подключена, или нам что-то помешало.

Напишем скрипт

ПутьКХранилищу = "C:\ПутьКХранилищу";

БазыДляПроверки = БазыДляПроверки();

ЕстьПроблемныеБазы = Ложь;

Для Каждого ОписаниеБазы Из БазыДляПроверки Цикл

    ОписаниеБазы.ПодключеноКХранилищу = Истина;

    Конфигуратор = Новый УправлениеКонфигуратором();
    Конфигуратор.УстановитьКонтекст(ОписаниеБазы.СтрокаПодключения, ОписаниеБазы.Пользователь, ОписаниеБазы.Пароль);
    
    Попытка
        Конфигуратор.УстановитьМеткуДляВерсииВХранилище(ПутьКХранилищу, ОписаниеБазы.ПользовательХранилища, ОписаниеБазы.ПарольХранилища, "ПроверкаПодключенияКонфигурацииКХранилищу");
    Исключение
        ОписаниеБазы.ПодключеноКХранилищу = Ложь;
        ЕстьПроблемныеБазы = Истина;
        ОписаниеБазы.ТекстОшибки = ОписаниеОшибки();        
    КонецПопытки;

КонецЦикла;

Здесь мы выполняем команду УстановитьМеткуДляВерсииВХранилище в попытке для того, чтобы поймать описание ошибки и передать его дальше (если конечно будет ошибка).

В функции БазыДляПроверки() определим список баз с их свойствами. Мы сразу передаем корректно сформированную строку подключения к базе, которую затем правильно воспримет v8runner. Обратите внимание, вид строки подключения для файловой и серверной базы отличается (пример указан и для такой и для такой базы):

Функция БазыДляПроверки()

    БазыДляПроверки = Новый Массив;
    ОписаниеСтруктуры = "Имя,СтрокаПодключения,Пользователь,Пароль,ПользовательХранилища,ПарольХранилища,ПодключеноКХранилищу,ТекстОшибки";
    БазыДляПроверки.Добавить(Новый Структура(ОписаниеСтруктуры, "Тестовая база файловая", "/FC:\ПутьКБазе", "Пользователь1С", "Пароль", "ПользовательХранилища"));
    БазыДляПроверки.Добавить(Новый Структура(ОписаниеСтруктуры, "Тестовая база серверная", "/IBConnectionString""Srvr=server:port; Ref='baza'""", "Пользователь1С", "Пароль", "ПользовательХранилища"));
    
    Возврат БазыДляПроверки;

КонецФункции

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

Запустим этот скрипт.

Все хорошо:

 

 

При этом в истории хранилища поменялась метка последней версии:

 

 

Или плохо:

 

 

Благодарности

 

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

oscript Хранилище конфигурации

См. также

Системы контроля версий для 1С-разработчиков.

1С-программирование DevOps и автоматизация разработки Групповая разработка (Git, хранилище) DevOps для 1С Платформа 1С v8.3 Платные (руб)

Основы командной разработки на 1С. Использование систем контроля версий при разработке на платформе 1С:Предприятие 8

4900 руб.

29.06.2022    9585    78    4    

112

Обновляемый список последних статей Инфостарт для профиля Github

Групповая разработка (Git, хранилище) Бесплатно (free)

Не знаете, чем бы таким заполнить свой профиль Github? Заполните его своими статьями на Инфостарт! Этот простой workflow сам соберет список ваших последних статей и будет периодически обновлять его для актуализации данных.

08.04.2024    994    bayselonarrend    2    

31

Процесс разработки с использованием GIT и расширений для 1С:ERP. Без EDT

Групповая разработка (Git, хранилище) Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Доработки 1С:ERP на крупных проектах можно организовать, не внося изменения в саму типовую конфигурацию, а используя только расширения и отдельные «микроконфигурации». Расскажем о том, как это сделать без EDT, используя процесс разработки GitHub Flow.

02.04.2024    5410    Begemoth80    24    

47

Особенности национального Workflow: Github Actions и OneScript

Групповая разработка (Git, хранилище) OneScript Бесплатно (free)

Сегодня мы посмотрим на Github Actions - встроенный инструментарий Github для автоматизации рабочих процессов. Разберем, что это такое, зачем и причем тут OneScript.

25.03.2024    1672    bayselonarrend    3    

38

Автоматизация процесса разработки с помощью сервиса GitFlic

Групповая разработка (Git, хранилище) Бесплатно (free)

GitFlic – первая в России полностью самостоятельная реализация сервиса для хранения репозиториев с исходным кодом. За три года разработки сервис GitFlic стал полноценным инструментом, которым можно заменить GitLab, GitHub и BitBucket. Расскажем о том, как выстроить в GitFlic процесс автоматического тестирования, статического анализа кода и сборки приложений.

05.03.2024    2209    user1989937    6    

16

OpenYellow - рейтинг открытых GitHub репозиториев для платформы 1С:Предприятие

Групповая разработка (Git, хранилище) Бесплатно (free)

Обновляемый топ GitHub репозиториев для 1С по всем языкам программирования и еще немного рассуждений про open-source.

05.02.2024    4159    bayselonarrend    15    

64

Насколько глубок 1С-ный GitHub?

Групповая разработка (Git, хранилище) Бесплатно (free)

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

22.01.2024    8215    bayselonarrend    50    

87

TCP прокси-сервер хранилища конфигурации 1С

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) OneScript Платформа 1С v8.3 Бесплатно (free)

Продолжение истории с прокси хранилища, но уже не на HTTP, а на TCP и без падений по памяти веб-сервера. Проверяем комментарии хранилища, вызываем веб-хуки, старты пайплайнов, gitsync по событию помещения версии в хранилище. И все это полностью на знакомом и понятном OneScript.

17.01.2024    3166    kamisov    17    

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