|
v7: Структура JSON файла для работы онлайн касс через Web | ☑ | ||
---|---|---|---|---|
0
brenli
12.12.19
✎
14:59
|
Всем привет.
Пишу обработку которая будет представлять из себя класс состоящий из объектов и методов описанных через web для генерации запросов. Вот пример объекта Оператор //Функция ОбъектОператор(name, vatin) //name - Имя и/или должность оператора открывающего смену (тег 1021) (тип - Строка, + ) //vatin - ИНН оператора (тег 1203)(тип - Строка, по умолчанию - не используется) Функция ОбъектОператор(name, vatin="") name = СокрЛП(name); vatin = СокрЛП(vatin); Если ПустаяСтрока(name)=1 Тогда Сообщить(" ОбъектОператор Параметр - name не заполнен!"); Возврат "null"; КонецЕсли; MainSection = " |""operator"":{ |""name"":"""+name+""" |"; vatinStr = """vatin"":"""+vatin+""""; Comma = ","; CCurlyBrace = "}"; Ent = РазделительСтрок; result = MainSection+Ent; Если ПустоеЗначение(vatin)=0 Тогда result = result+Comma+vatinStr+Ent; КонецЕсли; result = result + CCurlyBrace; Возврат result; КонецФункции Вопрос заключается в том - как правильнее генерировать структуру JSON описать сразу все элементы (даже не обязательные и даже если они не нужны или не используются), а в переменные подставлять значения, либо как делаю я - сначала проверяю и если поле (параметр) дополнительных (не основных параметров) не заполнены - то просто данная секция не добавляется в строку вывода, НО минус этого в том - что приходится писать очень много условий друг за другом. Согласен что можно создать функцию и проверять параметры в ней , но это тоже не совсем красиво будет до 15 раз вызов функции, да и запутаться можно будет. Интересует ваше мнение |
|||
1
Garykom
гуру
12.12.19
✎
15:06
|
Сделай обратную хрен вот этому коду:
Т.е. создается обычный СЗ и заполняется, натравливается твой код и получается на выходе JSON. |
|||
2
Garykom
гуру
12.12.19
✎
15:10
|
(1)+ Минус что тут и массив и объект в виде СпискаЗначений а не разных структур представлены.
Изначальный код я дернул откуда то для 8-ки и быстро перефигачил для 7.7 хорошо бы допилить его. |
|||
3
brenli
12.12.19
✎
15:15
|
(1) За этот код спасибо, ответы им буду разбирать.
А структуру генерировать с помощью кода это будет не наглядно и сложно для восприятия. Я практически для всех объектов и действий сделал функции обертки и итоговый JSON запрос собирается как из конструктора. |
|||
4
brenli
12.12.19
✎
15:17
|
+(3) все равно придется проверять что добавлять, а что нет
|
|||
5
Garykom
гуру
12.12.19
✎
15:20
|
(3) Как раз наоборот для 7чников очень удобно и наглядно работать с привычными ТЗ и СЗ.
Пишут например лСЗ = СоздатьОбъект("СписокЗначений"); лСЗ.ДобавитьЗначение("Параметр1","Значение1"); лСЗ.ДобавитьЗначение("Параметр2","Значение2"); Затем нечто вроде ТекстJSON = ПолучитьJSON(лСЗ); И на выходе готовый: { "Параметр1": "Значение1", "Параметр2": "Значение2" } |
|||
6
victuan1
13.12.19
✎
05:21
|
Если обработка делается как класс (1с++ ?), то можно использовать объект ИндексированнаяТаблица
|
|||
7
brenli
13.12.19
✎
06:38
|
(6) Нет. Штатными средствами. Класс чисто условный смысл.
Делаю как пародию на ООП. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |