К статье
Практический материал

Разработка и Конфигурация · 12 мин

Сохраняемые данные формы в 1С: что это и как с ними работать

Что такое сохраняемые данные формы в 1С, где они хранятся, как включить автосохранение настроек и что делать, если настройки формы сбрасываются.

Открывая одну и ту же форму в 1С, пользователь замечает: колонки таблицы стоят так, как он их расставил, выбранное поле контрагента подставлено автоматически, а размер окна сохранился с прошлого сеанса. За такое «памятливое» поведение отвечает механизм сохраняемых данных формы — платформа 1С:Предприятие умеет запоминать состояние формы между сеансами работы.

Путаница возникает из-за того, что термин употребляется в двух смыслах. Первый — пользовательские настройки формы (положение колонок, сортировка, отборы), которые платформа хранит автоматически. Второй — программный механизм для разработчиков: реквизиты формы и свойства «Сохраняемые данные», позволяющие явно указать, какие значения нужно запоминать между сеансами. В обоих случаях речь идёт о данных, которые не записываются в информационную базу как документы или справочники, а хранятся отдельно — в системном хранилище настроек.

Понимание этого механизма важно и пользователю, которому «слетели» привычные настройки, и разработчику, который проектирует собственную форму. Ниже разобрано, где физически хранятся эти данные, как включить и отключить сохранение, почему настройки иногда теряются и как безопасно их очистить.

Что именно относится к сохраняемым данным формы

К сохраняемым данным формы относятся два разных класса информации. Первый — автоматические пользовательские настройки: ширина и порядок колонок табличных частей и динамических списков, видимость колонок, сортировка, отборы, размер и положение окна формы, развёрнутость групп. Их платформа сохраняет сама, без участия разработчика, если для формы включён соответствующий режим.

Второй класс — значения, которые разработчик явно пометил как сохраняемые. В управляемых формах это реквизиты формы с включённым свойством «Сохраняемые данные», а также параметры, переданные при открытии. Типичный пример — форма обработки, где пользователь выбирает период, организацию и склад: при следующем открытии эти поля уже заполнены прошлыми значениями.

Важно отличать сохраняемые данные формы от данных объекта. Если вы заполнили документ и нажали «Записать», данные ушли в базу — это не настройки формы. Сохраняемые данные формы живут «рядом» с базой: их удаление не затрагивает документы, справочники и регистры.

Где физически хранятся эти данные

Платформа 1С хранит настройки форм в системном хранилище настроек. В файловом варианте базы это служебные таблицы внутри файла 1Cv8.1CD, в клиент-серверном — таблицы на стороне СУБД. Доступ к хранилищу из кода выполняется через объект ХранилищеСистемныхНастроек. Ключ записи формируется из полного имени формы и имени пользователя, поэтому у каждого пользователя свой комплект настроек.

Из-за привязки к пользователю возникает типичная ситуация: один сотрудник видит форму «удобно настроенной», а второй — в виде по умолчанию. Это норма, а не ошибка. Перенос настроек между пользователями возможен, но только специальными средствами — через программное копирование настроек в хранилище или через типовые механизмы обмена настройками, если они предусмотрены конфигурацией.

Как пользователю управлять настройками формы

В типовых конфигурациях на управляемых формах пользовательские настройки доступны через меню «Ещё» — пункт «Изменить форму» или «Настроить список». Там можно включить или отключить видимость колонок, изменить порядок, задать отбор. После нажатия «ОК» или «Завершить редактирование» платформа запоминает результат и восстанавливает его при следующем открытии.

Если форма «разъехалась» или ведёт себя непредсказуемо, быстрый способ вернуть её к исходному виду — сбросить настройки. В типовых конфигурациях для этого служит команда «Ещё» → «Установить стандартные настройки» (в некоторых конфигурациях — «Вернуться к стандартным настройкам»). Команда удаляет сохранённый вариант формы, и при следующем открытии она появится в виде, заданном разработчиком.

Как сбросить настройки формы
  1. 1
    Откройте форму, вид которой нужно вернуть к исходному.
  2. 2
    В меню «Ещё» найдите пункт «Установить стандартные настройки» или «Вернуться к стандартным настройкам».
  3. 3
    Подтвердите действие и закройте форму.
  4. 4
    Откройте форму заново и проверьте, что вид соответствует стандартному.

Для массовой очистки настроек (например, после обновления конфигурации, когда формы изменились) в типовых решениях есть раздел «Администрирование» → «Пользователи и настройки» или обработка очистки настроек. Там можно удалить настройки конкретного пользователя целиком либо точечно по объектам.

Как разработчику включить сохранение данных формы

В управляемой форме сохранение значений включается через свойства реквизитов. В конфигураторе откройте редактор формы, выделите нужный реквизит и в палитре свойств установите флаг «Сохранять» (свойство «Сохраняемые данные»). С этого момента платформа при закрытии формы запишет значение реквизита в системное хранилище, а при создании формы на сервере — восстановит его.

Для программной работы с настройками используются методы хранилища: ХранилищеСистемныхНастроек.Сохранить() и ХранилищеСистемныхНастроек.Загрузить() с указанием ключа объекта и ключа настроек. Это удобно, когда нужно хранить не отдельные реквизиты, а произвольную структуру — например, набор параметров сложной обработки.

bsl
// Сохранение произвольной структуры настроек
Настройки = Новый Структура("Организация, Склад", Организация, Склад);
ХранилищеСистемныхНастроек.Сохранить("Обработка.ЗагрузкаЦен.Форма", "ПараметрыЗапуска", Настройки);

// Загрузка при открытии формы
Сохраненные = ХранилищеСистемныхНастроек.Загрузить("Обработка.ЗагрузкаЦен.Форма", "ПараметрыЗапуска");
Если ТипЗнч(Сохраненные) = Тип("Структура") Тогда
	ЗаполнитьЗначенияСвойств(ЭтотОбъект, Сохраненные);
КонецЕсли;

Дополнительно в свойствах самой формы есть флаг «Автоматическое сохранение данных в настройках» и список «Сохраняемые в настройках данные». Если автоматическое сохранение включено, платформа сохраняет перечисленные реквизиты без единой строки кода. Для обычных форм (в старых конфигурациях) механизм аналогичен: у реквизитов формы есть свойство «Сохранять», а у формы — события «ПриОткрытии» и «ПриЗакрытии» для ручной обработки.

Способы сохранения данных формы

Свойство «Сохранять» у реквизита

Подходит для простых значений: период, организация, флажки. Работает без кода, но не подходит для сложных структур.

Программно через ХранилищеСистемныхНастроек

Подходит для структур, таблиц значений и нестандартной логики. Требует кода и аккуратной обработки отсутствующих настроек.

Пользовательские настройки платформы

Автоматическое сохранение колонок, отборов и сортировок. Не требует действий разработчика, но не сохраняет значения полей ввода.

Почему настройки формы сбрасываются или не сохраняются

Самая частая причина «потери» настроек — обновление конфигурации, в котором форма была переименована или существенно переработана. Ключ настройки привязан к полному имени формы, поэтому новая форма получает «чистый лист». Вторая причина — очистка хранилища настроек администратором или регламентной обработкой.

Если значения полей не сохраняются в форме собственной разработки, проверьте три вещи: установлено ли свойство «Сохранять» у реквизита, не очищается ли значение в обработчике «ПриСозданииНаСервере» после того, как платформа его восстановила, и не отключено ли автоматическое сохранение в свойствах формы. Типичная ошибка — код инициализации формы принудительно присваивает реквизитам значения по умолчанию, затирая восстановленные данные.

Типичные ошибки
01
Присвоение реквизитам значений по умолчанию в «ПриСозданииНаСервере» без проверки — затирает восстановленные настройки.
02
Сохранение в хранилище объектов, которые нельзя сериализовать (COM-объекты, открытые файлы) — приводит к ошибкам при загрузке.
03
Ожидание, что настройки одного пользователя увидят другие — настройки хранятся персонально.
04
Хранение паролей и секретов в сохраняемых данных формы в открытом виде — риск утечки, для этого есть безопасное хранилище.

Безопасность и ограничения механизма

Системное хранилище настроек не предназначено для больших объёмов данных. Сохранять в него таблицы на тысячи строк или двоичные данные — плохая практика: хранилище разрастается, открытие формы замедляется, а очистка настроек пользователя неожиданно удаляет нужные данные. Для объёмных данных используйте регистры сведений или константы.

Отдельное предупреждение про секреты. Пароли, токены и ключи API не следует помещать в сохраняемые данные формы: содержимое системного хранилища может читать любой код, выполняющийся с правами пользователя, а при выгрузке настроек секреты могут уйти наружу. В платформе для таких случаев предусмотрено безопасное хранилище (ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище в БСП) или владение паролем на уровне объекта метаданных.

Производительность тоже имеет значение. Если форма при открытии загружает из хранилища тяжёлую структуру, пользователь видит задержку. Признак проблемы — форма открывается заметно дольше, чем аналогичные. В таком случае перенесите объёмные данные в регистр сведений, а в настройках оставьте только ключ записи.

Как проверить, что сохранение работает правильно

Простой тест: заполните поля формы нестандартными значениями, закройте форму, затем откройте её снова. Значения должны восстановиться. Затем завершите сеанс полностью и войдите заново — настройки обязаны сохраниться и между сеансами, а не только в рамках одного.

Проверьте поведение под другим пользователем: он должен увидеть форму со значениями по умолчанию, а не с чужими настройками. Если видит чужие — значит, данные сохраняются не в пользовательские настройки, а в общие данные базы, и это повод пересмотреть решение.

Контрольные точки

Как проверить результат

Повторное открытие формы
Норма

Поля заполнены прошлыми значениями

Тревожный признак

Поля пустые или со значениями по умолчанию

Вход под другим пользователем
Норма

У каждого пользователя свои настройки

Тревожный признак

Все видят настройки последнего пользователя

Скорость открытия формы
Норма

Открытие без заметной задержки

Тревожный признак

Форма «подвисает» при загрузке настроек

FAQ: частые вопросы о сохраняемых данных формы

Удаляются ли документы, если очистить настройки форм?

Нет. Системное хранилище настроек содержит только пользовательские настройки и сохраняемые значения реквизитов форм. Документы, справочники и регистры хранятся в информационной базе отдельно и при очистке настроек не затрагиваются.

Можно ли перенести настройки формы другому пользователю?

Да, но не штатной кнопкой в интерфейсе. Программно это делается чтением настроек из хранилища под одним пользователем и записью с указанием имени другого пользователя. В некоторых типовых конфигурациях есть сервис копирования настроек между пользователями в разделе администрирования.

Почему после обновления конфигурации сбросились настройки формы?

Ключ настройки привязан к полному имени формы. Если при обновлении форму переименовали или заменили на новую, старые настройки остались в хранилище под прежним ключом и больше не подхватываются. Это ожидаемое поведение, а не сбой.

Можно ли сохранять в настройках формы пароль?

Технически можно, но делать этого не стоит: содержимое системного хранилища доступно коду, выполняющемуся от имени пользователя, и может попасть в выгрузки настроек. Для паролей и токенов используйте безопасное хранилище, предусмотренное в типовых библиотеках.

Чем сохраняемые данные формы отличаются от вариантов отчёта?

Вариант отчёта — это именованный набор настроек СКД, который можно выбрать из списка и передать коллеге. Сохраняемые данные формы — анонимное «последнее состояние» конкретной формы конкретного пользователя, без имени и без возможности штатно поделиться.

Как отключить автосохранение настроек для конкретной формы?

В конфигураторе откройте свойства формы и снимите флаг автоматического сохранения данных в настройках, а у реквизитов уберите свойство «Сохранять». Пользовательские настройки внешнего вида (колонки, отборы) отключаются через свойство формы «Хранить настройки» или программно через параметры формы.

Итог

Что важно запомнить

Сохраняемые данные формы — это настройки внешнего вида и значения реквизитов, которые платформа 1С запоминает между сеансами в системном хранилище настроек, персонально для каждого пользователя. Разработчик управляет механизмом через свойство «Сохранять» у реквизитов или программно через ХранилищеСистемныхНастроек. Настройки сбрасываются командой «Установить стандартные настройки», а массовую очистку выполняйте только после резервной копии.