Перейти к содержанию

Функции для вывода метаданных в формате .json: различия между версиями

Материал из Химсофт Вики
 
(не показано 17 промежуточных версий этого же участника)
Строка 9: Строка 9:
*<code>b</code> – название, понятное для пользователя.
*<code>b</code> – название, понятное для пользователя.


==МДЗначение(a; 'b'; [c])==
==<span id="md-value"></span>МДЗначение(a; 'b'; [c])==


Значения, которые необходимо вывести.  
Значения, которые необходимо вывести.  
Строка 24: Строка 24:
===Пример 1===
===Пример 1===


Для вывода информации следующей структуры
''Для вывода информации следующей структуры''


<syntaxhighlight lang="json">
"<span style="background-color: yellow">Заказчик</span>": {<br>
{
:"<span style="background-color: lime">Юридическое лицо</span>": {<br>
  "Заказчик": {
::"<span style="background-color: lightgray">ОГРН</span>": "<span style="background-color: lightgray">1026601367539</span>",<br>
    "Юридическое лицо": {
::"<span style="background-color: lightgray">ИНН</span>": "<span style="background-color: lightgray">6623000680</span>",<br>
      "ОГРН": "1026601367539",
::"<span style="background-color: lightgray">КПП</span>": "<span style="background-color: lightgray">662343001</span>"<br>
      "ИНН": "6623000680",
:<nowiki>}</nowiki><br>
      "КПП": "662343001"    
<nowiki>}</nowiki><br>
    }
  }
}
</syntaxhighlight>


настройка может выглядеть следующим образом:
''настройка может выглядеть следующим образом:''


<syntaxhighlight lang="js">
['<span style="background-color: yellow">Customer</span>':=МДОбъект(0; '<span style="background-color: yellow">Заказчик</span>')]
['Customer':=МДОбъект(0; 'Заказчик')]
:['<span style="background-color: lime">Organization</span>':=МДОбъект(<span style="background-color: yellow">{Customer}</span>; '<span style="background-color: lime">Юридическое лицо</span>')]
  ['Organization':=МДОбъект({Customer}; 'Юридическое лицо')]
::['<span style="background-color: lightgray">OGRN</span>':=МДЗначение(<span style="background-color: lime">{Organization}</span>; '<span style="background-color: lightgray">ОГРН</span>'; <span style="background-color: lightgray">[Заказчик для ФГИС -> ОГРН]</span>)]
          ['OGRN':=МДЗначение({Organization}; 'ОГРН'; [Заказчик для ФГИС -> ОГРН])]
::['<span style="background-color: lightgray">INN</span>':=МДЗначение(<span style="background-color: lime">{Organization}</span>; '<span style="background-color: lightgray">ИНН</span>'; <span style="background-color: lightgray">[Заказчик для ФГИС -> ИНН]</span>)]
          ['INN':=МДЗначение({Organization}; 'ИНН'; [Заказчик для ФГИС -> ИНН])]
::['<span style="background-color: lightgray">KPP</span>':=МДЗначение(<span style="background-color: lime">{Organization}</span>; '<span style="background-color: lightgray">КПП</span>'; <span style="background-color: lightgray">[Заказчик для ФГИС -> КПП]</span>)]
          ['KPP':=МДЗначение({Organization}; 'КПП'; [Заказчик для ФГИС -> КПП])]
</syntaxhighlight>


===Пример 2===
===Пример 2===


Для вывода информации следующей структуры
''Для вывода информации следующей структуры''


<syntaxhighlight lang="json">
"<span style="background-color: yellow">Результаты исследований_испытаний_измерений</span>": {
{
:"<span style="background-color: lime">Рез-т измерения</span><span style="background-color: aqua">1</span>": {
  "Результаты исследований_испытаний_измерений": {
::"<span style="background-color: lightgray">Наим. пок.</span>": "<span style="background-color: lightgray">Влажность</span>",
    "Рез-т измерения1": {
::"<span style="background-color: lightgray">Результат</span>": "<span style="background-color: lightgray">15</span>",
      "Наим. пок.": "Влажность",
:},
      "Результат": "15",
:"<span style="background-color: lime">Рез-т измерения</span><span style="background-color: aqua">2</span>": {
    },
::"<span style="background-color: lightgray">Наим. пок.</span>": "<span style="background-color: lightgray">Массовая концентрация диоксида серы</span>",
    "Рез-т измерения2": {
::"<span style="background-color: lightgray">Результат</span>": "<span style="background-color: lightgray">49</span>",
      "Наим. пок.": "Массовая концентрация диоксида серы",
:}
      "Результат": "49",
    }
  }
}
}
</syntaxhighlight>


настройка может выглядеть следующим образом:
''настройка может выглядеть следующим образом:''


<syntaxhighlight>
<span style="background-color: aqua">['n_pok':=0]</span><br>
['n_pok':=0]
['<span style="background-color: yellow">ResearchInfo</span>':=МДОбъект(0; '<span style="background-color: yellow">Результаты исследований_испытаний_измерений</span>')]<br>
['ResearchInfo':=МДОбъект(0; 'Результаты исследований_испытаний_измерений')]
[for Значения ФГИС]<span style="background-color: aqua">['n_pok':={n_pok} + 1]</span>
[for Значения ФГИС]['n_pok':={n_pok} + 1]
:['<span style="background-color: lime">ResearchInfoDetails</span>':=МДОбъект(<span style="background-color: yellow">{ResearchInfo}</span>; '<span style="background-color: lime">Рез-т измерения</span>'+ <span style="background-color: aqua">{n_pok}</span>)]
    ['ResearchInfoDetails':=МДОбъект({ResearchInfo}; 'Рез-т измерения'+ {n_pok})]
::['<span style="background-color: lightgray">Name</span>':=МДЗначение(<span style="background-color: lime">{ResearchInfoDetails}</span>; '<span style="background-color: lightgray">Наим. пок</span>'; <span style="background-color: lightgray">[Значения ФГИС -> Показатель]</span>)]
    ['Name':=МДЗначение({ResearchInfoDetails}; 'Наим. пок'; [Значения ФГИС -> Показатель])]
::['<span style="background-color: lightgray">Rez</span>':=МДЗначение(<span style="background-color: lime">{ResearchInfoDetails}</span>; '<span style="background-color: lightgray">Результат</span>'; <span style="background-color: lightgray">[Значения ФГИС -> Результат]</span>)]
    ['Rez':=МДЗначение({ResearchInfoDetails}; 'Результат'; [Значения ФГИС -> Результат])]
[endfor]
[endfor]
</syntaxhighlight>


'''''Примечание:''' настройку структуры такого вида, который перечислен в примере 1 и 2 лучше прописывать в прямоугольнике, который выводится только один раз (не разворачивается в запросе).''
'''''Примечание:''' настройку структуры такого вида, который перечислен в примере 1 и 2 лучше прописывать в прямоугольнике, который выводится только один раз (не разворачивается в запросе).''
Строка 93: Строка 81:
===Пример 3===
===Пример 3===


Для вывода информации следующей структуры
''Для вывода информации следующей структуры''


<syntaxhighlight lang="json">
"<span style="background-color: yellow">Даты анализа</span>": {
{
:"10.10.2026",
  "Даты анализа": {
:"15.10.2026",
    "10.10.2026",
:"18.10.2026",
    "15.10.2026",
    "18.10.2026",
  }
}
}
</syntaxhighlight>


настройка может выглядеть следующим образом:
''настройка может выглядеть следующим образом:''


<syntaxhighlight>
['<span style="background-color: lime">Data</span>':=МДМассив(0; '<span style="background-color: yellow">Даты анализа</span>')]<br>
['Data':=МДМассив(0; 'Даты анализа')]
[for Даты анализа]<br>
[for Даты анализа]
:['<span style="background-color: lightgray">Zap_json</span>':=МДЗначение(<span style="background-color: lime">{Data}</span>; <span style="background-color: lightgray"><nowiki>''</nowiki></span>; <span style="background-color: lightgray">[Даты анализа -> Значение]</span>)]<br>
    ['Zap_json':=МДЗначение({Data}; ''; [Даты анализа -> Значение])]
[endfor]
[endfor]
</syntaxhighlight>

Текущая версия от 10:09, 14 октября 2026

МДОбъект(a;'b')

Раздел, у которого планируется вывод значений.

Функция возвращает идентификатор раздела в документе.

Аргументы (фактические параметры):

  • a – идентификатор другого раздела, либо 0, если раздел самый первый в структуре;
  • b – название, понятное для пользователя.

МДЗначение(a; 'b'; [c])

Значения, которые необходимо вывести.

Функция возвращает число:

  • 1 – ошибка записи (указан ошибочный идентификатор раздела);
  • 2 – удачная запись.

Аргументы (фактические параметры):

  • a – идентификатор раздела, к которому будут привязаны выводимые значения;
  • b – название перечисленных значений, понятное для пользователя;
  • c - значение переменной из запроса, которую необходимо выводить, либо константа.

Пример 1

Для вывода информации следующей структуры

"Заказчик": {

"Юридическое лицо": {
"ОГРН": "1026601367539",
"ИНН": "6623000680",
"КПП": "662343001"
}

}

настройка может выглядеть следующим образом:

['Customer':=МДОбъект(0; 'Заказчик')]

['Organization':=МДОбъект({Customer}; 'Юридическое лицо')]
['OGRN':=МДЗначение({Organization}; 'ОГРН'; [Заказчик для ФГИС -> ОГРН])]
['INN':=МДЗначение({Organization}; 'ИНН'; [Заказчик для ФГИС -> ИНН])]
['KPP':=МДЗначение({Organization}; 'КПП'; [Заказчик для ФГИС -> КПП])]

Пример 2

Для вывода информации следующей структуры

"Результаты исследований_испытаний_измерений": {

"Рез-т измерения1": {
"Наим. пок.": "Влажность",
"Результат": "15",
},
"Рез-т измерения2": {
"Наим. пок.": "Массовая концентрация диоксида серы",
"Результат": "49",
}

}

настройка может выглядеть следующим образом:

['n_pok':=0]
['ResearchInfo':=МДОбъект(0; 'Результаты исследований_испытаний_измерений')]
[for Значения ФГИС]['n_pok':={n_pok} + 1]

['ResearchInfoDetails':=МДОбъект({ResearchInfo}; 'Рез-т измерения'+ {n_pok})]
['Name':=МДЗначение({ResearchInfoDetails}; 'Наим. пок'; [Значения ФГИС -> Показатель])]
['Rez':=МДЗначение({ResearchInfoDetails}; 'Результат'; [Значения ФГИС -> Результат])]

[endfor]

Примечание: настройку структуры такого вида, который перечислен в примере 1 и 2 лучше прописывать в прямоугольнике, который выводится только один раз (не разворачивается в запросе).

МДМассив(a;’b’)

Раздел, у которого планируется вывод значений в виде списка без дополнительных комментариев.

Функция возвращает идентификатор раздела в документе.

Аргументы (фактические параметры):

  • a – идентификатор раздела, к которому будут привязаны выводимые значения;
  • b – название перечисленных значений, понятное для пользователя.

Пример 3

Для вывода информации следующей структуры

"Даты анализа": {

"10.10.2026",
"15.10.2026",
"18.10.2026",

}

настройка может выглядеть следующим образом:

['Data':=МДМассив(0; 'Даты анализа')]
[for Даты анализа]

['Zap_json':=МДЗначение({Data}; ''; [Даты анализа -> Значение])]

[endfor]