You've already forked gitmanager
mirror of
https://github.com/Untru/gitmanager.git
synced 2025-08-09 21:37:16 +02:00
Добавил терминал и обработку запуска
This commit is contained in:
@@ -1533,6 +1533,7 @@
|
||||
<dataProcessors>DataProcessor.ЗаменаИОбъединениеЭлементов</dataProcessors>
|
||||
<dataProcessors>DataProcessor.ЗаполнениеГрафиковРаботы</dataProcessors>
|
||||
<dataProcessors>DataProcessor.ЗаполнениеКалендарныхГрафиков</dataProcessors>
|
||||
<dataProcessors>DataProcessor.Запуск</dataProcessors>
|
||||
<dataProcessors>DataProcessor.КомандыПроцессов</dataProcessors>
|
||||
<dataProcessors>DataProcessor.КонструкторФормул</dataProcessors>
|
||||
<dataProcessors>DataProcessor.МенеджерРелизов</dataProcessors>
|
||||
@@ -1553,6 +1554,7 @@
|
||||
<dataProcessors>DataProcessor.РезультатыОбновленияПрограммы</dataProcessors>
|
||||
<dataProcessors>DataProcessor.РекомендацияПоПовышениюСкоростиРаботы</dataProcessors>
|
||||
<dataProcessors>DataProcessor.Сканирование</dataProcessors>
|
||||
<dataProcessors>DataProcessor.Терминал</dataProcessors>
|
||||
<dataProcessors>DataProcessor.УдалениеПомеченныхОбъектов</dataProcessors>
|
||||
<dataProcessors>DataProcessor.УправлениеЗадачами</dataProcessors>
|
||||
<informationRegisters>InformationRegister.БезопасноеХранилищеДанных</informationRegisters>
|
||||
|
2323
src/DataProcessors/Запуск/Forms/Форма/Form.form
Normal file
2323
src/DataProcessors/Запуск/Forms/Форма/Form.form
Normal file
File diff suppressed because it is too large
Load Diff
486
src/DataProcessors/Запуск/Forms/Форма/Module.bsl
Normal file
486
src/DataProcessors/Запуск/Forms/Форма/Module.bsl
Normal file
@@ -0,0 +1,486 @@
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОсновнаяПапкаНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка)
|
||||
СтандартнаяОбработка = Ложь;
|
||||
|
||||
ДиалогОткрытия = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
|
||||
ДиалогОткрытия.Каталог = ОсновнаяПапка;
|
||||
ДиалогОткрытия.Заголовок = "Выберите каталог основной папки проекта";
|
||||
ДиалогОткрытия.Показать(Новый ОписаниеОповещения("ВыборКаталога_Завершение", ЭтотОбъект, "" ));
|
||||
|
||||
Модифицированность = Истина;
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ВыборКаталога_Завершение(Результат, Параметр) Экспорт
|
||||
|
||||
Если Результат = Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
ОсновнаяПапка = Результат[0];
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СчитатьСписокБаз(Команда)
|
||||
|
||||
СписокБазДанных.Очистить();
|
||||
Если ОбщегоНазначенияКлиент.ИнформационнаяБазаФайловая() Тогда
|
||||
ВременныйКаталог = КаталогДокументов();
|
||||
ВременныйКаталог = СтрЗаменить(ВременныйКаталог, "\Documents\", "\AppData\Roaming\1C\1CEStart\");
|
||||
Иначе
|
||||
ВременныйКаталог = КаталогВременныхФайлов();
|
||||
ВременныйКаталог = СтрЗаменить(ВременныйКаталог, "\Local\Temp\", "\Roaming\1C\1CEStart\");
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
ИмяФайла = "ibases.v8i";
|
||||
ФайлЗапуска1С = Новый Файл(ВременныйКаталог + ИмяФайла);
|
||||
|
||||
Если ФайлЗапуска1С.Существует() Тогда
|
||||
|
||||
ТекстовыйДокИзФайла = Новый ТекстовыйДокумент;
|
||||
ТекстовыйДокИзФайла.Прочитать(ФайлЗапуска1С.ПолноеИмя);
|
||||
|
||||
//Текст = ТекстовыйДокИзФайла.ПолучитьТекст();
|
||||
|
||||
СлБаза = Ложь;
|
||||
Для НомерСтроки = 1 По ТекстовыйДокИзФайла.КоличествоСтрок() Цикл
|
||||
|
||||
СтрокаТекста = ТекстовыйДокИзФайла.ПолучитьСтроку(НомерСтроки);
|
||||
|
||||
Если Лев(СтрокаТекста, 1) = "[" Тогда //Это имя в списке
|
||||
|
||||
СтруктураБазы = Новый Структура;
|
||||
|
||||
СтруктураБазы.Вставить("ИмяБазы", Сред(СтрокаТекста, 2, СтрДлина(СтрокаТекста) - 2));
|
||||
|
||||
ИначеЕсли СтрЧислоВхождений(СтрокаТекста, "Connect=File=") > 0 Тогда
|
||||
|
||||
Путь = СтрЗаменить(СтрокаТекста, "Connect=File=", "");
|
||||
|
||||
Путь = СтрЗаменить(Путь, ";", "");
|
||||
Путь = СтрЗаменить(Путь, """", "");
|
||||
|
||||
СтруктураБазы.Вставить("ПутьКБазе", Путь);
|
||||
|
||||
//Проверяем добавляемую строку
|
||||
Если СписокБазДанных.НайтиСтроки(Новый Структура("ИмяБазы", СтруктураБазы.ИмяБазы)).Количество() = 0 Тогда
|
||||
СтрокаБазы = СписокБазДанных.Добавить();
|
||||
|
||||
ЗаполнитьЗначенияСвойств(СтрокаБазы, СтруктураБазы);
|
||||
КонецЕсли;
|
||||
ИначеЕсли СтрЧислоВхождений(СтрокаТекста, "Connect=Srvr=") > 0 Тогда
|
||||
Путь = СтрЗаменить(СтрокаТекста, "Connect=Srvr=", "");
|
||||
Путь = СтрЗаменить(Путь, "Ref=", "");
|
||||
Путь = СтрЗаменить(Путь, """", "");
|
||||
|
||||
Пути = СтрРазделить(Путь, ";", Ложь);
|
||||
СтруктураБазы.Вставить("Сервер", Пути[0]);
|
||||
СтруктураБазы.Вставить("ИмяНаСервере", Пути[1]);
|
||||
|
||||
Если СписокБазДанных.НайтиСтроки(Новый Структура("ИмяБазы", СтруктураБазы.ИмяБазы)).Количество() = 0 Тогда
|
||||
СтрокаБазы = СписокБазДанных.Добавить();
|
||||
|
||||
ЗаполнитьЗначенияСвойств(СтрокаБазы, СтруктураБазы);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура СоздатьПользлователяНаСервере()
|
||||
|
||||
Пользователи.СоздатьАдминистратора();
|
||||
НовыйПользователь = Справочники.Пользователи.НайтиПоНаименованию(ИмяПользователя, Истина);
|
||||
Если НовыйПользователь.Пустая() Тогда
|
||||
НовыйПользователь = СоздатьАдминистратора();
|
||||
КонецЕсли;
|
||||
НастройкиПользователя = НастройкаПоВладельцу(НовыйПользователь);
|
||||
Если НастройкиПользователя.Пустая() Тогда
|
||||
НастройкиПользователяОбъект = Справочники.НастройкиПользователей.СоздатьЭлемент();
|
||||
НастройкиПользователяОбъект.Заполнить(Неопределено); //TODO Реализовать автозаполнение настроек по умолчанию
|
||||
НастройкиПользователяОбъект.Владелец = НовыйПользователь;
|
||||
НастройкиПользователяОбъект.ИмяПользователяGit = ИмяПользователяGit;
|
||||
НастройкиПользователяОбъект.ПочтаПользователяGit = ПочтаПользователяGit;
|
||||
НастройкиПользователяОбъект.ТокенGit = ТокенGit;
|
||||
НастройкиПользователяОбъект.Проект = Справочники.Проекты.Неопределен;
|
||||
НастройкиПользователяОбъект.Записать();
|
||||
НастройкиПользователя = НастройкиПользователяОбъект.Ссылка;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция НастройкаПоВладельцу(Владелец)
|
||||
|
||||
Результат = Справочники.НастройкиПользователей.ПустаяСсылка();
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| НастройкиПользователей.Ссылка КАК Ссылка
|
||||
|ИЗ
|
||||
| Справочник.НастройкиПользователей КАК НастройкиПользователей
|
||||
|ГДЕ
|
||||
| НастройкиПользователей.Владелец = &Владелец";
|
||||
|
||||
Запрос.УстановитьПараметр("Владелец", Владелец);
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
|
||||
Выборка = РезультатЗапроса.Выбрать();
|
||||
|
||||
Пока Выборка.Следующий() Цикл
|
||||
Результат = Выборка.Ссылка;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СоздатьПользлователя(Команда)
|
||||
СоздатьПользлователяНаСервере();
|
||||
ПоказатьЗначение(, НастройкиПользователя);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура СоздатьПроектНаСервере()
|
||||
|
||||
Проект = Справочники.Проекты.НайтиПоНаименованию(НазваниеПроекта);
|
||||
Если НЕ Проект.Пустая() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ПроектОбъект = Справочники.Проекты.СоздатьЭлемент();
|
||||
ПроектОбъект.Заполнить(Неопределено); //TODO Реализовать автозаполнение настроек по умолчанию
|
||||
ПроектОбъект.Наименование = НазваниеПроекта;
|
||||
Если ТипРепозитория = Перечисления.ТипРепозитория.GitHub Тогда
|
||||
Авторизация = СтрШаблон("://%1@%2", ИмяПользователяGit, ТокенGit);//TODO Безопасное хранилище паролей
|
||||
ИначеЕсли ТипРепозитория = Перечисления.ТипРепозитория.GitLab Тогда
|
||||
Авторизация = СтрШаблон("://%1@%2", ИмяПользователяGit, ТокенGit);
|
||||
Иначе
|
||||
//Не обработанные типы репозиториев
|
||||
КонецЕсли;
|
||||
ПроектОбъект.PathGitClone = СтрЗаменить(ПутьКGitCloneHTTP, "://", Авторизация);
|
||||
ПроектОбъект.КаталогРепозиториевПроекта = ОсновнаяПапка;
|
||||
ПроектОбъект.КаталогРепозиториевШара = ОсновнаяПапка;
|
||||
ПроектОбъект.КаталогСборкиРелиза = ОсновнаяПапка + "\release";
|
||||
ПроектОбъект.ТаскТрекер =ТаскТрекер;
|
||||
ПроектОбъект.ТипРепозитория = ТипРепозитория;
|
||||
ПроектОбъект.ИДПроектаРепозитория = ИДПроектаРепозитория;
|
||||
ПроектОбъект.РежимРаботыКонфигурации = Перечисления.РежимыРаботыКонфигурации.Пакетный;
|
||||
ПроектОбъект.Записать();
|
||||
Проект = ПроектОбъект.Ссылка;
|
||||
НастройкаОбъект = НастройкиПользователя.ПолучитьОбъект();
|
||||
НастройкаОбъект.Проект = Проект;
|
||||
НастройкаОбъект.Записать();
|
||||
|
||||
СоздатьКаталог(ПроектОбъект.КаталогСборкиРелиза);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СоздатьПроект(Команда)
|
||||
СоздатьПроектНаСервере();
|
||||
ПоказатьЗначение(, Проект);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ДобавитьБазы(Команда)
|
||||
|
||||
ВыделенныеСтроки = Элементы.СписокБазДанных.ВыделенныеСтроки;
|
||||
МассивБаз = Новый Массив;
|
||||
|
||||
Для Каждого СтрокаБазы Из ВыделенныеСтроки Цикл
|
||||
ДанныеСтроки = Элементы.СписокБазДанных.ДанныеСтроки(СтрокаБазы);
|
||||
Если Не ЗначениеЗаполнено(ДанныеСтроки.Сервер) Тогда
|
||||
Сообщить("База не серверная созданна не будет" + ДанныеСтроки.ИмяБазы);
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
СтруктураСервернойБазы = СтруктураСервернойБазы();
|
||||
ЗаполнитьЗначенияСвойств(СтруктураСервернойБазы, ДанныеСтроки);
|
||||
МассивБаз.Добавить(СтруктураСервернойБазы);
|
||||
КонецЦикла;
|
||||
|
||||
ДобавитьБазыНаСервере(МассивБаз);
|
||||
ПоказатьЗначение(, Кластер);
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
&НаКлиенте
|
||||
Функция СтруктураСервернойБазы()
|
||||
Возврат Новый Структура("ИмяБазы, Сервер, ИмяНаСервере");
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Процедура ДобавитьБазыНаСервере(МассивБаз)
|
||||
|
||||
Для Каждого Элемент Из МассивБаз Цикл
|
||||
|
||||
Кластер = Справочники.Кластеры.НайтиПоНаименованию(Элемент.Сервер, Истина);
|
||||
Если Кластер.Пустая() Тогда
|
||||
КластерОбъект = Справочники.Кластеры.СоздатьЭлемент();
|
||||
КластерОбъект.ИмяАгентаБазы = "GitAgent";
|
||||
КластерОбъект.КаталогRAS = "GitAgent";
|
||||
КластерОбъект.НомерВерсииПлатформы = "8.3"; //TODO
|
||||
КластерОбъект.ПутьКПапкеДевопс = ОсновнаяПапка;
|
||||
КластерОбъект.ПутьКШаре = ОсновнаяПапка;
|
||||
КластерОбъект.ФайлЗапускаOscript = "";//
|
||||
//КластерОбъект.ФайлЗапускаOscript = "";//Добавить путь к rac
|
||||
КластерОбъект.Наименование = Элемент.Сервер;
|
||||
КластерОбъект.СерверПубликации = Элемент.Сервер;
|
||||
КластерОбъект.Записать();
|
||||
Кластер = КластерОбъект.Ссылка;
|
||||
КонецЕсли;
|
||||
База = Справочники.Базы.НайтиПоНаименованию(Элемент.ИмяНаСервере, Истина);
|
||||
Если База.Пустая() Тогда
|
||||
БазаОбъект = Справочники.Базы.СоздатьЭлемент();
|
||||
БазаОбъект.Владелец = Проект;
|
||||
БазаОбъект.БазаПубликации = Элемент.ИмяНаСервере;
|
||||
БазаОбъект.КластерСерверов = Кластер;
|
||||
БазаОбъект.Наименование = Элемент.ИмяНаСервере;
|
||||
БазаОбъект.ТипБазы = Перечисления.ТипыБаз.ТестоваяБаза;
|
||||
БазаОбъект.Ответственный = НовыйПользователь;
|
||||
БазаОбъект.ИмяИнформационнойБазы = Элемент.ИмяНаСервере;
|
||||
БазаОбъект.ИмяПользователяИнформационнойБазы = "1с";
|
||||
БазаОбъект.ПарольПользователяИнформационнойБазы = "1с";
|
||||
БазаОбъект.Записать();
|
||||
|
||||
Сообщить("Создана база " + БазаОбъект.Ссылка);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура УстановитьОскриптНаСервере()
|
||||
|
||||
|
||||
ИмяФайла = ПолучитьИмяВременногоФайла("exe");
|
||||
АдресФайла = "https://github.com/oscript-library/ovm/releases/latest/download/ovm.exe";
|
||||
НовыеПараметры = КоннекторHTTP.НовыеПараметры();
|
||||
НовыеПараметры.Заголовки.Вставить("User-Agent",
|
||||
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36");
|
||||
НовыеПараметры.Таймаут = 90;
|
||||
Ответ = КоннекторHTTP.Get(АдресФайла,,НовыеПараметры);
|
||||
Данные = КоннекторHTTP.КакДвоичныеДанные(Ответ);
|
||||
Данные.Записать(ИмяФайла);
|
||||
|
||||
ПараметрыЗапускаПрограммы = ФайловаяСистема.ПараметрыЗапускаПрограммы();
|
||||
ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина;
|
||||
ПараметрыЗапускаПрограммы.ПолучитьПотокВывода = Истина;
|
||||
ПараметрыЗапускаПрограммы.ПолучитьПотокОшибок = Истина;
|
||||
|
||||
|
||||
Результат = ФайловаяСистема.ЗапуститьПрограмму(СтрШаблон("%1 install dev", ИмяФайла), ПараметрыЗапускаПрограммы);
|
||||
ОбщегоНазначения.СообщитьПользователю(Результат.ПотокВывода);
|
||||
Если ЗначениеЗаполнено(Результат.ПотокОшибок) Тогда
|
||||
ОбщегоНазначения.СообщитьПользователю(Результат.ПотокОшибок);
|
||||
КонецЕсли;
|
||||
|
||||
Результат = ФайловаяСистема.ЗапуститьПрограмму(СтрШаблон("%1 use --install dev", ИмяФайла), ПараметрыЗапускаПрограммы);
|
||||
ОбщегоНазначения.СообщитьПользователю(Результат.ПотокВывода);
|
||||
Если ЗначениеЗаполнено(Результат.ПотокОшибок) Тогда
|
||||
ОбщегоНазначения.СообщитьПользователю(Результат.ПотокОшибок);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура УстановитьОскрипт(Команда)
|
||||
УстановитьОскриптНаСервере();
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура СоздатьРепозиторииКБазамНаСервере()
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| Базы.Ссылка КАК Ссылка
|
||||
|ИЗ
|
||||
| Справочник.Базы КАК Базы";
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
|
||||
Выборка = РезультатЗапроса.Выбрать();
|
||||
|
||||
Пока Выборка.Следующий() Цикл
|
||||
|
||||
КаталогРепозиторияБазыШара = РаботаСGit.КаталогРепозиторияБазыШара(Выборка.Ссылка);
|
||||
КаталогРепозиторияБазы = РаботаСGit.КаталогРепозиторияБазы(Выборка.Ссылка);
|
||||
Если ПустаяСтрока(КаталогРепозиторияБазыШара) Тогда
|
||||
Ошибка = "Ошибка: Не указан каталог репозиториев в проекте!";
|
||||
Сообщить(Ошибка);
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Если Не РаботаСGit.КаталогРепозиторияСуществует(КаталогРепозиторияБазыШара) Тогда
|
||||
Если Не РаботаСGit.СоздатьКаталогРепозитория(КаталогРепозиторияБазыШара) Тогда
|
||||
Ошибка = СтрШаблон("Ошибка: Не удалось создать каталог репозитория базы: %1", КаталогРепозиторияБазыШара);
|
||||
Сообщить(Ошибка);
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
Если Не РаботаСGit.ПустойРепозиторий(КаталогРепозиторияБазыШара) Тогда
|
||||
Ошибка = СтрШаблон("Ошибка! В каталоге есть файлы: %1%2Перед созданием репозитория каталог должен быть пустым.", КаталогРепозиторияБазы, Символы.ПС);
|
||||
Сообщить(Ошибка);
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
РаботаСGit.СоздатьНовыйРепозиторийВГИТ(Выборка.Ссылка, НовыйПользователь);
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СоздатьРепозиторииКБазам(Команда)
|
||||
СоздатьРепозиторииКБазамНаСервере();
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура УстановитьКЛИНаСервере()
|
||||
ПараметрыЗапускаПрограммы = ФайловаяСистема.ПараметрыЗапускаПрограммы();
|
||||
ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина;
|
||||
ПараметрыЗапускаПрограммы.ПолучитьПотокВывода = Истина;
|
||||
ПараметрыЗапускаПрограммы.ПолучитьПотокОшибок = Истина;
|
||||
|
||||
Результат = ФайловаяСистема.ЗапуститьПрограмму("opm install pivo-cli", ПараметрыЗапускаПрограммы);
|
||||
ОбщегоНазначения.СообщитьПользователю(Результат.ПотокВывода);
|
||||
Если ЗначениеЗаполнено(Результат.ПотокОшибок) Тогда
|
||||
ОбщегоНазначения.СообщитьПользователю(Результат.ПотокОшибок);
|
||||
КонецЕсли;
|
||||
Результат = ФайловаяСистема.ЗапуститьПрограмму("pivo-cli", ПараметрыЗапускаПрограммы);
|
||||
ОбщегоНазначения.СообщитьПользователю(Результат.ПотокВывода);
|
||||
Если ЗначениеЗаполнено(Результат.ПотокОшибок) Тогда
|
||||
ОбщегоНазначения.СообщитьПользователю(Результат.ПотокОшибок);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура УстановитьКЛИ(Команда)
|
||||
УстановитьКЛИНаСервере();
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
// Используется при обновлении и начальном заполнении информационной базы.
|
||||
// 1) Создает первого администратора и сопоставляет его с новым или существующим
|
||||
// пользователем в справочнике Пользователи.
|
||||
// 2) Сопоставляет администратора, указанного в параметре ПользовательИБ, с новым или
|
||||
// существующим пользователем в справочнике Пользователи.
|
||||
//
|
||||
// Параметры:
|
||||
// ПользовательИБ - Неопределено - создать первого администратора, если не существует.
|
||||
// - ПользовательИнформационнойБазы - используется, когда нужно сопоставить
|
||||
// существующего администратора с новым или существующим пользователем
|
||||
// в справочнике Пользователи.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Неопределено - первый администратор уже существует.
|
||||
// СправочникСсылка.Пользователи - пользователь в справочнике, с которым сопоставлен созданный
|
||||
// первый администратор или указанный существующий.
|
||||
//
|
||||
Функция СоздатьАдминистратора(ПользовательИБ = Неопределено) Экспорт
|
||||
|
||||
Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
|
||||
ТекстОшибки = НСтр("ru = 'Справочник Пользователи недоступен в неразделенном режиме.'");
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
// Добавление администратора.
|
||||
Если ПользовательИБ = Неопределено Тогда
|
||||
ПользовательИБ = ПользователиИнформационнойБазы.СоздатьПользователя();
|
||||
ПользовательИБ.Имя = ИмяПользователя;
|
||||
ПользовательИБ.ПолноеИмя = ПользовательИБ.Имя;
|
||||
ПользовательИБ.Роли.Очистить();
|
||||
ПользовательИБ.Роли.Добавить(Метаданные.Роли.ПолныеПрава);
|
||||
РольАдминистратораСистемы = Метаданные.Роли.АдминистраторСистемы;
|
||||
Если НЕ ПользовательИБ.Роли.Содержит(РольАдминистратораСистемы) Тогда
|
||||
ПользовательИБ.Роли.Добавить(РольАдминистратораСистемы);
|
||||
КонецЕсли;
|
||||
ПользовательИБ.Записать();
|
||||
Иначе
|
||||
Если Не ПользователиСлужебный.РолиАдминистратораДоступны(ПользовательИБ) Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Невозможно создать пользователя в справочнике для пользователя
|
||||
|информационной базы ""%1"",
|
||||
|так как у него нет ролей Полные права и Администратор системы.
|
||||
|
|
||||
|Вероятно, пользователь был создан в конфигураторе.
|
||||
|Для автоматического создания пользователя в справочнике требуется
|
||||
|назначить ему роли Полные права и Администратор системы.'"),
|
||||
Строка(ПользовательИБ));
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
КонецЕсли;
|
||||
|
||||
Пользователи.НайтиНеоднозначныхПользователейИБ(Неопределено, ПользовательИБ.УникальныйИдентификатор);
|
||||
КонецЕсли;
|
||||
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
ЭлементБлокировки = Блокировка.Добавить("Справочник.Пользователи");
|
||||
ЭлементБлокировки.УстановитьЗначение("ИдентификаторПользователяИБ", ПользовательИБ.УникальныйИдентификатор);
|
||||
ЭлементБлокировки = Блокировка.Добавить("Справочник.ВнешниеПользователи");
|
||||
ЭлементБлокировки.УстановитьЗначение("ИдентификаторПользователяИБ", ПользовательИБ.УникальныйИдентификатор);
|
||||
ЭлементБлокировки = Блокировка.Добавить("Справочник.Пользователи");
|
||||
ЭлементБлокировки.УстановитьЗначение("Наименование", ПользовательИБ.ПолноеИмя);
|
||||
Блокировка.Заблокировать();
|
||||
|
||||
Пользователь = Неопределено;
|
||||
ПользователиСлужебный.ПользовательПоИдентификаторуСуществует(ПользовательИБ.УникальныйИдентификатор,, Пользователь);
|
||||
Если ТипЗнч(Пользователь) = Тип("СправочникСсылка.ВнешниеПользователи") Тогда
|
||||
ВнешнийПользовательОбъект = Пользователь.ПолучитьОбъект();
|
||||
ВнешнийПользовательОбъект.ИдентификаторПользователяИБ = Неопределено;
|
||||
ОбновлениеИнформационнойБазы.ЗаписатьДанные(ВнешнийПользовательОбъект);
|
||||
Пользователь = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(Пользователь) Тогда
|
||||
Пользователь = Справочники.Пользователи.НайтиПоНаименованию(ПользовательИБ.ПолноеИмя);
|
||||
|
||||
Если ЗначениеЗаполнено(Пользователь)
|
||||
И ЗначениеЗаполнено(Пользователь.ИдентификаторПользователяИБ)
|
||||
И Пользователь.ИдентификаторПользователяИБ <> ПользовательИБ.УникальныйИдентификатор
|
||||
И ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(
|
||||
Пользователь.ИдентификаторПользователяИБ) <> Неопределено Тогда
|
||||
|
||||
Пользователь = Неопределено;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(Пользователь) Тогда
|
||||
Пользователь = Справочники.Пользователи.СоздатьЭлемент();
|
||||
ПользовательСоздан = Истина;
|
||||
Иначе
|
||||
Пользователь = Пользователь.ПолучитьОбъект();
|
||||
ПользовательСоздан = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Пользователь.Наименование = ПользовательИБ.ПолноеИмя;
|
||||
|
||||
ОписаниеПользователяИБ = Новый Структура;
|
||||
ОписаниеПользователяИБ.Вставить("Действие", "Записать");
|
||||
ОписаниеПользователяИБ.Вставить("УникальныйИдентификатор", ПользовательИБ.УникальныйИдентификатор);
|
||||
Пользователь.Записать();
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
Возврат Пользователь.Ссылка;
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
|
23
src/DataProcessors/Запуск/Запуск.mdo
Normal file
23
src/DataProcessors/Запуск/Запуск.mdo
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:DataProcessor xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="9c70198e-e182-413c-ac1a-6584b2a37935">
|
||||
<producedTypes>
|
||||
<objectType typeId="5ed4878e-d660-45f9-a79b-5aafc2f44533" valueTypeId="44fb20d2-5404-4803-96e4-98279233406f"/>
|
||||
<managerType typeId="49c74d9e-8ffd-4f77-a987-fc6d0b018b37" valueTypeId="71bbf820-6cea-4335-bcf4-1eda16a89b61"/>
|
||||
</producedTypes>
|
||||
<name>Запуск</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Запуск</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
<defaultForm>DataProcessor.Запуск.Form.Форма</defaultForm>
|
||||
<forms uuid="93e87f01-b54d-48d7-9436-55b3f608427e">
|
||||
<name>Форма</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Форма</value>
|
||||
</synonym>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</forms>
|
||||
</mdclass:DataProcessor>
|
534
src/DataProcessors/Терминал/Forms/Форма/Form.form
Normal file
534
src/DataProcessors/Терминал/Forms/Форма/Form.form
Normal file
@@ -0,0 +1,534 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>Группа3</name>
|
||||
<id>31</id>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>Группа1</name>
|
||||
<id>11</id>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>Команда</name>
|
||||
<id>1</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>КомандаЗапуска</segments>
|
||||
</dataPath>
|
||||
<extendedTooltip>
|
||||
<name>КомандаРасширеннаяПодсказка</name>
|
||||
<id>3</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>КомандаКонтекстноеМеню</name>
|
||||
<id>2</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>InputField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<wrap>true</wrap>
|
||||
<extendedEditMultipleValues>true</extendedEditMultipleValues>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаВыполнитьСервер</name>
|
||||
<id>9</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ФормаВыполнитьСерверРасширеннаяПодсказка</name>
|
||||
<id>10</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>Hyperlink</type>
|
||||
<commandName>Form.Command.ВыполнитьСервер</commandName>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<picture xsi:type="core:PictureRef">
|
||||
<picture>CommonPicture.СтрелкаВправоЗеленая</picture>
|
||||
</picture>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаВыполнитьКлиент</name>
|
||||
<id>7</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ФормаВыполнитьКлиентРасширеннаяПодсказка</name>
|
||||
<id>8</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>Hyperlink</type>
|
||||
<commandName>Form.Command.ВыполнитьКлиент</commandName>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>Группа1РасширеннаяПодсказка</name>
|
||||
<id>12</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>UsualGroup</type>
|
||||
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||
<group>AlwaysHorizontal</group>
|
||||
<behavior>Auto</behavior>
|
||||
<showLeftMargin>true</showLeftMargin>
|
||||
<united>true</united>
|
||||
<throughAlign>Auto</throughAlign>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>Вывод</name>
|
||||
<id>4</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Вывод</segments>
|
||||
</dataPath>
|
||||
<extendedTooltip>
|
||||
<name>ВыводРасширеннаяПодсказка</name>
|
||||
<id>6</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ВыводКонтекстноеМеню</name>
|
||||
<id>5</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>InputField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<wrap>true</wrap>
|
||||
<multiLine>true</multiLine>
|
||||
<extendedEditMultipleValues>true</extendedEditMultipleValues>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Группа3</value>
|
||||
</title>
|
||||
<width>70</width>
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<extendedTooltip>
|
||||
<name>Группа3РасширеннаяПодсказка</name>
|
||||
<id>32</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>UsualGroup</type>
|
||||
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||
<group>HorizontalIfPossible</group>
|
||||
<behavior>Auto</behavior>
|
||||
<showLeftMargin>true</showLeftMargin>
|
||||
<united>true</united>
|
||||
<throughAlign>Auto</throughAlign>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>Группа2</name>
|
||||
<id>29</id>
|
||||
<items xsi:type="form:Table">
|
||||
<name>Команды</name>
|
||||
<id>13</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Команды</segments>
|
||||
</dataPath>
|
||||
<titleLocation>None</titleLocation>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>КомандыЗначение</name>
|
||||
<id>26</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Команды.Value</segments>
|
||||
</dataPath>
|
||||
<extendedTooltip>
|
||||
<name>КомандыЗначениеРасширеннаяПодсказка</name>
|
||||
<id>28</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>КомандыЗначениеКонтекстноеМеню</name>
|
||||
<id>27</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>InputField</type>
|
||||
<editMode>EnterOnInput</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
</extInfo>
|
||||
</items>
|
||||
<commandBarLocation>None</commandBarLocation>
|
||||
<autoCommandBar>
|
||||
<name>КомандыКоманднаяПанель</name>
|
||||
<id>14</id>
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
<autoFill>true</autoFill>
|
||||
</autoCommandBar>
|
||||
<searchStringAddition>
|
||||
<name>КомандыСтрокаПоиска</name>
|
||||
<id>17</id>
|
||||
<extendedTooltip>
|
||||
<name>КомандыСтрокаПоискаРасширеннаяПодсказка</name>
|
||||
<id>19</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>КомандыСтрокаПоискаКонтекстноеМеню</name>
|
||||
<id>18</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<source>Команды</source>
|
||||
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</searchStringAddition>
|
||||
<viewStatusAddition>
|
||||
<name>КомандыСостояниеПросмотра</name>
|
||||
<id>23</id>
|
||||
<extendedTooltip>
|
||||
<name>КомандыСостояниеПросмотраРасширеннаяПодсказка</name>
|
||||
<id>25</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>КомандыСостояниеПросмотраКонтекстноеМеню</name>
|
||||
<id>24</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>ViewStatusAddition</type>
|
||||
<source>Команды</source>
|
||||
<extInfo xsi:type="form:ViewStatusAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</viewStatusAddition>
|
||||
<searchControlAddition>
|
||||
<name>КомандыУправлениеПоиском</name>
|
||||
<id>20</id>
|
||||
<extendedTooltip>
|
||||
<name>КомандыУправлениеПоискомРасширеннаяПодсказка</name>
|
||||
<id>22</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>КомандыУправлениеПоискомКонтекстноеМеню</name>
|
||||
<id>21</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>SearchControlAddition</type>
|
||||
<source>Команды</source>
|
||||
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</searchControlAddition>
|
||||
<extendedTooltip>
|
||||
<name>КомандыРасширеннаяПодсказка</name>
|
||||
<id>16</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>КомандыКонтекстноеМеню</name>
|
||||
<id>15</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<changeRowSet>true</changeRowSet>
|
||||
<changeRowOrder>true</changeRowOrder>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<autoMaxRowsCount>true</autoMaxRowsCount>
|
||||
<selectionMode>MultiRow</selectionMode>
|
||||
<header>true</header>
|
||||
<headerHeight>1</headerHeight>
|
||||
<footerHeight>1</footerHeight>
|
||||
<horizontalScrollBar>AutoUse</horizontalScrollBar>
|
||||
<verticalScrollBar>AutoUse</verticalScrollBar>
|
||||
<horizontalLines>true</horizontalLines>
|
||||
<verticalLines>true</verticalLines>
|
||||
<searchOnInput>Auto</searchOnInput>
|
||||
<initialListView>Auto</initialListView>
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<verticalStretch>true</verticalStretch>
|
||||
<fileDragMode>AsFileRef</fileDragMode>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Группа2</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>Группа2РасширеннаяПодсказка</name>
|
||||
<id>30</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>UsualGroup</type>
|
||||
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||
<group>HorizontalIfPossible</group>
|
||||
<behavior>Auto</behavior>
|
||||
<showLeftMargin>true</showLeftMargin>
|
||||
<united>true</united>
|
||||
<throughAlign>Auto</throughAlign>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<autoCommandBar>
|
||||
<name>ФормаКоманднаяПанель</name>
|
||||
<id>-1</id>
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
<autoFill>true</autoFill>
|
||||
</autoCommandBar>
|
||||
<saveWindowSettings>true</saveWindowSettings>
|
||||
<autoTitle>true</autoTitle>
|
||||
<autoUrl>true</autoUrl>
|
||||
<group>AlwaysHorizontal</group>
|
||||
<autoFillCheck>true</autoFillCheck>
|
||||
<allowFormCustomize>true</allowFormCustomize>
|
||||
<enabled>true</enabled>
|
||||
<showTitle>true</showTitle>
|
||||
<showCloseButton>true</showCloseButton>
|
||||
<attributes>
|
||||
<name>Объект</name>
|
||||
<id>1</id>
|
||||
<valueType>
|
||||
<types>DataProcessorObject.Терминал</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<main>true</main>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>КомандаЗапуска</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Команда запуска</value>
|
||||
</title>
|
||||
<id>2</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>Вывод</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Вывод</value>
|
||||
</title>
|
||||
<id>3</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>Команды</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Команды</value>
|
||||
</title>
|
||||
<id>4</id>
|
||||
<valueType>
|
||||
<types>ValueList</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<extInfo xsi:type="form:ValueListExtInfo">
|
||||
<itemValueType/>
|
||||
</extInfo>
|
||||
</attributes>
|
||||
<formCommands>
|
||||
<name>ВыполнитьКлиент</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Клиент</value>
|
||||
</title>
|
||||
<id>1</id>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Выполнить клиент</value>
|
||||
</toolTip>
|
||||
<use>
|
||||
<common>true</common>
|
||||
</use>
|
||||
<picture xsi:type="core:PictureRef">
|
||||
<picture>CommonPicture.СтрелкаВправоЗеленая</picture>
|
||||
</picture>
|
||||
<action xsi:type="form:FormCommandHandlerContainer">
|
||||
<handler>
|
||||
<name>ВыполнитьКлиент</name>
|
||||
</handler>
|
||||
</action>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</formCommands>
|
||||
<formCommands>
|
||||
<name>ВыполнитьСервер</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Сервер</value>
|
||||
</title>
|
||||
<id>2</id>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Выполнить сервер</value>
|
||||
</toolTip>
|
||||
<use>
|
||||
<common>true</common>
|
||||
</use>
|
||||
<action xsi:type="form:FormCommandHandlerContainer">
|
||||
<handler>
|
||||
<name>ВыполнитьСервер</name>
|
||||
</handler>
|
||||
</action>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</formCommands>
|
||||
<commandInterface>
|
||||
<navigationPanel/>
|
||||
<commandBar/>
|
||||
</commandInterface>
|
||||
<extInfo xsi:type="form:ObjectFormExtInfo"/>
|
||||
</form:Form>
|
44
src/DataProcessors/Терминал/Forms/Форма/Module.bsl
Normal file
44
src/DataProcessors/Терминал/Forms/Форма/Module.bsl
Normal file
@@ -0,0 +1,44 @@
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ВыполнитьКлиент(Команда)
|
||||
|
||||
ПараметрыЗапускаПрограммы = ФайловаяСистемаКлиент.ПараметрыЗапускаПрограммы();
|
||||
ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина;
|
||||
ПараметрыЗапускаПрограммы.ПолучитьПотокВывода = Истина;
|
||||
ПараметрыЗапускаПрограммы.ПолучитьПотокОшибок = Истина;
|
||||
ПараметрыЗапускаПрограммы.Оповещение = Новый ОписаниеОповещения("ПриПолученииРезультатаЗапускаПрограммы", ЭтотОбъект);
|
||||
|
||||
ФайловаяСистемаКлиент.ЗапуститьПрограмму(КомандаЗапуска, ПараметрыЗапускаПрограммы);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПриПолученииРезультатаЗапускаПрограммы(Результат, ДополнительныеПараметры) Экспорт
|
||||
КодВозврата = Результат.КодВозврата;
|
||||
ПотокВывода = Результат.ПотокВывода;
|
||||
ПотокОшибок = Результат.ПотокОшибок;
|
||||
Вывод = ПотокВывода + Символы.ПС + ПотокОшибок;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
&НаСервере
|
||||
Процедура ВыполнитьСерверНаСервере()
|
||||
|
||||
ПараметрыЗапускаПрограммы = ФайловаяСистема.ПараметрыЗапускаПрограммы();
|
||||
ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина;
|
||||
ПараметрыЗапускаПрограммы.ПолучитьПотокВывода = Истина;
|
||||
ПараметрыЗапускаПрограммы.ПолучитьПотокОшибок = Истина;
|
||||
Результат = ФайловаяСистема.ЗапуститьПрограмму(КомандаЗапуска, ПараметрыЗапускаПрограммы);
|
||||
|
||||
ПотокВывода = Результат.ПотокВывода;
|
||||
ПотокОшибок = Результат.ПотокОшибок;
|
||||
Вывод = ПотокВывода + Символы.ПС + ПотокОшибок;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ВыполнитьСервер(Команда)
|
||||
Команды.Вставить(0, КомандаЗапуска, КомандаЗапуска, , );
|
||||
ВыполнитьСерверНаСервере();
|
||||
КонецПроцедуры
|
23
src/DataProcessors/Терминал/Терминал.mdo
Normal file
23
src/DataProcessors/Терминал/Терминал.mdo
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:DataProcessor xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="7100a79f-f0ee-40dd-9756-96cfed4a1d89">
|
||||
<producedTypes>
|
||||
<objectType typeId="0385b8f9-821b-4823-9d81-7915cc353cd8" valueTypeId="a6302f3c-f75f-45da-a771-031735b5d30a"/>
|
||||
<managerType typeId="23f9b3a1-54e0-4144-837e-61617cb599c0" valueTypeId="3484919c-e54f-45a6-a8f5-c5473945bbc0"/>
|
||||
</producedTypes>
|
||||
<name>Терминал</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Терминал</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
<defaultForm>DataProcessor.Терминал.Form.Форма</defaultForm>
|
||||
<forms uuid="54882814-5b98-4d9d-86ae-db34354afb54">
|
||||
<name>Форма</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Форма</value>
|
||||
</synonym>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</forms>
|
||||
</mdclass:DataProcessor>
|
@@ -89,4 +89,6 @@
|
||||
<content>Catalog.Команды</content>
|
||||
<content>Catalog.УчетныеДанные</content>
|
||||
<content>Enum.ТипыУчетныхДанных</content>
|
||||
<content>DataProcessor.Запуск</content>
|
||||
<content>DataProcessor.Терминал</content>
|
||||
</mdclass:Subsystem>
|
||||
|
Reference in New Issue
Block a user