SkillAgentSearch skills...

Yabr.os

Чтение скобочного формата файлов 1С (oscript)

Install / Use

/learn @arkuznetsov/Yabr.os
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

GitHub release GitHub license Build Status Quality Gate Coverage Tech debt

<a href="https://checkbsl.org"><img alt="Checked by Silver Bulleters SonarQube BSL plugin" src="https://web-files.do.bit-erp.ru/sonar/b_t.png" align="right" style="width:400px"/></a>

Yet another brace reader (os): Чтение "скобкофайлов" 1С (yabr.os)

Приложение oscript для чтения скобочных файлов 1С, аналог обработок 1С (yabr.1c).

Общие сведения

  • Чтение и обработка данных выполняется последовательно (построчно)
  • Это эксперимент по реализации конвейерной обработки данных (pipeline), т.е. каждая порция данных, полученная в текущей обработке передается в указанный(-ные) в настройках обработчик(-и) для последующе обработки
  • Настройки описываются в формате JSON (см. Файл настроек)
  • разработка ведется в формате EDT

Обрабатываемые форматы

  • Журнал регистрации 1С (LGP) и словарь журнала регистрации (LGF)
  • Настройки информационных баз из файла настроек кластера 1С (1CV8Clst.lst)
  • Список версий хранилища из отчета по версиям хранилища (MXL)
  • Результаты замера производительности (PFF)

Команды

  • process (p) - выполняет обработку данных настройкам из файла (.json)
    • <Путь> - путь к файлу настроек (по умолчанию ./ybrsettings.json)
    • --work-dir <путь к рабочему каталогу (по умолчанию: текущий каталог)>
  • test (t) - выполняет чтение указанного файла в скобочном формате 1С, выводит результаты в консоль (возможен замер времени)
    • <Путь> - путь к файлу в скобочном формате 1С
    • --start-row <начальная строка для чтения (по умолчанию 1)>
    • --mesure-rate <частота замера скорости выполнения (по умолчанию 100)>

Управляющие обработки

МенеджерОбработкиДанных.os

Управляющая обработка-менеджер, читает настройки, запускает и управляет обработкой данных.

yabr.os

Обработка для интерактивного указания файла настроек и запуска обработки данных.

<a id="api"></a> Стандартный программный интерфейс обработки

Функция ПринимаетДанные() - признак возможности обработки, принимать входящие данные

Функция ВозвращаетДанные() - признак возможности обработки, возвращать обработанные данные

Функция ОписаниеПараметров() - возвращает структуру с описанием параметров обработки

Функция МенеджерОбработкиДанных() - возвращает ссылку на вызывающую/управляющую обработку - менеджер обработки данных

Процедура УстановитьМенеджерОбработкиДанных(Знач НовыйМенеджерОбработкиДанных) - устанавливает ссылку на вызывающую/управляющую обработку - менеджер обработки данных

Функция Идентификатор() - возвращает идентификатор обработки, установленный при инициализации в менеджере обработки данных

Процедура УстановитьИдентификатор(Знач НовыйИдентификатор) - устанавливает идентификатор обработки, вызывается при инициализации в менеджере обработки данных

Функция ПараметрыОбработкиДанных() - возвращает значения параметров обработки данных

Процедура УстановитьПараметрыОбработкиДанных(Знач НовыеПараметры) - устанавливает значения параметров обработки данных

Функция ПараметрОбработкиДанных(Знач ИмяПараметра) - возвращает значение указанного параметра обработки данных

Процедура УстановитьПараметрОбработкиДанных(Знач ИмяПараметра, Знач Значение) - устанавливает значение указанного параметра обработки

Процедура УстановитьДанные(Знач ВходящиеДанные) - устанавливает данные для обработки

Процедура ОбработатьДанные() - выполняет обработку данных

Функция РезультатОбработки() - возвращает результаты обработки данных

Процедура ЗавершениеОбработкиДанных() - выполняет действия при окончании обработки данных и оповещает обработку-менеджер о завершении обработки данных

Обработчики данных

ПоискНастроекКластера.os

Ищет в стандартном расположении или в указанных каталогах файлы настроек кластера серверов 1С (1cv8lst.lst) и передает найденные файлы далее на обработку.

Параметры

  • ОписанияКластеров - массив путей к каталогам, в которых будет выполняться поиск файлов настроек кластеров 1С. Если не указан, то выполняется поиск в стандартных расположениях (%ProgramFiles%\1Cv8\srvinfo).

ЧтениеКаталога.os

Читает список файлов из указанного каталога по указанной маске и передает для дальнейшей обработки по одному.

Параметры

  • Путь - Путь к каталогу для файлов для обработки. Значение по умолчанию: <каталог запуска обработки>;

  • МаскиФайлов - Маски поиска файлов, разделенные "";". Значение по умолчанию: ".";

  • ИскатьВПодкаталогах - Флаг поиска в подкаталогах. Значение по умолчанию: Ложь;

  • ПорядокСортировкиПоИмени - Указывает порядок сортровки найденных в каталоге файлов для дальнейшей обработки:

    • asc - файлы сортируются по возрастанию имени
    • desc - файлы сортируются по убыванию имени
    • <прочее> (по умолчанию) - сортировка не выполняется

    сортировка выполняется в пределах каждой указанной маски файлов.

ЧтениеСкобкоФайла.os

Читает скобочный файл в иерархию структур и массивов:

  • чтение выполняется последовательно по строкам
  • ошибки формата файла не проверяются и игнорируются, что сможет прочитать. то и получится
  • элементы простых типов (число/строка) записываются в массив текущего уровня как есть
  • элементы - массивы (ограниченные "{...}") "оборачиваются" в структуру вида:
    |-> Элемент
    |      |- Родитель    - родительский элемент (Неопределено - для корневого элемента)
    |______|________|
    |      |- Уровень     - уровень элемента в иерархии (0 - корневой элемент)
    |      |- Индекс      - индекс элемента в родительском элементе
    |      |- НачСтрока   - номер начальной строки диапазона, на основании которому создан текущий и подчиненные элементы
    |      |- КонСтрока   - номер конечной строки диапазона, на основании которому создан текущий и подчиненные элементы
    |      |- Значения    - массив дочерних элементов
    |_______________|
  • Для закрывающихся скобок ("}") выполняется обратный вызов МенеджерОбработкиДанных.ПродолжениеОбработкиДанных (МенеджерОбработкиДанных.os) для передачи прочитанных данных на дальнейшую обработку

Параметры

  • ПутьКФайлу - (обязательный, если обработчик стоит первым в цепочке) Имя файла, файл, поток данных для чтения;
  • УровниЗаписей - Массив уровней записей (по вложенности), которые будут переданы на дальнейшую обработку. Значение по умолчанию: [1];
  • НачальнаяСтрока - Номер строки входящих данных с которой будет начато чтение. Значение по умолчанию: 1;
  • КаталогПозицийЧтения - Путь к каталогу для сохранения позиций начала чтения. Если не указан, то позиции чтения сохраняться не будут;
  • ЧастотаЗамераСкоростиВыполнения - Количество прочитанных записей для которых будет выполнен расчет скорости чтения данных. Если указан 0, то расчет скорости выполняться не будет. Значение по умолчанию: 0.

ЧтениеСпискаИБ.os

Принимает на вход данные в том виде как их возвращает обработка чтения "скобкофайлов" и обрабатывает элементы данных как запись настройки информационной базы в файле настроек кластера 1С.

Параметры

  • УровеньЭлементов - (служебный, не требует установки) Номер уровня вложенности элементов в структуре данных, прочитанной из скобкофайла, которые будут прочитаны и обработаны. Значение: 3;
  • ИндексЭлементаРодителя - (служебный, не требует установки) Индекс родительского элемента в структуре данных, подчиненные элементы которого будут прочитаны и обработаны. Значение: 2;
  • ПутьКФайлу - Путь к файлу списка ИБ кластера 1С. Требуется для вывода информации о каталоге кластера 1С.

ЧтениеСловаряЖР.os

Принимает на вход данные в том виде как их возвращает обработка чтения "скобкофайлов" и обрабатывает каждый элемент данных как запись словаря текстового журнала регистрации.

Параметры

  • УровеньЭлементов - (служебный, не требует установки) Номер уровня вложенности элементов в структуре данных, прочитанной из скобкофайла, которые будут прочитаны и обработаны. Значение: 1;
  • ИндексЭлементаРодителя - (служебный, не требует установки) Индекс родительского элемента в структуре данных, подчиненные элементы которого будут прочитаны и обработаны. Значение: 0;

ЧтениеЖР.os

Принимает на вход данные в том виде как их возвращает обработка чтения "скобкофайлов" и обрабатывает каждый элемент данных как запись текстового журнала регистрации.

Параметры

  • УровеньЭлементов - (служебный, не требует установки) Номер уровня вложенности элементов в структуре данных, прочитанной из скобкофайла, которые будут прочитаны и обработаны. Значение: 1;
  • ИндексЭлементаРодителя - (служебный, не требует установки) Индекс родительского элемента в структуре данных, подчиненные элементы которого будут прочитаны и обработаны. Значение: 0;
  • Словари - (обязательный) Словари данных журнала регистрации 1С. Задается в виде структуры <имя словаря>:[<ключ элемента>:<значение элемента>];
  • **ВыгружатьК
View on GitHub
GitHub Stars37
CategoryDevelopment
Updated1y ago
Forks16

Languages

1C Enterprise

Security Score

80/100

Audited on Dec 20, 2024

No findings