Внешняя компонента для 1С 8.3 с использованием Native API написанная на языке Rust реализует обертку над библиотекой jsonschema.
| Свойство | Property | Описание | Чтение | Запись |
|---|---|---|---|---|
| Версия | version | Текущая версия компоненты | + | - |
| Свойство | Property | Описание | Чтение | Запись |
|---|---|---|---|---|
| Объект | instance | Ошибочный объект/элемент | + | - |
| ПутьОбъекта | instance_path | Путь к объекту | + | - |
| ПутьСхемы | schema_path | Путь к правилу в схеме | + | - |
| ВидОшибки | kind | + | - | |
| ПараметрыОшибки | kind_properties | + | - | |
| ТекстОшибки | error_text | Развернутый текст ошибки | + | - |
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| schema | Строка | + | JSON схема |
| draft | Строка | - | Версия Draft |
success - Булево - Успешная инициализация
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| instance | Строка | + | Валидируемый JSON |
Отсутствуют
success - Булево - Успешное получение следующей ошибки
Текст ошибки вызвавшей исключительную ситуацию
Отсутствуют.
error_text - Строка - Текст ошибки
Если Не ПодключитьВнешнююКомпоненту(ПутьККомпоненте, "Scope", ТипВнешнейКомпоненты.Native) Тогда
ВызватьИсключение "Ошибка подключения внешней компоненты";
КонецЕсли;
Компонента = Новый("Addin.Scope.BitJsonschema");
Попытка
Если Не Компонента.Инициализировать(Объект.Схема) Тогда
Пока Компонента.СледующаяОшибка() Цикл
ТекстОшибки = Компонента.ТекстОшибки;
Сообщить(СтрШаблон("Ошибка чтения схемы: %1", ТекстОшибки));
КонецЦикла;
Иначе
Если Не Компонента.Валиден(Объект.JSON) Тогда
Сообщить("Ошибка валидации:");
Пока Компонента.СледующаяОшибка() Цикл
ТекстОшибки = Компонента.ТекстОшибки;
Сообщить(СтрШаблон(" %1", ТекстОшибки));
КонецЦикла;
КонецЕсли;
КонецЕсли;
Исключение
ТекстОшибки = ИнформацияОбОшибке().Описание;
Сообщить(ТекстОшибки);
ТекстОшибки = Компонента.GetLastError();
Если Не ПустаяСтрока(ТекстОшибки) Тогда
Сообщить(ТекстОшибки);
КонецЕсли;
КонецПопытки;см. Cargo.toml