Skip to content

Commit

Permalink
Merge branch 'release/v0.5.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
arkuznetsov committed Sep 9, 2019
2 parents 552cf74 + 7e292bb commit 41ee601
Show file tree
Hide file tree
Showing 78 changed files with 261,376 additions and 105,281 deletions.
138 changes: 125 additions & 13 deletions README.md

Large diffs are not rendered by default.

60 changes: 60 additions & 0 deletions dp/src/ExternalDataProcessors/Yabr/Forms/Форма/Form.form
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,49 @@
<textEdit>true</textEdit>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>РежимОтладки</name>
<id>9</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>РежимОтладки</segments>
</dataPath>
<extendedTooltip>
<name>РежимОтладкиРасширеннаяПодсказка</name>
<id>11</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>РежимОтладкиКонтекстноеМеню</name>
<id>10</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
Expand Down Expand Up @@ -218,6 +261,23 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>РежимОтладки</name>
<title>
<key>ru</key>
<value>Режим отладки</value>
</title>
<id>4</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ОбработатьДанные</name>
<title>
Expand Down
36 changes: 21 additions & 15 deletions dp/src/ExternalDataProcessors/Yabr/Forms/Форма/Module.bsl
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
//----------------------------------------------------------
//This Source Code Form is subject to the terms of the
//Mozilla Public License, v.2.0. If a copy of the MPL
//was not distributed with this file, You can obtain one
//at http://mozilla.org/MPL/2.0/.
//----------------------------------------------------------
//Codebase: https://github.com/ArKuznetsov/yabr.1c/
//----------------------------------------------------------
// ----------------------------------------------------------
// This Source Code Form is subject to the terms of the
// Mozilla Public License, v.2.0. If a copy of the MPL
// was not distributed with this file, You can obtain one
// at http://mozilla.org/MPL/2.0/.
// ----------------------------------------------------------
// Codebase: https://github.com/ArKuznetsov/yabr.1c/
// ----------------------------------------------------------

&НаКлиенте
Перем КаталогТекущейОбработки;
Expand Down Expand Up @@ -128,22 +128,28 @@
&НаСервере
Процедура ОбработатьДанныеНаСервере(Знач ПараметрыОбработкиДанных)

ОбработкаОбъект = ПолучитьВнешнююОбработкуПоИмени("МенеджерОбработкиДанных");
МенеджерОбработкиДанных = ПолучитьВнешнююОбработкуПоИмени("МенеджерОбработкиДанных");

ОбработкаОбъект.ДобавитьРабочийКаталог("$yabrDir", КаталогТекущейОбработки());
Лог = МенеджерОбработкиДанных.Лог();
Если РежимОтладки Тогда
Лог.УстановитьУровень(Лог.УровниЛога.Отладка);
КонецЕсли;

МенеджерОбработкиДанных.ДобавитьРабочийКаталог("$yabrDir", КаталогТекущейОбработки());

Файл = Новый Файл(ПутьКФайлуНастроек);
ОбработкаОбъект.ДобавитьРабочийКаталог("$settingsDir", Сред(Файл.Путь, 1, СтрДлина(Файл.Путь) - 1));
МенеджерОбработкиДанных.ДобавитьРабочийКаталог("$settingsDir", Сред(Файл.Путь, 1, СтрДлина(Файл.Путь) - 1));

Если ЗначениеЗаполнено(РабочийКаталог) Тогда
ОбработкаОбъект.ДобавитьРабочийКаталог("$workDir", РабочийКаталог);
МенеджерОбработкиДанных.ДобавитьРабочийКаталог("$workDir", РабочийКаталог);
Иначе
ОбработкаОбъект.ДобавитьРабочийКаталог("$workDir", ОбработкаОбъект.РабочийКаталог("$settingsDir"));
МенеджерОбработкиДанных.ДобавитьРабочийКаталог("$workDir",
МенеджерОбработкиДанных.РабочийКаталог("$settingsDir"));
КонецЕсли;

ОбработкаОбъект.УстановитьПараметрыОбработкиДанных(ПараметрыОбработкиДанных);
МенеджерОбработкиДанных.УстановитьПараметрыОбработкиДанных(ПараметрыОбработкиДанных);

ОбработкаОбъект.ОбработатьДанные();
МенеджерОбработкиДанных.ОбработатьДанные();

КонецПроцедуры // ОбработатьДанныеНаСервере()

Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.4.0
0.5.0
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
//----------------------------------------------------------
//This Source Code Form is subject to the terms of the
//Mozilla Public License, v.2.0. If a copy of the MPL
//was not distributed with this file, You can obtain one
//at http://mozilla.org/MPL/2.0/.
//----------------------------------------------------------
//Codebase: https://github.com/ArKuznetsov/yabr.1c/
//----------------------------------------------------------
// ----------------------------------------------------------
// This Source Code Form is subject to the terms of the
// Mozilla Public License, v.2.0. If a copy of the MPL
// was not distributed with this file, You can obtain one
// at http://mozilla.org/MPL/2.0/.
// ----------------------------------------------------------
// Codebase: https://github.com/ArKuznetsov/yabr.1c/
// ----------------------------------------------------------

Перем МенеджерОбработкиДанных; // ВнешняяОбработкаОбъект - обработка-менеджер, вызвавшая данный обработчик
Перем Идентификатор; // Строка - идентификатор обработчика, заданный обработкой-менеджером
Перем ПараметрыОбработки; // Структура - параметры обработки
Перем Лог;

Перем Данные; // Произвольный - произвольные данные для вывода в консоль
Перем ОбрабатыватьМассивПоэлементно; // Булево - Истина - входящий массив будет обработан поэлементно;
// Ложь - входящий массив будет обработан как 1 значение.
Expand Down Expand Up @@ -241,12 +243,7 @@

ЗначениеДляВывода = "";

Если ТипЗнч(Данные) = Тип("Массив")
ИЛИ ТипЗнч(Данные) = Тип("ФиксированныйМассив")
ИЛИ ТипЗнч(Данные) = Тип("Структура")
ИЛИ ТипЗнч(Данные) = Тип("ФиксированнаяСтруктура")
ИЛИ ТипЗнч(Данные) = Тип("Соответствие")
ИЛИ ТипЗнч(Данные) = Тип("ФиксированноеСоответствие") Тогда
Если ЭтоКоллекция(Данные) Тогда

ЗначениеДляВывода = ПолучитьЗначениеJSON(Данные);

Expand Down Expand Up @@ -362,7 +359,7 @@

#Область СлужебныеПроцедурыИФункции

// Функция - возвращает описание параметра обработки
// Процедура - добавляет описание параметра обработки
//
// Параметры:
// ОписаниеПараметров - Структура - структура описаний параметров
Expand Down Expand Up @@ -393,16 +390,51 @@

КонецПроцедуры // ДобавитьОписаниеПараметра()

// Функция - проверяет что значение является коллекцией
//
// Возвращаемое значение:
// Булево - Истина - данные являются коллекцией
// Ложь - в противном случае
//
Функция ЭтоКоллекция(Данные)

Возврат (ТипЗнч(Данные) = Тип("Массив")
ИЛИ ТипЗнч(Данные) = Тип("ФиксированныйМассив")
ИЛИ ТипЗнч(Данные) = Тип("Структура")
ИЛИ ТипЗнч(Данные) = Тип("ФиксированнаяСтруктура")
ИЛИ ТипЗнч(Данные) = Тип("Соответствие")
ИЛИ ТипЗнч(Данные) = Тип("ФиксированноеСоответствие"));

КонецФункции // ЭтоКоллекция()

// Функция - возвращает версию обработчика
//
// Возвращаемое значение:
// Строка - версия обработчика
//
Функция Версия() Экспорт

//@skip-warning
Возврат ЭтотОбъект.ПолучитьМакет("ВерсияОбработки").ПолучитьТекст();

КонецФункции // Версия()

#КонецОбласти // СлужебныеПроцедурыИФункции

#Область ОбработчикиСобытий

// Процедура - обработчик события "ПриСозданииОбъекта"
//
// Параметры:
// Менеджер - МенеджерОбработкиДанных - менеджер обработки данных - владелец
//
Процедура ПриСозданииОбъекта(Менеджер) Экспорт

УстановитьМенеджерОбработкиДанных(Менеджер);

Лог = МенеджерОбработкиДанных.Лог();

Лог.Информация("[%1]: Инициализирован обработчик", ТипЗнч(ЭтотОбъект));

КонецПроцедуры // ПриСозданииОбъекта()

#КонецОбласти // ОбработчикиСобытий
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.4.0
0.5.0
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
//----------------------------------------------------------
//This Source Code Form is subject to the terms of the
//Mozilla Public License, v.2.0. If a copy of the MPL
//was not distributed with this file, You can obtain one
//at http://mozilla.org/MPL/2.0/.
//----------------------------------------------------------
//Codebase: https://github.com/ArKuznetsov/yabr.1c/
//----------------------------------------------------------
// ----------------------------------------------------------
// This Source Code Form is subject to the terms of the
// Mozilla Public License, v.2.0. If a copy of the MPL
// was not distributed with this file, You can obtain one
// at http://mozilla.org/MPL/2.0/.
// ----------------------------------------------------------
// Codebase: https://github.com/ArKuznetsov/yabr.1c/
// ----------------------------------------------------------

Перем МенеджерОбработкиДанных; // ВнешняяОбработкаОбъект - обработка-менеджер, вызвавшая данный обработчик
Перем Идентификатор; // Строка - идентификатор обработчика, заданный обработкой-менеджером
Перем ПараметрыОбработки; // Структура - параметры обработки
Перем Лог;

Перем Данные; // Произвольный - произвольные данные для вывода в файл JSON
Перем ПутьКФайлу; // Строка - путь к файлу JSON для сохранения данных
Перем ОбрабатыватьКакМассив; // Булево - Истина - входящий массив будет обработан поэлементно;
Expand Down Expand Up @@ -139,6 +141,8 @@

Если ПараметрыОбработки.Свойство("ПутьКФайлу") Тогда
ПутьКФайлу = ПараметрыОбработки.ПутьКФайлу;
Файл = Новый Файл(ПараметрыОбработки.ПутьКФайлу);
ПутьКФайлу = Файл.ПолноеИмя;
КонецЕсли;

Если ПараметрыОбработки.Свойство("ОбрабатыватьКакМассив") Тогда
Expand Down Expand Up @@ -216,6 +220,8 @@
КоличествоНакопленныхДанных = ДанныеДляСохранения.Количество();
КонецЕсли;

Лог.Отладка("[%1]: Добавление данных ""%2"" для записи в файл ""%3""", ТипЗнч(ЭтотОбъект), Данные, ПутьКФайлу);

ДобавитьЗаписи(Данные);

Для й = КоличествоНакопленныхДанных По ДанныеДляСохранения.ВГраница() Цикл
Expand All @@ -241,7 +247,9 @@
Процедура ЗавершениеОбработкиДанных() Экспорт

ЗаписатьДанныеВФайл();


Лог.Информация("[%1]: Завершение обработки данных. Результат: ""%2"".", ТипЗнч(ЭтотОбъект), ПутьКФайлу);

ЗавершениеОбработкиДанныхВызовМенеджера();

КонецПроцедуры // ЗавершениеОбработкиДанных()
Expand Down Expand Up @@ -283,7 +291,7 @@
Возврат;
КонецЕсли;

ОбеспечитьКаталог(ПутьКФайлу, Истина);
МенеджерОбработкиДанных.ОбеспечитьКаталог(ПутьКФайлу, Истина);

Запись = Новый ЗаписьJSON();

Expand All @@ -293,6 +301,8 @@
НастройкиСериализации.ВариантЗаписиДаты = ВариантЗаписиДатыJSON.УниверсальнаяДата;
НастройкиСериализации.ФорматСериализацииДаты = ФорматДатыJSON.ISO;

Лог.Информация("[%1]: Запись данных в файл ""%2""", ТипЗнч(ЭтотОбъект), ПутьКФайлу);

Попытка
ЗаписатьJSON(Запись, ДанныеДляСохранения, НастройкиСериализации);
Исключение
Expand Down Expand Up @@ -341,7 +351,7 @@

#Область СлужебныеПроцедурыИФункции

// Функция - возвращает описание параметра обработки
// Процедура - добавляет описание параметра обработки
//
// Параметры:
// ОписаниеПараметров - Структура - структура описаний параметров
Expand Down Expand Up @@ -372,51 +382,34 @@

КонецПроцедуры // ДобавитьОписаниеПараметра()

// Функция - создает необходимые каталоги для указанного пути
//
// Параметры:
// Путь - Строка - проверяемый путь
// ЭтоФайл - Булево - Истина - в параметре "Путь" передан путь к файлу
// Ложь - передан каталог
//
// Возвращаемое значение:
// Булево - указанный путь доступен
//
Функция ОбеспечитьКаталог(Знач Путь, Знач ЭтоФайл = Ложь)

ВремФайл = Новый Файл(Путь);

Если ЭтоФайл Тогда
Путь = Сред(ВремФайл.Путь, 1, СтрДлина(ВремФайл.Путь) - 1);
ВремФайл = Новый Файл(Путь);
КонецЕсли;

Если НЕ ВремФайл.Существует() Тогда
Если ОбеспечитьКаталог(Сред(ВремФайл.Путь, 1, СтрДлина(ВремФайл.Путь) - 1)) Тогда
СоздатьКаталог(Путь);
Иначе
Возврат Ложь;
КонецЕсли;
КонецЕсли;

Если НЕ ВремФайл.ЭтоКаталог() Тогда
ВызватьИсключение СтрШаблон("По указанному пути ""%1"" не удалось создать каталог", Путь);
КонецЕсли;

Возврат Истина;

КонецФункции // ОбеспечитьКаталог()

// Функция - возвращает версию обработчика
//
// Возвращаемое значение:
// Строка - версия обработчика
//
Функция Версия() Экспорт

//@skip-warning
Возврат ЭтотОбъект.ПолучитьМакет("ВерсияОбработки").ПолучитьТекст();

КонецФункции // Версия()

#КонецОбласти // СлужебныеПроцедурыИФункции

#Область ОбработчикиСобытий

// Процедура - обработчик события "ПриСозданииОбъекта"
//
// Параметры:
// Менеджер - МенеджерОбработкиДанных - менеджер обработки данных - владелец
//
Процедура ПриСозданииОбъекта(Менеджер) Экспорт

УстановитьМенеджерОбработкиДанных(Менеджер);

Лог = МенеджерОбработкиДанных.Лог();

Лог.Информация("[%1]: Инициализирован обработчик", ТипЗнч(ЭтотОбъект));

КонецПроцедуры // ПриСозданииОбъекта()

#КонецОбласти // ОбработчикиСобытий
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.4.0
0.5.0
Loading

0 comments on commit 41ee601

Please sign in to comment.