Коллеги, добрый день.
Есть файл JSON с простой структурой. Массив, а в нем объекты с двумя свойствами.
[
 {
  "Свойство_1": "Значение_1",
  "Свойство_2": "Значение_2"
 },
 {
  "Свойство_1": "Значение_1",
  "Свойство_2": "Значение_2"
 }
]
Количество объектов массиве может быть очень много, и обработкой добавляются ещё. Можно ли как-то дописать необходимые объекты в конец массива файла, а не перезаписывать всё содержимое файла каждый раз?
---
Короче, самому любопытно стало. Исходное содержание файла-ЖСОНа взял Ваше, потом кнопок понажимал и в файрфоксе итоговый ЖСОН открыл - проверил, ошибок ЖСОНа не выдано.

```1c
    Процедура ТестФайлПотокНаСервере()
    Текст = ",{
    |"Свойство_1": "Значение_1",
    |"Свойство_2": "Значение_2"
    |}
    |]";
    Буфер = ПолучитьБуферДвоичныхДанныхИзСтроки(Текст);
    ФП = Новый ФайловыйПоток("t:\tmp\jsn.json", РежимОткрытияФайла.Дописать);
    ФП.Перейти(-1, ПозицияВПотоке.Текущая);
    ФП.Записать(Буфер ,0, Буфер.Размер);
    ФП.Закрыть();
    КонецПроцедуры
```
---
В случае с JSON и другими форматами сериализации данных, совсем не читать файл не получится, т.к. в конце файла содержатся закрывающие теги, а вам нужно "вклиниваться" до этих тегов.

Но если вы прям уверены, что вам нужно только дописать файл, то:

```1c
    Поток = Новый ЗаписьТекста(ПолноеИмяФайла, , , , Истина);

    Поток.Записать("Строка")
    поток.ЗаписатьСтроку("Строка");
    ........
    Поток.Закрыть();
```
---
просто дописать не читая не получится. По этому формат json мало подходит для ведения логов.
Тут все зависит от того, как этот файл используется дальше для чтения.
Можно предложить такой вариант:
Записывать структуры каждый раз в отдельный файл (скажем с инкрементацией в названии).
При необходимости использования или по заданному периоду, скриптом собирать из разных файлов в единый.
---
Прочитать, добавить, записать.
---
```1c
    Запись = Новый ЗаписьJSON;
    Запись.ОткрытьФайл("c:\temp\simpleWrite.json");
    Данные = Новый Структура;
    Данные.Вставить("ДлинаЗаписи", 20);
    Данные.Вставить("КлючЗаписи", "abcdefgh");
    Данные.Вставить("ДатаИзменения", ТекущаяДата());
    ЗаписатьJSON(Запись, Данные, );
    Запись.Закрыть();
```
---
Ваш код просто перезаписывает файл, т.е. стирает данные в файле и вписывает новые.
---
Последний символ в файле заменяем на запятую, дальше, думаю, сами допилите:

```1c
    &НаСервере
    Процедура ТестФайлПотокНаСервере()
    ФП = Новый ФайловыйПоток("t:\tmp\jsn.json", РежимОткрытияФайла.Дописать);
    ФП.Перейти(-1, ПозицияВПотоке.Конец);
    ФП.Записать(ПолучитьБуферДвоичныхДанныхИзСтроки(","),0,1);
    КонецПроцедуры
```
---
Если сделать
```1c
    ФП.Перейти(-1, ПозицияВПотоке.Текущая);
```
 такой же результат получится, как
```1c
    ФП.Перейти(-1, ПозицияВПотоке.Конец);
```
т.к. при открытии в режиме .Дописать текущая позиция в конец устанавливается.
---
Короче, самому любопытно стало. Исходное содержание файла-ЖСОНа взял Ваше, потом кнопок понажимал и в файрфоксе итоговый ЖСОН открыл - проверил, ошибок ЖСОНа не выдано.

```1c
    Процедура ТестФайлПотокНаСервере()
    Текст = ",{
    |"Свойство_1": "Значение_1",
    |"Свойство_2": "Значение_2"
    |}
    |]";
    Буфер = ПолучитьБуферДвоичныхДанныхИзСтроки(Текст);
    ФП = Новый ФайловыйПоток("t:\tmp\jsn.json", РежимОткрытияФайла.Дописать);
    ФП.Перейти(-1, ПозицияВПотоке.Текущая);
    ФП.Записать(Буфер ,0, Буфер.Размер);
    ФП.Закрыть();
    КонецПроцедуры
```
---
Спасибо, работает.
Не совсем так как я себе представлял, думал есть метод в самомо ЗаписатьJSON установить номер строки с которого начать писать, просто я плохо искал в синтаксис помощнике. Но и ваш метод годный.