Имя: Пароль:
1C
1С v8
Почему не сохраняется значение переменной модуля формы?
0 ЭЦ
 
13.10.22
18:52
Господа.

Имеется форма документа.
В модуле формы объявлена переменная

&НаСервере
Перем мНоменклатура

Эта переменная определяется как Массив и заполняется в процедуре

&НаСервере
ПриСозданииНаСервере()

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

&НаСервере
Функция ПолучимМассивНоменклатуры()
Возврат мНоменклатура
КонецФункции

Эта функция вызываетсмя из процедуры ПриОткрытии()

иммем следующее
массив создается и заполняется
а пр попытке получить его получаем Неопределено.

С чем это может быть связано
Прошу подсказать
1 ЭЦ
 
13.10.22
19:03
Проверил нет ли опечаток в наименовании переменной.

Их нет
2 Мультук
 
гуру
13.10.22
19:31
(0)

Реквизит формы с типом "Список значений" -- не подойдёт ?

P.S.
Тяжко после толстого клиента?
3 Мультук
 
гуру
13.10.22
19:37
(1)

Можно, конечно сделать реквизит формы "Адрес" с типом строка и потом (см код)
Но скорее всего, то что вы хотите в тонком клиенте решается "несколько по другому"



&НаСервере
Процедура ЛяляНаСервере()
    мНоменклатура = Новый массив;
    мНоменклатура.Добавить("ляля");
    
    
    аДрес = ПоместитьВоВременноеХранилище(мНоменклатура);
КонецПроцедуры


&НаСервере
Процедура ТополяНаСервере()
    мНоменклатура = ПолучитьИзВременногоХранилища(Адрес);
    
    Для каждого строка из мНоменклатура Цикл
        Сообщить(строка);
    КонецЦикла;    
КонецПроцедуры
4 FIXXXL
 
13.10.22
19:58
(2) +1
5 TormozIT
 
гуру
13.10.22
20:28
Модуль управляемой формы на сервере не имеет состояния. Поэтому он инициализируется при каждом контекстном серверном вызове заново, включая все переменные.
6 SilentMan
 
13.10.22
21:05
(0) Серверная переменная имеет значение только во время серверного вызова
7 rudnitskij
 
13.10.22
22:01
(0) Делаем реквизит формы
заполняем его "ПриСозданииНаСервере"
всё, он и так доступен везде, без всяких доп функций и переменных
8 СергейК
 
13.10.22
22:06
(7) ...и это никак не влияет на скорость открытия формы на клиенте?
9 Сергиус
 
13.10.22
22:16
(8)Смотря что ты туда положишь)
10 rudnitskij
 
13.10.22
22:41
(8) Это в любом случае быстрее, чем после "ПриСозданииНаСервере" выполнять еще серверный вызов из клиентской процедуры "ПриОткрытии"
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn