Господа доброго времени суток!
Давно использую класс КОП_JSON от господина trad.
До этого делал простенькие файлы для обмена, тут понадобилось сделать файл чуть сложнее, что-то не получается. Может кто тоже юзает этот класс, посдкажет.
Структура, примерно такая. Что-то я явно не так делаю, или он не получается или зависает при создании.
{
"set_code": "001",
"items": [
{
"marketplace": "W",
"article": 1223423,
"article_post": "3243243",
"barcode": 3242354435
}
{
"marketplace": "O",
"article": 234324324,
"article_post": "КОД-Н2",
"barcode": 3243234
}
]
"set_code": "002",
"items": [
{
"marketplace": "W",
"article": 1223423,
"article_post": "3243243",
"barcode": 3242354435
}
{
"marketplace": "O",
"article": 234324324,
"article_post": "КОД-Н2",
"barcode": 3243234
}
]
}
Я взял с инфостарта обработку с набором процедур для формирования стэтхема и получилось.
Pbuid 960486
Цитата: Злоп от 09 сентября 2025, 19:59Я взял с инфостарта обработку с набором процедур для формирования стэтхема и получилось.
Я класс от Дмитрия уже юзаю много лет, формирую файлы размером более 100 мегабайт, никаких проблем. Но все файлы были так сказать "простой" структуру, а тут понадобилось с вложениями сдлелать, и что-то не получается.
Делал выгрузку заказа поставщику с шапкой и ТЧ
Ну тут по идее же аrray в items указан, вот и смотри в ту сторону.
Наверное.
Фиг его знает как там класс структуры Джейсона определяет и формирует.
Цитата: Злоп от 09 сентября 2025, 20:07Ну тут по идее же аrray в items указан, вот и смотри в ту сторону.
Наверное.
Фиг его знает как там класс структуры Джейсона определяет и формирует.
Класс работает со структурой и списком значений. Типа - просто запись это структура, массив - список значений, но что-то ковырялся ковырялся, не получилось пока.
Цитата: SnakePlisskin от 09 сентября 2025, 20:29Класс работает со структурой и списком значений. Типа - просто запись это структура, массив - список значений, но что-то ковырялся ковырялся, не получилось пока.
Ну, по идее делаешь запись структуры, где значение - список значений.
?
Не совсем понял - нужно из списка на выходе получить файл JSON? Или наоборот из JSON - получить список?
Если речь про выгрузку в JSON, то по поводу "зависает" и "СписокЗначений" - а точно дело в КОП? Может просто список значений не очищается и пухнет с каждым последующим элементом?
Госопда, суть задачи вообще, есть запрос к подчиненному справочнику, номенклатуры, вот его я и пытался уложить в json.
Где "set_code": "001" - тут код родителя, а дальше идут подчиненные элементы со значениями реквизитов.
Навоз-вопрос.
Я в классах не шуруплю, поэтому по-староверски, по кондвому, процедурами и функциями обычными...
Запятых не хватает
Запятые можно добавить и этот текст станет похожим на JSON, но он не будет соответствовать стандарту (имена членов структуры - не уникальны) и мой КОП такое не умеет
rfc8259 (https://datatracker.ietf.org/doc/html/rfc8259)
4. Objects
An object structure is represented as a pair of curly brackets
surrounding zero or more name/value pairs (or members). A name is a
string. A single colon comes after each name, separating the name
from the value. A single comma separates a value from a following
name. The names within an object SHOULD be unique.
То бишь setcode - должны быть массовом..?
я бы предположил что должен быть массив структур
[
{
"set_code": "001",
"items": [
{
"marketplace": "W",
"article": 1223423,
"article_post": "3243243",
"barcode": 3242354435
},
{
"marketplace": "O",
"article": 234324324,
"article_post": "КОД-Н2",
"barcode": 3243234
}
]
},
{
"set_code": "002",
"items": [
{
"marketplace": "W",
"article": 1223423,
"article_post": "3243243",
"barcode": 3242354435
},
{
"marketplace": "O",
"article": 234324324,
"article_post": "КОД-Н2",
"barcode": 3243234
}
]
}
]
Цитата: trad от 18 сентября 2025, 08:46[
{
"set_code": "001",
"items": [
{
"marketplace": "W",
"article": 1223423,
"article_post": "3243243",
"barcode": 3242354435
},
{
"marketplace": "O",
"article": 234324324,
"article_post": "КОД-Н2",
"barcode": 3243234
}
]
},
{
"set_code": "002",
"items": [
{
"marketplace": "W",
"article": 1223423,
"article_post": "3243243",
"barcode": 3242354435
},
{
"marketplace": "O",
"article": 234324324,
"article_post": "КОД-Н2",
"barcode": 3243234
}
]
}
]
Да, именно то что хотел, но почему такой код тогда не срабатывает ?
СЗ = СоздатьОбъект("СписокЗначений");
тзНоменклатур.ВыбратьСтроки();
Пока тзНоменклатур.ПолучитьСтроку() = 1 Цикл
текЗначКода = СокрП(тзНоменклатур.Код_Номенеклатуры);
Данные = СоздатьОбъект("Структура");
Данные.Вставить("Code",текЗначКода);
Данные.Вставить("Items",СоздатьОбъект("СписокЗначений"));
сзКлюч = СоздатьОбъект("СписокЗначений");
сзКлюч.ДобавитьЗначение(текЗначКода);
итзВыборка.Подмножество(сзКлюч,1,"ИндексПоле");
итзВыборка.ВыбратьСтроки("ИндексПоле");
Пока итзВыборка.ПолучитьСтроку("ИндексПоле") = 1 Цикл
Элемент = СоздатьОбъект("Структура");
Элемент.Вставить("Маркетплейс",Строка(итзВыборка.Маркетплейс));
Элемент.Вставить("Артикул",итзВыборка.Артикул);
Элемент.Вставить("АртикулПОставщика",итзВыборка.АртикулПОставщика);
Элемент.Вставить("Штрихкод",итзВыборка.Штрихкод);
Данные.items.ДобавитьЗначение(Элемент);
КонецЦикла;
СЗ.ДобавитьЗначение(Данные);
КонецЦикла;
Обошелся, пока "линейным файлом" но хотелось бы понять где ошибка ?
Цитата: SnakePlisskin от 18 сентября 2025, 11:58но почему такой код тогда не срабатывает
подробнее про "не срабатывает"