добрый день!
такой код выдаёт ошибку "по причине:
Недопустимое состояние потока записи JSON"
Чтение = Новый ЧтениеJSON;
Чтение.ОткрытьФайл(Этаформа.ПутьЧтения+".json");
Чтение.УстановитьСтроку("{}");
Джисон = ПрочитатьJSON(Чтение);
Чтение.Закрыть();
[
{
"Ссылка": "ТОВ \"ДИРЕКТОРІЯ ЗАТИШКУ\"",
"Код": "000000006",
"Наименование": "ТОВ \"ДИРЕКТОРІЯ ЗАТИШКУ\"",
"Префикс": "ДЗ",
"ИНН": "",
"НомерСвидетельства": "",
"КодПоЕДРПОУ": "40769228",
"ФизическоеЛицо": "",
"НаименованиеПолное": "ТОВАРИСТВО З ОБМЕЖЕНОЮ ВІДПОВІДАЛЬНІСТЮ \"ДИРЕКТОРІЯ ЗАТИШКУ\"",
"СвидетельствоСерияНомер": "",
"СвидетельствоДатаВыдачи": "01.01.0001 0:00:00",
"БанковскийСчетПоУмолчанию": "UA653287040000026009054334936 ТОВ \"ДИРЕКТОРІЯ ЗАТИШКУ\"",
"ЮрФизЛицо": "Юр. лицо",
"ТекущийРуководитель": "БЕЗРАДНА СВІТЛАНА ВІКТОРІВНА",
"ТекущаяДолжностьРуководителя": "Директор",
"ТекущийГлавныйБухгалтер": "",
"ТекущийКассир": "",
"ТекущийПаспортист": "",
"ТипОрганизации": "ТОВ",
"УчетнаяЗаписьЭлектроннойПочты": "",
"НазваниеДляСвернутыхУслуг": "",
"ИнформацияПредупреждениеНовойКвитанции": ""
},
{
"Ссылка": "ОК \" ЖБК Морський 1\"",
"Код": "000000001",
"Наименование": "ОК \" ЖБК Морський 1\"",
"Префикс": "МК",
"ИНН": "",
"НомерСвидетельства": "",
"КодПоЕДРПОУ": "39789906",
"ФизическоеЛицо": "",
"НаименованиеПолное": " Обслуговуючий Кооператив \" ЖБК Морський 1\"",
"СвидетельствоСерияНомер": "",
"СвидетельствоДатаВыдачи": "01.01.0001 0:00:00",
"БанковскийСчетПоУмолчанию": "UA583281680000000026003180694",
"ЮрФизЛицо": "Юр. лицо",
"ТекущийРуководитель": "Хапонен Валерий Сергеевич",
"ТекущаяДолжностьРуководителя": "",
"ТекущийГлавныйБухгалтер": "",
"ТекущийКассир": "",
"ТекущийПаспортист": "",
"ТипОрганизации": "Кооператив",
"УчетнаяЗаписьЭлектроннойПочты": "Морской",
"НазваниеДляСвернутыхУслуг": "",
"ИнформацияПредупреждениеНовойКвитанции": ""
},
ЗаписатьJSON(ЗаписьJSON, Массив_записи);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ *
|ИЗ
| Справочник.Организации КАК Организации
|";
Выборка = Запрос.Выполнить().Выбрать();
Массив_записи =Новый массив;
Пока Выборка.Следующий() Цикл
ОписаниеОбъекта = Новый Структура("Ссылка, Код, Наименование, Префикс,ИНН,НомерСвидетельства,КодПоЕДРПОУ,
ФизическоеЛицо,НаименованиеПолное,СвидетельствоСерияНомер,СвидетельствоДатаВыдачи,
БанковскийСчетПоУмолчанию,ЮрФизЛицо,ТекущийРуководитель,ТекущаяДолжностьРуководителя,
ТекущийГлавныйБухгалтер,ТекущийКассир,ТекущийПаспортист,ТипОрганизации,
УчетнаяЗаписьЭлектроннойПочты,НазваниеДляСвернутыхУслуг,ИнформацияПредупреждениеНовойКвитанции");
ОписаниеОбъекта.Ссылка = Строка(Выборка.Ссылка);
ОписаниеОбъекта.Код=Строка(Выборка.Код);
ОписаниеОбъекта.Наименование=Строка(Выборка.Наименование);
ОписаниеОбъекта.Префикс=Строка(Выборка.Префикс);
ОписаниеОбъекта.ИНН=Строка(Выборка.ИНН);
ОписаниеОбъекта.НомерСвидетельства=Строка(Выборка.НомерСвидетельства);
ОписаниеОбъекта.КодПоЕДРПОУ=Строка(Выборка.КодПоЕДРПОУ);
ОписаниеОбъекта.ФизическоеЛицо=Строка(Выборка.ФизическоеЛицо);
ОписаниеОбъекта.НаименованиеПолное=Строка(Выборка.НаименованиеПолное);
ОписаниеОбъекта.СвидетельствоСерияНомер=Строка(Выборка.СвидетельствоСерияНомер);
ОписаниеОбъекта.СвидетельствоДатаВыдачи=Строка(Выборка.СвидетельствоДатаВыдачи);
ОписаниеОбъекта.БанковскийСчетПоУмолчанию=Строка(Выборка.БанковскийСчетПоУмолчанию);
ОписаниеОбъекта.ЮрФизЛицо=Строка(Выборка.ЮрФизЛицо);
ОписаниеОбъекта.ТекущийРуководитель=Строка(Выборка.ТекущийРуководитель);
ОписаниеОбъекта.ТекущаяДолжностьРуководителя=Строка(Выборка.ТекущаяДолжностьРуководителя);
ОписаниеОбъекта.ТекущийГлавныйБухгалтер=Строка(Выборка.ТекущийГлавныйБухгалтер);
ОписаниеОбъекта.ТекущийКассир=Строка(Выборка.ТекущийКассир);
ОписаниеОбъекта.ТекущийПаспортист=Строка(Выборка.ТекущийПаспортист);
ОписаниеОбъекта.ТипОрганизации=Строка(Выборка.ТипОрганизации);
ОписаниеОбъекта.УчетнаяЗаписьЭлектроннойПочты=Строка(Выборка.УчетнаяЗаписьЭлектроннойПочты);
ОписаниеОбъекта.НазваниеДляСвернутыхУслуг=Строка(Выборка.НазваниеДляСвернутыхУслуг);
ОписаниеОбъекта.ИнформацияПредупреждениеНовойКвитанции=Строка(Выборка.ИнформацияПредупреждениеНовойКвитанции);
Массив_записи.Добавить(ОписаниеОбъекта);
КонецЦикла;
svetas_l @ Сегодня, 9:36
,
Может это поможет. Там я какраз делал чтение данных JSON
https://pro1c.org.ua/topic/post-zapros-do-serveru-podatkovojy-61187/
у вас тоже идёт
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
Данные = ПрочитатьJSON(ЧтениеJSON, Ложь);
Если объект Чтение уже открыл файл, зачем вызывать УстановитьСтроку?
Если хотите через УстановитьСтроку, откройте файл объектом с типом ТекстовыйДокумент, получите строку и передайте в Чтение. А если уже сделали ОткрытьФайл, то просто вызывайте ПрочитатьJSON.
Думаю проблема в этом
Чтение.УстановитьСтроку("{}");
убрала установить строку - пишет недопустимое состояние потока
Чтение = Новый ЧтениеJSON;
Чтение.ОткрытьФайл(Этаформа.ПутьЧтения+".json");
// Чтение.УстановитьСтроку("{}");
Джисон = ПрочитатьJSON(Чтение);
Чтение.Закрыть();
svetas_l @ Сегодня, 15:09
,
а точно файл такой есть?
Проверте
ВыбФайл = Новый Файл(Этаформа.ПутьЧтения+".json");
Если НЕ ВыбФайл.Существует() Тогда
Сообщить("Файл не существует!");
КонецЕсли;
svetas_l @ Сегодня, 15:09
,
Ну пробуйте открыть текст как текстовый файл (ТекстовыйДокумент) и из него передать строку в Чтение. У меня нет опыта с пирсингом json через ОткрытьФайл
попробуйте убрать дату из файла
Зачем возиться с файлами, если ответ сервера можно преобразовать в поток?
Например,
ОтветСервера = Соединение.Получить(ХТТПЗапрос);
... // здесь можно обрабатывать ОтветСервера, например заголовки
Поток = ОтветСервера.ПолучитьТелоКакПоток();
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.ОткрытьПоток(Поток);
... // здесь можно парсить ЧтениеJSON
Поток.Закрыть();
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua