У меня есть массив - значения учетной ставки центробанка по дням за месяц. Этот массив используется неоднократно, а получается запросом к сайту центробанка. Хочется его как-то в форме сохранить, а потом использовать. Подскажите, как лучше это сделать?
---
Вполне возможно. Но если нужен именно Массив (без преобразований), то есть и другие варианты.
---
зачем обязательно массив? Может подойдут СписокЗначений или (ТаблицаЗначений)?
Если нужно обязательно хранить массив, то есть варианты:
1. сохранять во временное хранилище и хранить адрес.
2. хранить в реквизите формы с типом Произвольный через структуру. Т.е. в реквизите хранить структуру, в которую уже и сохранять массив.
---
Фиксированный массив вроде вполне себе сохраняется в реквизите формы произвольного типа. Безо всяких извращений.
---
эти значения учетной ставки, вы только к одному документу применяете, или ко многим?
если ко многим, то хранить его в форме одно документа не рационально,
надо хранить его в каком-то общем объекте базы, например в справочнике или в независимом регистре сведений
в начале дня получили данные по учетной ставке, записали в базу, а затем в процессе работы с документами получаете данные
уже из своей базы из справочника или регистра
---
Человек не спрашивал про архитектуру. Он спрашивал про "массив в форме".
Ясен пень, что ставки ЦБ, как и курсы валют надо хранить в периодических регистрах...
---
Ну так и храните в реквизите формы, в чем проблема?
---
А какой тип должен быть у реквизита формы?
---
Хмм... А есть там тип Массив? Если нет - то что подсказывает логика?
---
Логика подсказывает реквизит типа списка значений. Так?
---
Вполне возможно. Но если нужен именно Массив (без преобразований), то есть и другие варианты.
---
Тип Произвольный. Использовать фиксированный массив.
---
В общем модуле с повторным вызовом используемых значений на время сеанса.
---
Это внешняя обработка и создавать для нее внешний модуль конфигурации - не комильфо.
---
Тогда делайте так:

Получение данных не из переменной, а из функции:

```1c
    Ставка = ДанныеБанка().Ставка;
```

Сама функция хитрее, чем кажется:

```1c
    &НаКлиенте
    Функция ДанныеБанка()
    Если ПеременнаяФормыНаКлиенте = Неопределено Тогда
    ПеременнаяФормыНаКлиенте = Новый Структура("Ставка", ПолучитьЗначениеСтавки());
    КонецЕсли;
    Возврат ПеременнаяФормыНаКлиенте;
    КонецФункции
```

Думаю, обьяснять что такое ПеременнаяФормыНаКлиенте не нужно.

Можно еще и сохранять эти данные для того, чтобы восстанавливать при открытии внешней обработки:

```1c
    ХранилищеОбщихНастроек.Сохранить(ИмяФормы, Настройки);
```

Ставь класс
---
Это внешняя обработка
еще вариант, сохраняйте эти ставки во временный файл,
всего одна команда сохранить и когда надо прочитать
зато, будет доступна во всех документах, в течении всего сеанса
---
Действительно, есть же Excel. Особенно на сервере.
---
У платформы есть методы ЗначениеВФайл и ЗначениеИзФайла, ну так, к слову.
---
Да, я в курсе. Файловая система - надёжный помощник при работе с СУБД.

Осталось только сделать параметр сеанса для хранения имени этого файла.

Я же правильно понимаю, что каждый сеанс будет использовать свою клиентскую файловую систему? И при необходимости передавать данные файла на сервер?

PS. Или будем хранить файл на сервере? Тогда константа? Или жёсткий хардкод в модулях?
---
Осталось только сделать параметр сеанса для хранения имени этого файла.
Если бы можно было сделать параметр сеанса, то проще в параметре сеанса это и хранить, без всяких файлов.

А вообще, в БСП есть глобальные параметры, в которых можно хранить свои данные.

```1c
    // ПараметрыПриложения - Соответствие - хранилище переменных, где:
    // * Ключ - Строка - имя переменной в формате "ИмяБиблиотеки.ИмяПеременной";
    // * Значение - Произвольный - значение переменной.
    //
    // Инициализация (на примере СообщенияДляЖурналаРегистрации):
    // ИмяПараметра = "СтандартныеПодсистемы.СообщенияДляЖурналаРегистрации";
    // Если ПараметрыПриложения[ИмяПараметра] = Неопределено Тогда
    // ПараметрыПриложения.Вставить(ИмяПараметра, Новый СписокЗначений);
    // КонецЕсли;
```

Я же правильно понимаю, что каждый сеанс будет использовать свою клиентскую файловую систему? И при необходимости передавать данные файла на сервер?

Если код выполняется на клиенте, то соответственно клиентская файловая система.
Если на сервере, то файловая система сервера.
Автоматически файлы не передаются, для этого надо кодить.
---
Ох ты блин спасибо, просветил! А если код выполняется и на клиенте и на сервере в зависимости от задачи?

Скажи уже, что использование файловой системы в качестве хранения условно-постоянной информации - это полнейший трэш!
---
Скажи уже, что использование файловой системы в качестве хранения условно-постоянной информации - это полнейший трэш!
В данной задаче определенно это такой себе способ, я бы так делать не стал.
---
В любой задаче.
---
starik-2005 рассказывал про использование файлов.
В файлах на спец.ресурсе хранятся данные паспортов. И таких данных миллионы.
Постоянная загрузка/обновление этих данных, если это хранить в базе занимала часы, а в случае хранения этих данных в файлах - минуты.
http://forum.infostart.ru/forum9/topic265213/message2680342/#message2680342
---
Постоянная загрузка/обновление этих данных, если это хранить в базе занимала часы Кривой алгоритм? Кривая событийная архитектура обмена данными?
---
Спросите у него, я ссылку на тему привел)
---
Ну почитал. Он файловую систему использует просто в качестве транзита данных для служебных обработок. А не для интерактивной работы пользователей с этими данными.