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

11.12.20

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

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

Скачать файлы

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

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    6996    64    4    

87

Jenkins на службе 1С

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

Основная специализация Jenkins – это, прежде всего, CI/CD. Но его можно использовать и для других важных задач: разбора хранилищ, настройки копий баз данных, раздачи прав пользователям, рестарта кластера и проверки кода проектов. Об опыте использования Jenkins для автоматизации рутинных задач 1С-ника на конференции Infostart Event 2021 Moscow Premiere рассказал Юрий Гончарук.

19.07.2023    1137    yukon    4    

11

Приемы быстрой работы в EDT/Git

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

Статья даёт ответы на некоторые вопросы, возникающие у разработчиков, которые погружаются в океан технологий EDT и Git, омывающий царство DevOps... Сколько и какие ветки нужны? Какой репозиторий выбрать? Кто должен сливать доработки в мастер ветку или ветку версии? Как не тратить время в EDT на ресурсоёмких операциях? Зачем нам сборочный конвейер и как его построить? Зачем нам нужно тестирование и как его реализовать? Как вести разработку, если есть разработчики, не умеющие вести разработку в EDT или не имеющие технической возможности, но нам нужны их skills в 1С? Что такое фантомы и нужно ли с ними бороться? Как слить 20 доработок с конфликтами и уложиться в 4 часа? Опыт использования модных технологий в реальных проектах.

30.03.2023    6085    check2    10    

81

Получаем статистику по git-репозиторию в разрезе разработчиков

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

Итак! Представим, что наступил момент, когда разработка через исходный код реализована на предприятии в полном объеме. Мы разрабатываем в EDT или конфигураторе (но выгружаем конфигурацию в исходный код), версионируем внешние отчеты и обработки и расширения, собираем релизы, проверяем код статическим анализом, в разработке царит гармония и мир. Красота! Но менеджерам этого мало, всегда хочется чего-то еще, и вот мне прилетает задача - дай статистику по вкладу в код каждого разработчика.

13.03.2023    1847    ardn    3    

27

Формула успешного внедрения DevOps и Agile в 1С: от неудачи к неудаче без потери энтузиазма

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

На конференции Infostart Event 2021 Post-Apocalypse выступил директор практики БИТ:ERP компании Первый БИТ Глеб Стальной. В ходе доклада он рассмотрел трансформацию проектного подхода в продуктовый, рассказал про имплементацию «современных» практик DevOps и продемонстрировал инструменты для разработки, взаимодействия с бизнесом и клиентами, применяемые в его команде.

27.02.2023    1639    glebushka    2    

12

Кровь, пот и GIT

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

Ведущий разработчик 1С Андрей Карпов на конференции Infostart Event 2021 Post-Apocalypse поделился ошибками, которые совершают новички в работе с GIT. В докладе четыре кейса с пошаговыми инструкциями, которые позволят не допускать конфликтов в разработке.

17.01.2023    7566    karpik666    45    

65

Прокси хранилища 1С (IIS, OneScript)

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

Избавляемся от версионной зависимости, проверяем комментарии, вызываем веб-хуки, делаем красивые пути. И все это на привычном IIS и понятном OneScript.

08.12.2022    6309    kamisov    46    

89

Что, если Continuous Integration – это прежде всего практика, а не набор инструментов?

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

Рано или поздно многие компании приходят к практикам DevOps. И начало этому – Continuous Integration. О том, что происходит в команде специалистов 1С, когда они переходят на Git, и почему простое внедрение CI-инструментов не решает проблему подходов к разработке, в докладе на Infostart Event 2021 Post-Apocalypse рассказал руководитель компании ПрогТехБизнес Александр Анисков.

07.12.2022    1909    vandalsvq    0    

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