From 72114a155c95c83f05a0f39046d29802aaef2310 Mon Sep 17 00:00:00 2001 From: abirambul Date: Tue, 30 Oct 2018 13:10:15 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D0=B0=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BF=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82?= =?UTF-8?q?=D0=B5=D0=BB=D0=B5=D0=B9=20=D1=85=D1=80=D0=B0=D0=BD=D0=B8=D0=BB?= =?UTF-8?q?=D0=B8=D1=89=D0=B0=20#261=20(#263)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Добавлена команда копирования пользователей хранилища #261 * Исправил неверное обращение к переменным копии --- ...20\270\320\273\320\270\321\211\320\260.os" | 106 ++++++++++++++++++ ...20\260\321\202\320\276\321\200\320\260.os" | 34 ++++++ ...21\201\321\202\320\265\320\274\321\213.os" | 2 + 3 files changed, 142 insertions(+) create mode 100644 "src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\321\202\321\214\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260.os" diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\321\202\321\214\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\321\202\321\214\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260.os" new file mode 100644 index 00000000..27cd4031 --- /dev/null +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\321\202\321\214\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260.os" @@ -0,0 +1,106 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////// +// +// Подключение ИБ к хранилищу конфигурации 1С. +// +// TODO добавить фичи для проверки команды +// +// Служебный модуль с набором методов работы с командами приложения +// +// Структура модуля реализована в соответствии с рекомендациями +// oscript-app-template (C) EvilBeaver +// +/////////////////////////////////////////////////////////////////////////////////////////////////// + +#Использовать logos + +Перем Лог; + +/////////////////////////////////////////////////////////////////////////////////////////////////// +// Прикладной интерфейс + +Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт + + ТекстОписания = + " Копирование пользователей хранилища из другого хранилища. + | "; + + ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, + ТекстОписания); + Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "ПутьПодключаемогоХранилища", + "Строка подключения к хранилищу + | (возможно указание как файлового пути, так и пути через http или tcp)"); +Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "ПутьПодключаемогоХранилищаДляКопирования", + "Строка подключения к хранилищу для копирования пользователей + | (возможно указание как файлового пути, так и пути через http или tcp)"); + + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-user", "Пользователь хранилища. + | Обязательный параметр"); + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-pwd", "Пароль. + | Обязательный параметр"); + + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-user-copy", "Пользователь хранилища. + | Обязательный параметр"); + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-pwd-copy", "Пароль. + | Обязательный параметр"); + + Парсер.ДобавитьКоманду(ОписаниеКоманды); + +КонецПроцедуры // ЗарегистрироватьКоманду + +// Выполняет логику команды +// +// Параметры: +// ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений +// ДополнительныеПараметры - Соответствие - дополнительные параметры (необязательно) +// +Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры = Неопределено) Экспорт + + Лог = ДополнительныеПараметры.Лог; + + ПутьКХранилищу = ПараметрыКоманды["ПутьПодключаемогоХранилища"]; + ЛогинПользователя = ПараметрыКоманды["--storage-user"]; + ПарольПользователя = ПараметрыКоманды["--storage-pwd"]; + ПутьКХранилищуКопии = ПараметрыКоманды["ПутьПодключаемогоХранилищаДляКопирования"]; + ЛогинПользователяКопии = ПараметрыКоманды["--storage-user-copy"]; + ПарольПользователяКопии = ПараметрыКоманды["--storage-pwd-copy"]; + + Ожидаем.Что(ПутьКХранилищу, " не задан путь к хранилищу").Заполнено(); + Ожидаем.Что(ЛогинПользователя, " не задан логин пользователя хранилища").Заполнено(); + Ожидаем.Что(ПарольПользователя, " не задан пароль пользователя хранилища").Заполнено(); + Ожидаем.Что(ПутьКХранилищуКопии, " не задан путь к хранилищу для копирования").Заполнено(); + Ожидаем.Что(ЛогинПользователяКопии, " не задан логин пользователя хранилища для копирования").Заполнено(); + Ожидаем.Что(ПарольПользователяКопии, " не задан пароль пользователя хранилища для копирования").Заполнено(); + + ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"]; + СтрокаПодключения = ДанныеПодключения.СтрокаПодключения; + Если Не ЗначениеЗаполнено(СтрокаПодключения) Тогда + СтрокаПодключения = "/F"; + КонецЕсли; + + МенеджерКонфигуратора = Новый МенеджерКонфигуратора; + + МенеджерКонфигуратора.Инициализация( + СтрокаПодключения, + ДанныеПодключения.Пользователь, + ДанныеПодключения.Пароль, + ПараметрыКоманды["--v8version"], + ПараметрыКоманды["--uccode"], + ДанныеПодключения.КодЯзыка); + + Попытка + МенеджерКонфигуратора.КопироватьПользователейИзХранилища( + ПутьКХранилищу, + ЛогинПользователя, + ПарольПользователя, + ПутьКХранилищуКопии, + ЛогинПользователяКопии, + ПарольПользователяКопии); + Исключение + МенеджерКонфигуратора.Деструктор(); + ВызватьИсключение ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + КонецПопытки; + + МенеджерКонфигуратора.Деструктор(); + + Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; +КонецФункции // ВыполнитьКоманду diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" index 8bc4a01f..4d065ef8 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" @@ -613,6 +613,40 @@ КонецПроцедуры +Процедура КопироватьПользователейИзХранилища(Знач ПутьХранилища, Знач Логин, Знач Пароль, + Знач ПутьХранилищаКопия, Знач ЛогинКопия, Знач ПарольКопия, + Знач ВосстановитьУдаленного = Ложь) Экспорт + + Лог.Информация("Выполняю копирование пользователей из хранилища конфигурации"); + + ТекущаяПроцедура = "КопироватьПользователейИзХранилища"; + + УправлениеКонфигуратором.СоздатьФайловуюБазу(КаталогВременнойИБ); + УправлениеКонфигуратором.УстановитьКонтекст("/F " + КаталогВременнойИБ, "", ""); + + ХранилищеКонфигурации = Новый МенеджерХранилищаКонфигурации(); + ХранилищеКонфигурации.УстановитьУправлениеКонфигуратором(УправлениеКонфигуратором); + ХранилищеКонфигурации.УстановитьПараметрыАвторизации(Логин, Пароль); + + ХранилищеКонфигурации.УстановитьПутьКХранилищу(ПутьХранилища); + + Попытка + ХранилищеКонфигурации.КопироватьПользователейИзХранилища( + ПутьХранилищаКопия, + ЛогинКопия, + ПарольКопия, + ВосстановитьУдаленного); + + Лог.Информация("Копирование пользователей из хранилища конфигурации завершено"); + Исключение + Сообщение = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Лог.Ошибка(УправлениеКонфигуратором.ВыводКоманды()); + ВызватьИсключение ТекущаяПроцедура + " + |" + Сообщение; + КонецПопытки; + +КонецПроцедуры + // Выгрузить файл конфигурации определенной версии из хранилища 1С // // Параметры: diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" index 1a3d424b..88fec0be 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" @@ -72,6 +72,7 @@ мВозможныеКоманды.Вставить("СоздатьХранилище", "createrepo"); мВозможныеКоманды.Вставить("ПодключитьсяКХранилищу", "bindrepo"); мВозможныеКоманды.Вставить("СоздатьПользователейХранилища", "createrepouser"); + мВозможныеКоманды.Вставить("КопироватьПользователейХранилища", "copyrepouser"); мВозможныеКоманды.Вставить("СохранитьВерсиюХранилищаВФайл", "unloadcfrepo"); мВозможныеКоманды.Вставить("ЗахватитьВХранилище", "lockrepo"); мВозможныеКоманды.Вставить("ПоместитьВХранилище", "commit"); @@ -131,6 +132,7 @@ КлассыРеализацииКоманд[ВозможныеКоманды().СоздатьХранилище] = "КомандаСоздатьХранилище"; КлассыРеализацииКоманд[ВозможныеКоманды().ПодключитьсяКХранилищу] = "КомандаПодключитьсяКХранилищу"; КлассыРеализацииКоманд[ВозможныеКоманды().СоздатьПользователейХранилища] = "КомандаСоздатьПользователейХранилища"; + КлассыРеализацииКоманд[ВозможныеКоманды().КопироватьПользователейХранилища] = "КомандаКопироватьПользователейХранилища"; КлассыРеализацииКоманд[ВозможныеКоманды().СохранитьВерсиюХранилищаВФайл] = "КомандаСохранитьВерсиюХранилищаВФайл"; КлассыРеализацииКоманд[ВозможныеКоманды().ЗахватитьВХранилище] = "КомандаЗахватитьВХранилище"; КлассыРеализацииКоманд[ВозможныеКоманды().ПоместитьВХранилище] = "КомандаПоместитьВХранилище";