diff --git a/README.md b/README.md index 4f2d453..02196f4 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ oproxy init ```bsl Функция ОбработкаПомещенияВХранилище(ПараметрыЗапроса) Экспорт СообщениеОбОшибке = ""; - Если ПараметрыЗапроса.ИмяБазы = "baza1" Тогда + Если ПараметрыЗапроса.ИмяСистемы = "baza1" Тогда Если НЕ СтрНачинаетсяС(ПараметрыЗапроса.Комментарий, "ERP-") Тогда СообщениеОбОшибке = "Комментарий должен начинаться с ""ERP-""!"; Иначе diff --git "a/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\237\321\200\320\276\320\272\321\201\320\270\320\241\320\265\321\200\320\262\320\265\321\200\320\260_\320\237\321\200\320\270\320\274\320\265\321\200.os" "b/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\237\321\200\320\276\320\272\321\201\320\270\320\241\320\265\321\200\320\262\320\265\321\200\320\260_\320\237\321\200\320\270\320\274\320\265\321\200.os" index cdaf1fe..55978e1 100644 --- "a/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\237\321\200\320\276\320\272\321\201\320\270\320\241\320\265\321\200\320\262\320\265\321\200\320\260_\320\237\321\200\320\270\320\274\320\265\321\200.os" +++ "b/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\237\321\200\320\276\320\272\321\201\320\270\320\241\320\265\321\200\320\262\320\265\321\200\320\260_\320\237\321\200\320\270\320\274\320\265\321\200.os" @@ -45,7 +45,7 @@ //СИСТЕМНЫЙ КОД --- //СИСТЕМНЫЙ КОД +++ -Функция ПостОбработкаПомещенияВХранилище() Экспорт +Функция ПостОбработкаПомещенияВХранилище(ПараметрыЗапроса) Экспорт РезультатБулево = Истина; //СИСТЕМНЫЙ КОД --- diff --git a/packagedef b/packagedef index e0009cb..4248504 100644 --- a/packagedef +++ b/packagedef @@ -5,11 +5,11 @@ Описание.Имя("oproxy") - .Версия("0.0.6") + .Версия("0.0.7") .Автор("Юрий Камисов") .АдресАвтора("https://github.com/infina15") .Описание("TCP прокси-сервер хранилища конфигураций 1С") - .ВерсияСреды("1.9.1") + .ВерсияСреды("1.9.2") .ВключитьФайл("src") .ВключитьФайл("tests") .ВключитьФайл("tasks") @@ -17,6 +17,7 @@ .ВключитьФайл("packagedef") .ЗависитОт("autumn", "4.0.0") .ЗависитОт("autumn-cli", "1.0.6") + .ЗависитОт("autumn-logos", "1.2.0") .ЗависитОт("asserts", "1.4.0") .ЗависитОт("1commands", "1.5.0") .РазработкаЗависитОт("1testrunner") diff --git a/src/main.os b/src/main.os index d9ed0c7..790cc34 100644 --- a/src/main.os +++ b/src/main.os @@ -1,5 +1,6 @@ #Использовать autumn #Использовать autumn-cli +#Использовать autumn-logos #Использовать ".." Поделка = Новый Поделка; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\233\320\276\320\263\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\233\320\276\320\263\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217.os" new file mode 100644 index 0000000..9bb6b70 --- /dev/null +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\233\320\276\320\263\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217.os" @@ -0,0 +1,5 @@ +&Аннотация("ЛогОпрокси") +&Лог("oscript.lib.oproxy") +Процедура ПриСозданииОбъекта() + +КонецПроцедуры \ No newline at end of file diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\241\320\276\320\265\320\264\320\270\320\275\320\265\320\275\320\270\320\271.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\241\320\276\320\265\320\264\320\270\320\275\320\265\320\275\320\270\320\271.os" index 73ee397..1ee84bb 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\241\320\276\320\265\320\264\320\270\320\275\320\265\320\275\320\270\320\271.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\241\320\276\320\265\320\264\320\270\320\275\320\265\320\275\320\270\320\271.os" @@ -4,6 +4,9 @@ Перем ПриветствиеХранилища; Перем ПустыеДД; +&ЛогОпрокси +Перем Лог; + &Желудь Процедура ПриСозданииОбъекта() ПриветствиеХранилища = ПолучитьДвоичныеДанныеИзHexСтроки("53F5C61A7B"); @@ -11,18 +14,27 @@ КонецПроцедуры Процедура ОбработатьСоединение(Соединение_Конфигуратор) Экспорт + Соединение_Хранилище = Неопределено; Пока Соединение_Конфигуратор.Активно Цикл - Если ИзКонфигуратораВХранилище(Соединение_Конфигуратор, Соединение_Хранилище) Тогда + + ПараметрыЗапросаПостОбработка = Неопределено; + Если ИзКонфигуратораВХранилище(Соединение_Конфигуратор, Соединение_Хранилище, ПараметрыЗапросаПостОбработка) Тогда ИзХранилищаВКонфигуратор(Соединение_Конфигуратор, Соединение_Хранилище); - ПостОбработкаПомещенияВХранилище(); КонецЕсли; + + Если ПараметрыЗапросаПостОбработка <> Неопределено Тогда + ПостОбработкаПомещенияВХранилище(ПараметрыЗапросаПостОбработка); + КонецЕсли; + КонецЦикла; + Соединение_Конфигуратор.Закрыть(); Соединение_Хранилище.Закрыть(); + КонецПроцедуры -Функция ИзКонфигуратораВХранилище(Соединение_Конфигуратор, Соединение_Хранилище) +Функция ИзКонфигуратораВХранилище(Соединение_Конфигуратор, Соединение_Хранилище, ПараметрыЗапросаПостОбработка) ДанныеСоединения = Неопределено; ЕстьПодключениеКХранилищу = Соединение_Хранилище <> Неопределено; Если НЕ ЕстьПодключениеКХранилищу Тогда @@ -41,7 +53,8 @@ ПараметрыЗапроса = ОбработкаДанных.ПолучитьПараметрыЗапроса(ДанныеСоединения); Если ПараметрыЗапроса <> Неопределено И ПараметрыЗапроса.Проверять = Истина Тогда - ПродолжитьСоединение = ОбработатьПроверяемыйЗапрос(Соединение_Конфигуратор, Соединение_Хранилище, ДанныеСоединения); + ПродолжитьСоединение = ОбработатьПроверяемыйЗапрос(Соединение_Конфигуратор, Соединение_Хранилище, + ДанныеСоединения, ПараметрыЗапросаПостОбработка); Возврат ПродолжитьСоединение; КонецЕсли; КонецЕсли; @@ -53,10 +66,13 @@ ЭтоКонецСообщения = ОбработкаДанных.ЕстьКонецСообщения(ДанныеСоединения); КонецЕсли; КонецЦикла; + Возврат НЕ ЭтоПинг; + КонецФункции -Функция ОбработатьПроверяемыйЗапрос(Соединение_Конфигуратор, Соединение_Хранилище, ДанныеСоединения) +Функция ОбработатьПроверяемыйЗапрос(Соединение_Конфигуратор, Соединение_Хранилище, + ДанныеСоединения, ПараметрыЗапросаПостОбработка) МассивДДЗапроса = Новый Массив; МассивДДЗапроса.Добавить(ДанныеСоединения); Пока НЕ ОбработкаДанных.ЕстьКонецСообщения(ДанныеСоединения) Цикл @@ -69,23 +85,29 @@ Попытка Если ПараметрыЗапроса.ИмяМетода = "DevDepot_commitObjects" Тогда ТекстОшибки = ПроверкиПроксиСервера.ОбработкаПомещенияВХранилище(ПараметрыЗапроса); + ПараметрыЗапросаПостОбработка = ПараметрыЗапроса; ИначеЕсли ПараметрыЗапроса.ИмяМетода = "DevDepot_changeVersion" Тогда ТекстОшибки = ПроверкиПроксиСервера.ОбработкаИзмененияВерсииХранилища(ПараметрыЗапроса); + ПараметрыЗапросаПостОбработка = ПараметрыЗапроса; КонецЕсли; Исключение ТекстОшибки = СтрШаблон("Ошибка вызова функции в файле ""ПроверкиПроксиСервера.os"": %1", ОписаниеОшибки()); + Лог.Ошибка(ТекстОшибки); КонецПопытки; ЕстьОшибка = НЕ ПустаяСтрока(ТекстОшибки); Если ЕстьОшибка Тогда ДД = ОбработкаДанных.ПолучитьДвоичныеДанныеОтветаОшибки(ТекстОшибки); Соединение_Конфигуратор.ОтправитьДвоичныеДанные(ДД); + ПараметрыЗапросаПостОбработка = Неопределено; Возврат Ложь; Иначе Для Каждого ДанныеСоединения Из МассивДДЗапроса Цикл Соединение_Хранилище.ОтправитьДвоичныеДанные(ДанныеСоединения); КонецЦикла; КонецЕсли; + Возврат НЕ ЕстьОшибка; + КонецФункции Процедура ИзХранилищаВКонфигуратор(Соединение_Конфигуратор, Соединение_Хранилище) @@ -104,6 +126,13 @@ Соединение_Хранилище.ПрочитатьДвоичныеДанные(); КонецПроцедуры -Процедура ПостОбработкаПомещенияВХранилище() - РезультатБулево = ПроверкиПроксиСервера.ПостОбработкаПомещенияВХранилище(); -КонецПроцедуры +Процедура ПостОбработкаПомещенияВХранилище(ПараметрыЗапроса) + + Попытка + РезультатБулево = ПроверкиПроксиСервера.ПостОбработкаПомещенияВХранилище(ПараметрыЗапроса); + Исключение + ТекстОшибки = СтрШаблон("Ошибка вызова функции пост обработки в файле ""ПроверкиПроксиСервера.os"": %1", ОписаниеОшибки()); + Лог.Ошибка(ТекстОшибки); + КонецПопытки; + +КонецПроцедуры \ No newline at end of file