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

11.12.20

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

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

Платные

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
(только для физ. лиц)
Скрипт проверки подключения базы к хранилищу:
.os 6,67Kb
6 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний за 2430 руб. в месяц

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

КонецЦикла;

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

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

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

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

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

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

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

Все хорошо:

 

 

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

 

 

Или плохо:

 

 

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

 

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

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

См. также

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

В данной публикации рассматривается пример реализации скрипта, который автоматизирует получение ветки из GIT репозитория и обновление конфигурации, если разработка проекта ведется в EDT.

11.06.2025    1184    AlexF1    3    

6

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

В процессе использования 1С:EDT и репозитория Git для обновлений релизов доработанных конфигураций появилась необходимость в регулярной загрузке конфигураций от вендора 1С в Git-репозиторий. Описанное в статье решение позволяет автоматизировать эту операцию и может быть полезным специалистам, занимающимися обновлениями с использованием 1C:EDT+Git

21.05.2025    2417    ICL-Soft    3    

18

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

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

05.02.2025    4284    Nonik    10    

18

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

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

23.09.2024    8647    kraynev-navi    3    

27

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

Как исправить медленное сравнение конфигурации с файлом cf, сохраненным из хранилища.

17.09.2024    8230    vatkir    16    

10

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

Называть Git новой технологией – уже смешно, но для многих 1С-ников это действительно «новое и неизведанное». Расскажем о плюсах и минусах двух главных систем контроля версий в мире 1С: Git и хранилища.

17.09.2024    15771    Golovanoff    81    

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