Почему при открытии формы в 1С 7.7 список значений оказывается уже заполненным и как это исправить?

Программист 1С v7.7 IT и автоматизация бизнеса
← На главную

При разработке и доработке обработок или отчетов в платформе 1С:Предприятие 7.7 разработчики иногда сталкиваются с непонятным поведением элементов формы: при открытии диалога элемент Список значений (или другой реквизит) уже содержит некоторое значение. При этом в модуле формы отсутствует код заполнения — его нет ни в предопределенной процедуре ПриОткрытии(), ни в области автовыполнения (нижняя часть модуля после всех процедур и функций).

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

Причина автозаполнения элементов формы

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

Порядок загрузки данных платформой выглядит следующим образом:

  1. Пользователь открывает форму обработки или отчета.
  2. Платформа **до** выполнения любого кода модуля считывает ранее сохраненную настройку.
  3. Значения реквизитов автоматически восстанавливаются на форме. По этой причине в момент входа в процедуру ПриОткрытии() диалоговый элемент Список значений уже оказывается заполнен.
  4. Выполняется предопределенная процедура ПриОткрытии() и основной код модуля.

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

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

Выясним, в каких файлах 1С 7.7 сохраняет эти данные. Все автоматически сохраненные параметры форм и отчетов записываются в каталог пользователя информационной базы:

  1. В файле конфигурации пользователя 1Cv7.CFG.
  2. В специализированных файлах с расширением *.lst, расположенных в рабочем каталоге конкретного пользователя.

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

Способы решения проблемы

Разберем по шагам несколько вариантов устранения автоматического заполнения списка значений.

Способ 1. Отключение сохранения значения в Конфигураторе

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

  1. Откройте нужную форму обработки или отчета в Конфигураторе.
  2. Откройте свойства элемента Список значений (двойным кликом или через контекстное меню).
  3. На вкладке свойств найдите и снимите флажок «Сохранять при сохранении настройки».
  4. Если необходимо полностью отключить механизм для всей формы, нажмите правой кнопкой мыши по пустому месту формы и снимите флаг «Режим сохранения настройки».
  5. Сохраните изменения в обработке или конфигурации.

Способ 2. Программная очистка списка при открытии

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


Процедура ПриОткрытии()
    // Принудительно очищаем список от автоматически восстановленных настроек
    ИмяСпискаЗначений.Очистить();
    
    // Далее следует основной код инициализации формы
КонецПроцедуры

Также очистку можно расположить в области автовыполнения модуля (в самом низу файла вне процедур), чтобы сбросить значения еще до показа формы пользователю.

Способ 3. Сброс сохраненных файлов настроек у пользователей

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

  1. Завершите сеанс работы 1С:Предприятия 7.7 у пользователей.
  2. Перейдите в каталог пользователя (или в каталог информационной базы, если индивидуальные каталоги не назначены).
  3. Найдите и удалите файлы с расширением *.lst, либо сбросьте файл 1Cv7.CFG.

После повторного входа в программу платформа откроет форму с чистыми значениями по умолчанию.

← На главную