Многие пользователи 1С сталкиваются с досадной ситуацией: в отчете или списке документов устанавливается нужный период, всё отображается корректно, но после закрытия и повторного открытия программы настройки бесследно исчезают. Это заставляет тратить время на рутинные действия при каждом запуске. Давайте подробно разберем, почему это происходит и как заставить программу запоминать ваш выбор.
Прежде чем приступать к сложным техническим манипуляциям, проверим самые очевидные моменты. В современных конфигурациях на базе управляемых форм механизм сохранения периода часто вынесен в отдельное окно. Проанализируем стандартный алгоритм установки интервала:
Если же мы работаем не с отчетом, а с динамическим списком (например, списком реализаций или поступлений), рассмотрим другой путь. Нажмем Еще — Настроить список. Здесь, на вкладке «Отбор», можно добавить поле Дата, установить вид сравнения «Больше или равно» и «Меньше или равно». Чтобы эти настройки сохранились, необходимо убедиться, что в самой конфигурации для этой формы не переопределено стандартное поведение сохранения настроек.
Если флажки стоят, но магия не работает, выясним причину глубже. Часто настройки пользователя сохраняются в базе данных в специальном хранилище в виде бинарных данных. Если запись была повреждена (например, из-за аварийного завершения работы), программа не может её считать и откатывается к значениям по умолчанию.
Рассмотрим, как очистить проблемные настройки через административную панель, не прибегая к программированию:
Иногда корень зла кроется не в самой базе данных, а в локальных файлах на компьютере пользователя. Проанализируем ситуацию: 1С активно использует кэширование для ускорения работы интерфейса. Если кэш «протух», формы могут вести себя непредсказуемо.
Разберем по шагам процедуру очистки кэша:
При таком способе папка с кэшем для этой базы будет создана заново, а старые временные файлы перестанут мешать работе. Если это не помогло, попробуем вручную очистить директории %AppData%\Local\1C\1cv8 и %AppData%\Roaming\1C\1cv8, удалив оттуда папки с длинными буквенно-цифровыми названиями (GUID).
Если настройки не сохраняются у всех пользователей или проблема носит массовый характер, проанализируем состояние самой базы данных. В файловом варианте работы часто возникают логические ошибки в таблицах. Для лечения используем стандартную утилиту chdbfl.exe, которая находится в папке bin установленной платформы.
Важно: перед этой процедурой обязательно создадим резервную копию базы!
chdbfl.exe.1Cv8.1CD.Эта утилита проверяет физическую целостность таблиц, в том числе таблицы SystemSettings, где 1С хранит все наши «галочки» и периоды.
Рассмотрим ситуацию с точки зрения системного администрирования. Если база данных работает на SQL-сервере, запись настроек может блокироваться из-за проблем с таблицей системных настроек. Попробуем перезапустить службу Агент сервера 1С:Предприятия. Это снимет зависшие сессии и блокировки.
Также проверим права доступа пользователя в операционной системе Windows. Если у пользователя нет прав на запись в папку своего профиля (AppData), 1С не сможет сохранить временные файлы сериализации настроек перед их отправкой в базу. Попробуем запустить 1С от имени администратора и проверить, сохранится ли период в этом случае.
Выясним, не влияет ли на процесс формат даты. Если в региональных настройках Windows установлен экзотический формат времени или даты (например, через дробь или с нестандартным разделителем), платформа 1С может столкнуться с ошибкой при попытке превратить выбранный период в строку для записи в базу данных. Рекомендуется установить стандартный российский формат (ДД.ММ.ГГГГ).
Если конфигурация доработана, стоит проанализировать код формы. Например, если программист вмешался в работу стандартного периода, он мог случайно подавить механизм автоматического сохранения. Проверим наличие кода в процедуре ПриЗагрузкеДанныхИзНастроекНаСервере. Если там принудительно устанавливаются значения, ваши ручные правки будут игнорироваться:
&НаСервере
Процедура ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки)
// Если здесь жестко прописано:
// Отчет.Период.ДатаНачала = НачалоМесяца(ТекущаяДата());
// То никакие сохранения работать не будут.
КонецПроцедуры
Подводя итог, скажем: в 90% случаев проблема решается либо установкой заветного флажка «Запомнить», либо очисткой кэша и настроек пользователя через меню «Администрирование». Если же это не помогает, следует переходить к проверке базы утилитой chdbfl или анализу прав доступа к папкам профиля Windows.