Здравствуйте!
Создаю веб сервис, который возвращает долги по человеку. вот его код

```1c
    КонецЕсли;
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | ЖурналПроводокЕПСБУОстатки.СуммаОстаток КАК Сумма,
    | ЖурналПроводокЕПСБУОстатки.Субконто1.ЮридическоеФизическоеЛицо.МФТИ_КодЕРФЛ КАК КодЕРФЛ
    |ИЗ
    | РегистрБухгалтерии.ЖурналПроводокЕПСБУ.Остатки(
    | &ПериодОстатков,
    | Счет = &счет20531,
    | ,
    | Субконто1.ЮридическоеФизическоеЛицо.МФТИ_КодЕРФЛ В (&СписокЕРФЛ)
    | И Субконто2.НаправлениеДеятельности.Код = "000006") КАК ЖурналПроводокЕПСБУОстатки
    |ГДЕ
    | ЖурналПроводокЕПСБУОстатки.СуммаОстаток > 0";
    Запрос.УстановитьПараметр("СписокЕРФЛ",МассивЕРФЛ);
    Запрос.УстановитьПараметр("счет20531",БухгалтерскийУчетПовтИсп.ПолучитьСчетПоКодуИДате("205.31",ТекущаяДата()));
    Запрос.УстановитьПараметр("ПериодОстатков",ТекущаяДата());
    Результат = Запрос.Выполнить().Выгрузить();
    Массив = Новый Массив;
    Массив = ОбщегоНазначения.ТаблицаЗначенийВМассив(Результат);
    ЗаписьJSON = Новый ЗаписьJSON;
    ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON( , Символы.Таб);
    ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
    ЗаписьJSON.ПроверятьСтруктуру = Ложь;

    ЗаписатьJSON(ЗаписьJSON, Массив);

    Возврат ЗаписьJSON.Закрыть();
```

и есть пара вопросов:
1) Можно ли сделать формирование JSON быстрее?
2) сейчас JSON выдается в таком виде
[
 {
  "Сумма": 1050,
  "КодЕРФЛ": "15574"
 },
 {
  "Сумма": 1050,
  "КодЕРФЛ": "67313"
 }
]
Можно ли его сделать в таком?
[
       {
            "15574": 1050,
            "67534": 3050,
        }
]
---
Вот:

```1c
    Результат = Запрос.Выполнить().Выбрать();
    Массив = Новый Массив;
    СоответствиеОстатков = Новый Соответствие;

    Пока Результат.Следующий() Цикл
    СоответствиеОстатков.Вставить(Результат.КодЕРФЛ, Результат.Сумма);
    КонецЦикла;

    Массив.Добавить(СоответствиеОстатков);

    ЗаписьJSON = Новый ЗаписьJSON;
    ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON( , Символы.Таб);
    ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
    ЗаписьJSON.ПроверятьСтруктуру = Ложь;

    ЗаписатьJSON(ЗаписьJSON, Массив);

    Возврат ЗаписьJSON.Закрыть();
```
---
на 2 вопрос ответ такой: можно. Если JSON-у скармливать массив соответствий. Я не знаю, что собой представляет функция ОбщегоНазначения.ТаблицаЗначенийВМассив, но подозреваю, что она возвращает массив структур. А в структуре ключи вроде "15574" недопустимы.
---
В чем вопрос то? Быстрее в смысле по скорости выполнения или формировать или чтобы меньше кода написать? А пункт два о чем? Ну из вашего кода и так понятно в каком виде он будет формироваться.
---
После выполнения запроса, в цикле побеги и собери строку.
А потом этот текст сохрани.

Только это будет ваша интерпретация формата JSON.
---
1. Можно, если вы не будете выгружать результат запроса в ТЗ, а ТЗ потом конвертировать в массив.
2. Можно. Для этого сделайте Новый Соответствие, добавьте в Соответствие значения с нужным именем ключа и значением, и уже потом соответствие добавьте в массив.
---
Для этого сделайте Новый Соответствие, добавьте в Соответствие знач

```1c
    МассивЕРФЛ = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(МассивКодовЕРФЛ,",",Истина);
    Если МассивЕРФЛ.Количество() > 0 Тогда

    КонецЕсли;
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | ЖурналПроводокЕПСБУОстатки.СуммаОстаток КАК Сумма,
    | ЖурналПроводокЕПСБУОстатки.Субконто1.ЮридическоеФизическоеЛицо.МФТИ_КодЕРФЛ КАК КодЕРФЛ
    |ИЗ
    | РегистрБухгалтерии.ЖурналПроводокЕПСБУ.Остатки(
    | &ПериодОстатков,
    | Счет = &счет20531,
    | ,
    | Субконто1.ЮридическоеФизическоеЛицо.МФТИ_КодЕРФЛ В (&СписокЕРФЛ)
    | И Субконто2.НаправлениеДеятельности.Код = "000006") КАК ЖурналПроводокЕПСБУОстатки
    |ГДЕ
    | ЖурналПроводокЕПСБУОстатки.СуммаОстаток > 0";
    Запрос.УстановитьПараметр("СписокЕРФЛ",МассивЕРФЛ);
    Запрос.УстановитьПараметр("счет20531",БухгалтерскийУчетПовтИсп.ПолучитьСчетПоКодуИДате("205.31",ТекущаяДата()));
    Запрос.УстановитьПараметр("ПериодОстатков",ТекущаяДата());
    Результат = Запрос.Выполнить().Выбрать();
    Массив = Новый Массив;
    Пока Результат.Следующий() Цикл
    СоответствиеОстатков = Новый Соответствие;
    СоответствиеОстатков.Вставить(Результат.КодЕРФЛ, Результат.Сумма);
    Массив.Добавить(СоответствиеОстатков);
    КонецЦикла;

    ЗаписьJSON = Новый ЗаписьJSON;
    ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON( , Символы.Таб);
    ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
    ЗаписьJSON.ПроверятьСтруктуру = Ложь;

    ЗаписатьJSON(ЗаписьJSON, Массив);

    Возврат ЗаписьJSON.Закрыть();
```

Сделал так и получаю такой JSON

[
 {
  "15574": 1050
 },
 {
  "67313": 1050
 }
]
---
Вот:

```1c
    Результат = Запрос.Выполнить().Выбрать();
    Массив = Новый Массив;
    СоответствиеОстатков = Новый Соответствие;

    Пока Результат.Следующий() Цикл
    СоответствиеОстатков.Вставить(Результат.КодЕРФЛ, Результат.Сумма);
    КонецЦикла;

    Массив.Добавить(СоответствиеОстатков);

    ЗаписьJSON = Новый ЗаписьJSON;
    ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON( , Символы.Таб);
    ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
    ЗаписьJSON.ПроверятьСтруктуру = Ложь;

    ЗаписатьJSON(ЗаписьJSON, Массив);

    Возврат ЗаписьJSON.Закрыть();
```
---
Спасибо большое!
ни разу до этого не работал с соответствиями.