Приложение oscript для чтения скобочных файлов 1С, аналог обработок 1С (yabr.1c).
Управляющая обработка-менеджер, читает настройки, запускает и управляет обработкой данных.
Обработка для интерактивного указания файла настроек и запуска обработки данных.
Функция ПринимаетДанные() - признак возможности обработки, принимать входящие данные
Функция ВозвращаетДанные() - признак возможности обработки, возвращать обработанные данные
Функция ОписаниеПараметров() - возвращает структуру с описанием параметров обработки
Функция МенеджерОбработкиДанных() - возвращает ссылку на вызывающую/управляющую обработку - менеджер обработки данных
Процедура УстановитьМенеджерОбработкиДанных(Знач НовыйМенеджерОбработкиДанных) - устанавливает ссылку на вызывающую/управляющую обработку - менеджер обработки данных
Функция Идентификатор() - возвращает идентификатор обработки, установленный при инициализации в менеджере обработки данных
Процедура УстановитьИдентификатор(Знач НовыйИдентификатор) - устанавливает идентификатор обработки, вызывается при инициализации в менеджере обработки данных
Функция ПараметрыОбработкиДанных() - возвращает значения параметров обработки данных
Процедура УстановитьПараметрыОбработкиДанных(Знач НовыеПараметры) - устанавливает значения параметров обработки данных
Функция ПараметрОбработкиДанных(Знач ИмяПараметра) - возвращает значение указанного параметра обработки данных
Процедура УстановитьПараметрОбработкиДанных(Знач ИмяПараметра, Знач Значение) - устанавливает значение указанного параметра обработки
Процедура УстановитьДанные(Знач ВходящиеДанные) - устанавливает данные для обработки
Процедура ОбработатьДанные() - выполняет обработку данных
Функция РезультатОбработки() - возвращает результаты обработки данных
Процедура ЗавершениеОбработкиДанных() - выполняет действия при окончании обработки данных и оповещает обработку-менеджер о завершении обработки данных
Ищет в стандартном расположении или в указанных каталогах файлы настроек кластера серверов 1С (1cv8lst.lst) и передает найденные файлы далее на обработку.
Читает список файлов из указанного каталога по указанной маске и передает для дальнейшей обработки по одному.
Читает скобочный файл в иерархию структур и массивов:
|-> Элемент
| |- Родитель - родительский элемент (Неопределено - для корневого элемента)
|______|________|
| |- Уровень - уровень элемента в иерархии (0 - корневой элемент)
| |- Индекс - индекс элемента в родительском элементе
| |- НачСтрока - номер начальной строки диапазона, на основании которому создан текущий и подчиненные элементы
| |- КонСтрока - номер конечной строки диапазона, на основании которому создан текущий и подчиненные элементы
| |- Значения - массив дочерних элементов
|_______________|
Принимает на вход данные в том виде как их возвращает обработка чтения "скобкофайлов" и обрабатывает элементы данных как запись настройки информационной базы в файле настроек кластера 1С.
Принимает на вход данные в том виде как их возвращает обработка чтения "скобкофайлов" и обрабатывает каждый элемент данных как запись словаря текстового журнала регистрации.
Принимает на вход данные в том виде как их возвращает обработка чтения "скобкофайлов" и обрабатывает каждый элемент данных как запись текстового журнала регистрации.
Принимает на вход данные в том виде как их возвращает обработка чтения "скобкофайлов" и обрабатывает как элементы данных табличного документа (MXL) с отчетом по версиям хранилища 1С.
Принимает на вход данные в том виде как их возвращает обработка чтения "скобкофайлов" и обрабатывает каждый элемент данных как запись замера производительности 1С (PFF).
Принимает на вход данные в виде структуры или массива структур, проверяет их на соответствие заданным условиям и если условия выполняются, передает на дальнейшую обработку.
"ИмяОбработки":"ФильтрДанных",
"Параметры":{
"Условия":{
"Группа":"ИЛИ",
"Условия": [
{
"ЛевоеЗначение":"&Важность",
"ВидСравнения":"ВСписке",
"ПравоеЗначение": [
"Ошибка"
]
},
{
"Группа":"И",
"Условия": [
{
"ЛевоеЗначение":"&СтатусТранзакции",
"ВидСравнения":"Равно",
"ПравоеЗначение": "Зафиксирована"
},
{
"ЛевоеЗначение":"&ПредставлениеСобытия",
"ВидСравнения":"Содержит",
"ПравоеЗначение": "Данные"
}
]
}
]
}
},
Обработчик вывода данных, любые входящие данные преобразует в формат JSON и выводит в консоль.
Обработчик вывода данных, любые входящие данные преобразует в формат JSON и выводит в указанный файл.
Обработчик вывода данных, любые входящие данные преобразует в формат JSON и отправляет в индекс Elastic.
Файл настроек описывает последовательность вызова обработчиков для обработки данных. обработчик = обработка 1С реализующая вышеуказанный API.
|-> Описание обработчика
| |- ИдОбработчика - строковый идентификатор обработчика (необязательный)
| |- ИмяОбработки - имя класса обработчика
| |- ПутьКОбработке - путь к oscript-файлу класса обработчика
| |- Параметры - структура параметров обработки
| | |- <просто параметр> - параметр простого типа
| | |- <параметр из данных обработчика> - параметр вычисляемый обработчиком
| | | |- ИдОбработчика - идентификатор обработчика из которого будет получен параметр
| | | |- ФункцияПолученияЗначения - имя функции получения значения параметра (по умолчанию: "ПолучитьРезультат")
| |- Обработчики - массив обработчиков данных полученных на текущем уровне
| |- <Описание обработчика>* - структура, аналогичная данной
|____________________|
Пример файла настроек чтения словарей журнала регистрации
{
// путь к обработке чтения файлов скобочного формата
"ИмяОбработки":"ЧтениеСкобкофайла",
"Параметры":{
// путь к файлу словарей журнала регистрации
"ПутьКФайлу":"$settingsDir\\1CV8.lgf",
// обрабатываемые уровни вложенности "скобкофайла"
"УровниЗаписей":[1]
},
"Обработчики":[
{
// путь к обработке чтения файла словарей журнала регистрации, обработчик будет вызван, для каждой прочитанной записи файла словарей
"ИмяОбработки":"ЧтениеСловаряЖР",
"Обработчики":[
{
// путь к обработке вывода произвольных данных в файл JSON, обработчик будет вызван, для каждой прочитанной записи словаря журнала регистрации
"ИмяОбработки":"ВыводДанныхВФайлJSON",
"Параметры":{
// путь к файлу для сохранения результатов
"ПутьКФайлу":"$yabrDir\\..\\testdata\\jornal-dic2jsonfile-result.json"
}
}
]
}
]
}
Больше примеров расположены в каталоге examples.