Функция восстановления значения при чтении JSON (ЧтениеJSON)

andrey5565 309 5 9 8

Функция восстановления из JSON может использоваться для того, чтобы преобразовать данные JSON в типы платформы 1С, которые либо 1. не могут являться результатом автоматического преобразования, либо 2. чтобы просто изменить получаемые данные, если есть такая необходимость. В данном примере из json файла где ИНН, КПП контрагента - пустая строка, заменим на значение - Пустая строка ИНН (КПП)

// Структура JSON файла:
{
 "Info": [
  {
   "Наименование": "Global Trade Company GmbH",
   "НаименованиеПолное": "Global Trade Company GmbH",
   "ИНН": "",
   "КПП": "",
   "ЮрФизЛицо": "Юридическое лицо",
   "ТекущаяДата": "2023-09-03T16:45:44Z",
   "ДанныеАдреса": "Страна - 1; Город  - 1; Индекс - 1"
  },
  {
   "Наименование": "Kikinda (Сербия)",
   "НаименованиеПолное": "Kikinda (Сербия)",
   "ИНН": "",
   "КПП": "",
   "ЮрФизЛицо": "Юридическое лицо",
   "ТекущаяДата": "2023-09-03T16:45:44Z",
   "ДанныеАдреса": "Страна - 2; Город  - 2; Индекс - 2"
  },
  {
   "Наименование": "Koenig Holding GmbH",
   "НаименованиеПолное": "Koenig Holding GmbH",
   "ИНН": "",
   "КПП": "",
   "ЮрФизЛицо": "Юридическое лицо",
   "ТекущаяДата": "2023-09-03T16:45:44Z",
   "ДанныеАдреса": "Страна - 3; Город  - 3; Индекс - 3"
  },
  {
   "Наименование": "АВИКА",
   "НаименованиеПолное": "АВИКА",
   "ИНН": "4825005381",
   "КПП": "482201001",
   "ЮрФизЛицо": "Юридическое лицо",
   "ТекущаяДата": "2023-09-03T16:45:44Z",
   "ДанныеАдреса": "Страна - 4; Город  - 4; Индекс - 4"
  },
  {
   "Наименование": "АвтБанк АКБ",
   "НаименованиеПолное": "АКБ АвтБанк",
   "ИНН": "",
   "КПП": "",
   "ЮрФизЛицо": "Юридическое лицо",
   "ТекущаяДата": "2023-09-03T16:45:44Z",
   "ДанныеАдреса": "Страна - 5; Город  - 5; Индекс - 5"
  }
 ]
}

//Код в модуле формы:
&НаСервере
Функция ФункцияВосстановленияСериализуемогоЗначения(Свойство, Значение, ДополнительныеПараметры) Экспорт

	 Если Свойство = "ИНН" ИЛИ Свойство = "КПП" Тогда
	 	 Если ПустаяСтрока(Значение) Тогда
			Возврат "Пустая строка " + Свойство; 
		 КонецЕсли;
	 КонецЕсли;

КонецФункции // ()

&НаСервере
Процедура ВыполнитьЧтениеДанныхНаСервере()
	
	// Проверка наличия файла по пути;
	ПутьНаСервере1  = "C:\Users\SystemX\Desktop\TestJSON_1.json";
	
	ФайлJSON = Новый Файл(ПутьНаСервере1);
	
	Если НЕ ФайлJSON.Существует() Тогда
		ОбщегоНазначения.СообщитьПользователю("Файл отсутствует по пути: " + ПутьНаСервере1);		
	    Возврат;
	КонецЕсли;
	
	ЧтениеJSON = Новый ЧтениеJSON();
	Попытка
	   ЧтениеJSON.ОткрытьФайл(ПутьНаСервере1, "UTF-8");
	Исключение
	КонецПопытки;
	
	ПрочитанноеЗначение = ПрочитатьJSON(ЧтениеJSON, Ложь,,, "ФункцияВосстановленияСериализуемогоЗначения", ЭтотОбъект);
	
	ЧтениеJSON.Закрыть(); 
	
КонецПроцедуры

&НаКлиенте
Процедура ВыполнитьЧтениеДанных(Команда)
	ВыполнитьЧтениеДанныхНаСервере();
КонецПроцедуры
0
Длина не может быть меньше нуля.
Имя параметра: length
Орфографическая ошибка в Kikinda (найдено 2): Kikinda
Орфографическая ошибка в Koenig (найдено 2): Koenig
Орфографическая ошибка в ФункцияВосстановленияСериализуемогоЗначения (найдено 2): Сериализуемого

См. также

Чтение файлов Excel в таблицу значений (автоматическое наименование столбцов)

Чтение значения атрибута узла XML или объекта XDTO

Чтение XML в таблицу значений

ПриВосстановленииВерсииОбъекта (БСП)

Чтение файла (в таблицу значений) расширения .xlsx с помощью построителя запроса

ПриПовторномЧтенииНаСервереФормыРедактированияРазрешенныхЗначений (БСП)

ПоказыватьПриНачалеРаботы (БСП)

ПриЧтенииНаСервере (БСП)

Модератору