Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Функция json(Объект)
- Тип = ТипЗнч(Объект);
- Если
- Тип = Тип("Массив")
- ИЛИ Тип = Тип("ТаблицаЗначений")
- ИЛИ Тип = Тип("СписокЗначений")
- Тогда
- Количество = Объект.Количество();
- Результат = "[";
- Для н = 0 ПО Количество - 1 Цикл
- Результат = Результат + json(Объект[н]) + ?(н < Количество - 1, ", ", "");
- КонецЦикла;
- Результат = Результат + "]";
- Возврат Результат;
- ИначеЕсли
- Тип = Тип("Структура")
- ИЛИ Тип = Тип("Соответствие") Тогда
- н = 0;
- Количество = Объект.Количество();
- Результат = "{";
- Для Каждого Пара Из Объект Цикл
- Результат = Результат + json(Пара.Ключ) + ": " + json(Пара.Значение) + ?(н < Количество - 1, ", ", "");
- н = н + 1;
- КонецЦикла;
- Результат = Результат + "}";
- Возврат Результат;
- ИначеЕсли Тип = Тип("СтрокаТаблицыЗначений") Тогда
- Результат = "{";
- Колонки = Объект.Владелец().Колонки;
- Количество = Колонки.Количество();
- Для н = 0 ПО Количество - 1 Цикл
- Ключ = Колонки[н].Имя;
- Результат = Результат + json(Ключ) + ": " + json(Объект[Ключ]) + ?(н < Количество - 1, ", ", "");
- КонецЦикла;
- Результат = Результат + "}";
- Возврат Результат;
- ИначеЕсли Тип = Тип("ЭлементСпискаЗначений") Тогда
- Возврат json(Объект.Значение);
- ИначеЕсли Тип = Тип("Строка") Тогда
- Результат = Объект;
- Результат = СтрЗаменить(Результат, "\", "\\");
- Результат = СтрЗаменить(Результат, "/", "\/");
- Результат = СтрЗаменить(Результат, """", "\""");
- Результат = СтрЗаменить(Результат, Символы.ВК, "\r");
- Результат = СтрЗаменить(Результат, Символы.Таб, "\t");
- Результат = СтрЗаменить(Результат, Символы.ПС, "\n");
- Возврат """" + Результат + """";
- ИначеЕсли Тип = Тип("Число") Тогда
- Возврат Формат(Объект, "ЧРД=.; ЧН=0; ЧГ=0");
- ИначеЕсли Тип = Тип("Булево") Тогда
- Возврат Формат(Объект, "БЛ=false; БИ=true");
- ИначеЕсли Тип = Тип("Дата") Тогда
- Возврат json(Формат(Объект, "ДФ=yyyy-MM-ddThh:mm:ss"));
- ИначеЕсли
- Объект = Неопределено
- ИЛИ Объект = Null
- Тогда Возврат "null";
- ИначеЕсли
- Справочники.ТипВсеСсылки().СодержитТип(Тип)
- Или Документы.ТипВсеСсылки().СодержитТип(Тип)
- Тогда
- Возврат json(Объект.УникальныйИдентификатор());
- Иначе
- Возврат json(Строка(Объект));
- КонецЕсли;
- КонецФункции
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement