JSON и UnJSON в 1С (версия от 27/11/2009)
Разработка - Инструментарий разработчика
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Парсер имеет недостаток, он не проводит валидацию JSON-строки, поэтому если строка "битая" или неправильная, то результат непредсказуем.
В смысле — в результате работы парсинга будет возвращена какая-нибудь лабуда.
Вступайте в нашу телеграмм-группу Инфостарт
См. также
Разработка Инструментарий разработчика Групповая разработка (Git, хранилище) Разработчик Платные (руб)
Практический курс по работе с AI-агентами для разработчиков 1С уровня middle и senior, а также тимлидов команд: от постановки задач и передачи контекста до создания расширений, интеграций, MCP-инструментов, тестов и проверки готового решения.
50000 руб.
10.09.2026 13606 124 0
Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Разработчик Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)
Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы, интерфейс 8.5. Может выполнять свертку одновременно в несколько потоков, а также без непосредственного участия пользователя. Решение в Реестре отечественного ПО.
24900 руб.
20.08.2024 83306 432 171
Инструментарий разработчика Роли и права Запросы СКД Разработчик Руководитель проекта 1С:Предприятие 8 Платные (руб)
Инструменты для разработчиков 1С 8.3 и 8.5: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.
16500 руб.
02.09.2020 285776 1608 423
Инструментарий разработчика Разработка Администрирование веб-серверов Системный администратор Разработчик Аналитик Руководитель проекта 1С 8.3 Платные (руб)
Analyzer 1C сводит выгрузку 1С — основную конфигурацию и все расширения — в единый граф знаний. Любой запрос по связям за доли секунды, с пометками «Доб.» / «Заимств.» / «Переопределено». Новое в 2.0 — обновление поставки: сравнение и объединение версий деревом «как в Конфигураторе» с выгрузкой плана решений; поиск конфликтов из-за перехватов расширений и висячих ссылок; загрузка из бинарных .cf/.cfe; циклические зависимости. Плюс анализ влияния, запросы BSL, роли и RLS, граф вызовов. Минута на развёртывание через Docker без необходимости подключения к Интернет. Любая 1С:Предприятие 8.3+.
14000 руб.
17.04.2026 16836 63 62
Пакетная печать Печатные формы Инструментарий разработчика Разработчик 1С:Предприятие 8 Платные (руб)
Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм. Обновление версии от 21.04.26
22570 руб.
06.10.2023 44228 122 54
Инструментарий разработчика Нейросети Платные (руб)
Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданным 1С, справке синтакс-помощника и проверки синтаксиса.
15250 руб.
25.08.2025 76973 147 41
Разработка Инструментарий разработчика Разработчик Руководитель проекта 1С 8.3 Платные (руб)
Pilot 1C превращает задачу, поставленную обычными словами, в техническое задание, код на встроенном языке и сценарии проверки. Прежде чем что-то предложить, он сверяется с устройством вашей конфигурации через граф Analyzer 1C: существует ли объект, из чего он состоит, кто его вызывает, какие роли дают права. Чего найти не удалось – спрашивает, а не выдумывает. Готовый код проходит более полутора сотен проверок по справочнику языка и стандартам разработки, который приезжает вместе с продуктом. Модель – ваша: любой сервер, совместимый с программным интерфейсом OpenAI, в том числе локальный. Правки в конфигурацию Pilot не вносит – их применяет разработчик.
18300 руб.
11.09.2026 3753 5 0
Инструменты администратора БД Инструментарий разработчика Роли и права Разработчик 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)
Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.
17000 руб.
10.11.2023 28771 103 46
//Экранирует недопустимые символы
Функция Экранировать(Стр)
Х=СтрЗаменить(Стр,"""","\""");
//Х=СтрЗаменить(Х,"'","\'"); //??? Не уверен в этой строке. Кто нибудь может подтвердить или опровергнуть нужность этой строки.
Х=СтрЗаменить(Х,"\","\\");
Х=СтрЗаменить(Х,"/","\/"); //Тут тоже не уверен, но пока оставлю.
Х=СтрЗаменить(Х,Символ(8),"\\b");
Х=СтрЗаменить(Х,Символы.ПФ,"\\f");
Х=СтрЗаменить(Х,Символы.ПС,"\\n");
Х=СтрЗаменить(Х,Символы.ВК,"\\r");
Х=СтрЗаменить(Х,Символы.Таб,"\\t");
Х=СтрЗаменить(Х,Символы.ВТаб,"\\v");
Возврат Х
КонецФункции ПоказатьТекст = Новый ТекстовыйДокумент;
Текст.ДобавитьСтроку(JSONСтрока);
Текст.Записать(ИмяФайлаЗапроса,КодировкаТекста.UTF8);
Запрос.УстановитьТелоИзДвоичныхДанных(Новый ДвоичныеДанные(ИмяФайлаЗапроса));
Ответ = Соединение.ОтправитьДляОбработки(Запрос);//
// Как записать файл в кодировке UTF-8 без BOM
Функция ЗаписатьФайлВформате_UTF8_без_BOM(текст,полноеИмяФайла) Экспорт
// записываем в файл с символами BOM в начале файле
ТекстовыйФайлUTF8_Bom = Новый ТекстовыйДокумент();
ТекстовыйФайлUTF8_Bom.ДобавитьСтроку(текст);
ТекстовыйФайлUTF8_Bom.Записать(полноеИмяФайла,"UTF-8");
// открываем файл и считываем символы после символов BOM
Данные = Новый ДвоичныеДанные(полноеИмяФайла);
Строка64=Base64Строка(Данные);
Строка64=Прав(Строка64,СтрДлина(Строка64)-4);
ДанныеНаЗапись=Base64Значение(Строка64);
ДанныеНаЗапись.Записать(полноеИмяФайла); // записываем
КонецФункции
{
"access_token" : "ya29.AHES6ZRmi4n2MK9hBTtD0Uu5W2E8Syxs_lHg",
"token_type" : "Bearer",
"expires_in" : 3600,
"id_token" : "eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJhY2N-DqKlZ9camBK_oF5rPfstZ3Ei89nsUQ",
"refresh_token" : "1/_KwyqNDsjz9pGzBSqF2RDpJ2PKHYX2BgYIjIQMY0nCA"
}Так вот параметр refresh_token после JSON -> UnJSON -> JSON получается таким:
"refresh_token":"1\/_KwyqNDsjz9pGzBSqF2RDpJ2PKHYX2BgYIjIQMY0nCA"Разбираться не стал. Пока интересен только UnJSON, а он правильно отработал.
Спасибо огромное за труд!
попытался воспользоваться JSON-сериализацией.
Есть 2 момента.
1. Сериализация двойных кавычек в строке у вас переводится в \\" (т.е. с лишним обратным слешем)
2. Думаю, что сериализацию типа Ссылка лучше сделать в виде идентификатора. Сейчас Ссылка сериализуется в Наименование.
Спасибо
{"jsonrpc":"2.0","errors":[],"notifications":[],"result":{"Time":"2014-08-10T17:06:39+04:00","RequestID":"53e76e52af632c4c0f000000","Format":"Combined","Data":[{"Gate":"Production","GDS":"AmadeusWS","Office":null,"RecommendationID":"D308D0C5-EA60-44B8-A346-544CB8870341","RecommendationGDSID":"1","ValidatingAirline":"SU","ValidatingAirlines":"SU","LastTicketDate":1403985600,"Refundable":"No","ETicket":true,"Itineraries":[{"ItineraryID":0,"Variants":[{"VariantID":"DB6713B2-2ED6-491B-8DCB-F8F53968D84E","VariantGDSID":"1","Duration":80
здесь как раз два разных ID в верхнем регистре.
Оптимизация делалась для веб-сайта
На данных из примерно 5 тысяч записей таблицы значений перевод в XML уменьшил время обработки со 120 секунд (2 минуты) до 4 секунд.
В платформе 8.3.6 сериализация в json то же будет средствами платформы. Я полагаю, что скорость будет не хуже, а может быть, даже лучше чем при сериализации в XML.
Х=СтрЗаменить(Стр,"""","\""");
и потом
Х=СтрЗаменить(Х,"\","\\");Это специально чтобы внутри строки символ " превращался в \\" а не в \"
Исправил
Х=СтрЗаменить(Х,"\","\\");
//Х=СтрЗаменить(Х,"'","\'"); //убрать точно
Х=СтрЗаменить(Стр,"""","\""");
А так, одна функция подобная функция делает все быстрее и проще.
Функция UnJSONШтатно(СтрJSON) Экспорт
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(СтрJSON);
Значение = ПрочитатьJSON(ЧтениеJSON, Истина);
ЧтениеJSON.Закрыть();
Возврат Значение
КонецФункции
ПоказатьФункция JSON(Структура) Экспорт
ЗаписьJSON=Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON,Структура,Новый НастройкиСериализацииJSON,"ПреобразованиеJSON",JSON);
Возврат ЗаписьJSON.Закрыть()
КонецФункции
Функция ПреобразованиеJSON(Свойство, Значение, ДополнительныеПараметры, Отказ) Экспорт
Если Значение=Null Тогда
Возврат Неопределено
ИначеЕсли ТипЗнч(Значение)=Тип("ТаблицаЗначений") Тогда
Колонки=Значение.Колонки;
Массив=Новый Массив;
Для Каждого СтрокаТЗ Из Значение Цикл
Структура=Новый Структура;
Для Каждого Колонка Из Колонки Цикл
Структура.Вставить(Колонка.Имя,СтрокаТЗ[Колонка.Имя])
КонецЦикла;
Массив.Добавить(Структура);
КонецЦикла;
Возврат Массив
Иначе
Возврат Строка(Значение)
КонецЕсли;
Отказ=Истина
КонецФункции
Функция UnJSON(СтрокаJSON) Экспорт
ЧтениеJSON=Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(СтрокаJSON);
Значение=ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
Возврат Значение
КонецФункции
ПоказатьРейтинг: 193
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 61194
Создание 20.11.09 13:28
Обновление 27.11.09 00:00
Просмотры 54069
Загрузки 513
Рейтинг
91
Комментарии 53
Код открыт Не указано
Рубрики Инструментарий разработчика
Кому Разработчик
Тип файла Внешняя обработка (ert,epf)
Платформа 1С:Предприятие 8
Конфигурация 1C:Бухгалтерия
Операционная система Не имеет значения
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)