как правильно описать глобальную переменную в модуле формы 1с

Есть такой код. Переменная ЗаписьJSON инициализированная в одной процедуре, не воспринимается в другой. Как это заставить работать?

&НаСервере
Перем ЗаписьJSON;

&НаСервере
Процедура ВыгрузитьНаСервереНачало()
    
    ВременныйФайл = ПолучитьИмяВременногоФайла(".json");
    
    ЗаписьJSON = Новый ЗаписьJSON;

    ПараметрыЗаписиJSON = новый ПараметрыЗаписиJSON(,Символы.Таб);
    ЗаписьJSON.ОткрытьФайл(ВременныйФайл, "windows-1251",,ПараметрыЗаписиJSON);
    ЗаписьJSON.ЗаписатьНачалоОбъекта();
КонецПроцедуры

&НаСервере
Процедура ВыгрузитьНаСервереКонец()
    
    ЗаписьJSON.ЗаписатьКонецОбъекта();
    ЗаписьJSON.Закрыть();
    
    Двоичное = Новый ДвоичныеДанные(ВременныйФайл);
    АдресФайлаВоВременномХранилище = ПоместитьВоВременноеХранилище(Двоичное, ЭтаФорма.УникальныйИдентификатор);
    Попытка
        УдалитьФайлы(ВременныйФайл);
    Исключение
        
    КонецПопытки;
    
КонецПроцедуры

Ответы (2 шт):

Автор решения: Klepov Yura

Не совсем понятно как Вы вызываете эти процедуры ?

В данном случае можно сделать так:

&НаСервере
Перем ЗаписьJSON;
Перем ВременныйФайл;

&НаСервере
Процедура ВыгрузитьНаСервереНачало()
    ВременныйФайл = ПолучитьИмяВременногоФайла(".json");
    
    ЗаписьJSON = Новый ЗаписьJSON;

    ПараметрыЗаписиJSON = новый ПараметрыЗаписиJSON(,Символы.Таб);
    ЗаписьJSON.ОткрытьФайл(ВременныйФайл, "windows-1251",,ПараметрыЗаписиJSON);
    ЗаписьJSON.ЗаписатьНачалоОбъекта();
    
    ВыгрузитьНаСервереКонец();
КонецПроцедуры

&НаСервере
Процедура ВыгрузитьНаСервереКонец()
    ЗаписьJSON.ЗаписатьКонецОбъекта();
    ЗаписьJSON.Закрыть();
    
    Двоичное = Новый ДвоичныеДанные(ВременныйФайл);
    АдресФайлаВоВременномХранилище = ПоместитьВоВременноеХранилище(Двоичное, ЭтаФорма.УникальныйИдентификатор);
    Попытка
        УдалитьФайлы(ВременныйФайл);
    Исключение
        
    КонецПопытки;
КонецПроцедуры


&НаКлиенте
Процедура Команда1(Команда)
    ВыгрузитьНаСервереНачало();
КонецПроцедуры

Здесь объявил переменную ВременныйФайл как глобальную, это позволит корректно удалить временный файл во время выполнения процедуры ВыгрузитьНаСервереКонец().

Процедуру ВыгрузитьНаСервереКонец() вызываем также на сервере иначе ЗаписьJSON будет неопределена.

→ Ссылка
Автор решения: Сергей Лашнёв

Проблема была с переменной записьJSON. Как оказалось 1С не передает объект JSON не передается между сервером и клиентом. Поэтому JSON оставил на клиенте, а на сервере обработку данных и передачу результата на клент через временное хранилище.

→ Ссылка