Имя: Пароль:
1C
1C 7.7
v7: JSON и 1С7.7 (продолжение)
, ,
0 ovs199
 
23.03.19
22:24
В теме JSON и 1С7.7 рассматривается доработка 1С 77 для разборки Json файла. Сделал как там написано.Все получилось,только пришлось добавить в глобальном модуле экспортную переменную "Перем JSON_ctrl Экспорт" и условие "Если JSON_ctrl <> Неопределено Тогда" поменять на "Если НЕ (ПустоеЗначение(JSON_ctrl)=1) Тогда". Но при попытке передать в глобальный модуль объект "Текст" в формате Json "РезультатРазбора=сз_FromJSON(Текст)" получаю ошибку: "obj = JSON_ctrl.run("parseJSON", стр); {Глобальный модуль(243)}: Плохой тип переменной".
Что я делаю не так?
1 Garykom
 
гуру
23.03.19
22:35
Ты понимаешь зачем этот код нужен в начале?

Процедура JSON_Init()
    Если JSON_ctrl <> Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    JSON_ctrl = СоздатьОбъект("MSScriptControl.ScriptControl");
2 Garykom
 
гуру
23.03.19
23:01
Даже интересно неужели еще никто не написал парсера JSON на языке 1С не используя внешние хрени?
Да оно будет тормозно но из спортивного интереса?
3 Злопчинский
 
23.03.19
23:09
На исе лежат пару разработок вроде
4 Garykom
 
гуру
23.03.19
23:15
Нативное только http://catalog.mista.ru/public/119601/ но оно для 8-ки.
Да думаю можно адаптировать для 77
5 dmitryds
 
23.03.19
23:16
(0) текст - это точно текст или элемент формы?)))
6 Garykom
 
гуру
23.03.19
23:17
Хотя вот еще http://catalog.mista.ru/public/316985/ тоже для 8
7 MWWRuza
 
гуру
23.03.19
23:20
Я в вот этой обработке: http://catalog.mista.ru/public/608035/
уже давно использую это: http://catalog.mista.ru/public/271165/
Да, не совсем средствами 1С делается, а "разбор идёт средствами операционной системы, а не 1С, что существенно увеличивает скорость работы парсера."
Ну, и что - главное работает, и вполне приемлемо.
8 ovs199
 
24.03.19
00:40
(1) Подготавливается процедура по обработке.
(5) Это объект "Текст" который я выбираю из каталога "Текст.Открыть(КаталогФС+ФайлФС)".
9 Garykom
 
гуру
24.03.19
01:21
И думаешь MSScriptControl.ScriptControl знает что такое объект "Текст"  ?
Строку ему скормить не пробовал? Но в 77 со строками проблема их максимальной длины.
Короче придется скрипт на jscript слегка дорабатывать, засунуть туда переменную и пару процедур по ее очистке и заполнению добавлением из строк полученных из Текст.
10 MetaDon
 
24.03.19
08:15
(2) я делал разборку строковыми функциями json с сайта Росреестра и норм
(9) ага, и как еще этот скрипт работает) с 3 ===?
11 d4rkmesa
 
24.03.19
10:27
(4) Кстати, да, для 8.2 лучший вариант вообще из того что находил, думаю можно портировать на  7.7 при желании.
12 trad
 
24.03.19
11:36
КОП для 1с++
https://www.dropbox.com/s/pmpgyd068mzzu7k/kop1c_JSON.7z?dl=0
экспорт:
ЧтениеJSON
ЗаписьJSON
13 trad
 
24.03.19
11:37
//defcls.prm
//#класс JSON = КОП_JSON.ert
//#{
//#  Неопределенный ЧтениеJSON(Строка Стр, Число Поз = 1);
//#  Строка ЗаписьJSON(Неопределенный Значение, Число ПереносСтрок = 0, Строка Отступ = "");
//#}

//Соответствие значений JSON значениям 1С
//Запись - Структура
//Массив - СписокЗначений
//Число - Число
//Строка - Строка с поддержкой  \', \", \\, \/, \t, \n, \r, \f, \b; без поддержки \uFFFF.
//Литерал true - "true"
//Литерал false - "false"
//Литерал null - "null"
14 Shur1cIT
 
24.03.19
16:02
(0) насколько помню клюшки могут с JS работать через  MSScriptControl
соответственно в JS есть механизм работы с json и соответственно есть возможность запросы различные на сервер слать