Почему в 1С:Управление торговлей 10 сбрасываются настройки списка в документах и как это исправить

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

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

Анализ прав доступа пользователя

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

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

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

Проверка свойств формы в Конфигураторе

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

Выполним следующие шаги для проверки:

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

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

Программная инициализация и жестко заданные настройки

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

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

Пример кода, который может «затирать» пользовательские настройки:


Процедура ПриОткрытии()
    // Программная установка видимости колонок
    ЭлементыФормы.Товары.Колонки.Цена.Видимость = Истина;
    ЭлементыФормы.Товары.Колонки.Сумма.Видимость = Истина;
    
    // Если здесь вызывается метод восстановления настроек по умолчанию, 
    // пользовательские изменения будут потеряны
    УстановитьНастройкуКолонокПоУмолчанию();
КонецПроцедуры

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

Влияние кэша и системных папок

Иногда проблема кроется не в логике 1С, а во взаимодействии платформы с операционной системой. Настройки форм хранятся в файлах профиля пользователя Windows. Если у пользователя нет прав на запись в папку %AppData%\1C, то настройки физически не могут быть сохранены.

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

Также проанализируем ярлык запуска 1С. Проверьте, не добавлен ли в параметрах запуска ключ /ClearCache. Этот ключ заставляет программу полностью игнорировать и очищать старые настройки при каждом запуске. Это полезно при разработке, но крайне мешает в повседневной работе пользователей.

Механизм восстановления настроек (RestoreSettings)

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

Для исправления ситуации можно попробовать выполнить «Тестирование и исправление» (ТиИ) информационной базы через конфигуратор. При этом обязательно выберите пункты «Реиндексация таблиц» и «Проверка логической целостности». Для SQL-версий баз данных это поможет восстановить корректную работу таблицы SystemSettings, где платформа хранит настройки интерфейса.

Итоги и рекомендации

Подводя итог, можно сказать, что решение проблемы сброса настроек в УТ 10 требует последовательной проверки трех уровней:

  1. Уровень прав: наличие права на сохранение данных пользователя.
  2. Уровень метаданных: включенные свойства сохранения значений в конфигураторе.
  3. Уровень кода: отсутствие принудительного переопределения колонок в процедуре ПриОткрытии.

Если все вышеперечисленные методы не помогают, рекомендуем полностью удалить базу из списка выбора в стартере 1С и добавить её заново. Это создаст новый идентификатор информационной базы для локального кэша и может решить проблему с некорректно работающими путями к файлам настроек.

← На главную